Saya tahu ini agak lama pertanyaan ini, tetapi saya bertanya-tanya hal yang sama dan di sini adalah solusi yang saya buat jika Anda mengubah file index.php templates dengan sedikit kode tambahan Anda dapat membuat beberapa posisi modul berdasarkan subdomain , dan kemudian Anda menetapkan item menu yang benar ke subdomain yang relevan.
$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; ?>
Dalam contoh di atas, baris awal $ sub adalah apa yang Anda perlukan untuk menyesuaikan untuk situs web Anda sendiri, saat ini contoh membuat ruang untuk modul navigasi tergantung pada subdomain - ini dibuat untuk situs dengan dua sub domain dan domain umum sehingga menciptakan tiga posisi navigasi untuk setiap subdomain - navigationhome navigationplus dan navigationgroup.
Beberapa hal yang perlu diperhatikan dengan kode -
untuk menemukan subdomain saya telah menggunakan fungsi in_array. Saya bisa menggunakan pernyataan switch pada $ dom [1] untuk menemukan subdomain tetapi ini tidak akan berhasil jika seseorang mengetikkan sesuatu seperti www.plus.mysite.co.uk karena www akan berada di $ dom [1] ... misalnya
switch ( $dom[1] )
{
case 'group' : $sub = 'group' ; break ;
case 'plus' : $sub = 'plus' ; break ;
default : $sub = 'home' ; break ;
}
ledakan awal menggunakan str_replace untuk menggantikan // dengan. ini agar http / https awal berakhir di array itu sendiri ($ dom [0] akan selalu berisi http / https yang saya kira bisa digunakan lebih lanjut jika Anda ingin menampilkan situs yang berbeda tergantung pada protokol yang dimuat, jika itu tidak ada maka seseorang memasukkan sesuatu seperti http://plus.mysite.co.uk maka array pertama akan berisi http: // plus dan in_array tidak akan menghasilkan kecocokan.
Ingatlah bahwa jika sub-domain sama dengan domain situs maka Anda harus memastikan itu adalah yang terakhir di? : rantai pernyataan jika tidak maka akan menugaskan dirinya sendiri ke subdomain lain - misalnya jika Anda memiliki dua sub domain yang disebut site.site.co.uk dan site1.site.co.uk lainnya pernyataan berikut akan berfungsi
$sub = ( in_array ( 'site1' ) ? 'site1' : ( in_array ( 'site' ) ? 'site' : 'site' ) ) ;
//it never reaches the in_array ( 'site' ) if sub domain is site1
tetapi tak satu pun dari ini akan berfungsi dengan baik dalam situasi itu ...
$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
Tidak mungkin Anda akan menggunakan ini dengan cara ini tetapi perlu dicatat.