将设置问题的文章新闻快闪到桌子上


Issue setting article newsflash into a table

嗨,我正试图将文章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">&#160;</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中遇到了一个错误:〔29-Mar-2016 00:19:58 America/New_York〕PHP注意:在第217行上,正在尝试获取/home/loevrevo/public_html/clearlove/templates/clearlove_home/html/com_content/article/view.html.PHP中非对象的属性

当我放回文件时,这个错误就会消失,我相信这与我的if语句有关。但我不确定。我还尝试了将所有代码都作为php使用,并使用了大量将所有html保留为html而不进行响应的代码。

不知道是什么原因造成的,有人有什么想法吗?

检查您的代码,并确保您试图回显的变量实际上有一个值。例如,如果你试图调用$item->title,但$item本身没有传递值,我敢肯定它会对你大喊大叫。所以它说你试图获得一个标题,但对象$item不存在,或者不是对象。

我会在进入$item对象之前执行此操作:

if ($item) {
    echo $item->title;
echo $item->value2;
}

或者,如果您的某些对象值有时没有附加值,请在输出之前检查实际值

$itme->value1 ? $item->value1 : "";

希望对有所帮助

代码中存在几个问题。第一个也是主要的问题是,如果$I==$n,我试图使用一个条件来结束表。但是for语句只循环$i<n、 因此,我必须使我的条件结束表应该是$I==$n-1;

同样关于我以前的代码,放置isset是有效的,这样如果不在几个不同的区域设置代码,代码就不会被处理。我将进一步研究这个问题,因为我以前没有遇到这个问题,但现在它有效!