Joomlaタグの結果ページに、記事のイントロテキストとアイテム画像と記事全体へのリンクを表示したいと思います。
これを行う方法はありますか、またはコードを変更して期待される結果を得るにはどうすればよいですか?
Components\com_tags\views\tag\tmpl\default_items.php <?php echo $this->item->introtext; ?>
を追加しようとしましたが、他の場合と同様に機能しません。私はphpをよく知りませんので、他に提案があるかどうか知りたいです。
ありがとう
これを試してください(テストされ、Joomla 3.3.0で動作しました):
このコードを入力してください:
_<?php
//introtext
echo $item->text;
//image
$images = json_decode($item->core_images);
echo '<img src="'.$images->image_intro.'">';
//get category name by id
$db = JFactory::getDbo();
$id = $item->core_catid;
$db->setQuery("SELECT cat.title FROM #__categories cat WHERE cat.id='$id'");
$category = $db->loadResult();
echo '<p>'.$category.'</p>';
?>
_
このファイルに:
templates/yourtemplate/html/com_tags/tag/default_items.php
以下からコピーする必要があります:
components\com_tags\views\tag\tmpl\default_items.php
この2行の間
<?php foreach ($items as $i => $item) : ?> //Line 63 <?php endforeach; ?>
この変数(_<?php echo $item->useonefromthelist; ?>
_)のいずれかを使用してタグ出力を変更できます:
_type_alias
content_item_id
core_content_id
match_count
tag_date
core_title
core_alias
core_body
core_state
core_access
core_metadata
core_created_user_id
core_created_by_alias
core_created_time
core_images
core_modified_time
core_language
core_catid
core_publish_up
core_publish_down
content_type_title
router
author
author_email
link
displayDate
event
text
core_params
_
このリストを取得する方法
_<pre>
<?php print_r($item); ?>
</pre>
_
この解決策は私にとって非常にうまくいきました。紹介テキストはまだ長すぎるので、300文字に短縮しました。下記参照。上記の最初の回答のh3タグの直後にメインコードを追加し、イントロテキスト部分を変更しました。カテゴリ名は使用していません。続きを読むリンクのメイン記事へのリンクを追加しました...
Joomla 3.6で使用した合計コードは次のとおりです。h3タグも含まれます...
<h3>
<a href="<?php echo JRoute::_(TagsHelperRoute::getItemRoute($item->content_item_id, $item->core_alias, $item->core_catid, $item->core_language, $item->type_alias, $item->router)); ?>">
<?php echo $this->escape($item->core_title); ?>
</a>
</h3>
<?php
//image
$images = json_decode($item->core_images);
echo '<p><img class="intro-image" src="'.$images->image_intro.'"></p>';
//introtext
$limit =300;
if (strlen($item->text) > $limit) {
echo (substr($item->text, 0, $limit)) ?> <a href="<?php echo JRoute::_(TagsHelperRoute::getItemRoute($item->content_item_id, $item->core_alias, $item->core_catid, $item->core_language, $item->type_alias, $item->router)); ?>">...</a>
<?php
}
else {
echo $item->text;
}
?>
<p>
<a class="read-more" href="<?php echo JRoute::_(TagsHelperRoute::getItemRoute($item->content_item_id, $item->core_alias, $item->core_catid, $item->core_language, $item->type_alias, $item->router)); ?>">Read more</a>
</p>
まず、テンプレートの上書きを直接編集することはお勧めしません。
詳細については、Google htmlオーバーライドを使用しますが、簡単に言えば、上記の場合です。
更新後に上書きされない場所で編集できます。
上記でやりたいことについては、これはあなたが思っているよりも複雑だと思います。タグが複数の記事にリンクされている場合、どのような出力が必要ですか?ここで私がやろうとしていることは、あなたが望むことのほとんどをすでに行っているモジュールを変更することです。 「類似タグ」モジュールのようなもの。それを変更したバージョンを作成して、タグの結果ページに呼び出す方が簡単です。