Облако тегов на PHP в Movable Type 4

Movable Type стала одной из первых платформ, в которой появились теги. Случилось это ещё в третьей версии. А в четвёртой версии теги можно добавлять не только к записям, но и к загружаемым файлам или страницам. Но, как и в предыдущей версии MT, так и в текущей, функциональность тега MTTags не до конца продумана.

В третьей версии можно было выводить список всех (!) тегов, исключая возможность ограничения количества. По идее должно было получиться облако. Когда тегов становилось много, облако превращалось в тучу и занимало большую часть экрана. Тогда на помощь пришло решение на PHP, которое позволяло отображать облако с тегами, ранг которых был равен или меньше 4.

В четвёртой версии добавили возможность устанавливать количество отображаемых тегов, а также их сортировку по рангу. То есть стало возможно показать на сайте облако, в котором будет 50 самых популярных тегов. Сколько тегов будет в облаке — каждый, конечно, решит сам, но появление такой возможности порадовало меня. Но вот незадача: при сортировке по рангу теги так же и отображаются — чем популярней тег, тем он выше, или наоборот. Простой пример:

Облако тегов на MT.ru

Это совершенно не годится, так как визуальное восприятие такого облака не вызывает должного желания кликнуть по ссылке. Поэтому необходимо прибегнуть к помощи PHP.

Создаём нормальное облако тегов

  1. Самое первое, что необходимо — сделать расширение файлов .php. Для этого перейдите в настройки блога, а затем во вкладку «Publishing». И возле пункта «File Extension for Archive Files» впишите «php» (без точки в начале). После этого все архивы (посты, категории, страницы, архивы по датам) будут публиковаться с новым расширением. Но некоторые индексные файлы, например, Main Index и Archives, останутся с прежними расширениями. Поэтому необходимо перейти в раздел Templates и вручную указать расширение для этих шаблонов.
  2. Далее необходимо создать индексный шаблон (назовём его TagsCloud, с именем публикуемого файла tagscloud.php), который будет публиковаться автоматически, со следующим содержимым:
    <?
      $tagslist = array(<MTTags limit="50" sort_by="rank" glue=", ">"<$MTTagName$>" => <$MTTagRank max="10"$></MTTags>);
      ksort($tagslist);
      reset($tagslist);
      while (list($tag, $tagsize) = each($tagslist))
      {
       echo '<a href="http://example.com/tag/'.rawurlencode($tag).'" class="t'.$tagsize.'" rel="tag">'.$tag.'</a>';
       echo "\n";
       }
    ?>
    Скачать пример с комментариями.
  3. Чтобы шаблон TagsCloud отображался на других страницах сайта, его нужно включить в эти страницы. Делается это с помощью функции include в PHP:
    <? include ("/home/user/example.com/template-path/tagscloud.php");  ?>

    Если у вас стандартные шаблоны, то эту строчку необходимо поместить в шаблон сайдбара («Sidebar (3-column)» или «Sidebar (2-column)»). Найдите в одном из этих шаблонов код <MTTags limit="20" sort_by="rank">, завершающийся </MTTags>, удалите её и замените строчкой из третьего пункта. Обратите внимание, что у каждого свой путь на сервере, его нужно узнать самостоятельно, заглянув в настройки публикации блога.

 Ну вот  и всё, теперь у вас должно быть нормальное облако тегов, вроде этого:

Облако тегов на ProBlog.ru

Ссылки по теме

  • Everybody loves tags!
    Смотрим пункт «Beautifying the tag search link URLs» и узнаём, как сделать красивые URL для тегов.

Комментариев: 5

Сортировку тэгов по имени в MT 4.1 можно сделать легче:
Для сортировки тэгов по имени в "Облаке тэгов" Movable Type 4.1 надо отредактировать стандартный виджет "Tag Cloud", заменив "rank" в строке на "name", в итоге получаем .
http://holygun.ru/blog/2008/03/-mt.html

Если отсортировать по name, при этом задав лимит по количеству тегов, то вполне вероятно, что самый популярный тег не попадёт в облако.

Понятно ;) У меня Ваш способ не прошел, была ошибка типа mismatched {/mttags} в Smarty.

У вас включена динамическая публикация?

Статистика

Яндекс.Метрика

Последние записи

  • Обновился сайт с плагинами

    Сайт plugins.movabletype.org, долгое время находившийся в полурабочем состоянии, вновь стал рабочим. У каждого плагина появились обнозначения о совместимости со старыми и новыми версиями. Также многие...

  • Где искать плагины для Movable Type

    Давным давно разработчики Movable Type перенесли совместную работу с кодом на Гитхаб. Благодаря этому, а также стандарту именования плагинов, поиск на Гитхабе находит уже 701...

  • Movable Type 5.2.10

    Изменения в новой версии незначительны, только исправления небольшой угрозы безопасности. Скачать новую версию: 5.2.10 в zip-архиве 5.2.10 в tar.gz-архиве Только изменённые файлы (в сравнении с...

  • Основные нововведения в Movable Type 6

    В шестой версии появилось несколько новшеств, которых нет ни в одной другой системе управления контентом, и благодаря которым Movable Type стал ещё лучше. Data API...

  • Movable Type 5.2.9

    В новой версии нет значительных изменения, обновление касается только безопасности системы — была устранена ошибка, благодаря которой была возможна XSS-атака через визуальный редактор. Скачать новую...

Закрыть