我有一个使用Joomla 3和YooTheme Zoo CCK构建的网站。
我在/media/zoo/applications
文件夹中创建了一个自定义应用程序。
我的应用程序有两种类型,产品和包。
我的包被分为几类,每个类别都有一个预告图片集。
我想使用“类别”前贴片广告图片作为该类别中每个“项目”的前贴片广告形象。
我知道应该在哪里对我的自定义应用程序的源代码进行更改:/media/zoo/applications/my_custom_app/templates/default/renderer/item/teaser.php
但我不确定要添加的正确PHP行,以便从该类别中提取预告片图像。
我已尝试<?php echo $this->category->getImage('content.image'); ?>
,但似乎$this->category
在此上下文中不存在。
这是我当前的teaser.php的粘贴框:http://pastebin.com/Pj7UZ4Ye
答案 0 :(得分:1)
我可以给你一个部分答案,我在之前建立的网站上做了什么。我想在其中的所有项目上显示该类别的图像。我没有尝试更改项目前贴片图片,但在现有元素类别中包含图像。默认情况下,category元素(/ media / zoo / elements / itemcategory)可以将类别名称显示为链接或仅显示文本。所以我编辑了/media/zoo/elements/itemcategory/itemcategory.php第40行+
public function render($params = array()) {
$params = $this->app->data->create($params);
$values = array();
foreach ($this->_item->getRelatedCategories(true) as $category) {
+++ $image = $category->getImage('content.teaser_image');
--- $values[] = $params->get('linked') ? '<a href="'.$this->app->route->category($category).'">'.$category->name.'</a>' : $category->name;
+++ $values[] = $params->get('linked') ? '<a href="'.$this->app->route->category($category).'"><img src="'.$image['src'].'" title="'.$category->name.'" alt="'.$category->name.'" width="200px" height="200px" />'.$category->name.'</a>' : $category->name;
}
return $this->app->element->applySeparators($params->get('separated_by'), $values);
}
所以你只需删除或注释掉以...开头的内容,并添加以+++开头的内容 您始终可以覆盖php文件,以便在通过从
复制文件来安装新的Zoo版本时不会更新它/media/zoo/elements/itemcategory/itemcategory.php
到
/media/zoo/applications/products???/elements/itemcategory/itemcategory.php
因此,您现在可以编辑应用程序完整布局并删除图像并将类别CORE元素添加到相同位置:P
如果您需要更多帮助,请与我们联系!
答案 1 :(得分:0)
如果您想要一个简单的解决方案来在项目级别上显示类别信息,我希望您能看一下我的Zoo CCK的自定义元素。
使用此元素,您可以将类别图像和描述放在任何项目中。 您可以在此处阅读有关元素的更多信息: http://www.crea-aalborg.dk/kompetencer/web/joomla-extensions/zoo-elements/category-description.html