it-swarm-id.com

Mengganti tampilan komponen untuk item menu tertentu

Bagaimana cara mengganti tampilan komponen untuk item menu tertentu?

Untuk penimpaan global saya dapat menggunakan template/html/com_xxx/.
Tetapi bagaimana saya bisa melakukannya hanya untuk item menu tertentu?

Contoh:

Joomla! memiliki tampilan Blog untuk Artikel.
Bagaimana saya bisa mengubah markup tampilan ini untuk item menu tertentu, dan mempertahankan markup default untuk item menu lainnya yang terhubung ke tampilan Blog yang sama?

6
Fedik

Metode 1:

Gunakan kelas CSS untuk membuatnya bekerja seperti yang Anda gambarkan.

  1. Tambahkan kelas ke item menu (pada tab tampilan halaman, tulis di bidang "Kelas Halaman"). Contoh: "halaman khusus" (perhatikan spasi sebelum kelas halaman, tanpa itu akan ditambahkan ke komponen yang diberikan output). Saya sarankan menggunakan kelas yang dapat digunakan di lebih dari satu situasi.
  2. Pada pengesampingan, Anda perlu membuat skrip "filter".

    if(strpos($this->pageclass_sfx, ' special-page') !== false) {
        $templateA = true;
    }
    
    if($templateA){
    (put your customized override here)
    }
    

Metode 2:

Gunakan override template untuk tampilan!

  1. Di folder HTML Anda untuk penggantian, duplikat tampilan yang diinginkan (mis: tampilan artikel), Anda perlu mengganti namanya dan memiliki file .xml dengan parameter (salin dari tampilan di komponen, dan pastikan .xml memiliki nama yang sama dengan tampilan utama!).

    contoh: Buat tampilan artikel utama, sebut saja "spesial", Anda harus menyalin default.php ke folder HTML Anda di templat Anda (dan letakkan di struktur folder berikut: com_content/article/ dan ganti namanya menjadi special.php). Jangan lupa .xml (yang perlu Anda salin dan bahkan sesuaikan jika perlu) ke folder yang sama dengan override, dan ganti namanya menjadi special.xml

    Perbarui tampilan dengan kode/gaya utama, dll.

  2. Lalu, buka item menu, dan ubah ke tipe menu baru (di bawah artikel, pilih special), coba!
4
jackJoe

Solusi umum:

Untuk setiap item menu, Anda dapat memilih templat yang akan diterapkan ke halaman yang ditautkan, sehingga Anda dapat menduplikasi templat Anda dan membuat override tampilan dalam templat yang digandakan.

Anda kemudian dapat memilih templat yang digandakan dalam parameter menu-item Anda dan penggantian hanya akan efektif untuk item menu tersebut.

Dengan K2:

Sebagai contoh, Anda dapat menggunakan K2. Dengan itu, Anda dapat membuat beberapa tampilan timpa dengan nama yang berbeda ..

Override terlihat seperti ini:

template_name/html/com_k2/override_1
                         /override_2
                         /...

Kemudian ketika Anda memilih item K2 di parameter menu Anda, Anda dapat memilih override untuk diterapkan pada halaman tertentu. Ini menghindari membuat beberapa templat.

3
web-tiki