--=REKLAMA=--
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.
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!.