it-swarm-id.com

Bagaimana cara menanyakan dan menampilkan daftar tag bersarang untuk induk tertentu di ujung depan sebagai tautan?

Apa cara terbaik untuk menanyakan db untuk menghasilkan daftar tag yang cocok dengan orang tua tertentu dan ditampilkan di ujung depan sebagai tautan dengan judul tag dan id?

Ini untuk komponen joomla mvc khusus yang menggunakan dua bidang tag joomla: "kategori" dan "koleksi".

Setelah saya memiliki daftar tag saya kemudian akan melewati id tag sebagai variabel kembali ke halaman dengan jinput untuk membatasi hasil dalam tampilan daftar komponen.

3
user2097091

Untuk menghasilkan daftar tag yang dapat Anda ambil getTagTreeArray () metode dari JHelperTags kelas sebagai basis dan memodifikasinya untuk kebutuhan Anda - Anda dapat mengisi array yang dihasilkan tidak hanya dengan ID, tetapi juga dengan nama tag. Kemudian di frontend Anda dapat menggunakan getTagRoute () metode TagsHelperRoute kelas untuk mendapatkan tautan tag.

Semoga ini membantu.

3
Dmitry Rekun
<?php
defined('_JEXEC') or die; // Joomla
$parent_tag_id=12345; // your tag id here
JLoader::register('TagsHelperRoute', JPATH_BASE . '/components/com_tags/helpers/route.php');
$tags_tree=JTable::getInstance('Tag', 'TagsTable')->getTree($parent_tag_id);
// Show children:
foreach($tags_tree as $tags_tree_id=>$tags_tree_item) {
    echo 'DEBUG: ';
    echo ' id:'    . $tags_tree_item->id;
    echo ' level:' . $tags_tree_item->level;
    echo ' path:'  . $tags_tree_item->path;
    $link=TagsHelperRoute::getTagRoute($tags_tree_item->id . ':' . $tags_tree_item->path);
    echo ' link: ' . JRoute::_( $link, true, 1);
    echo '<br>';
}

Selain itu, untuk mendapatkan semua induk tag memerintahkan form root ke level kedalaman saat ini:

<?php
defined('_JEXEC') or die; // Joomla
$tag_id=12345; // your tag id here
$parent_tags=JTable::getInstance('Tag', 'TagsTable')->getPath($tag_id);
// Show parents and self:
foreach($parent_tags as $parent_tags_id=>$parent_tags_item) {
    echo 'DEBUG: ';
    echo ' id:'        . $parent_tags_item->id;
    echo ' level:'     . $parent_tags_item->level;
    echo ' path:'      . $parent_tags_item->path;
    echo ' published:' . $parent_tags_item-->published;
    echo '<br>';
}

Harap perhatikan: Anda mungkin perlu memeriksa properti yang diterbitkan, karena Anda akan mendapatkan semua tag, bahkan yang dibuang ke tempat sampah. 1 dipublikasikan, 0 disembunyikan, -2 dibuang, 2 diarsipkan.

Lihat https://api.joomla.org/cms-3/classes/Joomla.CMS.Router.Route.html juga.

0
Marcel