Запросы, предложения и планы
(35)В этом сообществе предлагается публиковать запросы на дополнительный функционал шестеренок и выкладывать технические задания.
Довольно давно с интересом наблюдаю за проектом. На волне интереса сообщества к разработке внешнего оформления, дизайна, появилось желание поделиться некоторыми соображениями на эту тему. Не уверен что все это возможно в текущей версии движка, но все же.
Может что-либо будет взято на заметку и воплотиться в версии 2.
Разбитые на части и рассредоточенные файлы-составляющие шаблона это довольно большой стоп-фактор в деле оформления вообще, к тому же файлы иногда могут быть разнесены по путям, не для всех являющимися очевидными и легко находимыми.
И хоть опытному в верстке шаблонов это не значимо (все-таки подобный подход довольно распространен), но это если и не отпугивает, то создает дополнительные сложности более многочисленной и гораздо более активной части менее опытных пользователей.
Думаю многие согласятся, что удобнее работать с единым цельным файлом.
Поэтому есть предложение упростить этот процесс, к тому же первый шаг в сторону более дружелюбного способа и соответствующего интерфейса уже сделан.
Концепция
Путем объединения всех файлов оформления одного типа в единый файл получить на выходе связку html + css (+js) с структурной разбивкой ( кодом для парсинга а заодно и человеко-понятным описанием принадлежности к элементу движка). То есть получить максимально приближенный к простому виду и автоматически откомментированный единый шаблон, содержащий элементы оформления всех подключенных элементов (шестеренки, модули и т.п. ). И чтобы уже в этом шаблоне править взаиморасположение элементов и их оформление.
В таком виде оформленный, готовый шаблон затем в обратном порядке, на основе кода парсинга, разбирается на составляющие файлы оформления компонентов движка, которые соответственно прописываются в нужные места.
В итоге оформление осуществляется так:
После установки всех необходимых дополнений забивается тестовое содержимое и задается какие элементы выводить в шаблон. Полученный на выходе файл шаблона редактируется, корректируется как надо и импортируется обратно.
Другой вариант:
— берется любой готовый сторонний шаблон ( сделанный или где-либо заимствованный), в нем расставляется спец. синтаксис и импортируется в систему. После этого, отмечаются все необходимые модули и элементы, формируется новый вывод, и такой дополненный (и уже адаптированный) шаблон проверяется и доводится до ума.
Фактически, предлагаемое — это дополнительный уровень абстракции, избавляющий пользователя ( по крайней мере стремящийся к этому ) изучать и разбираться во взаимосвязях и месторасположении компонентов оформления движка, а непосредственно управлять оформлением, в более наглядном общепринятом виде.
Несколько технических моментов
Должна быть возможность выборочного вывода в общий шаблон оформления конкретных элементов, чтобы сформировать шаблон только из необходимых. Причем не только из подключенных компонентов, но также и из неактивных. Это позволит предварительно оценить интегрируемость новых в общий дизайн и при необходимости откорректировать взаимодействие.
Будет удобно логическое объединение компонентов в группы для вывода, на основе структуры интерфейса. Например: при подключении расширяющего функционал элемента (допустим он сложный и имеет собственное оформление) для уже используемого блока «инфо», не приходилось бы добавлять в выборку этот элемент отдельно, а достаточно было указать вывести все элементы входящие в блок «инфо».
Потребуется специальный синтаксис парсинга для определения связи элемента оформления и программного элемента движка. Думаю удобно будет разместить этот синтаксис внутри тэгов комментариев, стандартных для используемого типа файла. Это упростит обработку в стандартных редакторах и интерпретацию сторонними средствами вообще.
Плюс было бы хорошо предусмотреть вариант вывода части структурной иерархии (или внутреннего кода элемента) уникальной «заглушкой», для удобства редактирования, а также восприятия в случае вывода большого количества вложенных или различных элементов.
Сложный вопрос, для отдельного обсуждения:
Должна быть проработана система взаимной интерпретации — из шаблона во внутренний файл оформления и наоборот. Основные нюансы, на мой взгляд, следующие:
— Код в шаблоне не должен включать логику, а только соответствующий месту структурный элемент: html каркас вывода — для отладки оформления, и, при необходимости, спец «заглушки» — для замещения сложного вывода или использования некоторых возможностей движка.
— Код внутреннего файла оформления может быть значительно сложнее, за счет включения логики и собственного программного взаимодействия с движком. Здесь может применяться уже существующий внутренний шаблонизатор, и дополнительно особая разметка элементов для взаимодействия с шаблоном оформления ( вывод в шаблон /замещение импортом из шаблона ).
Из нюансов пока все, это навскидку.
Вообще же тема сложная, нужна серьезная проработка.
Что было бы полезно сейчас, уже в этой версии.
Может, стоило это оформить отдельной темой.
Предложение довольно топорное и примитивное.
(Можно было бы объединить все ниже перечисленное в некий design-debug режим, добавить в админке опцию его включения.)
С tpl сложно, предложу вот что.
Добавить внутрь каждого tpl префикс и постфикс примерно так ( это в основном, в некоторых расположение придется немного уточнить ):
С css проще. Нужно собрать все файлы в один, отделив каждый префиксом с путем и именем файла ( а, может, + постфиксом), для обратного парсера, и вывести в таком виде эту сборку, прямо в качестве рабочего активного css(это пока design-debug режим включен), или, если по другому пока никак, хотя-бы, в отдельный файл( для отладки оформления его всегда можно подключить). Главное чтобы была возможность распарсить обратно в файлы.
По css уже будет обратная связь. Выводится, правится, распарсивается по указанному пути обратно в файлы, отключается дебаг и выводится уже как обычно.
В итоге будет попроще с оформлением, порог вхождения будет ниже.
…
Пока собственно все, что хотелось предложить по теме оформления.
Надеюсь эта заметка пригодится.
Может что-либо будет взято на заметку и воплотиться в версии 2.
Разбитые на части и рассредоточенные файлы-составляющие шаблона это довольно большой стоп-фактор в деле оформления вообще, к тому же файлы иногда могут быть разнесены по путям, не для всех являющимися очевидными и легко находимыми.
И хоть опытному в верстке шаблонов это не значимо (все-таки подобный подход довольно распространен), но это если и не отпугивает, то создает дополнительные сложности более многочисленной и гораздо более активной части менее опытных пользователей.
Думаю многие согласятся, что удобнее работать с единым цельным файлом.
Поэтому есть предложение упростить этот процесс, к тому же первый шаг в сторону более дружелюбного способа и соответствующего интерфейса уже сделан.
Путем объединения всех файлов оформления одного типа в единый файл получить на выходе связку html + css (+js) с структурной разбивкой ( кодом для парсинга а заодно и человеко-понятным описанием принадлежности к элементу движка). То есть получить максимально приближенный к простому виду и автоматически откомментированный единый шаблон, содержащий элементы оформления всех подключенных элементов (шестеренки, модули и т.п. ). И чтобы уже в этом шаблоне править взаиморасположение элементов и их оформление.
В таком виде оформленный, готовый шаблон затем в обратном порядке, на основе кода парсинга, разбирается на составляющие файлы оформления компонентов движка, которые соответственно прописываются в нужные места.
В итоге оформление осуществляется так:
После установки всех необходимых дополнений забивается тестовое содержимое и задается какие элементы выводить в шаблон. Полученный на выходе файл шаблона редактируется, корректируется как надо и импортируется обратно.
Другой вариант:
— берется любой готовый сторонний шаблон ( сделанный или где-либо заимствованный), в нем расставляется спец. синтаксис и импортируется в систему. После этого, отмечаются все необходимые модули и элементы, формируется новый вывод, и такой дополненный (и уже адаптированный) шаблон проверяется и доводится до ума.
Фактически, предлагаемое — это дополнительный уровень абстракции, избавляющий пользователя ( по крайней мере стремящийся к этому ) изучать и разбираться во взаимосвязях и месторасположении компонентов оформления движка, а непосредственно управлять оформлением, в более наглядном общепринятом виде.
Несколько технических моментов
Должна быть возможность выборочного вывода в общий шаблон оформления конкретных элементов, чтобы сформировать шаблон только из необходимых. Причем не только из подключенных компонентов, но также и из неактивных. Это позволит предварительно оценить интегрируемость новых в общий дизайн и при необходимости откорректировать взаимодействие.
Будет удобно логическое объединение компонентов в группы для вывода, на основе структуры интерфейса. Например: при подключении расширяющего функционал элемента (допустим он сложный и имеет собственное оформление) для уже используемого блока «инфо», не приходилось бы добавлять в выборку этот элемент отдельно, а достаточно было указать вывести все элементы входящие в блок «инфо».
Потребуется специальный синтаксис парсинга для определения связи элемента оформления и программного элемента движка. Думаю удобно будет разместить этот синтаксис внутри тэгов комментариев, стандартных для используемого типа файла. Это упростит обработку в стандартных редакторах и интерпретацию сторонними средствами вообще.
Плюс было бы хорошо предусмотреть вариант вывода части структурной иерархии (или внутреннего кода элемента) уникальной «заглушкой», для удобства редактирования, а также восприятия в случае вывода большого количества вложенных или различных элементов.
Сложный вопрос, для отдельного обсуждения:
Должна быть проработана система взаимной интерпретации — из шаблона во внутренний файл оформления и наоборот. Основные нюансы, на мой взгляд, следующие:
— Код в шаблоне не должен включать логику, а только соответствующий месту структурный элемент: html каркас вывода — для отладки оформления, и, при необходимости, спец «заглушки» — для замещения сложного вывода или использования некоторых возможностей движка.
— Код внутреннего файла оформления может быть значительно сложнее, за счет включения логики и собственного программного взаимодействия с движком. Здесь может применяться уже существующий внутренний шаблонизатор, и дополнительно особая разметка элементов для взаимодействия с шаблоном оформления ( вывод в шаблон /замещение импортом из шаблона ).
Из нюансов пока все, это навскидку.
Вообще же тема сложная, нужна серьезная проработка.
Что было бы полезно сейчас, уже в этой версии.
Может, стоило это оформить отдельной темой.
Предложение довольно топорное и примитивное.
(Можно было бы объединить все ниже перечисленное в некий design-debug режим, добавить в админке опцию его включения.)
С tpl сложно, предложу вот что.
Добавить внутрь каждого tpl префикс и постфикс примерно так ( это в основном, в некоторых расположение придется немного уточнить ):
<!-- start filename.tpl -->
содержимое файла .tpl
<!-- end filename.tpl -->
Уже поможет быстро сориентироваться по коду готовой страницы, где править.С css проще. Нужно собрать все файлы в один, отделив каждый префиксом с путем и именем файла ( а, может, + постфиксом), для обратного парсера, и вывести в таком виде эту сборку, прямо в качестве рабочего активного css(это пока design-debug режим включен), или, если по другому пока никак, хотя-бы, в отдельный файл( для отладки оформления его всегда можно подключить). Главное чтобы была возможность распарсить обратно в файлы.
/* cogear:css:path:"gears/gear1.css" */
h1{
font-size: 1.4em;
}
/* cogear:css:end */ - это если нужен постфикс
/* cogear:css:path:"gears/gear2.css" */
h2{
font-size: 1.2em;
}
/* cogear:css:end */
как-то так, логика такая.По css уже будет обратная связь. Выводится, правится, распарсивается по указанному пути обратно в файлы, отключается дебаг и выводится уже как обычно.
В итоге будет попроще с оформлением, порог вхождения будет ниже.
…
Пока собственно все, что хотелось предложить по теме оформления.
Надеюсь эта заметка пригодится.


Обдумаем реализацию подобного во второй версии движка.
Согласен, что с контентом на разных страницах не все так однозначно.
Но именно поэтому я и упомянул объединение вывода в логические группы. Таким образом, кроме произвольно задаваемых пользователем элементов, могут изначально присутствовать исходные дефолтные, зависящие от типа стандартой страницы, которые тоже можно будет переопределить при желании.
Я к тому, чтобы рассматривать вывод как набор раздельных управляемых элементов, и ими манипулировать прямо из админки(но, сразу можно предположить особенности при выводе связанных — например таких как пост+комменты).
Кстати, в текущей версии уже существует в админке приблизительно такая, настраиваемая логическая группа вывода — боковая панель.
А мысли хорошие, очень интересная задумка
думаю в будущем воспользоваться elfinder
Согласен, проблема очень распространенная, но дело скорее не в MVC, а в реализации. MVC это ведь только концепция.
Я сейчас выбираю движок для реализации хабрастайл-сайта и смотрю сейчас на livestreet и cogear. Да, livestreet была раньше, но все же. Они начали с того, что заказали офигительнейший дефолтный дизайн. Cogear начал с того, что сделал модульность. На ls модульность появилась в 0.4.1 в мае, у cogear нормального дефолтного скина нет до сих пор. В итоге на livestreet.ru счетчик за сутки переваливает за 1000, а здесь еле-еле за 200.
Если стоит задача популяризировать движок, то нужны гайды по шаблонам. Народ же как, поставил ls — офигенно, поставил cogear — мнээ… Мне кажется, что заморачиваться со второй версией не нужно. С движком все прекрасно. Да, CI, да, синглтон, да гибкость только в определенных рамках. Ничего страшного! Если будет много народа, модулей наделают каких угодно, несмотря на возможные неудобства. Могу сказать, кстати, что сейчас писать модули для ls сложнее чем для cogear — у ls нету большого девелоперского хэлпа и там более «правильно» — предлагается морочиться делать мапперы для каждого запроса в БД и т.п.
Поэтому, имхо, сейчас срочно нужен такой диз, который бы был вау! и стимулировал юзать именно cogear. Плюс гайды по верстке.
Очевидно, что эффектный дизайн значительно поспособствует популяризации.
А чтобы он появился возможно два подхода:
- Заказать отличный дизайн у професионалов.
- Предоставить легкость модифицирования для всех желающих, энтузиазм с такой поддержкой может конкурировать с профессионализмом.
Как предложение-описание именно второго варианта, я и создал эту тему.Немного не в тему, но раз уж упомянули, мое наблюдение, не больше (просьба не воспринимать как критику или недовольство).
По поводу разработки версии 2 — двигаться нужно, бесспорно, но есть и следующий важный аспект:
Сейчас уже появились люди сделавшие ставку именно на этот движок.
У них есть реальные потребности уже сейчас, в запросах было несколько коллективных пожеланий на разработку сложных шестеренок, даже с готовностью скинуться материально разработчику.
Доработка текущей версии под реально возникающие нужды положительно отразится на популярности и вовлечении новых пользователей уже сейчас, а версии 2 надо еще дождаться.
Поэтому на первый план было бы логично вывести пожелания активно использующих движок людей.
А это реализовать коллективно запрашиваемое, плюс сделать опрос по дополнительным пожеланиям реализации возможностей, выбрать наиболее существенное и реализуемое. Затем выпустить некий кумулятивный сервис пак, подводящий итоги и добавляющий в ( может уже в базовый) функционал новые возможности.
Кроме того, учет этого только положительно отразится на разработке версии 2.
Удачи!
Кстати, профессионалов можно замотивировать тем, что по условиям распространения ссылка на них будет стоять в футере шаблона. Xeoart, который делал шаблон лайвстриту, сейчас имеет 80к бэков, PR5 и ТИЦ 350, исключительно за счет сквозняков из футера людей, поставивших лайвстрит с дефолтным шаблоном. Мне кажется, это гораздо выгоднее разовой суммы за шаблон, так как если посчитать бюджет в Сапе на 80к ссылок, это будет очень приличная сумма, которую к тому же надо выплачивать ежемесячно. :)
И он становится тем сильнее, чем больше популяризация движка, а это пусть и неспешно, но происходит.
Создание дизайна, шаблона на таких условиях — это будет хорошая заявка для начинающих, но хорошо подготовленных дизайнеров или студий. Маститых этим не зацепишь, на данном этапе такие, кроме денег, только из личных побуждений помогут.
Как выход — пожелание уважаемому Дмитрию (ака admin) обратиться с призывом для таких амбициозных начинающих профи на один из теметических сайтов, например на deforum или на rudtp. С описанием всех преимуществ сотрудничества.
А это как минимум размещение в каталоге с условием распространения — требованием присутствия копирайта. Вплоть до (после выбора, внутреннего конкурса) применения на этом сайте и включения в сборку как дефолтного. (Может + какая-то символическая сумма, это в крайнем случае, если реакции совсем не будет).
Возможно стоит запрашивать сразу и с версткой под движок, иначе это только половинчатое решение, с версткой возможны такие же пробуксовки. К тому же, как мотивация, исполнитель наверняка не останется без индивидуальных заказов от членов сообщества.
Согласен со многим из вышесказанного, но на то оно и сообщество, чтобы кооперироваться — предложите дизайнера, выход, мы с радостью поддержим.
краткость сестра талантавыражу свою идею.Я тут в качестве зерегеного пользователя минут
102025 торчу. потратил пару часов на то что бы изучить контент — пока, по описанию я восхищен работой вашей. альтернатива livestreet по моему хорошая, нужно только прощупать сам движок. но я не об этом сейчас.Как Вы смотрите на идею — создать пошаговый урок по созданию шаблона?
Если вкратце выразить свой интерес к данной теме — я ленив. Имею некоторые знания по верстке шаблонов сайта. Но мне жутко лень сидеть и ковырять — что куда прилепить, что бы получить некий результат. Мне понравились представленные уважаемым админом видео — о той же, к примеру, интеграции в двиг форума.
Так вот суть моего предложения сводится к тому, что бы так просто на пальцах показать где какие элементы находятся для формирования структуры и непосредственно интерфейса. У автора это может занять пару часов на объяснение, зато у других пользователей, включая меня, появится больше желания клепать шаблоны для этого движка. А это еще больше подстегнет проект к развитию.
Придется подождать.