[英]Hoping to create Joomla plugin to allow for custom admin templates in K2
因此,我已經找到了如何根據項目類別對k2進行破解以允許使用多個后端模板。 它實際上非常簡單,但是需要在k2內核中進行破解。
在第305行的administrator / components / com_k2 / views / item / view.html.php中,如下所示:
$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。
所以我想做的是創建一個可安裝的插件,該插件基本上在呈現管理模板之前插入此代碼。 不確定如何解決這個問題...有什么想法嗎?
謝謝!
這應該很簡單:
另外,Joomla在/plugins/user/example.php
有一個示例插件(這不是您想要的插件,而是一個很好的起點)。 您應該創建在onAfterDispatch
或onAfterRender
上觸發的系統插件,您可能需要處理一些事件才能使其正確執行...
這是草稿:
<?php
// no direct access
defined( '_JEXEC' ) or die( 'Restricted access' );
jimport( 'joomla.plugin.plugin' );
jimport('joomla.filesystem.folder');
/**
* K2 Template Overload Plug-in
*
* @package Joomla
* @subpackage System
*/
class plgSystemK2template extends JPlugin
{
function plgSystemCache(& $subject, $config)
{
parent::__construct($subject, $config);
}
public function onAfterDispatch()
{
// WHAT IS THE PURPOSE OF THESE 2 VARS??
$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);
}
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.