现在的位置: 首页 > 综合 > 正文

Joomla 关于XML参数的配置!

2013年10月04日 ⁄ 综合 ⁄ 共 1975字 ⁄ 字号 评论关闭

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

 

 

抱歉!评论已关闭.