Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/joomla/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Templates Joomla 3以编程方式为组件设置默认模板_Templates_Joomla_Components - Fatal编程技术网

Templates Joomla 3以编程方式为组件设置默认模板

Templates Joomla 3以编程方式为组件设置默认模板,templates,joomla,components,Templates,Joomla,Components,是否可以通过编程方式为组件设置模板?除非您有真正有效的理由说明需要通过编程方式设置模板,否则您只需通过Joomla模板管理器即可: Joomla后端>扩展>模板管理器 如果打开所需的模板,可以将每个模板指定给不同的菜单项,当然,每个菜单项都将指定一个组件 这是最简单的方法。如果您希望在整个站点范围内或针对特定模板布局覆盖执行此操作,则这不是100%。我假设我第一次尝试这个答案,我会假设你会希望这个网站的范围内完成 用代码来完成。首先,注册所需的类: JLoader::register('

是否可以通过编程方式为组件设置模板?

除非您有真正有效的理由说明需要通过编程方式设置模板,否则您只需通过Joomla模板管理器即可:

Joomla后端>扩展>模板管理器

如果打开所需的模板,可以将每个模板指定给不同的菜单项,当然,每个菜单项都将指定一个组件


这是最简单的方法。

如果您希望在整个站点范围内或针对特定模板布局覆盖执行此操作,则这不是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);

祝你好运

Thx,但是有很多视图,只有较少的菜单项,所以这种方法更适合普通网站。为什么你建议使用Joomla模型?没有直接的方法吗?简短的回答是,当您通过后端GUI更改模板时,Joomla就是这样做的。使用像Joomla这样的框架的主要好处之一是利用核心中已经实现的功能。您可以手动滚动一个方法来手动更改当前和未来默认表的DB表,但是为什么代码已经存在!我保证执行这些自定义DB编辑所需的行数将远远大于4,以利用核心类。:)听起来像是一种能带来成功的方法。对于站点范围的使用,您在哪里实现类注册和模型对象?这个扩展完全免费