Joomla! Україна

Блоги — цікаві статті та записи про Joomla, програмування, верстку та інше.
  • Версія Joomla! 5.0.3 від 20.02.2024
  • 60 записи в блогах
  • 791 новини та статті
     

SQL-запити для створення випадаючих списків в XML

19.11.2011, 01:08  |  Прочитано: 8585 раз  |  Для розробників  |  Автор: Денис Носов

(0 голоси)

В Joomla 1.7 є чудова можливість формувати випадаючі списки з вибіркою даних із бази даних. У цій статті розмова піде про деякі можливості параметрів XML для формування випадаючих списків.

Атрибути для поля XML

Давайте для початку ознайомимося із атрибутами поля XML для наших випадаючих списків.

  • Type
    Обов'язковий атрибут із значенням sql.
  • Name
    Обов'язкове унікальне ім'я поля. Повинно співпадати з іменем стовпця з результатів вибірки в запиті, або ж можливе використання іншого імені, зазначеного в value_field.
  • Label
    Обов'язковий опис даного поля (можливе використання значень з мовного файлу).
  • Query
    Обов'язковий SQL-запит, який формує дані для випадаючого списку. Запит повинен обов'язково повертати два значення. Перше, value (можна перевизначити в key_field) містить значення для поля value елемента форми. Друге може бути названо як завгодно (назву можна перевизначити атрибутом value_field) містить відображуваний текст елементів списку.
  • Default
    Довільне значення за замовчуванням. Відповідає полю 'value', або перевизначення атрибутів key_field.
  • Description
    Довільний текст відображається в підказці при наведенні на випадаючий список (можливе використання значень з мовного файлу).
  • Key_field
    Довільне значення, якщо не задано, то використовується ім'я стовпця із запиту, визначене як value. Або ж можна визначити свій аліас стовпця запиту для value і призначити його цьому атрибуту.
  • Value_field
    Довільне ім'я стовпця, яке формує відображаються значення списку, що випадає. Якщо не задано, то використовуватиметься стовпець з тим же ім'ям, що і name.

Кілька прикладів використання в XML

 <field name="title" type="sql" default="10" label="Select an article" query="SELECT id AS value, title FROM #__content" /> 

Зверніть увагу, що в даному прикладі нам необхідно використовувати конструкцію AS, щоб визначити значення поля value, оскільки таблиця #__content у якості первинного ключа містить стовпець ID, але не VALUE. Більшість же таблиць, які використовуються в Joomla мають стовпець первинного ключа з назвою VALUE. Крім того завжди можна використовувати атрибут key_field для визначення стовпця

 <field name="title" type="sql" default="10" label="Select an article" query="SELECT id, title FROM #__content" key_field="id" /> 

Даний приклад поверне ідентичний, порівняно з попереднім, результат.

Далі ми хочемо дати нашому полю ім'я не title, а MyField. Для цього нам потрібно використовувати аліас AS в SQL-запиті:

<field name="myfield" type="sql" default="10" label="Select an article" query="SELECT id AS value, title AS myfield FROM #__content" /> 

Або альтернативний варіант з перевизначенням атрибута value_field.

 <field name="myfield" type="sql" default="10" label="Select an article" query="SELECT id, title FROM #__content" key_field="id" value_field="title" /> 

Також можна використовувати стандартні конструкції t-sql. Наприклад ми хочемо в спадному списку бачити дату створення поруч з назвою статті

 <field name="title" type="sql" default="10" label="Select an article" query="SELECT id, (title, '-', created) AS title FROM #__content" /> 

Префікс таблиць в даних конструкціях вказується у вигляді #_, при виконанні він буде автоматично замінено на префікс таблиць бази даних, який використовуються в Joomla!

Теги:: Joomla 1.7 xml SQL

Написати коментар