Joomla!-开源天空

2008-10-08
首页 专栏热点 Joomla! 源代码分析 Joomla!扩展制作实例教程-模板展示组件-后台记录增加和修改程序


Joomla!扩展制作实例教程-模板展示组件-后台记录增加和修改程序

E-mail

Joomla!扩展制作实例教程-模板展示组件-创建组件框架 

这篇文章中,我们已经创建了一个组件的框架,但是显示后台记录添加修改的界面相对很乱,我们采用 xml 来修改后台记录添加和修改界面。关于采用xml 生成form表单的过程请参考一下这两篇文章:

Joomla! 1.5中form表单的实现方式
Joomla!表单XML文件编写参考手册

我们来修改一下模板展示组件部分,在后台 administrator/components/com_showcase/models目录中,增加一个showcase.xml,具体代码如下:

<?xml version="1.0" encoding="utf-8"?>
<form>
 <name>Showcase Form</name>
 <params>
  <param name="catid" type="list" size="20" default="0" label="Category ID" description="Category ID">
   <option value="0">Public</option>
   <option value="1">Registered</option>
   <option value="2">Special</option>
  </param>
  <param name="title" type="text" size="50" default="" label="title" description="title" />
  <param name="imgfilename" type="text" size="50" default="" label="imgfilename" description="imgfilename" />
  <param name="imgthumbname" type="text" size="50" default="" label="imgthumbname" description="imgthumbname" />
  <param name="urlhome" type="text" size="50" default="" label="urlhome" description="urlhome" />
  <param name="urldemo" type="text" size="50" default="" label="urldemo" description="urldemo" />  
  <param name="urldownload" type="text" size="50" default="" label="urldownload" description="urldownload" /> 
  <param name="license" type="list" size="20" default="0" label="license" description="license">
   <option value="UNKNOW"></option>
   <option value="GNU/GPL">GNU/GPL</option>
   <option value="Comercial">Comercial</option>
  </param>  
  <param name="rank" type="list" size="20" default="0" label="rank" description="rank">
   <option value="0">0</option>
   <option value="1">1</option>
   <option value="2">2</option>
   <option value="3">3</option>
   <option value="4">4</option>
   <option value="5">5</option>
  </param>  
  <param name="developer" type="text" size="50" default="" label="developer" description="developer" />
   <param name="email" type="text" size="50" default="" label="email" description="email" />  
  <param name="version" type="text" size="50" default="" label="version" description="version" /> 
  <param name="hits" type="text" size="10" default="" label="hits" description="hits" /> 
  <param name="downloads" type="text" size="20" default="" label="downloads" description="downloads" />
  <param name="description" type="textarea" size="50" default="" label="description" description="description" />  
 </params>
</form>

我们看到,涵盖了数据表中除ID外的所有字段,除了几个下拉列表输入,其余都是文字输入框。

接着我们来修改administrator/components/com_showcase/views/showcase/view.html.php ,在display函数中,增加如下代码:

    $form = new JParameter('', JPATH_COMPONENT.DS.'models'.DS.'showcase.xml');
    $form->set('catid',$item->catid);
    $form->set('title',$item->title);
    $form->set('description',$item->description);
    $form->set('urlhome',$item->urlhome);
    $form->set('urldemo',$item->urldemo);
    $form->set('urldownload',$item->urldownload);
    $form->set('imgfilename',$item->imgfilename);
    $form->set('license',$item->license);
    $form->set('rank',$item->rank);
    $form->set('developer',$item->developer);
    $form->set('email',$item->email);
    $form->set('version',$item->version);
    $form->set('hits',$item->hits);
    $form->set('downloads',$item->downloads);
      
    $html=$form->render('details');
       
    $this->assignRef('html',$html);

这段断码,引入了我们刚才简历的showcase.xml,并渲染生成的form输入域代码。

 接着我们来修改一下 form.php模板文件 位于administrator/components/com_showcase/views/showcase/tmpl目录下,修改后的代码如下:

<?php defined('_JEXEC') or die('Restricted access'); ?>

<form action="index.php" method="post" name="adminForm" id="adminForm">
<?php echo $this->html; ?>

<input type="hidden" name="option" value="com_showcase" />
<input type="hidden" name="id" value="<?php echo $this->item->id; ?>" />
<input type="hidden" name="task" value="" />
<input type="hidden" name="controller" value="showcase" />
</form>

 现在就修改完毕了。

现在添加和修改记录的界面如下:

 

现在添加一个记录试试吧,Joomla! form表单简化了我们大量的表单创建工作。

接下来的文章中,我们来给description字段加上所见即所得编辑器,并修改后台界面的记录列表界面。

附件中是form.php文件,以及showcase.xml ,关于view.html.php文件的修改,请朋友们自己加入到文件中吧。
 

Attatchments:
您还没有登录,登录后方能下载,如果您还没有注册,请点击 免费注册
相关文章:
Joomla! 1.5 API 中文手册(作者:aivera)
Joomla!扩展制作实例教程-模板展示组件-前台路径设置
Joomla!扩展制作实例教程-模板展示组件-前台最终页面
Joomla!扩展制作实例教程-模板展示组件-前台列表页面
Joomla!扩展制作实例教程-模板展示组件-增加后台上传图片功能
Joomla!扩展制作实例教程-模板展示组件-如何数据表增加一个字段
Joomla!扩展制作实例教程-模板展示组件-整理后台列表页面,增加列表分页功能
Joomla!扩展制作实例教程-模板展示组件-后台增加所见即所得编辑器
Joomla!扩展制作实例教程-模板展示组件-创建组件框架
Joomla!扩展制作实例教程-模板展示组件-前言


收藏此文章:
Digg! Reddit! Del.icio.us! JoomlaVote! Google! Live! Facebook! StumbleUpon! Yahoo! Free social bookmarking plugins and extensions for Joomla! websites!
User Reviews(4)
 有问题
作者:aivera 星期五, 27 六月 2008 23:42
保存后全是空值
 回复:[文章评论]--Joomla!扩展制作实例教程-模板展示组件-后台记录增加和修改程序
作者:admin 星期二, 08 七月 2008 18:54
不好意思,竟然没能看到,很久不收信了。

我把前后台的文件都打包传上来,你覆盖一下,看看。 [file name=com_showcase_back.tgz size=6606]http://www.maycode.com/images/fbfiles/files/com_showcase_back.tgz[/file]
 回复:[文章评论]--Joomla!扩展制作实例教程-模板展示组件-后台记录增加和修改程序
作者:admin 星期二, 08 七月 2008 18:55
前台文件 [file name=com_showcase_front.tgz size=11299]http://www.maycode.com/images/fbfiles/files/com_showcase_front.tgz[/file]
 回复:[文章评论]--Joomla!扩展制作实例教程-模板展示组件-后台记录增加和修改程序
作者:admin 星期二, 08 七月 2008 18:56
表创建语句:

CREATE TABLE `jos_showcase` (
`id` int(11) NOT NULL auto_increment,
`catid` int(11) default NULL,
`title` varchar(200) default NULL,
`description` text NOT NULL,
`imgfilename` varchar(200) default NULL,
`imgthumbname` varchar(200) default NULL,
`urlhome` varchar(200) default NULL,
`urldemo` varchar(200) default NULL,
`urldownload` varchar(200) default NULL,
`license` varchar(200) default NULL,
`rank` int(10) default NULL,
`developer` varchar(200) default NULL,
`email` varchar(200) default NULL,
`version` varchar(200) default NULL,
`hits` int(10) default NULL,
`downloads` int(11) default NULL,
`uptime` int(10) default NULL,
PRIMARY KEY (`id`)
)

发表您的文章评论

您的姓名 (昵称)
标题:
评分: 很差一般较好很好
评论:
验证码:
请输入验证码