/ / Использование различных шаблонов для разделов сайта
сентябрь 20 2008

Использование различных шаблонов для разделов сайта

Дорогие друзья,

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

Итак первое что нам необходимо это обратится к документации скрипта, которая гласит что шаблон main.tpl поддерживает следующие теги:

[aviable=раздел] текст [/aviable] который выводит текст заключенный в теги если просматривается указанный раздел сайта

также у этого тега есть противоположность

[not-aviable=раздел] текст [/not-aviable] который выводит текст заключенный в теги если просматривается любой раздел кроме указанного

Возьмем за основу пример задачи: сделать так, чтобы сайт использовал одно оформление шаблона, а обратная связь на сайте использовала другой. Исходя из этого нам необходимо открыть шаблон main.tpl и указать слеующее:

[aviable=feedback] тут весь текст шаблона, который будет показываться при просмотре обратной связи [/aviable]
[not-aviable=feedback] тут весь текст шаблона, который будет показываться везде кроме обратной связи [/not-aviable]

Но у этого есть один большой минус, ваш основной файл шаблона main.tpl будет слишком большого размера, т.к. по сути будет содержать два разных оформления, и тут мы опять обращаемся к документации и скрипта и узнаем о существовании прекрасного тега: {include file="my_block.tpl"}, который подключает указанный файл my_block.tpl в шаблон.

Исходя из всего выше изложенного финальная реализация выглядит следующим образом:

Содержание main.tpl:
[aviable=feedback] {include file="feedback_main.tpl"} [/aviable]
[not-aviable=feedback] {include file="all_main.tpl"} [/not-aviable]

В файле шаблона feedback_main.tpl мы делаем оформление обратной связи, а в файле all_main.tpl мы делаем оформление всего остального сайта. Вот собственно и все, легко и достачно просто реализовать, не нужно производить никаких модификаций скрипта. Также вы можете оформить оформление любого раздела, можете комбинировать несколько разделов и т.д. Чаще и внимательнее прочитывайте документацию к скрипту, там достаточно много полезного можно подчеркнуть для себя.

С уважением,

SoftNews Media Group

Комментарии

UdmDude

UdmDude

20 сентября 2008 09:42 Клиенты
0
В {include file="http://*/*.tpl"} - нельзя использовать абсолютный путь?
Zergio

Zergio

20 сентября 2008 10:02 Клиенты
0
Если бы еще подобным образом было можно {content} вывести в несколько колонок, было бы вообще шикарно!
celsoft

celsoft

20 сентября 2008 11:27 Администраторы
1
Цитата: UdmDude
В {include file="http://*/*.tpl"} - нельзя использовать абсолютный путь?

нет, файл должен лежать в папке шаблона
Цитата: Zergio
Если бы еще подобным образом было можно {content} вывести в несколько колонок, было бы вообще шикарно!

легко. есть такое тег HTML <div>, а у него замечательное свойство float:left
только делать это нужно не в main.tpl а в shortstory.tpl
Zergio

Zergio

20 сентября 2008 13:54 Клиенты
0
Цитата: celsoft
легко. есть такое тег HTML <div>, а у него замечательное свойство float:left
только делать это нужно не в main.tpl а в shortstory.tpl

Я над этим уже думал, вопрос как тогда задать количество колонок в строку? Задавать фиксированную или процентную ширину?

P.S. Вроде получилось, но у меня фиксированная ширина повсюду, на резиновом не пробовал.

P.P.S. Celsoft почему на иконке группы "Администратор" изображен человечек в немецкой гестаповской форме? Это имеет какой-то подтекст? smile
celsoft

celsoft

20 сентября 2008 21:44 Администраторы
0
Цитата: Zergio
Я над этим уже думал, вопрос как тогда задать количество колонок в строку? Задавать фиксированную или процентную ширину?

очень просто фиксируете ширину на количество пикселей, если дизайн резиновый то в процентном отношении, например 50% две колонки, 33% три колонки.

По высоте тоже можено отфиксировать, а чтобы если текст большой то задаете свойство overflow:hidden

Цитата: Zergio
P.P.S. Celsoft почему на иконке группы "Администратор" изображен человечек в немецкой гестаповской форме? Это имеет какой-то подтекст?

Что за глупости вы говорите, лично у меня никаких подобных ассоциаций эта иконка не вызывает, наверное много военных фильмов смотрите smile
evolver

evolver

21 сентября 2008 21:07 Клиенты
0
А не будет ли много проблем с таким кодом? Поясните какие теги будут не доступны при таком стечении обстоятельств?
celsoft

celsoft

21 сентября 2008 23:07 Администраторы
0
Что то я немного не понял...
Куда это ([aviable=feedback] {include file="feedback_main.tpl"} [/aviable]) ставить?

Содержание main.tpl

Цитата: evolver
А не будет ли много проблем с таким кодом? Поясните какие теги будут не доступны при таком стечении обстоятельств?

а какие могут быть проблемы, все будет нормально
kemper

kemper

22 сентября 2008 21:10 Посетители
0
подскажите как добавить отдельную css для IE?
<!--[if IE]>
./...
<![endif]-->
не работает
pompey

pompey

23 сентября 2008 02:42 Посетители
0
я уже давно пользуюсь этой фишкой и считаю это одно из самых лучших преимуществ движка по сравнению с другими! спасиба! :)
winblog

winblog

24 сентября 2008 14:25 Клиенты
0
Zergio,
Цитата: Zergio
P.S. Вроде получилось, но у меня фиксированная ширина повсюду, на резиновом не пробовал.

Выложите, пожалуйста, код shortstory.tpl для двух колонок. А то что-то не получается. Не догоняю сколько должно быть тегов {short-story} и как они должны быть расположены.
celsoft

celsoft

25 сентября 2008 11:18 Администраторы
0
Цитата: azov-gorod
Я понял, что в main.tpl, мне не понятно где конкретно в коде я могу использовать это.

Если можно, пример... плиз.

а я что не пример привел? Там же четко написано Содержание main.tpl, т.е. main.tpl состоит всего из двух строчек
Araks

Araks

25 сентября 2008 13:39 Посетители
0
Скажите, а с помощью {include} возможно вывести на главной странице site.ru сразу какую-нибудь категорию? То есть я хочу вывести категорию книг на главную страницу, чтоб она работала своим обычным образом:
1) все новости из этой категории выводятся с помощью тэга {content} (не {custom}).
2) в самом низу перечислены все страницы (1,2,3,4 ... 54), то есть как и по умолчанию для главной страницы, но только, чтоб это была выбранная мной категория.

То есть мне нужно так сделать?
В шаблоне category.tpl:
шапка шаблона
[category=4]{content}[/category]
футер шаблона

В шаблоне main.tpl:
{include file="category.tpl"}

По-моему таким образом на главной ничего не будет выведено. И клацая по каким-либо разделам там тоже ничего не будет выведено. Только зайдя в КАТЕГОРИЮ №4 там будут новости.

А как сделать, чтоб все новости из этой 4-й категории выводились на главной, и больше никакие другие. При этом, чтоб в самом низу были страницы (1,2,3,4 ... 54) из этой категории...???

Помогите пожалуйста.
celsoft

celsoft

25 сентября 2008 15:04 Администраторы
0
вообще то связка тегов
[category=4]{content}[/category]

невыводит содержимое определенной категории, она выводит текст если просматривается указанная категория. Новости по определенным параметрам выводит только тег {custom}
alarmmotors

alarmmotors

27 ноября 2008 17:14 Клиенты
0
celsoft,
спасибо большое, таким способом получилось прикрутить форум, но возник вопрос, а как теперь в админку по редактированию шаблонов (Редактирование разделов шаблона:) добавить возможность редактирования основного шаблона с новым именем в моем случаи этот шаблон main_all.tpl
busekov

busekov

27 декабря 2008 18:01 Посетители
0
Добрый день!
Скажите пожалуйста, если я использую 2 или 3 шаблона для разных категорий, то есть

[category=1]{include file="main_1.tpl"}[/category]
[category=2]{include file="main_2.tpl"}[/category]
[category=3]{include file="main_3.tpl"}[/category]


как сделать, чтобы во всех других случаях, когда не указан шаблон, чтобы загружался только главный шаблон main_all.tpl? для ссылок не относящихся к этим категориям, для всего остального, для кого не указан шаблон?
busekov

busekov

28 декабря 2008 11:48 Посетители
0
Все, простите, разобрался, кому интересно, фаил main.tpl имеет следующее содержание:

[category=1]{include file="main_1.tpl"}[/category]
[category=2]{include file="main_2.tpl"}[/category]
[category=3]{include file="main_3.tpl"}[/category]

[not-category=1,2,3]{include file="main_all.tpl"}[/not-category]


То есть, у разделов 1,2 и 3 индивидуальный шаблон, а для всего остальноко используется главный шаблон main_all.tpl

Да, все просто :) Для кого то ни чего нового, а я очень доволен этим открытием)))

p.s. в строках "[category=1]" "[not-category=1,2,3]", цифры, это номер ID категории, который можно посмотреть в админке, при создании категории.
spychik

spychik

3 февраля 2009 22:35 Посетители
0
[aviable=search,stats]{include file="main_search.tpl"}[/aviable]
[not-aviable=search,stats]{include file="main_all.tpl"}[/not-aviable]

Не работает. Че делать? recourse
celsoft

celsoft

3 февраля 2009 23:00 Администраторы
1
Цитата: spychik
[aviable=search,stats]{include file="main_search.tpl"}[/aviable]
[not-aviable=search,stats]{include file="main_all.tpl"}[/not-aviable]

Не работает. Че делать?

Читать документацию в плане правильности написания синтаксиса тегов
spychik

spychik

3 февраля 2009 23:04 Посетители
0
Спс, мой косяк feel
Sergey

Sergey

13 апреля 2009 20:49 Посетители
0
Как выводить текст только на главной странице?
Или как не выводить текст только в статических страницах?!
Например. Уменя на главной странице (main.tpl), содержится текст "О нас". Этот текст можно спрятать от категорий, но как сделать так, что бы он не выводился на статических страницах?
OldBoy

OldBoy

31 мая 2009 15:23 Клиенты
0
как сделать чтобы вывелся другой шаблон для одной статической страницы?...

к примеру, я сделал страничку internet_navigator.html ....
Avaks

Avaks

20 июня 2009 01:48 Клиенты
0
У меня такой же вопрос. Есть несколько статических страниц и очень надо выводить разные элементы (грубо говоря, подсветка меню) для разных страниц. Для категорий - понятно, а для страниц есть способ так сделать?
Pearlowka

Pearlowka

25 марта 2010 17:11 Клиенты
0
Цитата: OldBoy





как сделать чтобы вывелся другой шаблон для одной статической страницы?...

к примеру, я сделал страничку internet_navigator.html ....


у меня тоже этот же вопрос, помогите пожалуйста
celsoft

celsoft

25 марта 2010 17:13 Администраторы
0
Цитата: Pearlowka
у меня тоже этот же вопрос, помогите пожалуйста

пункт номер 20 https://dle-news.ru/release/908-datalife-engine-v85-final-release.html из новых возможностей версии 8.5
voodoo13

voodoo13

19 апреля 2010 13:26 Посетители
0
[aviable=...]

Хочу изменить вид только главной страницы сайта. Какое имя у главной страницы? main?

Информация

Посетители, находящиеся в группе Гости, не могут оставлять комментарии к данной публикации.
Календарь
«    Август 2017    »
ПнВтСрЧтПтСбВс
 123456
78910111213
14151617181920
21222324252627
28293031 
Опрос на сайте
Совершаете ли вы покупки в интернет?

Популярные новости
Архив новостей
Август 2017 (3)
Июль 2017 (1)
Июнь 2017 (1)
Апрель 2017 (3)
Март 2017 (2)
Февраль 2017 (1)