web-dev-qa-db-ja.com

Joomlaタグの結果ページの変更

Joomlaタグの結果ページに、記事のイントロテキストとアイテム画像と記事全体へのリンクを表示したいと思います。

これを行う方法はありますか、またはコードを変更して期待される結果を得るにはどうすればよいですか?

Components\com_tags\views\tag\tmpl\default_items.php <?php echo $this->item->introtext; ?>を追加しようとしましたが、他の場合と同様に機能しません。私はphpをよく知りませんので、他に提案があるかどうか知りたいです。

ありがとう

4
gag

これを試してください(テストされ、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>
_
7
Joomla Agency

この解決策は私にとって非常にうまくいきました。紹介テキストはまだ長すぎるので、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> 
0
Donald Ax

まず、テンプレートの上書きを直接編集することはお勧めしません。

詳細については、Google htmlオーバーライドを使用しますが、簡単に言えば、上記の場合です。

  • tmplフォルダをcomponents\com_tags\views\tagからtemplates/yourtemplate/html/com_tags /にコピーします
  • 名前をタグに変更

更新後に上書きされない場所で編集できます。

上記でやりたいことについては、これはあなたが思っているよりも複雑だと思います。タグが複数の記事にリンクされている場合、どのような出力が必要ですか?ここで私がやろうとしていることは、あなたが望むことのほとんどをすでに行っているモジュールを変更することです。 「類似タグ」モジュールのようなもの。それを変更したバージョンを作成して、タグの結果ページに呼び出す方が簡単です。

0
BodgeIT