您的位置:首页 > 其它

Joomla 关于XML参数的配置!

2010-01-15 19:05 246 查看
Joomla中参数的配置有的是写在Xml当中:

如下:





--------------------------------------------------------------------------------------------------------------------------

<param name="showMerchantNew" type="list" default="5" label="showMerchantNew" description="showMerchantNewCountDes">

<option value="5">five</option>

<option value="10">ten</option>

</param>

--------------------------------------------------------------------------------------------------------------------------





这样的后果就是Joomla直接读取Xml中param参数, type类型是显示的方式!



Joomla自身带有较多的类型,如:list, radio,text,menu 等等

类型文件在libraries/joomla/html/parameter/element 下面





读取文件时根据xml文件中type类型来读取 类型文件!

如type = "list" 那么他读取的就是libraries/joomla/html/parameter/element/list.php 这个文件





因为我要扩展一个类型文件,做到配置参数按自己的数据来显示!

所以拷贝一个动态读取数据的类型文件,如menu.php



修改文件名如:test.php

文件名内的ClassName一样修改,默认是JElement开头(有地方匹配的) 所以ClassName为JElementTest



里面的fetchElement方法不改变,修改fetchElement方法的业务逻辑,调用自己需要的数据就OK了







-----------------------------------------------------------------------------------------------------------------------------------



function fetchElement($name, $value, &$node, $control_name)

{

require_once( JPATH_ADMINISTRATOR.DS.'components'.DS.'com_merchantonline'.DS.'helpers'.DS.'helper.php' );

$merchantCommendTypes = MerchantOnlineHelper::getMerchantCommendType();





foreach ($merchantCommendTypes as $merchantcommendtype) {

$options[] = JHTML::_('select.option

', $merchantcommendtype['i

d'], $merchantcommendtype['rec_name']);

}

//array_unshift($options, JHTML::_('select.option', '', '- '.JText::_('Select Menu').' -'));



return JHTML::_('select.genericlist', $options, ''.$control_name.'['.$name.']', 'class="inputbox"', 'value', 'text', $value, $control_name.$name);

}





-------------------------------------------------------------------------------------------------------------------------------------------





得到$merchantCommendTypes 变量之后将数据放入JHTML::_('select.option', $merchantcommendtype['id'], $merchantcommendtype['rec_name']);当中...



真正要修改的仅仅是获得数据的方式,照旧OK
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: