Як написати сниппет для modx, частина 1

А що таке сніппети?

У своїй попередній статті я писав, що сніпети є одними з головних складових движка, це шматки РНР коду, яких ми вбудовуємо в розмітку сайту.
Наприклад, в движку вже вбудовані такі сніппети як Wayfinder (генерація меню), getResources (висновок ресурсів, новин) і т.д.
Виклик сниппета в розмітці відбувається таким чином:

Іноді буває проблема, коли сниппет виводить не те, що ми очікуємо, вирішить проблему можна, викликавши її в НЕ кешувального вигляді.
Виникає також ситуації, коли треба передавати деякі параметри сніпетів, наприклад, сніпетів вище (Wayfinder) повинна бути передана ID ресурсу, за яким він буде будувати меню.
Уявімо, що у нас є така структура ресурсів:

Сніппет побудує ось таке меню:

В даному прикладі я додав чанк-процесинг, але це вже інша тема.

пишемо Сніппет

Після ми вже можемо викликати сниппет, де-небудь в ресурсі / шаблоні, ось таким чином:

результат:

Повернемося до нашого сніпетів, по ідеї, сниппет в MODX розглядають як функцію, яка повинна щось повертати. а використовувати echo, print не рекомендується.
Перепишемо наш сниппет за всіма правилами:

Зберігаємо і, перевіривши, ми виявимо, що ніякої різниці то і немає, картинку наводити не буду все і так ясно.

Передача параметрів сніпетів

Як я писав вище, виникає необхідність передачі параметрів сніпетів, давайте поглянемо на код нижче:

Тут сніпетів Wayfinder ми передаємо параметр startId значення, якого дорівнює 5.
Спробуємо реалізувати це, ми будемо передавати сніпетів параметр name, і він повинен вивести щось типу такого:

Повертаємося до сніпетів і пишемо:

у другому рядку коду ми перевіряємо, передають нам параметр name, зверніть увагу, на те, що в коді сниппета параметри розцінюються як змінні. А далі просто повертаємо конкатенірованную рядок.
Звичайно, умова в коді вище можна було б замінити тернарного оператором:

Так навіть більш лаконічно. Пробуємо викликати:

Результат роботи сниппета ви можете побачити внизу:

На цьому ми закінчуємо, якщо виникли деякі питання, питайте.
У наступній статті ми:
Познайомимося з таким поняттям як чанк-процесинг. і навчимося використовувати його
Дізнаємося, як засобами MODX API вибирати ресурс і його дочірні ресурси, як створювати і видаляти ресурси.