Плагин добавляет на страницу вывода записей по метке зависимые метки.
Зависимые метки определяются как все метки у записей с этой меткой.
Это выглядит так:
Для работы плагина необходимо создать ушку 'tag-do-pages' с кодом php:
<?php $slug = mso_segment(2); if ($slug and function_exists('tags_tree_get')) echo tags_tree_get($slug); ?>
Вот как должно быть:
Возможно необходимо было бы автоматически создавать ушку, как описано в статье "Авто-обновление ушек MaxSite CMS".
Код функции tags_tree_get плагина очень простой:
// получим дочерние метки для этой метки function tags_tree_get($tag='') { if (!$tag) return ''; $cache_key = 'tags_tree_get_' . $tag; $out = mso_get_cache($cache_key); // if ($out) return $out; // получим страницы текущей метки if (!$tag) return array(); $par = array( 'no_limit' => true, // нам нужны все записи 'type' => false, // любой тип страниц 'custom_type' => 'tag', // запрос как в home 'work_cut'=>false, 'content'=>false ); $tag_pages = mso_get_pages($par, $pagination); // получим все - второй параметр нужен для сформированной пагинации // получим метки страниц $tags_array = array(); // здесь будет массив вида метка => кол-во if ($tag_pages) // есть страницы { foreach ($tag_pages as $cur_page) { foreach ($cur_page['page_tags'] as $cur_tag) // находим общие метки { if ($tag==$cur_tag) continue; if (!isset($tags_array[$cur_tag])) $tags_array[$cur_tag]=1; else ++$tags_array[$cur_tag]; } } } $tags_list = '';; if ($tags_array) { arsort($tags_array); foreach ($tags_array as $cur_tag=>$value) { $tag_link = '<a href="' . getinfo('site_url') . 'tag/' . $cur_tag . '">' . $cur_tag . ' (' . $value . ')' . '</a>'; if ($tags_list) $tags_list .= ', ' . $tag_link; else $tags_list .= $tag_link; } $tags_list = $tag . ' -> ' . $tags_list; } mso_add_cache($cache_key, $tags_list); return $tags_list; }