UWAGA: Strona zawiera materiały archiwalne. Większość artykułów dotyczy Joomla! 1.0
Start
Jak utworzyć listę z wynikami zapytania do bazy danych Drukuj Email
Tworzenie list z patTemplate jest całkiem proste, ale jest jeszcze prostsze, kiedy używasz patTemplate w połączeniu z patDbc.

Spójrzmy na szablon dla listy:



 
001 <patTemplate:tmpl name="list">
002     <table border="1" cellpadding="10" cellspacing="0">
003         <tr>
004             <th>Superhero Name</th>
005             <th>Realname</th>
006             <th>Action</th>
007         </tr>
008         <!-- template for list row - ⇒ 
009         <patTemplate:tmpl name="list_entry">
010               <tr>
011                   <td>{superhero}</td>
012                   <td>{real_name}</td>
013                   <td>
014                       <a href="edit.php?id={id}">edit</a>
015                   </td>
016               </tr>
017         </patTemplate:tmpl>
018   </table>
019 </patTemplate:tmpl>

Ważne: Nazwy zmiennnych muszą być pisane WIELKIMI literami. Pamiętaj o tym. My napisaliśmy małymi, bo wykorzystujemy patXMLRenderer.

Teraz wyobraź sobie, że masz tabelę mysql z trzema kolumnami o nazwach: id, superhero, real_name i chciałbyć wyświetlić listę wszystkich rekordów z tej tabeli w szablonie znajdującym się powyżej.

 
01 <?PHP
02  $tmpl   = new patTemplate();
03  $tmpl->setBasedir( "templates" );
04  $tmpl->readTemplatesFromFile( "superherolist.tmpl" );
05      
06  $dbc = new patMySqlDbc( "localhost", "superheroes", "username", "passwd" );
07        
08  $query="SELECT id, superhero, real_name FROM secretIdentities ORDER BY superhero";
09  $result = $dbc->query( $query );
10        
11  $tmpl->addRows( "list_entry", $result->get_result( patDBC_TYPEASSOC ) );
12        
13  $result->free();
14        
15  $tmpl->displayParsedTemplate();
16 ?>

Oczywiście możesz użyć innej warstwy abstrakcji bazy danych albo funkcji PHP dla dostępu do bazy danych, my wykorzystaliśmy patDbc. $result->get_result() wywołuje funkcję mysql_fetch_array() i zbiera wszystkie rekordy w jednej zwracanej w wyniku tablicy.

Ta tablica jest przekazywana do bloku szablonu list_entry z wykorzystaniem addRows(), a patTemplate powtarza ten blok, dla wszystkich rekordów zawartych w tablicy.


Uwagi, źródła

Jeżeli masz sugestie odnośnie treści lub chcesz zgłosić poprawki do tego rozdziału, skomentuj go albo umieść wiadomość na forum: Dokumentacja - Propozycje, zmiany, poprawki

Dziękujemy!

Stefan Wajda, Zespół Dokumentacji PCJ

Tłum. Adam Sobkowicz. Na podstawie: help.joomla.org

Licencja: GNU FDL

Zmieniony ( 29.07.2006. )
 
« poprzedni artykuł   następny artykuł »