2014-01-16 57 views
2

在Joomla 3中,我需要爲基於類別的K2文章指定不同的管理模板,以便能夠指定不同的額外字段並使內容貢獻者更容易添加項目。Joomla 3:如何覆蓋K2管理模板?

我以爲我找到了完美的解決方案,但它是幾年前爲Joomla的舊版本寫的。我確實聯繫了作者,他承認幾年前寫了這篇文章,從此停止使用Joomla,但無法爲我提供建議。

它與覆蓋前端k2模板非常相似。下面是描述它的文章:

http://getk2.org/documentation/tips-a-tricks/221-custom-admin-templates-and-calling-specific-extra-field-data

但是我做到這一點,修改類別的管理模板時,沒有從默認的變化。我的想法是,在東西這個代碼,修改文件管理員/組件/ com_k2 /視圖/項目/ view.html.php不與Joomla V.3兼容:

//Look for specific admin template file 
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); 
} 

了,我知道有沒有我的數據庫中的名稱爲「templates_menu」的表。立即拋出一個錯誤。我相信它應該是template_styles「,並且最有可能的列應該是client_id和id。進行這些更改至少消除了錯誤

此外,我相信」if「語句中的路徑不正確。 「不需要目錄。

然而,即使做了這些改變之後,我似乎並沒有在我的新模板被拉動管理員側。

我希望一個Joomla/PHP高手(這我不是)可以在這裏權衡,我可以完全錯誤的關於路徑和表名稱的假設

編輯:在進一步研究時,我決定繼續並創建原始海報代碼中指示的表格。我現在在我的數據庫中有一個名爲e758z_templates_menu的表格。

但是,當試圖讓Joomla使用連接到類別ID的自定義管理模板時,我仍然沒有得到任何東西。它繼續使用默認的一個。

回答

0

你能不能簡單地創建不同的額外歸檔組,然後將正確的歸入正確的類別?

如果您修改了k2核心文件,那麼任何更改都將被更新擦除,而更新會隨着新的1次點擊更新而消失。

你應該能夠與標準模板覆蓋越過標準的管理視圖,即 副本

/administrator/components/com_k2/views/category/default.php

/administrator/templates/YOUR_ADMIN_TEMPLATE/html/com_k2/category/default.php

如果你想讓它們針對不同的類別有所不同,那你爲什麼不創建一個前端登錄,然後使用diffe租用不同類別的模板並以標準方式覆蓋它們。