Свої файли шаблону для окремих записів типу контенту
Автор: Олег Васильович я
Опубліковано: 2020 / 08 / 16
Переглядів: 1473
Редагувалося: 10 раз — останній 11 березня 2022
|
Варіант №1: коли нам потрібний окремий шаблон для всіх записів ТК
Для вирішення такої задачі, створюємо в папці "content" актуального шаблону файл news_item.tpl.php, де "news" - системне ім'я потрібного ТК.Більше робити нічого не потрібно (система підхопить його автоматично)
Варіант №2: коли нам потрібна можливість обирати шаблон для окремих записів ТК
В такому випадку сторюємо в тій же папці файл news_item_new.tpl.php, де news - системне ім'я потрібного ТК, new - довільна назва. Таких файлів можна створити кілька.Після цього при додаванні чи редагуванні зпису в цьому ТК у адміністраторів стане доступна опція вибору шаблона.
Варіант №3: нам потрібні свої шаблони для окремих записів ТК, які будуть підключатися автоматично
Такої можливості в системі не існує, але ми спробуємо її організувати одразу в 2-х варіантах.Можна зробити через додаткове поле в потрібному ТК.
1.Створимо поле типу список (не виводимо його ніде, доступ для редагування, - кому потрібно) з такими опціями:
var1
var2
var3
2. Створимо в тій же папці "content" такі файли:
news_item.tpl.php, де "news" - системне ім'я потрібного ТК (шаблон по замовчуванню)
news_item_var1.tpl.php, news_item_var2.tpl.php, news_item_var3.tpl.php (шаблони додаткові)
В файлі news_item.tpl.php розмістимо такий код:
<? $ctype_name = $item['ctype_name']; $template_name = $fields['template_item']['handler']->setItem($item)->parse( $item['template_item'] ); $include_file = PATH.'/templates/default/content/'.$ctype_name.'_item_'.$template_name.'.tpl.php'; ?> <?php include $include_file ; ?> <?php } else { ?> Тут шаблон запису по замовчуванню <?php } ?>
Можна зробити з умовою по URL
Такий варіант підійде, наприклад, в тому випадку, коли в різних ТК є записи, які мають певний URL, що співпадає і ці записи потрібно вивести інакше, але може бути використаний і в межах одного ТК.
1. Зробимо копії файлу default_item.tpl.php з такми назвами:
about_item.tpl.php, rules_item.tpl.php, де "about" та "rules" - URL записів
2. В default_item.tpl.php розмітимо код:
<? $core = cmsCore::getInstance(); $uri = $core->uri; $include_file = PATH.'/templates/default/content/'.$item_uri_anchor[0].'_item.tpl.php'; ?> <?php include $include_file ; ?> <?php } else { ?> Тут звичайний код файлу <?php } ?>
Якщо використати цей варіант для окремого ТК, то умову на підключення слід робити в файлі news_item.tpl.php, де "news" - системне ім'я потрібного ТК.
На цім все.
Миру та здоров'я вам!
Читайте також:
-
Закриваємо від певної групи (груп) необхідне в профілі користувача
Таким чином можна закрити як весь профіль, так і його певну частину. Зміни вносимо до файлу Код PHP: templates/default/controllers/users/profile_view.tpl.php Якщо у вас свій шаблон і у н...
-
Категорія типу контенту в опції "автопосилання" поля "Список"
Враховуємо категорію запису типу контенту в полі "Список". При активуванні опції "Автопосилання" лінк формується тільки з врахуванням кореневоі сторінки ТК та значення поля для ...
-
Перемикач базового кольору сайту
Віджет дозволить відвідувачам вибирати колірну схему сайту на свій смак (із запропонованих вами). Адаптований для тем, реалізованих на bootstrap. Доповнює контекстуальні селектори bootstrap 4 ан...
-
Об'єднуємо кілька ітерацій в циклі foreach в один блок, вставляємо рекламні блоки на прикладі віджета "Список контенту" в InstantCMS
Необхідність вставити потрібний код після певних ітерацій виникає досить часто. До прикладу - рекламні блоки. Розглянемо варіант коли рекламний блок треба вставляти завжди після однієї і тієї само...
# 16 серпня 2020 у 22:26 +1 | ||
|