0

こんにちは、記事のニュースフラッシュをテーブル内のリンクのリストに変えようとしています。記事のタイトルのみが表示されるようにコメントアウトして紹介テキストを削除し、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 Notice: Trying to get property of non-object in / home/loverevo/public_html/clearlove/templates/clearlove_home/html/com_content/article/view.html.php 217 行目

このエラーは、ファイルを元に戻すと消えます。if ステートメントと関係があると思います。しかし、よくわかりません。また、すべてをphpとして使用せずにコードを試し、すべてのhtmlをhtmlのままにしてエコーしないようにしました。

何が原因なのかわからないのですが、何かアイデアはありますか?

4

2 に答える 2

0

コードをチェックして、エコーしようとしている変数に実際に値があることを確認してください。$item->titleたとえば、電話をかけようとしているが、$itemそれ自体に値が渡されていない場合など、あなたに怒鳴っていると確信しています。つまり、タイトルを取得しようとしているが、オブジェクト $item が存在しないか、オブジェクト以外のものであるということです。

オブジェクトに入る前にこれを行い$itemます:

if ($item) {

    echo $item->title;
echo $item->value2;

}

または、オブジェクト値の一部に値が添付されていない場合がある場合は、出力する前に実際の値を確認してください

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

それが役立つことを願っています

于 2016-03-29T04:48:31.450 に答える
0

コードにはいくつかの問題があります。最初の大きな問題は、条件 if $i == $n を使用してテーブルを終了しようとしていることです。ただし、for ステートメントは $i < $n の間だけループするため、テーブルを終了する条件は $i == $n -1; にする必要があります。

また、以前のコードに関しては、 isset を配置すると、いくつかの異なる領域に設定されていない場合、コードが処理されないように機能します。以前はこの問題が発生していなかったので、これをさらに詳しく調べますが、今のところは機能しています!

于 2016-03-29T21:14:39.317 に答える