是。我想将Category Blog组件的输出覆盖为2种不同的显示样式。
对于第一种风格,我复制并编辑了blog_item.php& blog.php在[mytemplate] / html文件夹中。然后我从我的类别博客后端的下拉列表中选择模板样式。这很有效。类别博客的显示按预期更改。
但是,如果我想创建另一种风格并在另一类博客中使用。我怎么办?以及如何命名我的文件(我尝试过blog_1.php,blog_item_1.php),但只看到我在后端的第一个样式显示。
我正在使用joomla 2.5。
请帮帮我。非常感谢你!
=============================================== ==================================
[增订] 我解决了这个问题。在这里我的解决方案:
然后它奏效了。我的类别博客都有自己的风格。
这可能不是很好的解决方案,因为我必须使用多个模板,但此时对我来说已经足够了。
谢谢你,stackoverflowers。
=============================================== ==================================
[更新2]
现在,有了多个模板样式,我可以只在一个模板中为我的类别博客组件创建无限样式。那要好得多。
答案 0 :(得分:1)
正如您所知,joomla不允许开发人员为其组件制作不同的样式。
我认为您必须在模板管理页面中列出由“类别博客组件”制作的所有菜单,并让用户在那里设置每个菜单样式。** 并在blog.php,检查模板设置,然后加载自定义样式...
**你必须开发一个自定义字段元素,列出所有“类别博客组件”菜单。
* 您可以使用此代码访问组件模板中的模板参数:
$app =& JFactory::getApplication();
$template = $app->getTemplate(true);
$paramsTemplate = $template->params;
$style = $paramsTemplate->get('style');
答案 1 :(得分:1)
您不需要使用多种样式。您需要的是使用备用布局和替代菜单布局。 对于模板的html / componentname / category文件夹中的备用菜单布局,请创建一个具有唯一名称集的新样式,类似于博客已在文章类别布局文件夹中提供类别列表的替代方式。还要为您创建的每个布局创建一个新的xml文件,并使用匹配的名称。
当您创建菜单项时,您现在将获得这些替代选项以及其他正常选择。只需选择你想要的那个。
答案 2 :(得分:1)
基于上面的学习,我的代码为/templates/mytheme/com_content/category/blog.php
然后在全局配置>文章经理选项>类别选择Blog作为覆盖/布局。
defined('_JEXEC') or die;
JHtml::addIncludePath(JPATH_COMPONENT.'/helpers');
$pageclass_sfx = trim($this->pageclass_sfx);
// so pick it on the page class in menu item
if (isset($pageclass_sfx) && $pageclass_sfx != '') {
echo $this->loadTemplate($pageclass_sfx);
} else {
echo $this->loadTemplate('default');
}
如果需要其他东西,我可以添加多个elseif,或者它会查找'blog_'。 $ this-> pageclass_sfx。 'PHP'。它始终是blog_,因为它编码到com_content中。旧博客我转到blog_default.php和blog_default_item.php