扩展Joomla 2.5横幅组件
我真的希望有人能帮助我 我需要能够服务的类别,这是依赖于会话变量横幅-但找不到一个组件,这样做。因此,我想扩展Joomla Banner组件,以便根据包含类别路径的会话变量选择横幅 正确存储了正确的会话变量 为此,我在banner模块扩展Joomla 2.5横幅组件,joomla,Joomla,我真的希望有人能帮助我 我需要能够服务的类别,这是依赖于会话变量横幅-但找不到一个组件,这样做。因此,我想扩展Joomla Banner组件,以便根据包含类别路径的会话变量选择横幅 正确存储了正确的会话变量 为此,我在banner模块.xml中添加了一个选项,以允许会话变量和会话变量的名称。这与其他模块参数一起正确存储在模块表的params字段中 然后我开始了新的工作 组件>横幅>com_横幅>模型>banner.php 通过在getListQuery中添加两行代码,将SQL组合在一起。它们是:
.xml
中添加了一个选项,以允许会话变量和会话变量的名称。这与其他模块参数一起正确存储在模块表的params
字段中
然后我开始了新的工作
组件>横幅>com_横幅>模型>banner.php
通过在getListQuery
中添加两行代码,将SQL
组合在一起。它们是:
$sess_vars = $this->getState('filter.sess_vars');
$sess_vars_name = $this->getState('filter.sess_vars_name');
但这两个变量都不包含任何内容,即使组件已有的变量可以很好地检索。毫无疑问,我也需要在其他地方做些改变,但就是不知道该怎么做
任何帮助都将不胜感激
com\u mybanner
的东西。除了文件夹名称和入口点文件(即banners.php
变成mybanners.php
),您还需要将组件banners.xml
更新为mybanners.php
(您需要复制和修改前端
/components/com_banner/
和/administrator/components/mybanner.php
)/modules/mod_banners/
,/modules/mod_banners/mod_banners.php
和/modules/mod_banners/mod_banners.xml
。在每个位置将mod_banners
更改为mod mybanners
状态
通常在实例化JModel时填充,然而,在这种情况下,组件实际上是关于管理横幅和录制点击。显示由mod_banner
处理。因此,您需要向mod_mybanner.php
添加一些代码,以使用您想要的会话变量通常,当查询模型状态时,您将通过收集变量并将其添加到对象的状态,例如受保护的函数populateState()
{
$jApp=JFactory::getApplication('site');
//从请求加载状态。
$pk=$jApp->input->get('id',0,'INT');
$this->setState('myItem.id',$pk);
$offset=$jApp->input->get('limitstart',0,'INT');
$this->setState('list.offset',$offset);
//加载参数。
$params=$app->getParams();
$this->setState('params',$params);
//获取用户权限
$user=JFactory::getUser();
如果(!$user->authorize('core.edit.state','com\u mycomponent')和(!$user->authorize('core.edit','com\u mycomponent'))
{
$this->setState('filter.published',1);
$this->setState('filter.archived',2);
}
}
当使用getState
方法读取状态时,将调用populateState()
方法
这意味着您必须更改/components/com_banner/models/banner.php
的副本,以将变量捕获到与上面示例类似的对象状态
从这里开始,所有的代码都是你自己的
您可以在上的中找到所有这些信息
com\u mybanners
。除了文件夹名称和入口点文件(即banners.php
变成mybanners.php
),您还需要将组件banners.xml
更新为mybanners.php
(您需要复制和修改前端
/components/com_banner/
和/administrator/components/mybanner.php
)/modules/mod_banners/
,/modules/mod_banners/mod_banners.php
和/modules/mod_banners/mod_banners.xml
。在每个位置将mod_banners
更改为mod mybanners
状态
通常在实例化JModel时填充,然而,在这种情况下,组件实际上是关于管理横幅和录制点击。显示由mod_banner
处理。因此,您需要向mod_mybanner.php
添加一些代码,以使用您想要的会话变量通常,当查询模型状态时,您将通过收集变量并将其添加到对象的状态,例如受保护的函数populateState()
{
$jApp=JFactory::getApplication('site');
//从请求加载状态。
$pk=$jApp->input->get('id',0,'INT');
$this->setState('myItem.id',$pk);
$offset=$jApp->input->get('limitstart',0,'INT');
$this->setState('list.offset',$offset);
//加载参数。
$params=$app->getParams();
$this->setState('params',$params);
//获取用户权限
$user=JFactory::getUser();
如果(!$user->autho