Kort |
|
---|---|
Есть плагин, который с помощью двух функций выводит блок на странице. Примерно так: <!-- IF {PHP|check_exists} --> {PHP|render} <!-- ENDIF --> Возник вопрос как всю эту историю ставить на паузу. Если я приостанавливаю работу плагина, то проверка check_exists() в шаблоне по идее должна отдавать false, потому что функция не определена. Но в результате отдается true, и в блоке выводится в виде текста {PHP|render}. Решить все это можно, но правильно ли в данном случае работает шаблонизатор? SED.by - создание сайтов, разработка плагинов и тем для Котонти
|
Alex300 |
|
---|---|
Шаблонизатор не делает проверок на то, активно ли расширение или нет. Если функция определена - просто выполняет ее. Если функция не определена, то, если не ошибаюсь, возвращает тег <!-- IF {PHP|check_exists} === true --> {PHP|render} <!-- ENDIF --> Тогда, если тег вернет значение, отличное от true, блок не должен выполниться Есть миры, не здесь, там, где небеса горят, и моря засыпают, и реки дремлют; люди сделаны из дыма, а города – из песен. Где-то опасность, где-то несправедливость, даже где-то остыл чай. Идем Эйс, у нас много работы!...
...Sorry for my english... Бесплатные расширения для Cotonti: https://lily-software.com/free-scripts/ |
Kort |
|
---|---|
Так речь не про проверку активности расширения -- для этого есть cot_plugin_active() Речь про то, что если плагин на паузе, то и функция недоступна. А если так, то почему проверка <!-- IF {PHP|check_exists} --> ... отрабатывает. Но "полный" вариант <!-- IF {PHP|check_exists} === true --> ... да, подошел) SED.by - создание сайтов, разработка плагинов и тем для Котонти
|
Alex300 |
|
---|---|
Проблема как раз в том, что если функция не существует ее вызов Может правильнее все таки, если функция не существует, выбрасывать исключение, как это делает PHP. В исключении указывать какой тег вызвал несуществующию функцию. А в шаблонах, если функция может быть неопределена, писать: <!-- IF {PHP|function_exists('check_exists')} AND {PHP|check_exists} --> ... Так на этапе разработки такие ошибки легче отлавливать. Надо подумать, и поставить тикет :) Есть миры, не здесь, там, где небеса горят, и моря засыпают, и реки дремлют; люди сделаны из дыма, а города – из песен. Где-то опасность, где-то несправедливость, даже где-то остыл чай. Идем Эйс, у нас много работы!...
...Sorry for my english... Бесплатные расширения для Cotonti: https://lily-software.com/free-scripts/ |
Kort |
|
---|---|
Если с правильно оформленным условием достаточно одной проверки, меня это устраивает)) SED.by - создание сайтов, разработка плагинов и тем для Котонти
|