从前端拉取模板参数的方法很少,但没有一种方法包含实际的模板ID,
我打印了JFactory模板对象 http://prntscr.com/1dpewc
print_r($app->getTemplate('template'));
并且只是想确保这是在模板index.php文件中获取模板ID的唯一方法。
$app = JFactory::getApplication();
$getTemplateId = $app->getTemplate('template')->id;
其他一切都失败了,$ this-> id,$ app-> getTemplate() - > id等。
感谢任何帮助。谢谢。
答案 0 :(得分:6)
我认为,这里有一个命名问题。
您拥有的代码:
$app = JFactory::getApplication();
$getTemplateId = $app->getTemplate('template')->id;
- 实际上是为您提供模板样式 id
。 (是的,这是获得这个的最快捷方式。)
正如Riccardo所指出的,模板ID实际上只在扩展管理器表(#__extensions
)中。
考虑到你的应用程序(即使用它来创建一个独特的Javascript cookie),模板样式id可能就是你想要的,因为它更具体的是你需要访问数据库来检索的模板ID。
或者,如果您只想要模板的标识符,则可以使用:
$getTemplateName = $app->getTemplate('template')->template;
这将为您提供模板基本名称(例如beez_20
),这是唯一的,因为它也是存储模板的目录名称。
答案 1 :(得分:1)
这将选择模板样式Id:
$db->setQuery( 'SELECT id,template FROM #__template_styles WHERE client_id=0 AND home=1');
其中template将是模板的唯一名称,例如您为其分配$ tname:
现在,您将选择实际模板以获取其ID:
SELECT id FROM #__extensions where `type`='template' and `element`= '$tname'
请解除我们的好奇心并告诉我们您为何需要模板ID。