Трюки с шаблонами #1

Как известно, с помощью языка шаблонов Movable Type можно реализовывать потрясающие вещи. Часто мне попадаются примеры, о которых нужно обязательно рассказать. Обычно, примеры маленькие, что создавать для них отдельное сообщение было бы бессмысленно. Поэтому они будут публиковаться по несколько штук.

Похожие записи

<mt:entryiftagged>
   <mt:setvarblock name="curentry"><mt:entryid /></mt:setvarblock>
   <mt:setvarblock name="relatedtags"><mt:entrytags glue=" OR "><mt:tagname /></mt:entrytags></mt:setvarblock>
   <mt:setvarblock name="listitems">
      <mt:entries tags="$relatedtags" unique="1" lastn="10">
         <mt:setvarblock name="listentry"><mt:entryid /></mt:setvarblock>
         <mt:unless name="listentry" eq="$curentry"><li><a href="<mt:entrypermalink />"><mt:entrytitle /></a></li></mt:unless>
      </mt:entries>
   </mt:setvarblock>
   <mt:if name="listitems">
        <div id="recentpost">
        <p id="recent-post">Похожие записи</p>
        <ul>
         <mt:var name="listitems">
        </ul>
        </div>
   </mt:if>
</mt:entryiftagged>

Подробная информация об этом примере. Там же есть пример для составления списка похожих страниц. (Спасибо Евгений Носову за ссылку на более правильный пример.)

Получение списка email адресов всех авторов:

<mt:Authors include_blogs="all">
            <mt:IfNonEmpty tag="AuthorEmail">
                        <mt:IfNonEmpty tag="AuthorDisplayName">"<mt:AuthorDisplayName />" </mt:IfNonEmpty>
                        &lt;<mt:AuthorEmail />&gt;,
            </mt:IfNonEmpty>
</mt:Authors>

Автор: Jesse Gardner.

Ещё несколько примеров для работы с изображениями в сообщениях на сайте LMT.

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

Такой код не работает. Вот так нужно: http://wiki.movabletype.org/Related_Entries

Код рабочий, но, как объясняется в Wiki, он будет отображать записи, остортированные по дате, а не по релевантности. К тому же, записи могут дублироваться.

Но там же приведён гораздо более продуманный код. Спасибо за ссылку.

Код, который у вас приведен не совпадает с первым примером по ссылке. TagName не хватает, какие-то тэги не закрыты. В таком виде, как опубликовано у вас он работать отказался, что собственно и не удивительно. Хорошо бы поправить, вещь полезная, я вот уже поставил себе.

Да, точно. Ещё раз спасибо, уже заменил на код с той странице :)

Нет проблем :) Я уже давно хочу вам как-то помочь

О, это очень хорошо :)
Сейчас , правда, есть только возможность писать в этот блог. Если есть что рассказать, с радостью сделаю автором.

А пример готовый есть где глянуть?
Меня терзают смутные сомнения, что выведет такой код возде каждой новости список ака Recent Entries, только не урезанный..
(хочу вывести под каждым постом штук по 5 Related Articles ну и 5 Recent Articles)

Ыыы, этот код точно не работал :(
Всё потому, что в setvarblock данные должны располагаться в одну строку, иначе вообще ничего выведено не будет.

Поправил этот код, а также добавил к нему параметр, чтобы выводились только последние 10 похожих записей. Пример работы можно посмотреть в ProBlog'e. Лучше всего работает, когда мало тегов у записи.

А 5 последних записей вывести вообще легко.
Вот так примерно:
<mt:entries lastn="10">
<mt:EntriesHeader><ul></mt:EntriesHeader>
<li><a href="<mt:entrypermalink />"><mt:entrytitle /></a></li>
<mt:EntriesFooter></ul></mt:EntriesFooter>
</mt:entries>

Для "последних записей" готовый код уже есть в widgets..
Пример на ProBlog'e посмотрел, из поста в пост одинаковые "Похожие записи", может не 1-в-1, но 3 из 5-ти точно :(

Вот это как раз и есть те особенности, когда лучше, чтобы было меньше тегов у записи. Да и к тому же, здесь ещё важен параметр lastn, из-за которого выводятся последние посты. Т.е. происходит следующее:

— Movable Type создаёт массив из тегов конкретной записи.
— Затем создаёт массив всех записей, которые связаны с этими тегами.
— А уже после всего этого берёт последние N записей из массива записей.

Таким образом, релевантность очень низкая может получиться. Так как на последнем этапе записи отбираются по дате, а не по релевантности.

Хм... А я сразу интуитивно в одну строку сделал :) и сразу всё заработало. http://greenword.ru/2008/04/earthday.html (в правой колонке, блок "Похожие записи"). Релевантность довольно-таки вменяемая.
To Андрей Серебряков: в общем-то, думаю, найду, что поведать. Мы уже переписывались на эту тему. Я ещё предлагал написать о моем блоге greenword.ru в рубрике "хорошие блоги на movable type" :)

Статистика

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

  • Movable Type 5.2.7

    Состоялся релиз новой версии Movable Type 5.27, основные изменения которого: Новая адаптивная тема «Eiger». Для редакции Pro и Advanced доступен плагин «Smartphone Option», благодаря которому...

  • Автоподстановка тегов в Movable Type

    Не знаю, как для вас, а для меня стало открытием, что в Movable Type работает автоподстановка тегов на кириллице — для этого достаточно ввести первые...

  • Movable Type 5.2.3

    Сегодня состоялся релиз новой версии Movable Type 5.2.3. Изменение всего одно — если в параметрах MySQL было разрешено 20 или менее соединений (max_user_connections), то Movable...

  • Movable Type на PSGI и nginx

    В Movable Type 5.2 появилась встроенная поддержка PSGI. В связке с nginx это даёт значительный прирост производительности — страницы открываются не просто быстро, а невероятно...

  • Патч для Movable Type 4.38, устраняющий проблему безопасности

    В Movable Type версий 4.2 и 4.3 обнаружена уязвимость в скрипте обновления. Вчера разработчики выложили обновлённый скрипт, устраняющий эту проблему. Для устранения уязвимости достаточно загрузить...

Закрыть