--=REKLAMA=--

Parametr typu sql

Z Joomla!WikiPL

(Przekierowano z Sql - typy parametrów)

Parametr typu sql - Joomla w wersji 1.5.x

Params.sql.jpg

Parametr typu sql umieszcza, listę rozwijaną umożliwiającą odczytanie informacji z bazy danych Joomla. Jeśli wartość parametru jest zapisana w pliku params ini, zostanie pobrana i wyświetlona, jeśli - będzie wyświetlana wartość domyślna.

  • type (obowiązkowy) musi to być sql.
  • name (obowiązkowy): niepowtarzalne oznaczenie – nazwa parametru. Musi być taki sam, jak nazwa kolumny w wynikach zapytania wyświetlanych użytkownikowi na liście rozwijanej, chyba że inna nazwa zostanie ustalona w atrybucie value_field.
  • label (obowiązkowy, można tłumaczyć): etykieta – tytuł opisujący parametr.
  • query (obowiązkowy): instrukcja SQL, której wykonanie dostarczy danych do listy rozwijanej. Instrukcja musi zwrócić wartości dwóch kolumn, jednej nazwanej 'value' (chyba, że jej wartość zostanie zastąpiona atrybutem ustalonym dla key_field) z wartością elementu listy, oraz drugiej nazwanej tak samo jak nazwa atrybutu (chyba, że jej wartość zostanie zastąpiona atrybutem ustalonym dla value_field) z tekstem widocznym na rozwijanej liście.
  • default (opcjonalny): wartość domyślna. Domyślna wartość pola 'value' chyba, że jej wartość zostanie zastąpiona atrybutem ustalonym dla key_field.
  • description (opcjonalny, można tłumaczyć) opis, wskazówka objaśniająca , wyświetlany jako wskazówka w dymku na stronie edytora szablonu.
  • key_field (opcjonalny): nazwa kolumny zawierającej wartość parametru. Gdy opuszczono, zostanie użyta kolumna 'value', jeśli istnieje
  • value_field (opcjonalny): nazwa kolumny zawierającej wartość, która będzie widoczna dla użytkownika na rozwijanej liście. Gdy opuszczono, zostanie użyta kolumna nosząca taką samą nazwę, jak nazwa atrybutu, jeśli istnieje.

Przykład definicji parametrów w pliku XML:

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

Zwróć uwagę na klauzulę AS zastosowaną w tym przykładzie, ponieważ w tabeli jos_content nie ma kolumny nazywającej się 'value'. W praktyce rzadko która tabela w bazie danych Joomla ma kolumnę 'value'.

Aby zdefiniować kolumnę, można by alternatywnie skorzystać z atrybutu key_field zamiast 'value'.

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

Przyniesie identyczny efekt, jak poprzedni przykład.

Dla obu nazw kolumn mogą być potrzebne aliasy. Załóżmy na przykład, że chcesz, by pole zostało nazwane 'myfield' zamiast 'title', jak w poprzednim przykładzie. Możesz to zrobić instrukcją:

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

lub alternatywnie:

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

W instrukcji SQL możesz również składać (assemble) lub przeliczać pola. Przykładowo załóżmy, że chcesz dołączyć datę/czas utworzenia w każdym artykule do tytułu każdego artykułu na liście. Możesz w takim przypadku skorzystać z instrukcji SQL:

SELECT id, concat( title, ' (', created, ')') AS title FROM #__content

Uwaga: Instrukcje SQL powinny być prawidłowe także dla innych typów i wersji bazy danych niż baza obsługująca Joomla!. Będzie to najczęściej dotyczyć wersji MySQL, ale nie ma żadnego powodu, aby instrukcje nie miały działały poprawnie w innych bazach danych niż obsługiwane przez Joomla.

Uwaga: Jak widać w powyższych przykładach przedrostek nazw tabel w bazie danych można podać w postaci '#_' (znaku hasz i podkreślenia) - marker zostanie automatycznie przedrostek zastosowany w instalacji Joomla!.


Pozostałe typy parametrów

Lista wszystkich typów parametrów dla Joomla! 1.5

calendar  : category : editors  : filelist  : folderlist  : helpsites  : hidden  : imagelist  : languages  : list  : menu  : menuitem  : password  : radio  : section  : spacer  : sql  : text  : textarea  : timezones  : usergroup

Lista wszystkich typów pól formularzy dla Joomla! 1.7

accesslevel  : cachehandler  : calendar  : category  : checkbox  : checkboxes  : combo  : componentlayout  : contentlanguage  : editor  : editors  : file  : filelist  : folderlist  : groupedlist  : helpsite  : hidden  : imagelist  : integer  : language  : list  : media  : menu  : menuitem  : modulelayout  : password  : radio  : rules  : sessionhandler  : spacer  : sql  : templatestyle  : text  : textarea  : timezone  : user  : usergroup

Zobacz także



Dziękujemy za wkład

» Stefan Wajda [zwiastun],