Dr2005alex |
|
---|---|
И пришла идея начать доработку текущего XTemplate. И так, если коротко, выкладываю для тестов обновленный в некоторых местах XTemplate Что изменилось:
Для нового функционала и поддержки старого, пришлось ввести новый вид тега. {CALL | функция | динамические аргументы через запятую | дополниельные функции} Пример {CALL|cot_url('page','id=$0%&alias=$1%')|PAGE_ID,PAGE_ALIAS|htmlspecialchars} Как из примера видно, я отказался от метки $this.(но старый вариан с $this я оставил и он тоже работает через {PHP.MYTAG|function($this)}) В данном примере создается ссылка, где параметр $0% будет заменен на значение тега PAGE_ID, а $1% на значение тега PAGE_ALIAS. Далее, результат выполнения функции передается в дополнительную функцию htmlspecialchars В динамических аргументах могут быть Теги и Глобальные переменные. Пример {CALL|cot_url('page','id=$0%&c=$1%')|PHP.pag.page_id,PHP.pag.page_cat} $0% или $1% это порядковый номер динамического аргумента начиная с нуля.
Для тестов, просто разархивируйте файл. И замените текущий файл шаблонизатора cotemplate.php на файл из архива. Удачных тестов! И может еще идеи у кого будут... милости просим делиться. Файл: cotemplate_2.8.1.rar
WebKaa.ru - Cotonti Relax
|
|
This post was edited by Dr2005alex (2018-10-06 21:40, 6 years ago) |
prostogorod |
|
---|---|
Спасибо! Интересная идея! Буду тестировать... |
Kopusha |
|
---|---|
То есть ничего старого не прекратит работать а просто появятся новые возможности? Added 13 minutes later: Сразу же отвалилась работа этого плагина (ошибки не бьет, но перестали кнопки показываться, я не рылся пока в коде, просто констатация) https://github.com/Freecer/freecer.net/tree/9ed2a2b190bafed2a02388785fee9d4d6ffe9eea/plugins/folioPagiButton |
|
This post was edited by Kopusha (2018-10-03 20:16, 6 years ago) |
Dr2005alex |
|
---|---|
#43732 Kopusha: Было бы полезно узнать от чего отвалилось. Я естественно повторить ваш код не могу. Это биржа.. WebKaa.ru - Cotonti Relax
|
Kopusha |
|
---|---|
просто перестал генерировать в тпл https://github.com/Freecer/freecer.net/blob/9ed2a2b190bafed2a02388785fee9d4d6ffe9eea/plugins/folioPagiButton/folioPagiButton.setup.main.php#L11
вообще ничего. кода там 3 строчки и странно что перестало работать... вроде не должно... остальное пока что пашет. |
Dr2005alex |
|
---|---|
Как вариант почистите кеш. WebKaa.ru - Cotonti Relax
|
Kopusha |
|
---|---|
кеш я чистил - не помогает тут у меня скорее спортивный интререс - я в том куцом коде плагина не могу понять ЧТО не проходит, там нечему не работать) но факт - просто ничего не отображается в самом тпл. |
Dr2005alex |
|
---|---|
#43736 Kopusha: По идее правки были тока по вызову функции. 1) Есть просьба. Скажите какая версия PHP в у вас используется. 2) Откройте плиз файл шаблонизатора и поменяйте в 404 строке this на $this return $var->evaluate($this); Вот так будет. Отпишитесь, появилось ли все. Ах да, версия движка какая?
WebKaa.ru - Cotonti Relax
|
|
This post was edited by Dr2005alex (2018-10-04 17:29, 6 years ago) |
Kopusha |
|
---|---|
PHP engine version 5.6.37 2 пункт сделал кеш почистил и не помогло Нет функционала этого плагина и нет ошибок. При этом все остальное вроде как норм. Added 2 minutes later: Котонти и биржа самое последнее что есть. Added 1 minute later: PHP engine version 5.6.37 Zend engine version 2.6.0 Interface between webserver and PHP litespeed Cotonti Version 0.9.19
|
Dr2005alex |
|
---|---|
Тогда еще один тест. Скачиваем последнюю версию котонти и берем оттуда шаблонизатор на свой сайт. (заменяем файл шаблонизатора) Смотрим все ли работает? Если работает то я постараюсь найти в чем проблема в моих правках. Если нет, то ваша версия движка несовместима. WebKaa.ru - Cotonti Relax
|
Kopusha |
|
---|---|
Скачал дистрибут и заменил котемплейтпхп - появились ссылки на предыдущее и следующее фолио. https://ibb.co/g2PtPK Added 4 minutes later: на час отойду |
Dr2005alex |
|
---|---|
Ага понял, есть косяк. Надо менять подход. Посмотримс.. Ps Спасибо за тест. WebKaa.ru - Cotonti Relax
|
|
This post was edited by Dr2005alex (2018-10-05 06:01, 6 years ago) |
Kopusha |
|
---|---|
|
Dr2005alex |
|
---|---|
Обновил концепцию, и обновил файл и описание в первом посте. Можно тестить. WebKaa.ru - Cotonti Relax
|
Kopusha |
|
---|---|
Пока все что работало со старым и с новым файлом работает. Added 2 weeks later: Подскажите как использовать Есть функция к примеру function cot_social_check_friend_plusmonth($userid, $friendid) Как написать запрос? {CALL|cot_social_check_friend_plusmonth('$0%','$1%')|PHP.usr.id,PHP.urr.user_id} как то так? Вроде бы так работает, но может что то усложнил? Added 33 minutes later: Вроде все работает идеально! Дополню примерами Было кастомная функция /** Исключаем из запроса историй этого же юзера саму себя **/ function get_item_user_and_id($item_id){ global $db, $db_folio; $string = ''; if($item_id){ $string = $db->query("SELECT item_id FROM $db_folio WHERE item_id=".$item_id)->fetchColumn(); $string = (int)$string; } if($item_id){ $iuser = $db->query("SELECT item_userid FROM $db_folio WHERE item_id=".$item_id)->fetchColumn(); $string .= " AND item_userid = $iuser"; } return $string; } {PRD_ID|get_item_user_and_id($this)|cot_getfoliolist('from-user', 4, 'item_id!=$this', "item_rating_real DESC")} Стало одна строчка {CALL|cot_getfoliolist('from-user', 4, 'item_id!=$0% AND item_userid=$1%', "item_rating_real DESC")|PRD_ID,PRD_OWNER_ID}
|
|
This post was edited by Kopusha (2018-10-25 08:10, 6 years ago) |