xml在joomla表单中的应用详解分享

复制代码 代码如下:

在view.html.php中

复制代码 代码如下:

本文实例讲述了Joomla调用系统自带编辑器的方法。分享给大家供大家参考,具体如下:

使用方法如上,元素的自定义文件在下载里面提供.接着我们在views文件夹下面你的视图文件夹内的view.html.php增加如下语句

echo
$editor->display(‘控件name值’,’内容’,’宽’,’高’,’列数’,’行数’,true,
‘控件id值’);

<param name=’custom’ type=’custom’ label=’自定义’> //自定义控件
<param name=’arr’ type=’arr’ label=’数组’
arr=”array(1=>’中国’,2=>’美国’)”/>//数组转换成列表
不写下标从0开始
<param name=’radios’ type=’radios’ label=’是否单选’>
//生成是否单选
<param name=’arr’ type=’upload’ label=’数组’
size=’20’/>//上传控件
<param name=’arr’ type=’checkbox’ label=’数组’
arr=”array(‘1’=>’中国’,’2’=>’美国’)”/>//数组复选
<param name=’type’ type=’type’ label=’无线分类’ />//无限分类
注意添加section父类为0

更多关于joomla相关内容感兴趣的读者可查看本站专题:《Symfony框架入门教程》、《Yii框架入门及常用技巧总结》、《php优秀开发框架总结》、《smarty模板入门基础教程》、《ThinkPHP常用方法总结》、《php面向对象程序设计入门教程》、《php字符串(string)用法总结》、《php+mysql数据库操作入门教程》及《php常见数据库操作技巧汇总

复制代码 代码如下:

路径: /libraries/joomla/html/editor.php

好了,就不多讲了,其实这只是一种建立表单的方法,如果你不喜欢,完全可以使用写表单元素,不过既然joomla提供了这些我们为什么不用呢?
下载自定义元素:
elements_jb51.rar

您可能感兴趣的文章:

<param name=”created” type=”calendar” label=”创建时间”
description=”时间显示” /> //生成日历时间
<param name=”catid” type=”category” default=”2″ label=”Category”
description=”文章分类列表” /> //得到单元列表
<param name=”catid” type=”category” section=”com_weblinks”
default=”0″ label=”Category” description=”其他组件分类” />
//其他组件单元列表
<param name=’m1′ type=’editors’ label=’编辑’ /> //编辑器选择列表
<param name=’m1′ type=’filelist’ label=’编辑’ directory=’/images’
hide_default=”1″ filter=”html”/> //文件列表
html表示显示扩展名为html
<param name=’m1′ type=’Folderlist’ label=’编辑’ directory=’/images’
hide_default=”1″ filter=””/> //文件夹列表
<param name=’m1′ type=’Hidden’/> //隐藏域
<param name=”file_name” type=”imagelist” directory=”/images/stories”
filter=”” hide_default=”1″ label=”Menu Image”
description=”图片列表列表” />
<param name=”list” type=”list” label=”select列表” description=”select
列表”>
<option value=””>未分类</option>
<option value=”0″>中国</option>
<option value=”1″>美国</option>
</param>
<param name=’m1′ type=’password’ label=’测试’ size=’20’/> //密码
<param name=”cache” type=”radio” default=”0″ label=”单选”
description=”单选按钮”> //单选
<option value=”0″>No</option>
<option value=”1″>Yes</option>
</param>
<param name=”sectionid” type=”section” default=”0″ label=”选择单元”
description=”单元” /> //单元选择
<param type=”spacer”/> //水平线
<param name=’m1′ type=’sql’ label=’测试’ query=”select id,title from
#__categories” key_field=’id’ value_field=’title’ />
//SQL生成列表
<param name=”robots” type=”text” size=”20″ default=”10″
label=”文本框” description=”文本框text” /> //文本框
<param name=”keywords” type=”textarea” rows=”5″ cols=”90″
label=”文本域” description=”文本域 textarea” /> //文本域无样式
<param name=”keywords” type=”editor” rows=”5″ cols=”90″
label=”文本域” description=”文本域 textarea” /> //文本域有样式
<param name=’m1′ type=’Timezones’ label=’测试’ default=’8′ />
//生成时区列表

参数说明:

class JElementCustom extends JElement{
var $_name = ‘Custom’;
function fetchElement($name, $value, &$node, $control_name) {
$html=<<<EOF
自定义
EOF;
return $html;
}
}

例子:

<?xml version=”1.0″ encoding=”utf-8″?>
<form>
<name>表单测试 </name>
<fieldset name=’details’/>
<params group=”html”
addpath=”/administrator/components/com_category/elements”>
<param name=’m1′ type=’Hidden’/>
</params>
</form>

调用Joomla系统带的编辑器:

复制代码 代码如下:

希望本文所述对大家基于joomla程序设计有所帮助。

这样一个表单就生成了,相对于直接写表单元素,这种方法更容易修改风格或者内容,修改只需要改xml文件即可,在joomla2.5版本中,基本上都是通过这种方式实现的,不过变化比较大,xml文件写法大不相同,通过xml是可以调用其他组件里面表单元素的.

函数: void display( string $name, string $html, string $width, string
$height, int $col, int $row, [boolean $buttons = true], [string $id =
null], [string $asset = null], [object $author = null], [array
$params = array()])

表单元素的这些类型在模版配置参数,模块参数都是可以使用的,特别是可以自己扩展表单元素的样式,你完全可以定义出其他样式类型,笔者定义了比较常用的几种但是内置没有提供的,比如数组转换列表,数组转换复选,无限分类等样式.这里的类型其实就是api的JElement类,里面的源文件可以参考libraries\joomla\html\parameter\element,这里自定义表单元素怎么写呢这里给个例子或者参考源文件就明白了,文件名custom.php,类型也就是custom了,调用方法<param
name=’custom’ type=’custom’ label=’自定义’ />

在模板文件default.php中

上边就是提供的一些生成元素,但是如何使用呢,我们首先建立一个form.xml,在组件的models文件夹内

类:JEditor

上边第二句就是赋值,把隐藏域赋值,相当于编辑里面取值,第三四句是把表单html输出到模版,details是元素名称数组名,生成的m1的name就是details[m1],接着就是form.php调用如下

复制代码 代码如下:

<form action=”index.php” method=”post” name=”adminForm”>
<fieldset class=”adminform”><legend>详情</legend>
<?php
echo $this->html;
?>
<?php echo JHTML::_( ‘form.token’ ); ?>
</fieldset>
</form>

$editor =& JFactory::getEditor();

复制代码 代码如下:

string $name 控件的名称,
(会出现在控件的name里)
string $html 文本区域的内容
string $width 该文本的面积的宽度
string $height 该文本的面积的高度
int $col 对textarea的列数
int $row 对textarea的行数
boolean $buttons 为true 时编辑器按钮会显示出来
string $id 控件的id值,如果不给id值,会显示控件的名称
(会出现在控件的id里)
string $asset 
object $author 
array $params 关联数组编辑器的参数。

您可能感兴趣的文章:

这里只有一个隐藏元素其实我们可以建立更多的元素,就是上边的那些生成元素类型,当然还可以自定义,这里的addpath就是自定义元素类型,位置就是在组建的elements文件夹内,上边的是内置的,笔者在这里定义了如下类型

复制代码 代码如下:

$form = new JParameter(”,JPATH_COMPONENT.DS.’models’.DS.’form.xml’);
$form->set(‘m1′,’默认值’);
$html=$form->render(‘details’, ‘html’); //details是元素名数组
$this->assignRef(‘html’,$html);

<?php
// 自定义显示
//
defined(‘_JEXEC’) or die(‘Restricted access’);

使用起来基本都有固定格式,在此不多说,这里主要说说xml在创建表单中的应用.表单的作用不言而喻,在模块配置里面有表单,组件里面也有表单,这里的配置里面的参数设置就是xml生成的表单,相对于通过直接建表单方便不少,这里通过编辑文章表单的使用过程来说,在使用之前,我们先来了解一下表单元素的类型,joomla提供了生成多种表单元素样式.