【发布时间】:2011-12-22 08:27:08
【问题描述】:
所以我想出了如何破解 k2 以允许基于项目类别的多个后端模板。它实际上非常简单,但需要对 k2 核心进行 hack。
在管理员/组件/com_k2/views/item/view.html.php 的第 305 行,如下:
$this->assignRef('form', $form);
我补充说:
jimport('joomla.filesystem.folder');
$componentPath = JPATH_SITE.DS.'components'.DS.'com_k2'.DS.'templates';
$componentFolders = JFolder::folders($componentPath);
$db =& JFactory::getDBO();
$query = "SELECT template FROM #__templates_menu WHERE client_id = 0 AND menuid = 0";
$db->setQuery($query);
$defaultemplate = $db->loadResult();
if (JFolder::exists(JPATH_SITE.DS.'templates'.DS.$defaultemplate.DS.'html'.DS.'com_k2'.DS.'templates'.DS.'admin'.DS.$item->catid)) {
$this->_addPath('template', JPATH_SITE.DS.'templates'.DS.$defaultemplate.DS.'html'.DS.'com_k2'.DS.'templates'.DS.'admin'.DS.$item->catid);
}
这使我能够复制 /administrator/components/com_k2/views/item/tmpl 的文件夹和内容,将其移动到 templates/MY_TEMPLATE/html/com_k2/admin 并使用我想要的类别 ID 重命名新文件夹覆盖。
这很好用,我可以按类别完全自定义我的后端 K2 模板,让客户的一切变得更容易,并使 K2 更像一个完整的 CCK。
所以我想做的是创建一个可安装的插件,基本上在呈现管理模板之前插入此代码。不知道该怎么做……有什么想法吗?
谢谢!
【问题讨论】: