Куски кода в шаблоне
Dr2005alex |
|
---|---|
а не проще будет сделать подключение сторонней функции в CoTemplate в compile так if(function_exists ( cot_chunk_parse ))$code = cot_chunk_parse($code); И все тогда можно будет делать на стороне плагинами. В том-же глобал. WebKaa.ru - Cotonti Relax
|
Macik |
|
---|---|
#39738 Dr2005alex: Дык примерно таки и будет, только с использованием реестра. На случай, если нам вдруг захочется реализовать еще что-то кроме чанков. И не надо каждый раз править CoTemplate. https://github.com/macik
правильный хостинг — https://goo.gl/fjCa1F |
Dr2005alex |
|
---|---|
Короче я так понял надо добавить функцию в CoTemlate и вызов через нее в compile. А параметры можно задавать из плагина. Так? Накидаешь данную функцию? для шаблонизатора... И тогда наш шаблонизатор будет УНИВЕРСАЛЬНЫМ ))) WebKaa.ru - Cotonti Relax
|
Macik |
|
---|---|
#39740 Dr2005alex: В общих чертах да.
В Чт-Пт займусь.
https://github.com/macik
правильный хостинг — https://goo.gl/fjCa1F |
esclkm |
|
---|---|
Macik, если займешся, то сразу подумай, как бы при этом механизме выглядели бы колбэки с множественными парметрами. Синтаксис мне кажется надо смотреть у {FILE } И еще раз заглянешь в этот беспредел: подумай пожалуйста, над человеко-понятными ошибками шаблонизатора.не надо их многоязыковыми делать... просто, чтобы сайт ломался с правильным набором слов) littledev.ru - мой маленький зарождающийся блог о котонти.
снижение стоимости программирования и снижение стоимости производства разные вещи. Первое можно скорее сравнить с раздачей работникам дешевых инструментов, чем со снижением зарплаты |
Macik |
|
---|---|
#39742 esclkm: Это, собственно, к «универсальному механизму» расширенных тегов иметь отношения не будет. Точнее саму реализацию будет определять код «условно сторонней» функции.
Вот это надо обсудить. Есть конкретные предложения по полному виду тега с мультипараметрами? И на сколько при этом необходимо оставить конвейерную обработку через пайп («|»)? Приведи реальные примеры где нехватает мультипараметров, какие ф-и вызываются.
Если без конвеера, то можно плясать от формата МодИкса: {{=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 |
|
---|---|
у нас есть такая конструкция: {FILE "themes/{PHP.theme}/inc/menu.tpl"} от нее я думаю и надо плясать {EXTNAME\s"PARAMS"} littledev.ru - мой маленький зарождающийся блог о котонти.
снижение стоимости программирования и снижение стоимости производства разные вещи. Первое можно скорее сравнить с раздачей работникам дешевых инструментов, чем со снижением зарплаты |
Dr2005alex |
|
---|---|
После продолжительных бесед с Trustmaster и его командой... Пункты расставленны... работа началась))) Чанкам быть в котонти!!! WebKaa.ru - Cotonti Relax
|
Macik |
|
---|---|
Ладно, дално… разводить шумиху. Сделаем — будет повод. Главное определились с концепцием. https://github.com/macik
правильный хостинг — https://goo.gl/fjCa1F |
Dayver |
|
---|---|
В начале темы я еще понимал суть идеи (даже не смотря на то что оно было перемешано с очередным замесом на тему активизации развития движка) к концу же темы я совсем запутался ибо вроде бы утвердили факт того что у нас будет некий плагин который будет работать в некоторой аналогии с функцоналом шаблонизатора {FILE ""} . Зачем он? - не понял, ну и пусть может быть я не сталкивался особо с ситуациями в которых понадобится то что создается сейчас но если сделаете - пусть будет, сделаете правильно и без косяков тем более (мне лично оно не помешает), сделаете в духе кода седа и кота вообще класс будет (что б программист новичек в котонти, если таковые будут появлятся, смог понять как работает ваш код). Но только будет ли чанк в базе и редактирование его через админку? Скажу только о своем опыте и том о чем говорил Macik - я периодически в проектах плотненько использую слоты, какие они не корявые как бы мало их небыло но всеравно это удобнее чем стопятцот файлов кусков кода\ленгов и т.п. (да еще и если на странице рядышком с тем что выводит слот стоит ссылка на его редактирование и отображаемая только избранным) Почему? - да потому что их можно через админку править, а раз нельзя сделать в админке редактор чего нибудь в файлах (ресурсов, ленгов, шаблонов) из-за проблем с безопасностью то без функционала слотов никуда. Кто поспорит что менять нечто через админку это удобно? Тут писали что как бы не старались заказчики выбрать на начальном этапе программиста и\или цмску но всеравно они полюбому привяжут себя либо к одному либо к другому, а раз так то и хрен с ним что заказчику при необходимости придется либо самому лезть в файлы либо пинать\искать программиста - но это в корне не верно. Пример из жизни: дают веб-мастеру копейки что бы сделать простейший сайт точнее тупо засетапить двиг и сделать тему к нему на основе готовой верстки - все сайт визитка готов все рады. Проходит пол года заказчик по пьяни теряет номер телефона который висит на сайте в шапке и подвале. Блин через админку ниче не сделаешь потому что вообщето вебмастер мудак, где он не известно, потому что неизвестно что телефон в шаблоне, потому что ваще хрен знает как сайт работает, что такое цмс, кто такой котонти и ваще руки из жо что бы лезть куда то редактрировать файлы с фтп да и что это такое. Все ищут программиста. А терь скажите как должен был бы поступить веб-мастер уже с нашим котом в самом начале (даже если б заплатили хорошо и сделать надо было тоже хорошо) куда он бы распихал верстку? Ну да по правильному бы стили в css, разметку в шаблон(ы), тексты в ленг файлы, контент в базу. Но это б ничего не изменило ибо ни ленг, ни ресурс, ни шаблон из админки не исправить. Да пусть заказчик зовет специалиста если нужно изменить стиль\разметку, ну ладно в нашем случае и если надо язык системы, но некоторые вещи должны иметь возможность менятся так же как и контент из админки. Потому будь у меня время я перенс бы слоты из ядра в плагин, сделал бы возможность управлять их количеством, снабдил бы возможностью их подписывать (что б можно было написать что сей слот\чанк используется там то и там то) и работать в них логике (по аналогие с тем как она работает в шаблонах). Практически все это, разрознено, но уже звучало. Может вы решаете иную задачу и не о тех чанках говорите, тогда пардон за мой словесный понос. Добавлено 2 минуты спустя: #39702 esclkm: согласен и мне Pavlo Tkachenko aka Dayver
|
Macik |
|
---|---|
#39758 Dayver:
В целом твои рассуждения в посте не далеко от сути всего этого замеса. :) Мы тут вчера в Skype часа 4 подробно по косточкам разбирали что это, кому из это что надо, и как это можно сделать. Кинул тебе подробности на мыло. https://github.com/macik
правильный хостинг — https://goo.gl/fjCa1F |
Sergey |
|
---|---|
#39758 Dayver: www.cotonti.mobi
|
Macik |
|
---|---|
#39762 Sergey:#39758 Dayver: Да, аналогия во многом прослеживается. Но в Сиене очень многое делается в разы проще. https://github.com/macik
правильный хостинг — https://goo.gl/fjCa1F |
Roffun |
|
---|---|
#39758 Dayver: Плагин слотов уже есть, называется Myads
Улетел на другую планету, а там почты нету.. https://www.cotonti.com/forums/45298?m=posts
|
|
Отредактировано: Roffun (08.07.2016 20:00, 8 лет назад) |
Sergey |
|
---|---|
#39763 Macik На http://www.cmsmagazine.ru была дискуссия по поводу адаптации ресурса, ко всему. Хотел было и я поучаствовать, но когда стал готовить материалы, то начал выяснять истоки слотов. Впервые это стало применяться в игровых автоматах и в дальнейшем получило развитие на игровых сайтах. И все. Больше никакого развития. Естественно, я свое причесал и начал соображать куда и как применить. Однако, передумал выкладывать, так как акулы 1С (они организовали эту дикуссию) меня бы просто ... Сама концепция слотов развивается в рекурсивности. Я так прикинул, то очень даже интересная мысль, которая вообще нигде не встречалась. Действительно, слот можно разрезать, разрезать дальше и собрать в нечто единое. Это как разрезать большое фото на части и резать дальше, заменяя фрагменты, а потом все склеить. Это новый дизайн. Нечто похожее на плитки. Но слоты не получили развитие. На пути такой реализации я встретил проблемы логического характера типа колец времени. Пока я это пробую. Изначально, я просто взял статью, страницы которой имеют тождественные псевдонимы (алиасы). В сиене нет такого. Ну так страница с алиасом menu1 это слот menu, страница с алиасом menu2 это слот menu2, и так как гравится. Конечно можно и не так строго, как было построение слотов ранее, можно просто придумать свои имена... но я так не стал делать, есть некоторые логические проблемы. Ограничился изначально определенным пространтвом имен слотов. "в Сиене очень многое делается в разы проще" - да никак не делается, нечего обсуждать в этом разрезе. Конечно, такое развитие требует значительной переработки самого движка. В моем решении введено понятие модели отображения, альтернативы содержания... и пр. непревычное. Конечно, казалось бы, можно ввести отдельные с логикой темплейты для слотов, можно, но что это даст? Такое решение на поверхности, это парсить в тег представляющий слот, что было изначально с LDU. Но, такое решение всегда требует программиста. www.cotonti.mobi
|