Joomla 3以编程方式为组件设置默认模板
Posted
技术标签:
【中文标题】Joomla 3以编程方式为组件设置默认模板【英文标题】:Joomla 3 set default template programmatically for component 【发布时间】:2014-09-22 11:53:03 【问题描述】:是否可以通过编程方式为组件设置模板?
【问题讨论】:
regularlabs.com/extensions/advancedtemplatemanager 这个扩展完全免费 【参考方案1】:除非您有一些真正正当的理由需要以编程方式完成,否则您可以通过 Joomla 模板管理器简单地完成:
Joomla 后端 >> 扩展 >> 模板管理器
如果您打开所需的模板,您可以将每个模板分配给不同的菜单项,当然每个菜单项都会分配一个组件。
这是最简单的方法。
【讨论】:
谢谢,但是浏览量很多,而且菜单项比较少,所以这种方式比较适合普通网站。【参考方案2】:如果您想在整个站点范围内或特定模板布局覆盖,则不是 100%。我假设我第一次尝试这个答案时,我会假设您希望在整个站点范围内完成此操作。
用代码来完成。首先,注册所需的类:
JLoader::register('TemplatesTableStyle', JPATH_ROOT . '/administrator/components/com_templates/tables/style.php');
JLoader::register('TemplatesModelStyle', JPATH_ROOT . '/administrator/components/com_templates/models/style.php');
其次,获取模型对象并使用Joomla的核心设置一个新的默认模板:
$model = JModel::getInstance('style', 'TemplatesModel');
$model->setHome($template_id);
祝你好运!
【讨论】:
你为什么建议使用 Joomla 模型?没有直接的方法吗? 简短的回答是因为当您通过后端 GUI 更改模板时,Joomla 就是这样做的。使用像 Joomla 这样的框架的主要好处之一是利用核心中已经实现的大量功能。您可以手动滚动一种方法来手动更改当前和未来默认表的数据库表,但是为什么当代码已经存在时!而且我保证执行这些自定义数据库编辑所需的行将远远大于 4 以利用核心类。 :) 听起来像是一种方法,可以带来成功。您在哪里实现类注册和模型对象,以供站点范围使用?以上是关于Joomla 3以编程方式为组件设置默认模板的主要内容,如果未能解决你的问题,请参考以下文章
有没有办法从我的 Joomla 组件中以编程方式添加菜单项?