Joomla:多次覆盖类别博客输出?

时间:2012-12-05 03:09:45

标签: joomla components override

是。我想将Category Blog组件的输出覆盖为2种不同的显示样式。

对于第一种风格,我复制并编辑了blog_item.php& blog.php在[mytemplate] / html文件夹中。然后我从我的类别博客后端的下拉列表中选择模板样式。这很有效。类别博客的显示按预期更改。

但是,如果我想创建另一种风格并在另一类博客中使用。我怎么办?以及如何命名我的文件(我尝试过blog_1.php,blog_item_1.php),但只看到我在后端的第一个样式显示。

我正在使用joomla 2.5。

请帮帮我。非常感谢你!

=============================================== ==================================

[增订] 我解决了这个问题。在这里我的解决方案:

  1. 将我的模板克隆到[my_template_2]
  2. 转到[my_template_2] / html / com_content / category,然后根据需要编辑blog.php,blog_item.php。
  3. 转到后端,在我的类别博客menuitem中,我将[my_template_2]指定为其模板样式。
  4. 然后它奏效了。我的类别博客都有自己的风格。

    这可能不是很好的解决方案,因为我必须使用多个模板,但此时对我来说已经足够了。

    谢谢你,stackoverflowers。

    =============================================== ==================================

    [更新2]

    现在,有了多个模板样式,我可以只在一个模板中为我的类别博客组件创建无限样式。那要好得多。

3 个答案:

答案 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

相关问题