Як написати сниппет для modx, частина 1
А що таке сніппети?
У своїй попередній статті я писав, що сніпети є одними з головних складових движка, це шматки РНР коду, яких ми вбудовуємо в розмітку сайту.
Наприклад, в движку вже вбудовані такі сніппети як Wayfinder (генерація меню), getResources (висновок ресурсів, новин) і т.д.
Виклик сниппета в розмітці відбувається таким чином:
Іноді буває проблема, коли сниппет виводить не те, що ми очікуємо, вирішить проблему можна, викликавши її в НЕ кешувального вигляді.
Виникає також ситуації, коли треба передавати деякі параметри сніпетів, наприклад, сніпетів вище (Wayfinder) повинна бути передана ID ресурсу, за яким він буде будувати меню.
Уявімо, що у нас є така структура ресурсів:
Сніппет побудує ось таке меню:
В даному прикладі я додав чанк-процесинг, але це вже інша тема.
пишемо Сніппет
Після ми вже можемо викликати сниппет, де-небудь в ресурсі / шаблоні, ось таким чином:
результат:
Повернемося до нашого сніпетів, по ідеї, сниппет в MODX розглядають як функцію, яка повинна щось повертати. а використовувати echo, print не рекомендується.
Перепишемо наш сниппет за всіма правилами:
Зберігаємо і, перевіривши, ми виявимо, що ніякої різниці то і немає, картинку наводити не буду все і так ясно.
Передача параметрів сніпетів
Як я писав вище, виникає необхідність передачі параметрів сніпетів, давайте поглянемо на код нижче:
Тут сніпетів Wayfinder ми передаємо параметр startId значення, якого дорівнює 5.
Спробуємо реалізувати це, ми будемо передавати сніпетів параметр name, і він повинен вивести щось типу такого:
Повертаємося до сніпетів і пишемо:
у другому рядку коду ми перевіряємо, передають нам параметр name, зверніть увагу, на те, що в коді сниппета параметри розцінюються як змінні. А далі просто повертаємо конкатенірованную рядок.
Звичайно, умова в коді вище можна було б замінити тернарного оператором:
Так навіть більш лаконічно. Пробуємо викликати:
Результат роботи сниппета ви можете побачити внизу:
На цьому ми закінчуємо, якщо виникли деякі питання, питайте.
У наступній статті ми:
Познайомимося з таким поняттям як чанк-процесинг. і навчимося використовувати його
Дізнаємося, як засобами MODX API вибирати ресурс і його дочірні ресурси, як створювати і видаляти ресурси.