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

ErsteVorherige123456NächsteLetzte

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

Dr2005alex
#31 1. September 2014, 20:40

а не проще будет сделать подключение сторонней функции в CoTemplate   в  compile  так  if(function_exists ( cot_chunk_parse ))$code = cot_chunk_parse($code);

И все тогда можно будет делать на стороне плагинами. В том-же глобал.

WebKaa.ru - Cotonti Relax
Macik
#32 1. September 2014, 20:56
#39738 Dr2005alex:

а не проще будет сделать подключение сторонней функции в CoTemplate   в  compile  так  if(function_exists ( cot_chunk_parse ))$code = cot_chunk_parse($code);

И все тогда можно будет делать на стороне плагинами. В том-же глобал.

Дык примерно таки и будет, только с использованием реестра. На случай, если нам вдруг захочется реализовать еще что-то кроме чанков. И не надо каждый раз править CoTemplate.

https://github.com/macik
правильный хостинг — https://goo.gl/fjCa1F
Dr2005alex
#33 1. September 2014, 21:03

Короче я так понял надо добавить функцию в CoTemlate и вызов через нее в compile. А параметры можно задавать из плагина. Так?

Накидаешь данную функцию? для шаблонизатора...

И тогда наш шаблонизатор будет УНИВЕРСАЛЬНЫМ )))

WebKaa.ru - Cotonti Relax
Macik
#34 1. September 2014, 22:07
#39740 Dr2005alex:

Короче я так понял надо добавить функцию в CoTemlate и вызов через нее в compile. А параметры можно задавать из плагина. Так?

В общих чертах да.

Накидаешь данную функцию? для шаблонизатора...

В Чт-Пт займусь.

И тогда наш шаблонизатор будет УНИВЕРСАЛЬНЫМ )))

 

https://github.com/macik
правильный хостинг — https://goo.gl/fjCa1F
esclkm
#35 2. September 2014, 06:03

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

Синтаксис мне кажется надо смотреть у {FILE }

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

littledev.ru - мой маленький зарождающийся блог о котонти.
снижение стоимости программирования и снижение стоимости производства разные вещи. Первое можно скорее сравнить с раздачей работникам дешевых инструментов, чем со снижением зарплаты
Macik
#36 2. September 2014, 08:46
#39742 esclkm:

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

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

Синтаксис мне кажется надо смотреть у {FILE }

Вот это надо обсудить. Есть конкретные предложения по полному виду тега с мультипараметрами? И на сколько при этом необходимо оставить конвейерную обработку через пайп («|»)? Приведи реальные примеры где нехватает мультипараметров, какие ф-и вызываются.

 

Если без конвеера, то можно плясать от формата МодИкса:

{{=cot_crazy_widget ?PAGE_ID, PHP.catname, 'string', 15}} — знак «=», чтобы система знала что это вызов ф-и

Можно в более привычном виде:

{{=cot_crazy_widget(PAGE_ID, PHP.catname, 'string', 15)}}

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

Можно добавить именованных параметров:

{{=cot_crazy_widget(id=PAGE_ID, cat=PHP.catname, text='string', count=15)}}

Вопрос как объединять в цепочку? Например так:

{{=cot_date('date_full',PAGE_DATE) | cot_show_label(PAGE_ID, $this, text='string')}}

Можно даже пофантазировать и сделать реализацию такого:

{{=func1(TAG) | func2('text') | widget($func1, $func2) }}

Где `$func1` и `$func2` это результаты выполнения соотв. функций.

 

 

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

Тут опиши подробнее. Я с этим не особо сталкивался. Что именно хочется видеть и в каких случаях? Думаю, что расширенный вывод ошибок стоит делать токльо в режиме отладки. Т.к. в продакшене логичнее поведение шаблона, когда весь непонятный мусор или пустые теги «скрываются».

https://github.com/macik
правильный хостинг — https://goo.gl/fjCa1F
esclkm
#37 2. September 2014, 10:01

у нас есть такая конструкция:

{FILE "themes/{PHP.theme}/inc/menu.tpl"}

от нее я думаю и надо плясать

{EXTNAME\s"PARAMS"}

littledev.ru - мой маленький зарождающийся блог о котонти.
снижение стоимости программирования и снижение стоимости производства разные вещи. Первое можно скорее сравнить с раздачей работникам дешевых инструментов, чем со снижением зарплаты
Dr2005alex
#38 2. September 2014, 14:27

После продолжительных бесед с Trustmaster  и его командой...

Пункты расставленны... работа началась))) Чанкам быть в котонти!!!

WebKaa.ru - Cotonti Relax
Macik
#39 2. September 2014, 19:59

Ладно, дално… разводить шумиху. Сделаем — будет повод. Главное определились с концепцием.

https://github.com/macik
правильный хостинг — https://goo.gl/fjCa1F
Dayver
#40 2. September 2014, 22:57

В начале темы я еще понимал суть идеи (даже не смотря на то что оно было перемешано с очередным замесом на тему активизации развития движка) к концу же темы я совсем запутался ибо вроде бы утвердили факт того что у нас будет некий плагин который будет работать в некоторой аналогии с функцоналом шаблонизатора {FILE ""} . Зачем он? - не понял, ну и пусть может быть я не сталкивался особо с ситуациями в которых понадобится то что создается сейчас но если сделаете - пусть будет, сделаете правильно и без косяков тем более (мне лично оно не помешает), сделаете в духе кода седа и кота вообще класс будет (что б программист новичек в котонти, если таковые будут появлятся, смог понять как работает ваш код). Но только будет ли чанк в базе и редактирование его через админку?

Скажу только о своем опыте и том о чем говорил Macik - я периодически в проектах плотненько использую слоты, какие они не корявые как бы мало их небыло но всеравно это удобнее чем стопятцот файлов кусков кода\ленгов и т.п. (да еще и если на странице рядышком с тем что выводит слот стоит ссылка на его редактирование и отображаемая только избранным) Почему? - да потому что их можно через админку править, а раз нельзя сделать в админке редактор чего нибудь в файлах (ресурсов, ленгов, шаблонов) из-за проблем с безопасностью то без функционала слотов никуда. Кто поспорит что менять нечто через админку это удобно? Тут писали что как бы не старались заказчики выбрать на начальном этапе программиста и\или цмску но всеравно они полюбому привяжут себя либо к одному либо к другому, а раз так то и хрен с ним что заказчику при необходимости придется либо самому лезть в файлы либо пинать\искать программиста - но это в корне не верно. Пример из жизни: дают веб-мастеру копейки что бы сделать простейший сайт точнее тупо засетапить двиг и сделать тему к нему на основе готовой верстки - все сайт визитка готов все рады. Проходит пол года заказчик по пьяни теряет номер телефона который висит на сайте в шапке и подвале. Блин через админку ниче не сделаешь потому что вообщето вебмастер мудак, где он не известно, потому что неизвестно что телефон в шаблоне, потому что ваще хрен знает как сайт работает, что такое цмс, кто такой котонти и ваще руки из жо что бы лезть куда то редактрировать файлы с фтп да и что это такое. Все ищут программиста. А терь скажите как должен был бы поступить веб-мастер уже с нашим котом в самом начале (даже если б заплатили хорошо и сделать надо было тоже хорошо) куда он бы распихал верстку? Ну да по правильному бы стили в css, разметку в шаблон(ы), тексты в ленг файлы, контент в базу. Но это б ничего не изменило ибо ни ленг, ни ресурс, ни шаблон из админки не исправить. Да пусть заказчик зовет специалиста если нужно изменить стиль\разметку, ну ладно в нашем случае и если надо язык системы, но некоторые вещи должны иметь возможность менятся так же как и контент из админки. Потому будь у меня время я перенс бы слоты из ядра в плагин, сделал бы возможность управлять их количеством, снабдил бы возможностью их подписывать (что б можно было написать что сей слот\чанк используется там то и там то) и работать в них логике (по аналогие с тем как она работает в шаблонах). Практически все это, разрознено, но уже звучало.

Может вы решаете иную задачу и не о тех чанках говорите, тогда пардон за мой словесный понос.

Добавлено 2 минуты спустя:

#39702 esclkm:

мне например чаще не хатает множественных параметров для колбэк функций

согласен и мне

Pavlo Tkachenko aka Dayver
Macik
#41 3. September 2014, 06:20
#39758 Dayver:

 Зачем он? - не понял

 

В целом твои рассуждения в посте не далеко от сути всего этого замеса. :) 

Мы тут вчера в Skype часа 4 подробно по косточкам разбирали что это, кому из это что надо, и как это можно сделать. 

Кинул тебе подробности на мыло.

https://github.com/macik
правильный хостинг — https://goo.gl/fjCa1F
Sergey
#42 3. September 2014, 08:08
#39758 Dayver:

 Потому будь у меня время я перенс бы слоты из ядра в плагин, сделал бы возможность управлять их количеством, снабдил бы возможностью их подписывать (что б можно было написать что сей слот\чанк используется там то и там то) и работать в них логике

http://www.cotonti.mobi/page.php?al=Mobile_web_Slots

www.cotonti.mobi
Macik
#43 3. September 2014, 08:52
#39762 Sergey:
#39758 Dayver:

 Потому будь у меня время я перенс бы слоты из ядра в плагин, сделал бы возможность управлять их количеством, снабдил бы возможностью их подписывать (что б можно было написать что сей слот\чанк используется там то и там то) и работать в них логике

http://www.cotonti.mobi/page.php?al=Mobile_web_Slots

Да, аналогия во многом прослеживается. Но в Сиене очень многое делается в разы проще. 

https://github.com/macik
правильный хостинг — https://goo.gl/fjCa1F
Roffun
#44 3. September 2014, 09:40
#39758 Dayver:

 Потому будь у меня время я перенс бы слоты из ядра в плагин, 

Плагин слотов уже есть, называется Myads


Для таких целей в плагине Myads предусмотрено два поля, в которые можно добавлять любое количество внешних скриптов, каждый с новой строки. Это удобно тем, что вы один раз в шаблоне header.tpl и footer.tpl добавляете специальный тег, который также как и блоки можно в любой момент включить или выключить. Все скрипты которые будут прописаны в соответствующее поле, появятся автоматически в том месте, где выведен тег.
 

Улетел на другую планету, а там почты нету.. https://www.cotonti.com/forums/45298?m=posts

Dieser Beitrag wurde von Roffun (am 8. Juli 2016, 20:00, vor 7 Jahre) bearbeitet
Sergey
#45 3. September 2014, 09:41
#39763 Macik

Да, аналогия во многом прослеживается. Но в Сиене очень многое делается в разы проще. 

На http://www.cmsmagazine.ru была дискуссия по поводу адаптации ресурса, ко всему. Хотел было и я поучаствовать, но когда стал готовить материалы, то начал выяснять истоки слотов. Впервые это стало применяться в игровых автоматах и в дальнейшем получило развитие на игровых сайтах. И все. Больше никакого развития. Естественно, я свое причесал и начал соображать куда и как применить. Однако, передумал выкладывать, так как акулы 1С (они организовали эту дикуссию) меня бы просто ... Сама концепция слотов развивается в рекурсивности. Я так прикинул, то очень даже интересная мысль, которая вообще нигде не встречалась. Действительно, слот можно разрезать, разрезать дальше и собрать в нечто единое. Это как разрезать большое фото на части и резать дальше, заменяя фрагменты, а потом все склеить. Это новый дизайн. Нечто похожее на плитки. Но слоты не получили развитие. На пути такой реализации я встретил проблемы логического характера типа колец времени. Пока я это пробую.

Изначально, я просто взял статью, страницы которой имеют тождественные псевдонимы (алиасы). В сиене нет такого. Ну так страница с алиасом menu1 это слот menu, страница с алиасом menu2 это слот menu2,  и так как гравится. Конечно можно и не так строго, как было построение слотов ранее, можно просто придумать свои имена... но я так не стал делать, есть некоторые логические проблемы. Ограничился изначально определенным пространтвом имен слотов.

"в Сиене очень многое делается в разы проще" - да никак не делается, нечего обсуждать в этом разрезе. Конечно, такое развитие требует значительной переработки самого движка. В моем решении введено понятие модели отображения, альтернативы содержания... и пр. непревычное. Конечно, казалось бы, можно ввести отдельные с логикой темплейты для слотов, можно, но что это даст?  Такое решение на поверхности, это парсить в тег представляющий слот, что было изначально с LDU. Но, такое решение всегда требует программиста.

www.cotonti.mobi

ErsteVorherige123456NächsteLetzte