Foren / National / Russian / Идеи / Chunks

Куски кода в шаблоне

Macik
#39706 1. September 2014, 07:18

Млин, писал пост а Хром грохнулся...

#39703 Dr2005alex:

Что в данном решении стандартизованного?

Мы в последнее время, как наверное всем видно, теряем людей. Но как ни странно и новичков особо тоже нет. Мое мнение что надо котонти немного упрощать в пониманиии кода. Особое внимание должно быть положено на шаблоны. Их НЕТ. Мне кажется что для новичка будет проще написать конструкци.  {CHUNK.HEAD.USER}  чем  {FILE "{PHP.cfg.themes_dir}/{PHP.cfg.defaulttheme}/inc/head.user.tpl"}. А стандартизация в том, что можно закрепить имена стандартных чанков. типа {CHUNK.MENU} и можно будет сделать библиотеку чанков меню. Таким образом новичек сможет поменять кусок шаблона просто поменяв чанк. Также в дальнейшем можно сделать редактор чанков или менеджер чанков. и т.д.

Буду краток —

Сама по себе идея интересная, у самого были аналогичные мысли. Но…

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

Так же напомню, что в Котонти уже есть зачатки механизма чанков — это «слоты меню». 

Объясню суть идеи: во-первых, надо сделать список редактируемым по количеству и названию блоков, во-вторых разрешить в тексте слотов использовать конструцкции шаблонов (блоки и теги), сделав их таким образом микрошаблонами.

Второй пункт уже был мной реализован в плагине «slots_n_tags». 

В данный момент,например, меня очень заинтересовал варианнт создания базового шаблона для котонти с генерацией css данных через PHP  http://portal30.ru/articles/ispolzovanie-php-v-css-fajlax

Это может помочь  с быстрым редактированием шаблона под себя, для новичка.Путем изменения констант. Можно и редактор замутить. Жаль что сообщество идет в сторону seditio..... и нет развития... на новичков наплевать... а ведь когда-то я тоже в первый раз все увидел. Обычные реплики это: "Нафиг это надо и т.д." Жаль... такой потенциал закапываем в землю..

Оно идет не в сторону Seditio, а как не прискорбно пока топчится на месте — каждый на коленке что-то делает под себя и для своих проектов, не обсуждая и не вынося результат на публику. То, что ты предлагаешь идеи это очень правильно. И то, что мы их здесь обсуждаем (какими бы жаркими не были споры) это хорошо.

По существу приведенной ссылки — на мой взгляд это перебор. Вопрос в эффективности и необходимости.

Вижу больше недостатков, чем пользы:

  • усложняет код, как для понимания, так и для поддержки — соотв. увеличивается и вероятность ошибки.
  • увеличивает накладные расходы на «лишний» вызов интерпретатора

Реальных случаев, когда это необходимо применить не вижу. Т.к. если изменения в CSS небольшие, то резоннее это сделать на стороне основного скрипта включив стили прямо в основной файл. Если изменения большие — лучше иметь несколько отдельных файлов (они могут компилится на этапе разработки), которые подключать в зависисмости от определенных условий. Если надо обязательно дать пользователю редактировать — вынеси в чанк/слот и включай в текст шаблона.

 

#39704 Yusupov:

Если будет такой механизм универсальным, то можно будет не только чанки создавать, но и легко редактировать ресурсы, языковые переменные, шаблоны, css, не говоря уже о создании собственных плагинов непосредственно через админку. 

Я бы все же разделил эту тему на отдельные, и задался вопросом кому, в каких случаях и как часто необходимо менять все эти ресурсы. Мое общее мнение, допускать пользователя (пусть и админа) к файлам это зло, и надо свести это к минимуму.

  • Создание плагинов через админку — вообще не вижу смысла. Если админит человек способный написать и установить плагин ему можно и нужно дать права на запись плагинов в соотв. папку. А через админку это только лишний вариант уронить систему (проверки кода-то нет) без возможности восстановления средствами админки. В общем возьми генератор (раз или два) плагинов, нормальный редактор с проверкой синтаксиса PHP и вперед.
  • Редактиорвать шаблоны вопрос опять же спорный. Я в целом за удобство, но уж очень много подводных камней — безопасность на запись файлов в целом, механизм замещения шаблонов (они и в папке plugins и modules и themes/ и ее подпапках), и т.п. В общем смотри выше про чанки.
  • изменение CSS из админки — для чего? Если ты разработчик темы — отредактируй в номальном редакторе и залей. Если надо сделать механизм правки пользовательских стилей — вынеси его, например, в слот и подключай в текст страницы через `cot_rc_embed`.
  • Единственная, имхо, уместная для редактирования сущность это ресурсы и языковые файлы, но и тут у нас зоопарк с «местом дислокации» этих файлов (опять безопасность на запись), а т.к они храняться в PHP файлах — вероятность уронить всю систему просто сохранив «битый» файл. Резоннее писать отдельный плагин, через который переопределать переменные и хранить данные в базе без изменения физических файлов

 

https://github.com/macik
правильный хостинг — https://goo.gl/fjCa1F