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


8

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

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

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

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

これは可能ですか?これはJoomla 1.5の機能ではなかったのでしょうか、それとも夢を見ているのでしょうか。(私夢見ていたこと判明...)

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

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

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


探していた答えは見つかりましたか?
ランス

本当にそうではありません。@ FFrewinの答えは、必要なことを行うためのツールがないことを説明しているので、受け入れます。
thoni56

回答:


2

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

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

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

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

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

更新:モジュールの複製

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


私もそうですが、簡単に切り替えられるようにモジュールを準備したいと思います。しかし、あなたが言うように、それは私が新しいテンプレートで実験することを妨げません。
thoni56

可能であれば、新しいテンプレートを(別のサイトで)試してみることができ、必要な位置になったら、新しいテンプレートの位置にも割り当てることで、ライブサイトですべてのモジュールを準備できました。古いテンプレートをそのまま使用します。次に、テンプレートのインストール、テンプレートの切り替え、完了です!復元、上書き、毎晩の「サイトダウン」はなく、レイアウトはコンテンツからかなり分離されています。
たとえば、正常

@ThomasNilsson、十分に公正です。ただし、モジュールを複製して新しいモジュールの位置に割り当てる場合でも、同様のことができることに注意してください。一方、私は通常、レイアウト(テンプレート)の変更をサイトの重要な変更と見なしています。私の開発者が独立して作業する-すべてを最後まで細かく準備する-最近のデータベースの移行がある場合はそれをすべて実行し、それを復元する準備ができたら。私の毎晩のサイトダウンは実際には約5〜10秒です。
FFrewin

@ThomasNilsson、私の回答にモジュールの重複の提案を追加しました。
FFrewin

受け入れられた、それは私が望んで何をまだない実行可能だと私は変更モジュールの割り当てよりも、すべての時間を望んで行うには少し簡単になります;-)しかし、以来...
thoni56

3

テンプレートの変更を含むサイトの変更、更新、変更に役立つ拡張機能を見つけた後、別の提案を投稿するためにここに戻ってきます。

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

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


根本的な必要性に対する解決策を提案することへの賛成票を投じます。必ずしも問題ではありません。おかげで、それは興味深いように見え、その機能は非常に便利な機能になるでしょう。
thoni56

3

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

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

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

また、使用することができる{loadmodule custom-module-name}か、というボタンを使用してモジュールをロードモジュールのカスタムHTMLモジュールまたは物品に。


注:このプラグインが[ 拡張機能]> [プラグイン]> [コンテンツ-ロードモジュール]で有効になっているかどうかを確認してください


そのアプローチのいくつかの議論がここにあります:stackoverflow.com/questions/12031648/...
ランス

以前このモジュールをモジュールアプローチ内で使用したことがあり、うまく機能します。
Neil Robertson

0

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

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

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

* @Lanceの応答を考慮すると、{loadposition}
を使用して複数のモジュール位置を達成するもう1つの方法です。*

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.