我正在使用Joomla 3.1,我正在使用模板黑客来覆盖mod_banners -
/mytemplate/html/mod_banners/default.php运行得很好。
但是,banner模块会调用该文件:
/components/com_banners/models/banners.php我似乎不能忽略它。我尝试将文件(和文件夹)移动到我的/mytemplate/html文件夹中,但不起作用。
我还尝试将以下代码放入我的横幅default.php文件中:
JModelLegacy::addIncludePath(JPATH_ROOT.'/templates/home/com_banners/models/', 'BannersModel');
$model = JModelLegacy::getInstance('Banners', 'BannersModel', array('ignore_request' => true));
$banners = $model->getItems();但这也不起作用。有没有办法在不更改核心文件的情况下覆盖/com_banner/model/banners.php中的查询?
我所要做的就是在不改变核心的情况下,为每个标语拉入描述。
提前感谢!
发布于 2013-05-10 19:34:28
在Joomla中覆盖模型的唯一方法是制作您自己的原始版本,并在模型首次访问之前通过系统插件加载(注册)它。对于你的用例来说,这太复杂了。
即使这不是一个好的实践,因为它破坏了MVC结构,所以我会从模板中获取数据。
$db = JFactory::getDbo();
$query = $db->getQuery(true);
$query->select('id, name, description')
->from('#__banners');
$db->setQuery($query);
$banners = $db->loadObjectList();现在你可以访问所有的横幅描述,fx。在循环中:
foreach ($banners as $banner) {
echo $banner->id, ': ', $banner->description;
}https://stackoverflow.com/questions/16477713
复制相似问题