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

   2015-11-09 0
核心提示:xml在joomla中应用广泛,从安装文件配置到模版,模块,组件,插件中都有应用
使用起来基本都有固定格式,在此不多说,这里主要说说xml在创建表单中的应用.表单的作用不言而喻,在模块配置里面有表单,组件里面也有表单,这里的配置里面的参数设置就是xml生成的表单,相对于通过直接建表单方便不少,这里通过编辑文章表单的使用过程来说,在使用之前,我们先来了解一下表单元素的类型,joomla提供了生成多种表单元素样式.
复制代码 代码如下:

<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' /> //生成时区列表

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

<?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>

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

<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

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

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

上边第二句就是赋值,把隐藏域赋值,相当于编辑里面取值,第三四句是把表单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>

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

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

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

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

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

免责声明:本文仅代表作者个人观点,与乐学笔记(本网)无关。其原创性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容、文字的真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
    本网站有部分内容均转载自其它媒体,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责,若因作品内容、知识产权、版权和其他问题,请及时提供相关证明等材料并与我们留言联系,本网站将在规定时间内给予删除等相关处理.

  • 使用R语言和XML包抓取网页数据-Scraping data f
    In the last years a lot of data has been released publicly in different formats, but sometimes the data we're interested in are still inside the HTML of a web page: let's see how to get those data. One of the existing packages for doing th
    02-12
  • ruby学习系列--解析网络XML ruby入门
    ruby学习系列--解析网络XML ruby入门
    网络XML地址:http://api.search.yahoo.com/WebSearchService/V1/webSearch?appid=YahooDemoquery=madonnaresults=2内容如下:  解析XML代码:require 'net/http'                    #处理超文本传输协议HTTP的库          
    02-09
  • VB操作XML
    VB操作XML
    XSL(可扩展样式表语言)是对CSS的一种扩展,功能比CSS强大得多。XML链接是在HTML链接的功能之上加以扩展,可以支持更为复杂的链接,通过XML链接,不仅可以在XML文件之间建立链接,还可以建立其他类型数据之间的链接,其规范分为三个部分:XLink语言,XPointe
    02-09
  • Python操作lxml库实战之Xpath篇
    Python操作lxml库实战之Xpath篇
    目录​一、Xpath概述1、Xpath简介2、 Xpath的安装二、Xpath的常用规则1、路径查找2、节点查找3、未知节点4、获取节点中的文本5、选取多个路径总结​一、Xpath概述1、Xpath简介Xpath(XML Path Language) 是一门在 XML 文档中查找信息的语言,可以用来在XML
  • 使用js获取小程序中wxml的值————呱呱二号
    一、输入框类型的值  使用事件对象  e.detail.value 二、html5标签属性data-*  使用e.currentTarget.dataset 三、页面加载时,onLoad函数中获取其他页面传过来的参数  使用 options
    02-09
  • 02小程序的WXML 和  事件
    02小程序的WXML 和 事件
    WXML语法概述:WXML(WeiXin Markup Language)是框架设计的一套标签语言,结合基础组件、事件系统,可以构建出页面的结构。微信官方教程如下:https://developers.weixin.qq.com/miniprogram/dev/framework/view/wxml/特点:布局的方式跟HTML是一模一样的。
    02-09
  • Taro -- 微信小程序wxParse达到html转换wxml
    Taro -- 微信小程序wxParse达到html转换wxml
    Taro微信小程序可以用wxParse来达到html转换wxml的效果:https://github.com/NervJS/taro-components-test/blob/master/src/pages/wxParse/wxParse.jsimport Taro, { Component } from '@tarojs/taro'import { View, Text, Image, Button } from '@tarojs/com
    02-09
  • Delphi操作XML(一) delphi读取xml文件
    原来自己是个一个菜鸟。 Delphi操作XMl,只要使用 NativeXml。我是用的版本是4.02。NativeXML的使用方法比较简单,但是功能很强大。XE2的话,要在simdesign.inc后面加上:             // Delphi XE2 / 16            {$ifdef VER230}
    02-09
  • delphi NativeXml的中文支持 乱码
    一般XML的编码格式设置成UTF8比较通用,下面演示使用UTF8编码方式存储和处理包含中文的XML字符串(文件)。1.设置启用内置的widestring支持NativeXml内部使用ANSI string和UTF8编码的string两种字符串类型。如果要让NativeXml能够解析widestring字符串的话,
    02-09
  • NativeXml: A native Delphi XML parser and wr
    http://www.simdesign.nl/xml.htmlThis software component contains a small-footprint Object Pascal (Delphi) XML implementation that allows to read and write XML documents. You basically only need one unit and you can simply add it to the "use
    02-09
点击排行