您好我正在尝试将文章newsflash转换为表格中的链接列表。 我通过注释删除介绍文本,以便它只显示文章标题,并更改tmpl文件。
这是一个名为links的php文件。我从modules / mod_article_news复制了vertical.php,然后把这个信息改为。
<?php
/**
* @package Joomla.Site
* @subpackage mod_articles_news
* @copyright Copyright (C) 2005 - 2014 Open Source Matters, Inc. All rights reserved.
* @license GNU General Public License version 2 or later; see LICENSE.txt
*/
// no direct access
defined('_JEXEC') or die;
echo '<div class="newsflash-vert">';
for ($i = 0, $n = count($list); $i < $n; $i ++) {
$item = $list[$i];
if ($i==0){
echo "<table>";
}
if ($i & 1){
//odd
}else{
//even
echo "<tr>";
}
echo "<td>";
echo '<div class="newsflash-item">';
require JModuleHelper::getLayoutPath('mod_articles_news', '_item_links');
if ($n > 1 && (($i < $n - 1) || $params->get('showLastSeparator'))) {
echo '<span class="article-separator"> </span>';
}
echo '</div>';
echo "</td>";
if ($i & 1){
//odd
}else{
if ($i == $n){
echo "</tr>";
}
}
if ($i == $n){
//end
echo "</table>";
}
}
echo "</div>";
我还复制了_item.php并将其重命名为_item_links并拥有此php代码:
<?php
/**
* @package Joomla.Site
* @subpackage mod_articles_news
* @copyright Copyright (C) 2005 - 2014 Open Source Matters, Inc. All rights reserved.
* @license GNU General Public License version 2 or later; see LICENSE.txt
*/
// no direct access
defined('_JEXEC') or die;
$item_heading = $params->get('item_heading', 'h4');
?>
<?php if ($params->get('item_title')) : ?>
<<?php echo $item_heading; ?> class="newsflash-title<?php echo $params->get('moduleclass_sfx'); ?>">
<?php if ($params->get('link_titles') && $item->link != '') : ?>
<a href="<?php echo $item->link;?>">
<?php echo $item->title;?></a>
<?php else : ?>
<?php echo $item->title; ?>
<?php endif; ?>
</<?php echo $item_heading; ?>>
<?php endif; ?>
<?php if (!$params->get('intro_only')) :
echo $item->afterDisplayTitle;
endif; ?>
<?php echo $item->beforeDisplayContent; ?>
<?php //echo $item->introtext; ?>
<?php if (isset($item->link) && $item->readmore != 0 && $params->get('readmore')) :
echo '<a class="readmore" href="'.$item->link.'">'.$item->linkText.'</a>';
endif; ?>
然后我会用css让它看起来更漂亮,但我在error_log中收到错误: [2016年3月29日00:19:58 America / New_York] PHP注意:在/home/loverevo/public_html/clearlove/templates/clearlove_home/html/com_content/article/view.html中尝试获取非对象的属性。第217行的PHP
当我把文件放回去时,这个错误消失了,我相信它与我的if语句有关。但我不确定。我也尝试了将代码全部用作php的代码,并且使用了很多将所有html保留为html并且没有回显。
不确定是什么造成这种情况,任何人都有任何想法?
答案 0 :(得分:0)
检查您的代码并确保您尝试回显的变量实际上具有值。我很确定如果你试图打电话给$item->title
,你会大吼大叫,但$item
本身没有传递给它的值。所以它说你试图得到一个标题,但对象$ item不存在或者不是一个对象。
我会在进入$item
对象之前执行此操作:
if ($item) {
echo $item->title;
echo $item->value2;
}
或者如果您的某些对象值有时没有附加值,请在输出
之前检查实际值$itme->value1 ? $item->value1 : "";
希望有所帮助
答案 1 :(得分:0)
代码中有几个问题。第一个也是主要的问题是,如果$ i == $ n,我试图使用条件来结束表。但只有$ i&lt;而且for语句才会循环。 $ n,因此我必须让我的条件结束表应该是$ i == $ n -1;
另外,对于我之前的代码,put isset工作,如果没有在几个不同的区域设置代码,则不会处理代码。我会更深入地研究这个,因为我之前没有得到这个问题,但现在它有效!