2

是的。我想将类别博客组件的输出覆盖为 2 种不同的显示样式。

对于第一种样式,我在 [mytemplate]/html 文件夹中复制并编辑了 blog_item.php 和 blog.php。然后我从类别博客后端的下拉列表中选择模板样式。那行得通。类别博客的显示变化如我所料。

但是如果我想创建另一种风格并在另一个类别的博客中使用。我该怎么办?以及如何命名我的文件(我尝试过 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] 指定为其模板样式。

然后它起作用了。我的两个类别博客都有自己的风格。

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

谢谢你,stackoverflowers。

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

[更新 2]

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

4

3 回答 3

1

您可能知道,joomla 不允许开发人员为其组件制作不同的样式。

我认为您必须在模板管理页面中列出由“类别博客组件”制作的所有菜单,并让用户在那里设置每个菜单样式。**和 blog.php,检查模板设置然后加载自定义样式...


** 您必须开发一个自定义字段元素,其中列出所有“类别博客组件”菜单。

*您可以使用此代码访问组件模板中的模板参数:

$app        =& JFactory::getApplication();
$template   = $app->getTemplate(true);
$paramsTemplate = $template->params;
$style = $paramsTemplate->get('style');
于 2012-12-05T10:53:01.860 回答
1

您不需要使用多种样式。您需要的是使用替代布局和替代菜单布局。对于模板的 html/componentname/category 文件夹中的替代菜单布局,请使用一组独特的名称创建新样式,类似于 blog 已经在文章类别布局文件夹中提供替代类别列表的方式。还要为您制作的每个布局创建一个新的 xml 文件,并使用匹配的名称。

当您创建菜单项时,您现在将获得这些选项以及其他正常选择。只需选择您想要的。

于 2012-12-08T19:38:23.640 回答
1

基于上面的学习,这里是我的 /templates/mytheme/com_content/category/blog.php 代码

然后在全局配置 > 文章管理器选项 > 类别中选择博客作为覆盖/布局。

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 的旧博客

于 2014-03-03T14:50:04.817 回答