Головна » Блоги » InstantCMS - переваги та недоліки системи » Шаблон для віджета "Список контенту" з посиланням на категорію запису та її описом

Шаблон для віджета "Список контенту" з посиланням на категорію запису та її описом

0
Голосів: 0
Опубліковано: 2018 / 11 / 25
Переглядів: 288
Редагувалося: 5 раз — останній 25 листопада 2018
Шаблон для віджета "Список контенту" з посиланням на категорію запису та описом категорії
В тому випадку, якщо запис знаходиться в кореневому розділі, то виводим посилання на тип контенту та його опис.

На той випадок, коли для категорії або типу контенту не прописанний текстовий опис (це той, що для людей laugh ), його місце займає SEO опис (це той, що для пошукових роботів).

Для початку зробимо додатковий шаблон для виводу віджетом списку записів.
Він має знаходитися в папці templates - default - controllers - content - widgets - list
Просто візьмемо любий з файлів, що в ній знаходиться, та збережемо з іншою назвою.
Хай буде list_cat.tpl.php
Десь всредині циклу
Код PHP:
  1.  
  2. <?php foreach($items as $item) { ?>
  3.  
додамо такий код:
Код PHP:
  1.  
  2. <?php
  3.  
  4. $parent_cat = cmsCore::getInstance()->db->getFields('con_'.$ctype['name'].'_cats', 'id='.$item['category_id'], 'title, description, slug, seo_desc');
  5.  
  6. if($item['category_id'] == 1){
  7.  
  8. echo '<a title="'.$ctype['title'].'" href="'.href_to($ctype['name']).'">'.$ctype['title'].'</a>';
  9.  
  10. if(!empty($ctype['description'])) {
  11. echo '<div class="parent_description">'.string_short($ctype['description'], 200).'</div>';
  12. } elseif(!empty($ctype['seo_desc'])) {
  13. echo '<div class="parent_seo_desc">'.string_short($ctype['seo_desc'], 200).'</div>';
  14. }
  15.  
  16. } else {
  17.  
  18. echo '<a title="'.$parent_cat['title'].'" href="'.href_to($ctype['name'], $parent_cat['slug']).'">'.$parent_cat['title'].'</a>';
  19.  
  20. if(!empty($parent_cat['description'])) {
  21. echo '<div class="parent_description">'.string_short($parent_cat['description'], 200).'</div>';
  22. } elseif(!empty($parent_cat['seo_desc'])) {
  23. echo '<div class="parent_seo_desc">'.string_short($parent_cat['seo_desc'], 200).'</div>';
  24. }
  25. }
  26. ?>
  27.  
Як бачимо, всі необхідні нам в цьому випадку дані про тип контенту містить змінна $ctype а от все, що стосується категорії доводиться діставати з бази по id категорії. Про всяк випадок, описи
ми прогнали через функцію string_short (функція скорочує текст до вказаної кількості знаків, та прибирає форматування).
В принципі, все готово. залишається лише стилізувати нові елементи.

Шоб вивести віджет з цим шаблоном, в його налаштуваннях на вкладці "Опції" в полі "Стиль" треба вибрати "Шаблон, що вказаний на вкадці дизайні", в останній, в полі "Шаблон віджета" вибрати створений нами файл.

Читайте також:

  • Замінюємо заголовки категорій окремого взятого типу контенту на іх опис
    Замінюємо заголовки категорій окремого взятого типу контенту на іх опис

    Вітаю! Іноді виникає необхідність в різному представленні назв категорій в меню і адмінці та при перегляді категорій на сайті. Є кілька варантів вирішення. Про один з них (з допомогою спеціальноі п...

  • Віджет "Набори"
    Віджет "Набори"

    Віджет дозволить вивести набори типів контенту в InsatntCMS на потрібній сторінці. Опцій всього лише дві: вибір типу контенту (можливий "автоматичний" варіант) та заборона виводу віджета ...

  • Віджет "Зворотній відлік"
    Віджет "Зворотній відлік"

    Веде зворотний відлік до зазначеної в налаштуваннях дати. Є можливість додатково призначити дату закінчення події (для подій з періодом). У цьому випадку, після настання початку події, буде вестис...

  • Поле "посилання" з додатковими налаштуваннями
    Поле "посилання" з додатковими налаштуваннями

    Трішки перероблене дефолтне поле. Якщо не введено http:// додається по замовчуванню (без опції) Можна відкривати зовнішні посилання через редирект Внутрішні можна відкривати в новій вкладці (зовніш...

Коментарі (0)

Немає коментарів. Ваш буде першим!