質問: 別のサブドメインにメニュー項目を作成するにはどうすればよいですか? joomla 2.5で次のようなメニュー構造を作成したいと思います。 ルート(www.example.com) 約 (www.example.com/about) サイトa(a.example.com) サイトb(b.example.com) 異なるサブドメインでメニュー項目を作成することは可能ですか、またどのように作成しますか?私は以前cms "typo3"を使っていましたが、これを行うことには何の問題もありませんでしたが、インターネットを長時間検索してもこの問題の解決にはなりませんでした。編集: a.example.comおよびb.example.comは同じjoomlaインストール上にあるので、サブドメインで新しい「単一の記事」を作成したいと思います。
回答: 私はこれが少し古いこの質問であることを知っていますが、同じことを思っていましたが、サブドメインに基づいて複数のモジュール位置を作成できる少しの追加コードでテンプレートのindex.phpファイルを変更した場合に私が思いついた解決策です、次に適切なメニュー項目を関連するサブドメインに割り当てます。 $dom = explode ( '.', str_replace ( '//', '.', juri::base () ) ) ; $sub = ( in_array ( 'plus', $dom ) ? 'plus' : ( in_array ('group', $dom) ? 'group' : 'home' ) ) ; if ($this->countmodules('navigation'.$sub )) : ?> <nav class="navigation"> <jdoc:include type="modules" name="navigation<?php echo $sub ?>" style="html5" /> </nav> <?php endif; ?> 上記の例では、$ subで始まる行が独自のwebサイト用にカスタマイズする必要があります。現在の例では、サブドメインに応じてナビゲーションモジュール用のスペースが作成されます。これは、2つのサブドメインと一般的なドメインなので、サブドメインごとに3つのナビゲーション位置(navigationhome navigationplusとnavigationgroup)を作成します。コードで注意すべきいくつかの点-サブドメインを見つけるには、関数in_arrayを使用しました。 $ dom [1]でswitchステートメントを使用してサブドメインを見つけることもできましたが、wwwが$ dom [1]にあるため、誰かがwww.plus.mysite.co.ukのようなものを入力した場合、これは機能しません...例えば. switch ( $dom[1] ) { case 'group' : $sub = 'group' ; break ; case 'plus' : $sub = 'plus' ; break ; default : $sub = 'home' ; break ; } 最初の分解では、str_replaceを使用して//をに置き換えます。これは、最初のhttp/httpsが独自の配列で終わるようにするためです($ dom [0]には常にhttp/httpsが含まれます。これは、ロードされたプロトコルに応じて異なるサイトを表示したい場合に使用できます。 http://plus.mysite.co.uk のようなものを誰かが入れた場合、最初の配列には http:// plus が含まれ、in_arrayには一致しません。サブドメインがサイトドメインと同じである場合、それが?の最後のドメインであることを確認する必要があることに注意してください。 :ステートメントチェーンそれ以外の場合は、他のサブドメインに自分自身を割り当てます。 2つのサブドメインがあり、1つはsite.site.co.uk、もう1つはsite1.site.co.ukと呼ばれる場合、次のステートメントが機能します。 $sub = ( in_array ( 'site1' ) ? 'site1' : ( in_array ( 'site' ) ? 'site' : 'site' ) ) ; //it never reaches the in_array ( 'site' ) if sub domain is site1 しかし、これらのどちらもその状況では適切に機能しません... $sub = ( in_array ( 'site' ) ? 'site' : ( in_array ( 'site1' ) ? 'site1' : 'main' ) ) ; // all domains would be referred to as site because xxx.site.co.uk provides a match $sub = ( in_array ( 'site1' ) ? 'site1' : ( in_array ( 'site' ) ? 'site' : 'main' ) ) ; // www.site.co.uk would still be site and not main この方法でこれらを使用することはほとんどありませんが、注目に値します。