UMIhelp

Разработка сайта на UMI.CMS => Шаблоны TPL => Тема начата: korogan от 22 Августа 2011, 10:43:06

Название: Несколько разных шаблонов для модуля Новости
Отправлено: korogan от 22 Августа 2011, 10:43:06
Здравствуйте!

Столкнулся с такой проблемой.
Нужно вывести новости сайта на главной странице по 2 разным шаблонам.
Сделал 2 шаблона вывожу их так %news lastlist('portfolio', 'portfolio', 4,)%
На главной странице сайта выводятся так как задумано, согласно верстке в этих шаблонах.
А при просмотре раздела, где отображаются все новости _http://new.lipetsk-web.ru/portfolio/ (к примеру, на главной с картинкой, а тут нет. Хотя должна быть картинка) шаблон не работает, отображение зависит от "дефолтного" шаблона.

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

Спасибо.  
Название: Re:Несколько разных шаблонов для модуля Новости
Отправлено: albion от 22 Августа 2011, 14:56:54
Если вывод ведется через макрос %content%, то всегда будет все выводится по дефолтовому шаблону.
Название: Re:Несколько разных шаблонов для модуля Новости
Отправлено: korogan от 22 Августа 2011, 15:14:42
Да через %content%
Что тогда делать?
Название: Re:Несколько разных шаблонов для модуля Новости
Отправлено: albion от 22 Августа 2011, 17:25:55
Нужно создать отдельный шаблон, который привязывается к разделу портфолио, и там за место %content% вставить %news lastlist(%id%, 'portfolio')%
Название: Re:Несколько разных шаблонов для модуля Новости
Отправлено: john от 01 Апреля 2012, 17:35:45
У меня два раздела новостей, необходимо выводить анонс и содержание по разным шаблонам.
Столкнулся с такой же проблемой, для вывода списка новостей использовал макрос %news lastlist('%id%', 'news')%, список выводится так как мне надо, а вот зайдя в новость она не выводится, так как этот макрос ей не подходит. Как же мне на странице вывести содержание и с другим шаблоном, главное не default?

Так же попробовал макрос %news view()% указал другой шаблона, но в нем же он опять обращается к default.
Название: Re:Несколько разных шаблонов для модуля Нов&#
Отправлено: Vladimir от 01 Апреля 2012, 20:04:51
Так же попробовал макрос %news view()% указал другой шаблона, но в нем же он опять обращается к default.
Поясните, а что у вас написано в этом шаблоне? Не должен обращаться к default, если вы там его не вызываете сами.
И кким образом вы вызываете этот макрос? Подозреваю, что вкралась мелкая ошибка и ЮМИ вашего шаблона не видит.

Нужно создать новый шблон страницы, в нем НЕ ИСПОЛЬЗОВАТЬ %content%, а указать тот самый %news view()%. Этот шаблон задать всем новостям. И в шаблоне новости тоже не использовать %content% (а юмишники его любят)
Все должно работать.
Название: Re:Несколько разных шаблонов для модуля Новости
Отправлено: john от 01 Апреля 2012, 20:32:47
В новом шаблоне использую макрос %news view('','new')%
Задал всем новостям.
в шаблоне новости /tpls/news/new.tpl
используется код
$FORMS['view'] = <<<END

%news related_links(%id%)%

<div class="block_news">

<!-- просмотр новости -->
<div class="news_prosm">
<div class="text_osn">
<div class="photo">
%data getProperty(%id%, 'publish_pic', 'news.view')%
</div>
<div class="text_short">
<p class="data" umi:element-id="%id%" umi:field-name="publish_time">%system convertDate(%publish_time%, 'd.m.Y')%</p>
<h2>%header%</h2>
</div>
</div>
<div class="block_text">
%content%
</div>
<div class="podr">
<a class="butt_red" href="">назад к новостям</a>
</div>
</div>
</div>

END;

Если в папке /tpls/news/ переименовать default.tpl
Содержание новости не отобразится.
мешает %content%, а что же вместо него указывать?
Название: Re:Несколько разных шаблонов для модуля Новости
Отправлено: Vladimir от 01 Апреля 2012, 20:53:14
В шаблоне страницы лучше писать не %news view('','new')%, а %news view(%pid%,'new')%
Большой ошибки нет и в вашем варианте, но явное указания страницы делает код более читабельным - сразу видно какой параметр используется. Это говорю по своему опыту, удобнее потом въезжать в код. Но а для себя - смотрите сами.

Вместо %conent% можно использовать %data getProperty(%id%,'content','simple')%
Естественно, предварительно нужно подготовить шаблон simple. Это будет копия default (из папки /tpls/data/), у которого в каждом блоке оставляем только вывод значения - макрос %value% (потому что в default сместе со значением выводится и много всякой ерунды для демонстрации возможностей)
Название: Re:Несколько разных шаблонов для модуля Новости
Отправлено: admin от 02 Апреля 2012, 09:47:51
добавлю что шаблон simple уже описывался в виде полностью кода что в нем должно быть ( обсуждалось вот тут http://umihelp.ru/forum/index.php/topic,145.msg593.html#msg593), также проверьте кодировку и у шаблонов которые вы назначаете страницам и шаблонам по которым вы выводите новости/ Для вывода новости вы верно заменили в шаблоне %content% на %news view('%pid%','new')% (с поправкой от Vladimira про %pid%) и конечно, проверьте чтобы имя файла шаблона были одинаковы и при вызове макроса %news view('%pid%','new')%.

Возможно также использовать макросы для того чтобы система сама подставляла нужные макросы (это если хочется сократить количество шаблонов для страниц). Подробнее смотрите тут: Глобальное переназначение default шаблонов для каталогов, новостей и т.п. (http://umihelp.ru/articles/global_noe_perenaznachenie_default_shablonov_dlya_katalogov_novostej_i_t_p/) или тутМультидоменность – замена макроса content (tpl) (http://wiki.umisoft.ru/%D0%9C%D1%83%D0%BB%D1%8C%D1%82%D0%B8%D0%B4%D0%BE%D0%BC%D0%B5%D0%BD%D0%BD%D0%BE%D1%81%D1%82%D1%8C_%E2%80%93_%D0%B7%D0%B0%D0%BC%D0%B5%D0%BD%D0%B0_%D0%BC%D0%B0%D0%BA%D1%80%D0%BE%D1%81%D0%B0_content_%28tpl%29)