Cara menampilkan item yang ditandai pada tata letak blog kategori

8

Saya ingin membuat item menu untuk tag yang menampilkan artikel seperti dalam tata letak blog kategori. Saya telah mencoba dengan jenis item menu ini: "Daftar Ringkas dari Item yang Ditandai", "Daftar semua tag" dan "Item yang Ditandai" tetapi tidak berhasil.

Menurut dokumentasi resmi dari tag konten , sepertinya itu mungkin.

Setelah Anda memiliki tag dan beberapa item yang ditandai, Anda dapat menampilkannya di ujung depan dengan beberapa cara.

Secara default Joomla! akan menampilkan tag yang tertanam di setiap item yang telah ditandai. Anda dapat mematikan tampilan ini dengan mengubah parameter. Anda dapat mengontrol posisi tampilan ini dengan mengabaikan tata letak dan tata letak alternatif dan Anda dapat menatanya dengan css Anda.

Anda dapat membuat tautan menu yang menampilkan daftar tag, dengan tautan ke item yang ditandai untuk setiap tag.

> Anda dapat membuat tautan menu yang menampilkan daftar item yang ditandai untuk tag yang diberikan dan ditampilkan sebagai daftar atau gaya blog.

Anda dapat menggunakan salah satu modul tag. Tag populer akan menampilkan daftar tag terkait yang memiliki item paling banyak ditandai. Tag Serupa akan menampilkan daftar item yang memiliki set tag yang sama dengan item yang saat ini ditampilkan (perhatikan bahwa modul ini tidak ditampilkan pada halaman yang tidak menampilkan item konten).

Alfredo Osorio
sumber

Jawaban:

8

Karena masalah ini tampaknya telah ditanyakan beberapa kali dan masih belum ada jawaban yang bagus untuk itu, saya ingin mencoba memberikan solusi dari sisi template override. Langkah-langkahnya cukup kompleks tetapi harus mudah.

Catatan: Saya menggunakan Joomla 3.4.4 dan templat protostar saat membuat tutorial ini

Pertama, salin file ini:

[root]/components/com_tags/views/tag/tmpl/default.php
[root]/components/com_tags/views/tag/tmpl/default.xml
[root]/components/com_tags/views/tag/tmpl/default_items.php

untuk

[root]/templates/your_template_name/html/com_tags/tag/default.php
[root]/templates/your_template_name/html/com_tags/tag/default.xml
[root]/templates/your_template_name/html/com_tags/tag/default_items.php

ganti nama file dengan sesuatu yang Anda sukai, misalnya 'taggedblog', sehingga akan menjadi:

[root]/templates/your_template_name/html/com_tags/tag/taggedblog.php
[root]/templates/your_template_name/html/com_tags/tag/taggedblog.xml
[root]/templates/your_template_name/html/com_tags/tag/taggedblog_items.php

Buka file [root] /templates/your_template_name/html/com_tags/tag/taggedblog.xml di bagian atas file Anda akan melihat kode ini:

<layout title="com_tags_tag_view_default_title" option="com_tags_tag_view_default_option">

ubah itu menjadi

<layout title="Tagged Blog" option="taggedblog">

Pada titik ini, Anda akan melihat jenis item menu baru yang disebut Tagged Blog saat membuat item menu baru dari manajer menu Anda. Lihat gambar di bawah ini

Item Menu Blog Tagged Baru

Sekarang, Buka file [root] /templates/your_template_name/html/com_tags/tag/taggedblog_items.php

pada baris 62 hapus kode ini:

<ul class="category list-striped">

dan itu </ul>tag penutup di baris 90

kemudian, masih pada file yang sama, hapus kode-kode ini dimulai pada baris 64:

<?php if ($item->core_state == 0) : ?>
                <li class="system-unpublished cat-list-row<?php echo $i % 2; ?>">
            <?php else: ?>
                <li class="cat-list-row<?php echo $i % 2; ?> clearfix" >

<?php endif; ?>di baris 70, dan tag penutup </li>di baris 85

Selanjutnya, tambahkan <div class="span5">pada 64 baris setelah kode <?php foreach ($items as $i => $item) : ?>dan tambahkan penutup </div>sebelum<?php endforeach; ?>

Selanjutnya, lingkari baris 77 sebelum kode <?php if ($this->params->get('tag_list_show_item_description', 1)) : ?>menambahkan kode ini:

<?php
    $db = JFactory::getDBO();
    $query = $db->getQuery(true);
    $query->select('introtext')->from('#__content')->where('id=' . (int)$item->content_item_id);
    $db->setQuery($query);
    //displaying the intro image
    $images  = json_decode($item->core_images);
    if(!empty($images->image_intro)) {
        echo '<img src="'.$images->image_intro.'">';
    }
    //displaying the intro text
    $introtext = $db->loadResult();
    echo $introtext;

    ?>

Pada titik ini, gambar introtext dan intro seharusnya sudah ditampilkan di situs web.

Sekarang, buka file [root] /templates/your_template_name/html/com_tags/tag/taggedblog.php , di sekitar baris 51 Anda akan melihat kode ini <?php echo $this->loadTemplate('items'); ?>, ubah baris itu menjadi:

<div class="row"><?php echo $this->loadTemplate('items'); ?></div>

Itu saja.

Sekarang cobalah untuk membuat item menu dengan jenis Blog Tagged dari manajer menu joomla Anda, dan lihat hasilnya.

Untuk mempermudah, saya telah mengunggah file-file di atas di sini . Selamat bersenang-senang!

webchun
sumber
2
Saya tidak percaya fitur ini belum diterapkan.
Alfredo Osorio
0

Pada bulan Maret 2019, ini tampaknya masih menjadi masalah .... Sebuah pendekatan yang berbeda mungkin menggunakan pengalihan server web Anda (Apache / ngnix / IIS / etc) untuk menangkap tautan "standar" dan mengarahkan mereka ke tautan Anda sendiri. Kelemahannya (seperti yang saya lihat) adalah: - akses ke file konfigurasi yang relevan untuk server web (untuk Apache, ini dapat dilakukan di per-direktori .htaccess, selama mod_rewrite diaktifkan) - Anda memiliki sejumlah tag untuk memungkinkan Anda membuat item menu tujuan untuk masing-masing (jika Anda memiliki 200 tag, Anda dapat membuat item menu untuk masing-masing, tetapi siapa yang mau repot?) Aturan penulisan ulang Apache yang saya gunakan untuk ini adalah:

RewriteBase /
ReWriteRule ^component/tags/tag/([^\.]+).html$ /$1-articles [L,R=301]

Jadi, untuk setiap tag, saya memiliki artikel tujuan dalam format yang ingin saya akses oleh item menu dengan nama tag dan -artikel (misalnya, tag1-artikel). Tentu, ini merupakan solusi, tetapi saya telah mendapatkan hasil yang saya inginkan mengingat saya dapat memenuhi dua "kondisi" (akses konfigurasi Apache dan tidak banyak tag) di atas.

Mark Bradley
sumber