Следующая/предыдущая и похожие новости в Блоге

3

Не могу найти в системе вывод ссылок на следующую и предыдущую новость (в рамках категории или всего Блога), а также блока "Похожие новости" или "Рекомендуем посмотреть" и т.п.. В движке нет функции для этого вывода?

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

Еще один вопрос: Можно ли добавлять товары в корзину магазина, если они выведены в блоге?

3 комментария

  • +1
    Worker Worker 24 ноября 2015 16:31 #

    Нашел решение одной из задач. Похожие новости (по тому принципу, что из одной категории Блога) реализуется так:

    {$similar_posts = $wa->blog->posts($post.blog_id, 6)}
    {$similar_counter = 0}
    <h3>Другие публикации</h3>
    <ul>
    {foreach $similar_posts as $similar_post}
    {if ($post.id != $similar_post.id) && ($similar_counter < 5)}
    {$similar_counter =+ 1}
    <li><a href="{$similar_post.link}">{$similar_post.title}</a></li>
    {/if}
    {/foreach}
    </ul>

    Вывод 5 записей из одной категории с условием, что текущая новость в списке не повторяется

    • +3
      Worker Worker 24 ноября 2015 16:59 #

      Решение для "следующая/предыдущая публикация"

      {$prev = null}
      {$next = null}
      {$siblings = $wa->blog->posts($post.blog_id)}
      {foreach $siblings as $sibling}
          {if $sibling.id == $post.id}
              {$next = $sibling}
          {/if}
          {if !$next && $sibling.id != $post.id}
              {$prev = $sibling}
          {/if}
          {if $next && $sibling.id != $post.id}
              {$next = $sibling}
              {break}
          {/if}
      {/foreach}
      {$last_sibling = end($siblings)}
      {if $last_sibling.id == $post.id}
          {$next = null}
      {/if}
      
      {if $prev || $next}
                  {if $prev && !$next}
                      <a href="{$prev.link}">Предыдущая публикация</a>
                  {elseif $next && !$prev}
                      <a href="{$next.link}">Следующая публикация</a>
                  {else}
                      <a href="{$prev.link}">Предыдущая публикация</a>
                      <a href="{$next.link}">Следующая публикация</a>
                  {/if}
      {/if}

      Добавить комментарий

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