【问题标题】:Joomla 3: how to override K2 admin templates?Joomla 3:如何覆盖 K2 管理模板?
【发布时间】:2014-02-06 02:31:18
【问题描述】:

在 Joomla 3 中,我需要根据类别为 K2 文章指定不同的管理模板,以便能够指定不同的额外字段,并使内容贡献者更容易添加项目。

我以为我找到了完美的解决方案,但它是几年前为旧版本的 Joomla 编写的。我确实联系了作者,他承认几年前写过它,此后不再使用 Joomla 并且无法为我提供建议。

它与覆盖前端 k2 模板非常相似。这是描述它的文章:

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

但是,当我这样做并修改类别的管理模板时,默认值没有任何变化。我的想法是,这段代码中修改了文件 administrator/components/com_k2/views/item/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 的自定义管理模板时,我仍然一无所获。它继续使用默认的。

【问题讨论】:

    标签: php templates joomla joomla-k2


    【解决方案1】:

    您能否不只是创建不同的额外字段组,然后将正确的组分配到正确的类别?

    如果您修改 k2 核心文件,那么任何更改都将在更新时被擦除,而新的一键式更新很可能会发生这种情况。

    您应该能够使用标准模板覆盖覆盖标准管理视图,即 复制

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

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

    如果您希望它们对于不同的类别有所不同,那么为什么不创建一个前端登录,然后为不同的类别使用不同的模板并以标准方式覆盖它们。

    【讨论】:

      猜你喜欢
      • 2014-11-27
      • 2012-12-23
      • 2014-12-09
      • 1970-01-01
      • 2014-05-13
      • 1970-01-01
      • 2016-05-10
      • 2020-07-26
      • 2013-01-23
      相关资源
      最近更新 更多