it-swarm-tr.com

Ön uçtaki belirli bir üst öğe için iç içe etiketlerin listesini bağlantı olarak nasıl sorgulayabilir ve görüntüleyebilirsiniz?

Belirli bir üst öğe ve ön uçta etiket başlığı ve kimliğine sahip bir bağlantı olarak görüntülenen bir etiket listesi oluşturmak için db'yi sorgulamanın en iyi yolu nedir?

Bu, iki joomla etiketi alanı kullanan özel bir joomla mvc bileşeni içindir: "kategoriler" ve "koleksiyon".

Etiket listesini aldıktan sonra, bileşenleri liste görünümünde sonuçları sınırlamak için jinput ile etiket değişkenini sayfaya geri değişken olarak geçireceğim.

3
user2097091

Bir etiket listesi oluşturmak için JHelperTags sınıfından temel olarak getTagTreeArray () yöntemini alabilir ve ihtiyaçlarınıza göre değiştirebilirsiniz - sonuçta elde edilen diziyi yalnızca kimliklerle değil, etiket adlarıyla da doldurabilir. Daha sonra ön uçta etiket bağlantısını almak için getTagRoute ()TagsHelperRoute sınıfı yöntemini kullanabilirsiniz.

Bu yardımcı olur umarım.

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>';
}

Ayrıca, tüm üst etiket sipariş form kökünü mevcut derinlik düzeyine getirmek için:

<?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>';
}

Lütfen dikkat: Çöpe atılanlar da dahil olmak üzere tüm etiketleri alacağınız için yayınlanan mülkü kontrol etmeniz gerekebilir. 1 yayınlandı, 0 gizli, -2 çöp kutusuna gönderildi, 2 arşivlendi.

Ayrıca bkz. https://api.joomla.org/cms-3/classes/Joomla.CMS.Router.Route.html ayrıca.

0
Marcel