【发布时间】:2015-10-13 10:49:02
【问题描述】:
我现在正在处理类别覆盖 (com_content/category/) 并尝试在其类别下直接显示每个类别的项目
像这样:
maincat (com_content/category/default_articles.php)
-cat 1 (com_content/category/default_children)
--undercat1 1 (com_content/category/blog_item.php)
--undercat1 2
所以我需要将 blog_item.php 中的代码插入到 default_articles 或 default_children 中
这个
<div class="test">
<?php echo $this->item->event->beforeDisplayContent; ?>
<?php echo $this->item->introtext; ?>
</div>
需要进入 default_articles 但我得到一个属性错误,还尝试使用不同的变量名 - 相同的错误。 错误:
注意:未定义属性:D:\xampp\htdocs\joomla\templates\protostar\html\com_content\category\default_children.php 第 66 行中的 stdClass::$event
注意:尝试在第 66 行获取 D:\xampp\htdocs\joomla\templates\protostar\html\com_content\category\default_children.php 中非对象的属性
注意:未定义的属性:D:\xampp\htdocs\joomla\templates\protostar\html\com_content\category\default_children.php 中的第 66 行中的 stdClass::$introtext
default_children.php 中的第 66 行:
<?php echo $this->item->event->beforeDisplayContent; ?> <?php echo $this->item->introtext; ?>
(此行最初来自 com_content/category/blog_item.php,我希望它在 default_children.php 中)
default_children.php
<?php
/**
* @package Joomla.Site
* @subpackage com_content
*
* @copyright Copyright (C) 2005 - 2015 Open Source Matters, Inc. All rights reserved.
* @license GNU General Public License version 2 or later; see LICENSE.txt
*/
defined('_JEXEC') or die;
JHtml::_('bootstrap.tooltip');
$lang = JFactory::getLanguage();
$class = ' class="first"';
?>
<?php if (count($this->children[$this->category->id]) > 0) : ?>
<?php foreach ($this->children[$this->category->id] as $id => $child) : ?>
<?php
if ($this->params->get('show_empty_categories') || $child->getNumItems(true) || count($child->getChildren())) :
if (!isset($this->children[$this->category->id][$id + 1])) :
$class = ' class="last"';
endif;
?>
<div<?php echo $class; ?>>
<?php $class = ''; ?>
<?php if ($lang->isRTL()) : ?>
<h3 class="page-header item-title">
<?php if ( $this->params->get('show_cat_num_articles', 1)) : ?>
<span class="badge badge-info tip hasTooltip" title="<?php echo JHtml::tooltipText('COM_CONTENT_NUM_ITEMS'); ?>">
<?php echo $child->getNumItems(true); ?>
</span>
<?php endif; ?>
<a href="<?php echo JRoute::_(ContentHelperRoute::getCategoryRoute($child->id));?>">
<?php echo $this->escape($child->title); ?></a>
<?php if (count($child->getChildren()) > 0 && $this->maxLevel > 1) : ?>
<a href="#category-<?php echo $child->id;?>" data-toggle="collapse" data-toggle="button" class="btn btn-mini pull-right"><span class="icon-plus"></span></a>
<?php endif;?>
</h3>
<?php else : ?>
<h3 class="page-header item-title"><a href="<?php echo JRoute::_(ContentHelperRoute::getCategoryRoute($child->id));?>">
<?php echo $this->escape($child->title); ?></a>
<?php if ( $this->params->get('show_cat_num_articles', 1)) : ?>
<span class="badge badge-info tip hasTooltip" title="<?php echo JHtml::tooltipText('COM_CONTENT_NUM_ITEMS'); ?>">
<?php echo $child->getNumItems(true); ?>
</span>
<?php endif; ?>
<?php if (count($child->getChildren()) > 0 && $this->maxLevel > 1) : ?>
<a href="#category-<?php echo $child->id;?>" data-toggle="collapse" data-toggle="button" class="btn btn-mini pull-right"><span class="icon-plus"></span></a>
<?php endif;?>
<?php endif;?>
</h3>
<?php if ($this->params->get('show_subcat_desc') == 1) :?>
<?php if ($child->description) : ?>
<div class="category-desc">
<?php echo JHtml::_('content.prepare', $child->description, '', 'com_content.category'); ?>
</div>
<?php endif; ?>
<?php endif; ?>
<div class="test"> <?php echo var_dump($this->item) ?> </div>
<?php echo $this->item->event->beforeDisplayContent; ?> <?php echo $this->item->introtext; ?>
<?php if (count($child->getChildren()) > 0 && $this->maxLevel > 1) :?>
<div class="collapse fade" id="category-<?php echo $child->id;?>">
<?php
$this->children[$child->id] = $child->getChildren();
$this->category = $child;
$this->maxLevel--;
echo $this->loadTemplate('children');
$this->category = $child->getParent();
$this->maxLevel++;
?>
</div>
<?php endif; ?>
</div>
<?php endif; ?>
<?php endforeach; ?>
'
我对 PHP 还不是很了解——也许你们中的一些人可以给我一个解决方案的提示?
谢谢你
【问题讨论】:
-
您能否将消息的确切文本和确切的代码放入您的问题中?它不可能是那里,因为您缺少打开的 php 标记。
-
尝试添加
var_dump($this->item),看看属性名称是什么。 -
"object(stdClass)#290 (1) { ["params"]=> NULL }" 来自 var_dump($this->item)
-
这就是问题所在。它是一个数组,没有任何东西叫
introtext。在核心布局中如何引用该项目?看看是不是在$this里面。
标签: php joomla overriding