Лайфхак дивимося існуючі плейсхолдери

Про систему MODX CMS

MODX (читається «модекс») - це безкоштовна професійна система управління вмістом (CMS) і фреймворк для веб-додатків, призначена для забезпечення і організації спільного процесу створення, редагування і управління контентом сайтів.

Хочу поділитися маленьким сніпетів, який часто економить час. Не завжди зрозуміло, які плейсхолдери можна використовувати в тому чи іншому Чанкая, і на допомогу приходить # 91; # 91;! PrintPlaceholders # 93; # 93 ;:


Дивитися висновок краще з кінця, тому що на початку йдуть в основному системні настройки (втім і вони можуть стати в нагоді). параметр prefix допоможе, якщо в сніпеті використовуються плейсхолдери з певним префіксом, наприклад «fi.» у FormIt.

Віталій, щось у вас якась неоднозначна конструкція.
>>> $ placeholders = $ prefix? array (): $ modx-> placeholders;
$ Prefix у вас - рядкова змінна.
При цьому ви в $ placeholders привласнюєте або цю малу змінну, або масив плейсхолдеров MODX-а. Навіщо? За кінцевим висновку зрозуміло, що сенс в тому, що якщо префікс не вказано, то буде без циклу виведений масив плейсхолдеров $ modx-> placeholders, а якщо вказано, то буде фільтрація по префіксу. Але саме тут і виходить промах. Слідкуйте: Префікс вказано, і змінна $ placeholders стає рядкової змінної зі значенням зазначеного префікса. Далі якщо в циклі є збіги по ключу-префіксу, то ви вже намагаєтеся з цієї малої змінної працювати як з масивом. Це перше. А друге - якщо нічого не буде знайдено, то кінцевий «масив» плейсхолдеров - це просто строкова змінна з назвою префікса.

Друге: >>> if (! $ Modx-> user-> isAuthenticated ( 'mgr')) return;

1) Порожній масив в разі незадані префікса буде, а не рядок.
2) Оскільки це тимчасовий хак «тільки подивитися», досить, що прості користувачі не побачать, морочитися сенсу немає. Принаймні мені.

>> 1) Порожній масив в разі незадані префікса буде, а не рядок.

Так, дійсно, php такі конструкції сприймає як $ placeholders = ($ prefix? Array (): $ modx-> placeholders) ;, а не як ($ placeholders = $ prefix)? array (): $ modx-> placeholders;
Це моя помилка сприйняття. Але мабуть саме, щоб виключати такі помилки, пишуть типу ось так:

Так все простіше по сприйняттю і однозначно.

>> 2) Оскільки це тимчасовий хак «тільки подивитися», досить, що прості користувачі не побачать, морочитися сенсу немає. Принаймні мені.