Багато хто знає, що в MODX вже є набір системних плейсхолдеров - # 91; # 91; ++ site_url # 93; # 93 ;. # 91; # 91; ++ assets_url # 93; # 93 ;. # 91; # 91; + modx.user.id # 93; # 93; і т.д. Але дуже часто виникає необхідність вивести якусь додаткову інформацію на сайті. У цьому випадку нам потрібно визначити свої плейсходери і для цього в MODX є кілька методів.
Нагадаю, що плейсхолдери - це один з базових елементів MODX. Вони використовуються, як правило, для відображення інформації, що зберігається в них інформації в чанка і шаблонах і мають наступний синтаксис # 91; # 91; + Placeholder # 93; # 93 ;.
Все плейсхолдери знаходяться в масиві $ modx-> placeholders. Саме в нього додаються наші плейсхолдери і з нього зачитуються при парсінгу сторінки.
Давайте розглянемо всі методи для роботи з ними.
1. setPlaceholder ()
Цей метод зберігає плейсхолдер з зазначеним ключем і привласнює йому передане значення. Він нічого не повертає.
Після цього вам стає доступним плейсхолдер # 91; # 91; + name # 93; # 93 ;. Його можна вставляти в шаблон, контент сторінки або в чанк.
2. setPlaceholders ()
У цьому методі можна визначити відразу кілька плейсхолдеров, які можуть бути передані в простому асоціативному масиві або в об'єкті. Зверніть увагу, у цього методу є другий параметр $ namespace. який використовується в якості префікса. Цей метод також нічого не повертає.
Доступні плейсхолдери - # 91; # 91; + my.name # 93; # 93; і # 91; # 91; + my.email # 93; # 93; .
3. toPlaceholder ()
Цей метод схожий на setPlaceholder (). але має додаткові параметри для префікса і роздільник, який додається між префіксом і ключем. А ще у нього є п'ятий параметр $ restore. який, якщо вказати йому true. поверне в масиві старе значення плейсходера в ключі "restore". Метод setPlaceholder () повертає масив з плейсхолдерамі в ключі 'keys'.
У параметрі $ value можна передавати масив. Ключі цього масиву будуть додані до ключу через роздільник.
4. toPlaceholders ()
Цей метод розширює метод toPlaceholders (). В $ subject можна передавати багаторівневий масив. Він буде рекурсивно оброблений. Ключ кожного рівня масиву буде додано до ключу плейсхолдера через роздільник
отримуємо # 91; # 91; + my.foo # 93; # 93; і # 91; # 91; + my.document.pagetitle # 93; # 93; .
5. getPlaceholder ()
Цей метод дозволяє отримати вже встановлений плейсхолдер.
6. unsetPlaceholder ()
Видаляє встановлений плейсхолдер.
7. unsetPlaceholders ()
Видалення кількох плейсхолдеров.
Сподіваюся, тепер використання цих методів не викличе труднощів.