web-dev-qa-db-ja.com

モジュールを複数の位置に割り当てるにはどうすればよいですか?

これについてはすでにいくつかの質問がありますが、ほとんどの場合、実際にはページ上に同じモジュールの複数のコピーが必要です。

私の問題は、レイアウトとテンプレートです。多くの場合、テンプレートにはポジションの異なる名前があります。テンプレートで標準化されたセマンティックな命名が必要です。;-)

私のサイトで新しいテンプレートを実験しているので、古いテンプレートと新しいテンプレートを切り替えて比較できるようにしたいと考えています。また、すべてのモジュールを調べて、毎回新しいポジションを与えたいとは思いません。

解決策は、モジュールを複数の位置、具体的には、異なるテンプレートの異なるモジュール位置に配置できるようにすることです。例えば。テンプレートAの「トップ」とテンプレートBの「オーバーコンテンツ」。これにより、選択したテンプレートがサイトの外観に似たものになります。

これは可能ですか?これはJoomla 1.5の機能ではなかったのですか、それとも夢を見ているだけですか? (私が消えるだった夢を見ている...)

本質的には、テンプレートを含め、サイトのアップグレードをシームレスに処理する方法を探しています。私が欲しかったワークフローは

  • 複製サイトを作成する
  • 新しいテンプレートをインストールする
  • 新しいモジュールの位置を把握する
  • 元のサイトに新しいモジュールの位置を追加する
  • 元のサイトに新しいテンプレートをインストールしてアクティブ化する

4番目のステップは、私が解決策を探しているステップです。

7
thoni56

幸せな夢...不可能-当時(J1.5)そして今。

しかし、実験の一部はまだ可能です。
実際に行う必要があるのは、元のサイトをそのままにして、開発サイトで好きなことを行うことだけです。
このようにして、2つのサイト(オリジナルと新規のサイト)を作成すると、それらの間で無制限の数の比較を行うことができます。

とにかく、ライブサイトであなたがやりたいこと(つまり、テンプレートを変更/実験/開発すること)をしようとはしません...そして、一般的には、これは推奨される方法ではなく、人々がどのように進んでいるのか本当にわかりませんこのように考えています。

問題のサイトのコピーを取得し、問題が発生する可能性があることを恐れずに平和で作業できる場所に復元します。そこには、自由に実験や間違いをすることができます。場合によっては、開発サイトの複数のインスタンスが作成されることもあります。

したがって、同じモジュールを複数の位置で公開できるというアイデアは機能として悪くないかもしれませんが、実際にあなたがやりたいことの障害にはならないはずです。

更新:モジュールの複製

これを最初の回答に含めたかったのですが、どういうわけかそれをバイパスしました...あなたが求めていることに近づける可能性があるのは、モジュールを複製して新しいモジュールの位置に割り当てることです。ここではバッチボタンが役立ちます。これは最も効率的な方法ではないかもしれませんが、それほど難しくもありません。古いテンプレートとモジュールを使い終わったら、それらをまとめて削除できます。

2
FFrewin

これを行う1つの方法は、マスターモジュールを作成し、それをカスタムモジュールの位置に配置することです(例: "master-position")。

次に、モジュールをロードする実際のテンプレートの位置を使用して、カスタムモジュールを配置する場所ごとに新しいCustom HTMLモジュールを作成します。

次に、カスタムHTMLモジュールの唯一のコンテンツとして{loadposition master-position}を使用します。

{loadmodule custom-module-name}を使用するか、カスタムHTMLモジュールまたは記事のModuleというボタンでモジュールをロードすることもできます。


注:このプラグインがExtensions> Plugins> Content-Load Modulesで有効になっているかどうかを確認してください。

3
Lance

テンプレートの変更を含むサイトの変更、更新、変更に役立つ拡張機能に出会った後、私はここに戻って別の提案を投稿します。

拡張機能は StageIt と呼ばれ、Joomlaにステージング機能を追加します。したがって、この拡張機能を使用すると、Joomlaサイト内から直接開発環境を作成/同期し、変更が完全に準備が整うまで「ライブ」にすることなく、変更の適用を開始できます。

準備ができたら、同期を取り直して、変更を公開するスイッチを公開します。 StageItは同期時にバックアップも処理するので、期待どおりに動作しない場合は元に戻すことができます。

3
FFrewin

少し前に、私は同様のことをする必要があり、解決するための最良の方法がありました
各ポジションのインデックスコードが2倍になりました:

<jdoc:include type="modules" name="your-position" style="html5" />
  • したがって、この位置にモジュールを割り当て、この位置が複数のセクションにある場合
    テンプレートのがすべて請求されます。
  • 同じサイトに複数のテンプレートがあり、位置とスタイルが
    両方で定義されている場合、モジュールはすべて均等にロードされます。

これにより、サイトの読み込み時間が長くなりますが、もちろんそれは
重複があります。

* @ Lanceの応答を考慮すると、複数のモジュールを実現する別の方法になります
{loadposition}。*を使用した位置

0
AlejandroVega