这篇文章中,我们已经创建了一个组件的框架,但是显示后台记录添加修改的界面相对很乱,我们采用 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: 您还没有登录,登录后方能下载,如果您还没有注册,请点击
免费注册