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

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

0
Голосів: 0
Опубліковано: 2018 / 11 / 25
Переглядів: 42
Редагувалося: 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 (функція скорочує текст до вказаної кількості знаків, та прибирає форматування).
В принципі, все готово. залишається лише стилізувати нові елементи.

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

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

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

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