it-swarm-ja.tech

モジュールを複数の位置に表示

モジュールを複数の位置に、できればネイティブに、またはサードパーティの拡張機能を介して表示することはできますか?

私は回避策があることを知っています...

  • モジュールのクローンを作成して位置を変更しますが、モジュールにカスタムHTMLなどが含まれている場合、これは面倒で、頻繁に変更される可能性があります。
  • load構文を使用して、モジュールを好きな場所にドロップしますが、他のモジュールを保持するためだけにモジュールが作成されます

しかし、どちらも私がむしろ望んだ余分なメンテナンス作業を作成します。

8
codinghands

Nonumbersモジュールはどこでも使用できます。

http://www.nonumber.nl/extensions/modulesanywhere/userguide

コアにあるloadpositionバージョンとは異なり、記事だけでなくモジュールでも使用できます。したがって、2番目のカスタムhtmlモジュールを作成し、最初の位置を呼び出すことができます。これで基本的にはポジションのコピーが得られますが、最初のモジュールで変更した設定は2番目の「クローン」にも適用されます。

1
Jordan Ramstad

単純なプラグインを作成し、次のようなものを使用してモジュールを(ループを使用して)複数の位置に公開することをお勧めします。

$document   = &JFactory::getDocument();
$renderer   = $document->loadRenderer('modules');
$options    = array('style' => 'xhtml');
for ($x=0; $x<=5; $x++) {
     $position   = 'myPosition' . $x;
     echo $renderer->render($position, $options, null);
}
// Repeat for each module position, changing only $position

(未検証)

今日、もっと完全なものを組み立てられるかどうかを確認します。

1
johanpw

簡単なレベルでこれを試すことができます:

これが単一のモジュールになり、表示する場所をすでに定義している場合は、テンプレートに特別なモジュールの位置を作成し、必要な場所に2つまたは必要な数だけ呼び出しを行うことができます。テンプレート。それはあなたがそれを呼び出すところはどこでもその位置のモジュールをロードします。

より多くのモジュールがあり、より多くの位置にこれを適用したい場合でも、モジュールのよりスマートな作成やモジュール位置のよりスマートな作成を必要とする可能性のあるモジュールの外観や複雑な外観が必要な場合を除いて、上記のアプローチは依然として適切です。モジュール。

1
FFrewin