Skip to content

Latest commit

 

History

History
72 lines (53 loc) · 2.85 KB

010_Сайдбар.md

File metadata and controls

72 lines (53 loc) · 2.85 KB

Сайдбар

Оглавление

В сайдбаре сайдбара стоит заголовок "популярное". Я решил сделать там просто случайные посты.

Нам нужно выбрать 5 материалов.

Изменения контроллера

Сайдбар располагается также во всех шаблонах, значит, использовать будем BaseController

Давайте добавим в метод globalElements ещё одну переменную и получим в неё посты:

$result = $this->evo->runSnippet('DocLister', [
    'parents' => 2,
    'depth' => 1,
    'tvPrefix' => '',
    'tvList' => 'post_mainphoto',
    'total' => 5,
    'orderBy' => 'RAND()',
    'returnDLObject' => 1,
]);
$this->data['posts_sidebar'] = $result->getDocs();

Использован параметр Доклистера 'orderBy' => 'RAND()' который представляет собой строку для сортировки материала. Кстати, сюда подойдёт любая строка,удовлетворяющая правилам построения параметра ORDER BY в SQL запросе.

Изменения в шаблоне

Посты в сайдбаре расположены в файле views/parts/sidebar.blade.php. Откройте его и найдите <ul class="posts">.

Вызываем знакомый нам цикл foreach:

<ul class="posts">
  @foreach ($posts_sidebar as $post)
  <li>
    <article>
      <header>
        <h3>
          <a href="{{ urlProcessor::makeUrl($post['id'] ) }}"
            >{{ $post['pagetitle'] }}</a
          >
        </h3>
        <time class="published">{{ date('d.m.Y',$post['createdon']) }}</time>
      </header>
      <a href="{{ urlProcessor::makeUrl($post['id']) }}" class="image"
        ><img src="{{ $post['post_mainphoto'] }}" alt=""
      /></a>
    </article>
  </li>
  @endforeach
</ul>

Особых изменений нет, разве что мы взяли поле createdon и сделали из него читаемую дату.

Обновите страницу несколько раз, посты должны изменяться.

Итого

  • Мы узнали о навых параметрах Доклистера
  • На сайте работает админка, посты, пост, сайдбар, обе менюшки.

Настала пора добавить то, без чего не бывает блога - теги для постов.