Итак, я разобрался, как взломать k2, чтобы использовать несколько шаблонов бэкэнда в зависимости от категории предметов. На самом деле это довольно просто, но требует взлома ядра k2.
В администратор / компоненты / 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, перемещать его в шаблоны / MY_TEMPLATE / html / com_k2 / admin и переименовывать новую папку с нужным идентификатором категории переопределить.
Это прекрасно работает, и я могу полностью настраивать свои внутренние шаблоны K2 по категориям, делая все намного проще для клиентов и делая K2 намного более похожим на полный CCK.
Итак, я хочу создать устанавливаемый плагин, который в основном вставляет этот код непосредственно перед отображением шаблона администратора. Не знаете, как это сделать, хотя ... есть идеи?
Спасибо!