web-dev-qa-db-ja.com

タグページ:イントロテキストの画像のリンクを削除します

[タグ]ページ(同じタグのすべての記事が表示されている)で、画像のリンクを削除しようとしています。画像は<img>タグはイントロテキストであり、イントロ画像ではありません。

私は正しいphp関数を見つけました:

$notagintrotex =strip_tags( $this->item->introtext, '<img>');
echo $notagintrotex;

しかし、オーバーライドする必要のあるファイルが見つかりません。私はこれを見てきました question ですが、Joomla 3.3.1からいくつかの変更があったようです。 templates/yourtemplate/html/com_tags/tag/default_items.php

1
MagTun

さて、あなたの問題のより良い概要を得た後、あなたが望むものを達成するためにあなたがする必要があることはここにあります:

タグコンポーネント用に、テンプレートのhtmlフォルダー内にテンプレートオーバーライドを作成します。これを行うには、次のフォルダー構造を作成します。

/ templates/yourtemplate/html/com_tags/tag /

上記のフォルダーにファイルをコピーします。

components/com_tags/views/tag/tmplフォルダーのdefault_items.php。

このファイルを開いて編集します。 80行目あたりに次のように表示されます。

<?php if ($this->params->get('tag_list_show_item_description', 1)) : ?>
    <?php echo $item->event->beforeDisplayContent; ?>           
    <span class="tag-body">
        <?php echo JHtml::_('string.truncate', $item->core_body, $this->params->get('tag_list_item_maximum_characters')); ?>
    </span>
    <?php echo $item->event->afterDisplayContent; ?>

説明テキストをエコーする前に(たとえば、「タグ本体」スパンの前に)コードを追加して、コードを変更します。

<?php
$item->core_body =strip_tags( $item->core_body, '<img>');
?>

だからあなたは以下のようなもので終わるでしょう:

    <?php if ($this->params->get('tag_list_show_item_description', 1)) : ?>
    <?php echo $item->event->beforeDisplayContent; ?>
    <?php
        $item->core_body =strip_tags( $item->core_body, '<img>');
    ?>          
    <span class="tag-body">
        <?php echo JHtml::_('string.truncate', $item->core_body, $this->params->get('tag_list_item_maximum_characters')); ?>
    </span>
    <?php echo $item->event->afterDisplayContent; ?>

最初の回答:

あなたのウェブサイトは少しわかりにくく、ナビゲートが少し難しく、あらゆる種類のコンテンツやカテゴリにアクセスするための標準的な方法はありません。また、一部のページではタグ情報が表示され、その他のページではカテゴリのみが表示されるため、構成に少し混乱があると思います。

さらに、そのタグリストの記事の1つにアクセスして、外部Webサイトへのリンクを含むイントロテキストで画像を使用する方法と理由を調べようとしましたが、記事の画像は外部Webサイトに直接アクセスしますが、記事のタイトルは404エラー。

まず第一に、私はあなたがウェブサイトとコンポーネントの構成全体を洗練する必要があると信じています。この回答の中であなたが正確に何をする必要があるかは言えません-これを整理するために誰かを雇う必要があるかもしれません。

リンクの問題について-他のいくつかのタグもチェックしましたが、すべてのタグがその説明へのリンクを持っているわけではありません。これにより、イントロテキストへのこれらの特定の画像がこれらの外部Webサイトにリンクしていると思います。

私は、イントロテキストを表示するようにタグコンポーネントを設定したので、それを使用し、記事のイントロテキストのマークアップのいずれかを含むと思います。

これを克服する1つの方法は、コンテンツコンポーネントのイントロテキストを非表示にする機能を使用することです。このアプローチに従って、イントロテキストとフルテキストに対して同じコンテンツを2回作成します。イントロテキストではリンクなしの画像を使用しますが、フルテキストではリンクを追加できます。イントロテキストを記事の表示から隠すようにJoomlaを設定すると、必要に応じて2つの異なるテキストブロックが表示されます。

すべてのブログレイアウト/タグリスト、記事モジュールなどへのリンクのないイントロテキストと記事表示のフルテキスト。

または、「画像とリンク」タブからJoomlaコンテンツの画像機能を使用して、イントロ画像を設定することもできます。

ただし、各コンポーネントの出力は、各コンポーネントの可能なテンプレートオーバーライドによっても制御されることに注意してください。

1
FFrewin

タグを取り除くためにコンテンツプラグインを構築する必要がある(非常に簡単です)ようです。 コンテンツプラグインの作成 を参照し、コードをphpファイルに配置します。それをトリガーするイベントは、おそらくonContentPrepareイベント、またはおそらくonContentBeforeDisplayです。

1
GDP