Вывод списка тегов в приложении Блог Есть решение

Как получить список тегов из приложения блог?

Установлен стандартный плагин Теги. Хочу получить массив тегов на главной Блога, но что-то не выходит. Пробую так:

{if $cloud = blogTag::getAll()}
{foreach $cloud as $tag}
<a href="{$wa_app_url}tag/{$tag.name}/">{$tag.name|escape}</a>
{/foreach}
{/if}

Получаю ошибку: Fatal error: Class 'blogTag' not found. Подскажите кто-нибудь, в чем ошибка? Как получить эти теги?

1 ответ

  • 1
    replicant 6 сентября 2018 22:20 # Решение

    В теме Default в сайдбаре вот так выводится через этот плагин

    {foreach $frontend_action as $plugin => $output}
    	  {if !empty($output.sidebar)}
    	      <div class="{$plugin}">
                  {$output.sidebar}
              </div>
          {/if}
    {/foreach}

    Эта конструкция выведет помимо тегов ещё и категории записей тоже из стандартного плагина для блога.

    • +1
      Максим Максим 7 сентября 2018 05:38 #

      Это не решение, мне нужно вывести теги отдельно от категорий...

      • +1
        replicant replicant 7 сентября 2018 09:00 #

        Ну почему же не решение. В дело вступает CSS, т.к. выводимые через эту конструкцию данные двух плагинов все же отличаются и div.category-plugin в нужном месте шаблона получает display:none


        Но это решение, которое сходу напрашивается, когда верстаешь сайт и кроме css ничего толком не замечаешь, а теперь следите за руками.

        Обратите внимание на строки

        {if !empty($output.sidebar)}
        <div class="{$plugin}"> 

        А в частности на переменную {$plugin} т.к. она у нас содержит tag-plugin и category-plugin (при наличии двух плагинов одновременно), выводимые в рамках одного foreach. Да и это видно на скриншоте HTML кода страницы.

        Добавим условие

        {if !empty($output.sidebar) && $plugin == 'tag-plugin'}

        И категории пропадают, т.к. мы отсеиваем ненужное.

        Для примера я взял исходный получившийся код

        	{foreach $frontend_action as $plugin => $output}
        	  {if !empty($output.sidebar) && $plugin == 'tag-plugin'}
        	      <div class="{$plugin}">
                      {$output.sidebar}
                  </div>
              {/if}
            {/foreach}

        И поставил его в самый верх шаблона main.html в Блоге и у меня над записями появились теги.

        Данная конструкция, если не ошибаюсь, не будет работать в stream.html,  но это уже другой вопрос.

        P.S. для категорий нужно использовать $plugin == 'category-plugin'

        Если вы хотите глобально подправить вывод самих тегов и их вид и оформление (opacity на корню зарубить или добавить чего от себя), то вам нужен файл blogTag.plugin.php в исходниках плагина и функция frontendSidebar.

Добавить ответ

Чтобы добавить комментарий, зарегистрируйтесь или войдите