Все про шаблоны icms 2.1

ЗАКРЫТО

Все вопросы связаные с разработкой шаблонов для icms 2.1

#1 12 октября 2014 в 15:42
Решил создать тему в которой хотелось бы обсуждать вопросы, которые возникают или возникли при разработке шаблонов. При попытке решения простых вещей сталкиваешь с горой не понимания и невозможностью сделать все просто и красиво, как например было в 1-ой ветке. На данный момент есть вопрос который так и остался без красивого решения, это верстка вывода материалов, так как в 2-ке теперь на конструкторе контента, и в шаблоне полный бардак, который сложно привести к нужному виду. Фактически я признаюсь что с 2-кой пока не сильно занимаемся, так как пока что много вопросов которые не решены или я не знаю правильного решения. Поэтому и создал тему чтобы может быть у кого то лучше с пониманием того что есть на двойке.

Если опустить выше сказанное, и просто сформулировать вопрос: Как правильно организовать (уникальный) вывод контента, с произвольными шаблонами и произвольным расположением элементов.?
#2 12 октября 2014 в 15:56
maxisoft, Если я правильно понял, вы хотите добавить свой стиль для Типов контента?
Вообщем для своего сайта я сделал так, создал тип контента (системное имя problems) и создал два файла в папке \templates\default\content\
1. problems_item.tpl.php — это вид страницы просмотра одного материала
2. problems_list.tpl.php — это страница списка материалов
Префикс problems_ стоить что бы данный файл применялся только к этому типу контента, вы можете любое имя задавать и добавить языковую константу после этого данный стиль можно будет назначать ко всем типов контента в Настройках.

Могу и про стиль виджетов написать если интересно?
#3 12 октября 2014 в 16:01
Это самое простое это было понятно из опубликованного видео, другой вопрос как вывести title, description, pubdate, shortdesc и прочие поля, без переборов в цикле и сравнением имени поля, и второй момент фактически шаблон не будет универсальным так как на другом сайте имена полей могут быть другими. Причем если есть список статей например то выводить поля в цикле как то не очень красиво, фактически получается цикл в цикле.
#4 12 октября 2014 в 17:15

фактически шаблон не будет универсальным

maxisoft
вот это меня тоже сильно беспокоит. В далеком будущем будет магазин, в котором юзеры сами будут выбирать, что купить. И вот такие моменты неуниверсальности беспокоят…
#5 12 октября 2014 в 17:39
Третья тема, где задам этот вопрос. Где искать (кроме БД) и как редактировать не стандартные поля? То есть поля, созданные админом в определенном типе контента.
#6 12 октября 2014 в 23:17
Сделал небольшой тест, изменил немного дефолный шаблон в плане вывода материалов, сделал копию сайта и изменил название полей, в результате получил то о чем и говорил, дизайн просто развалился. Огромная просьба к R2 выделить хотя бы полчаса и расказать как делать так чтобы все работала, выводить в цикле поля не вариант, это очень сильно ограничевает вывод данных. На данный момент получается что незначительные не состыковки в названии полей контента ставят крест на переносимости шаблона с одного сайта на другой. Хотя может быть я и не прав, но мы с верстальщиками так и не предумали универсального решения. :(
#7 13 октября 2014 в 10:58
maxisoft, а что вызвало затруднения с массивом? если перенос на другой сайт, то тут да без запроса к бд, насколько я понял не обойтись, так как поля добавляются на каждом сайте в базу индивидуально по заданному системному имени, но лично для меня в верстке узким местом остаются размеры изображений, с остальными полями я сделал так в шаблонах _item.tpl.php и _list.tpl.php задаю класс див по названию типа контента, и дальше стили настраиваю для полей используя firebug по классу моего дива..
Если на странице списка надо вставить отдельный текст использовал виджет, хотя с этим возникли затруднения, хотел принудительно отображать виджет на странице списка, после заголовка, но наверно надо делать модель для того чтобы выводить виджеты принудительно в своем типе контента, разбираюсь с этим еще…
#8 13 октября 2014 в 11:58

Как правильно организовать (уникальный) вывод контента, с произвольными шаблонами и произвольным расположением элементов. ?

предлагаю к css добавлять префикс по названию типа контента, шаблон оборачивать в <div class="тип_контента">, системные имена поля вообще предлагаю не разрешать изменять после создания, собственно только показывать его название, так как все равно при изменении все данные потеряются, смысла в изменении нет, соответственно и верстка рушится не будет.
#9 13 октября 2014 в 12:16
jorgovich, вы пишете о совершенно других вещах. Maxisoft спрашивает о произвольной работе с элементами как таковыми, а не их стилями. Лично я на двойку еще не смотрел, но если я правильно понял суть, то это реально проблема, и классами css она не решается.
#10 13 октября 2014 в 12:37
Pasha, да вроде понял о чем спрашивают, я как раз сейчас занимаюсь шаблонами для разделов сайта на двойке, по полям у меня не возникло сложностей из массива сделать разный вывод на разных типах контента и распределить их по своим стилям, причем и для списка и для записи, другой вопрос что если системное имя поля изменить то соответственно нарушится название класса элемента массива что приведет к развалу верстки, я и предложил идею запретить изменение системного имени поля.
#11 13 октября 2014 в 12:48
А собственно вывод необходимости выбора другого шаблона на других страницах как было реализовано в первой ветке вообще отпадает, зачем если все можно таскать через раздел виджеты, единственно сделать опции настройки страницы где можно для каждой страницы задать фон и наглядное перетаскивание тела контента (даже в тех же самых виджетах где ссылка создать страницу можно добавить вкладку опции и применять фон на разные типы контента) собственно универсально получится
#12 13 октября 2014 в 14:11

Pasha, да вроде понял о чем спрашивают, я как раз сейчас занимаюсь шаблонами для разделов сайта на двойке,

jorgovich
Как раз Вы и не поняли, можете скинуть в личку пример вашего шаблона я на его основе скажу что не так, ибо фактически вы получите перекрашенный шаблон по дефолту с тем подходом который есть сейчас.
#13 13 октября 2014 в 17:33
Каждый компонент имеет свой шаблон вывода, в шаблоне сайта лишь вызов компонента с входными параметрами и указанием шаблона компонента?
#14 13 октября 2014 в 19:53
maxisoft, нужно понимать что вид контента это уникальная единица которую можно перенести только полностью (с кусочком базы данных)

Есть вариант написать какой либо софт для сохранения/переноса, но так чтоб вообще произвольно задавать системное имя и все работало?

Кстати при правильном сохранении/переносе, вероятно можно системное имя сменить — то есть практически как вы хотите (задать любое) но перенос должен быть правильным (со всеми шаблонами, запросами в базу...)

Нужно писать "компонент" по сохранению/переносу видов контента)

А про циклы — не понимаю в чем большое не удобство (возможно не столкнулся с острой надобностью пока)

Каждый компонент имеет свой шаблон вывода, в шаблоне сайта лишь вызов компонента с входными параметрами и указанием шаблона компонента?

googlebot
по виде вроде да...(видео где компонент писали instantcms.ru/video-lessons.html )
#15 13 октября 2014 в 20:00
Кстати задам вопрос про системное имя раз начали говорить)

Может кто уже делал… Как сменить системное имя?

В админке, в именах личных шабов если имеются и в базе?

Это все? (пока не смотрел не проверял, как проверю напишу)

То что урл смениться это ясно, меня больше интересует сама возможность смены и переноса)
Используя этот сайт, вы соглашаетесь с тем, что мы используем файлы cookie.