web-dev-qa-db-ja.com

{loadposition}最初のブログ投稿のみ

次の問題があります。 {loadposition}は投稿テキストで指定されており、必要に応じて記事に表示されます。残念ながら、私も今ではブログ記事でお互いに6つの記事を閲覧しています。ブログビューで{loadposition}を1回だけ表示するにはどうすればよいですか?

英語が下手でごめんなさい

編集:

定義された位置にモジュールをロードしたいのですが。単一の記事では大丈夫です。しかし、Blogviewでは、モジュールはすべてのblogentryに表示されます。最初のブログエントリでのみモジュールを表示したい

ミッチャ

1
Mitcha

理想的な提案のために、モジュール領域が何をしているかのより具体的な例を示す必要があるかもしれません。ただし、正しい方向にあなたを向けるかもしれないいくつかのアイデア:

プラグイン

「コンテンツ-ロードモジュール」プラグインの前に実行するプラグインを作成します。これは、ページのビューを検出するために必要です。ブログカテゴリのレイアウトが検出された場合は、{loadposition}表示したくないため、「コンテンツ-モジュールのロード」を実行すると、不要なモジュールが解析中のコードに存在しなくなります。

続きを読む

カテゴリビューを設定して、続きを読む前のコンテンツのみを表示し、記事ビューを、続きを読む後のコンテンツのみを表示するように設定します。モジュールをカテゴリビューで表示する場所に手動で配置します。つまり、1つのページで、[続きを読む]の上と下の両方に表示されます。これは、サイトの動作方法によっては、大量のコンテンツを複製する必要がある管理者にとって、かなり手間のかかる作業になる可能性があります。

[〜#〜] css [〜#〜]

テンプレートでCSSを使用して不要なモジュールを非表示にします。最善の方法ではありませんが、すばやく簡単なアプローチである必要があります。

モジュール

モジュールのテンプレートを更新(独自の場合)または上書き(コアまたはサードパーティの場合)して、ページに読み込まれた回数をカウントし、コンテンツを出力するか、何も出力しないようにします。

デザイン

それは記事に表示する必要がありますか、それともユーザビリティを損なうことなくページの別の場所にモジュールを配置できますか?記事が作成されるたびに管理者が同じモジュールを配置する必要がある場合は、設計上の問題である可能性があります。

更新

テンプレートにモジュール領域を作成できない-コンポーネント領域の上または下に-モジュールマネージャーを介してモジュールを割り当てることができない理由はありますか?あなたが与えた情報から-これは最良のアプローチのように聞こえます。

2
Richard B

Loadpositionをブログビューで一度だけロードする場合は、ifステートメントを

components/com_content/views/category/tmpl/blog.php

これは記事を数える行です

https://github.com/joomla/joomla-cms/blob/staging/components/com_content/views/category/tmpl/blog.php#L72

<?php $leadingcount = 0; ?>

0が最初のものです。したがって、この行の前の行を行うことができます: https://github.com/joomla/joomla-cms/blob/staging/components/com_content/views/category/tmpl/blog.php#L8

<?php $leadingcount++; ?>

言う

<?php 
 if ($leadingcount == 0) {
 // do stuff e.g.
 {loadposition myModulePosition}
}
?>

先行カウント== 0の場合にのみ実行するように指示するため、初回のみ実行されます。ただし、1つの記事でもこれが必要な場合は、最初に記事のビューを確認することをお勧めします。

これを行うと、次のようになります。

<?php 
if ($view == 'article') {
 // do stuff e.g.
 {loadposition myModulePosition}
} ?>

ケースごとに異なるモジュールの位置を使用することもできます。

それがそのまま機能するかどうかはわかりませんが、content prepareしかし、他の{loadposition xxxx}動作しているのではないでしょうか。あなたがする必要がある場合は、私の別の答えでそうする方法を見つけることができます モジュール内に新しいモジュール位置を追加することは可能ですか?

0
Eoin