[转]Joomla! 1.5中form表单的实现方式

原文链接:Joomla! 1.5中form表单的实现方式

Joomla! 1.5中JParameter不但提供了一个xml 和ini文件读取和访问的方式,同时它提供了一个render函数,这个render函数对于Joomla! 1.5中的表单制作提供很大的便利,事实上Joomla! 1.5的文章编辑界面广泛了使用了这种方式。这种方式中更好的实现了页面元素与数据的分离,并提供了一些表单项的验证方式。

以下我们来介绍一个简单的Joomla! 1.5表单制作,假设我们有一个组件com_test,第一步我们要在com_test/models中添加一个test.xml文件,内容如下:

<?xml version="1.0" encoding="utf-8"?>
<form>
 <name>Test Form</name>
 <params group="advanced">
  <param name="show_title" type="list" default="" label="Show Title" description="Show/Hide the items title">
   <option value="">Use Global</option>
   <option value="0">No</option>
   <option value="1">Yes</option>
  </param>
  <param name="created" type="calendar" default="" label="Created Date" description="DETAILCREATED" />
  <param name="publish_up" type="calendar" default="" label="Start Publishing" description="DETAILSTART" />
  <param name="keywords" type="textarea" rows="5" cols="30" default="" label="Keywords" description="METAKEYS" />
  <param name="robots" type="text" size="20" default="" label="Robots" description="METAROBOTS" />
 </params>
</form>

实际上这个部分对应这表单中部分或者所有的项,我们这个表单有5项,第一个是select list ,接下来两个是日期,第四个keywords是一个 textarea,最后一个是text输入。在这个完成后,我们就可以在视图文件中view.html.php中display函数中实现代码如下:

     $form = new JParameter('', JPATH_COMPONENT.DS.'models'.DS.'test.xml');
    $html=$form->render('details', 'advanced');
    $this->assignRef('html',$html);

很简单,然后在视图模板文件tmpl/default.php中:

  <form action='/index.php' method="post">
   <?php echo $this->html; ?>
   <input type="submit" value="submit">
   <input type="hidden" name="task" value="save">
   <input type="hidden" name="option" value="com_test">
  </form>

 现在就可以通过http://yourdomain.com/index.php?option=com_test&view=test来访问了,查看浏览器的源代码看看到底生成了什么吧。

这样做的好处有很多,如果我们做了数据表的数据结构修改,那么我们所涉及到的界面工作就只有修改test.xml文件,而不必关心其他的东西。

这样做表单确实挺方便的,如果表单中的初始值是动态的怎么办?有知道的留个言,谢谢!

 

posted @ 2008-09-19 12:51  轻松  阅读(1533)  评论(2编辑  收藏  举报