Database Integration (wfqbe): Unterschied zwischen den Versionen
| Zeile 53: | Zeile 53: | ||
== Detailansichten realisieren == | == Detailansichten realisieren == | ||
| + | Wir möchten eine Liste von VHS-Kursen ausgeben. In dieser Ausgabeliste sollen alle Datensätze einen Link bekommen. Wenn man diesen anklickt werden die Daten des gewählten Datensatzes in einer Detailansicht gezeigt. Außerdem gibt es ein Datum und ein Bild des Referenten. | ||
| + | |||
| + | Als Ausgangspunkt haben wir für das Beispiel einen Datensatz mit der uid=1 der eine Liste ausgibt und einen mit der uid=4 der die Detailansicht ausgibt. | ||
| + | |||
| + | Abfrage der Listenansicht (uid des Datensatzes = 1) | ||
| + | <pre> | ||
| + | SELECT tt_kurse.uid AS Detailansicht, tt_kurse.referent AS Referent, tt_kurse.hausOrt AS Ort, tt_kurse.seminarName AS Seminarname FROM tt_kurse | ||
| + | </pre> | ||
| + | Abfrage der Detailansicht (uid des Datensatzes = 4) | ||
| + | |||
| + | <pre> | ||
| + | SELECT tt_kurse.seminarName, tt_kurse.seminarText, tt_kurse.referent, tt_kurse.referentBild, tt_kurse.seminarStart FROM bb_kurse WHERE bb_kurse.uid = ###WFQBE_UID### | ||
| + | </pre> | ||
| + | |||
| + | Der Platzhalter wird später durch die Übergabe des Parameters ''tx_wfqbe_pi1[uid]=uid'' ersetzt | ||
| + | |||
| + | Im '''TypoScript''' manipulieren wir jetzt die Listenansicht: | ||
| + | |||
<pre> | <pre> | ||
# customProcess.uid_des_Listendatensatzes | # customProcess.uid_des_Listendatensatzes | ||
| Zeile 60: | Zeile 78: | ||
0.typolink = 1 | 0.typolink = 1 | ||
# Seiten ID | # Seiten ID | ||
| − | 0.typolink.parameter = | + | 0.typolink.parameter = 20 |
0.typolink.additionalParams = &tx_wfqbe_pi1[uid]=###WFQBE_FIELD_0### | 0.typolink.additionalParams = &tx_wfqbe_pi1[uid]=###WFQBE_FIELD_0### | ||
} | } | ||
| Zeile 71: | Zeile 89: | ||
Alle mit dem Select Query ausgegebenen '''Felder stehen als Array in einem COA TypoScript Objekt zur Verfügung'''. D.h. mit der 0 kann man das erste Feld als TypoScript Objekt ansprechen mit der 1 das nächste und so weiter. Der Inhalt steht außerdem als Marker in der Form ###WFQBE_FIELD_Nummer### zur Verfügung. | Alle mit dem Select Query ausgegebenen '''Felder stehen als Array in einem COA TypoScript Objekt zur Verfügung'''. D.h. mit der 0 kann man das erste Feld als TypoScript Objekt ansprechen mit der 1 das nächste und so weiter. Der Inhalt steht außerdem als Marker in der Form ###WFQBE_FIELD_Nummer### zur Verfügung. | ||
| − | Im Beipiel wird das 1. Feld als TEXT Objekt generiert und mit einem Link versehen. Als Parameter | + | Im Beipiel wird das 1. Feld als TEXT Objekt generiert und mit einem Link versehen. Als Parameter geben wir die uid des Datensatzes mit. Der Marker in der letzten Zeile wird mit dessen Wert ersetzt. |
| + | |||
| + | === Timestamp formatieren === | ||
| + | Wir haben gesehen, daß man mit customProcess einen Query Datensatz ansprechen kann und seine Felder als TypoScript Objekte umsetzen. | ||
| + | Das machen wir nun mit einem Datumsfeld. Dazu erweitern wir das TypoScript Template und greifen diesesmal auf den Datensatz mit der Detailansicht zu (uid = 4) | ||
Version vom 10. Juli 2007, 19:24 Uhr
Gute Extensions aber ein paar Bugs. Update: V1.0 - super... ab dieser Version kann man die Abfragen alle in einem Ordner platzieren. Das Plugin kann man verschieden plazieren und den gewünschten Datensatz auswählen.
V0.9.5 - mysql unterstützt keinen JOIN deshalb muß man in einigen Tabellen die JOINS durch LEFT JOIN ersetzen. Das betrifft die Funktionalität von Search Abfragen
/typo3conf/ext/wfqbe/tx_wfqbe_query_search/class.form_generator.php
Die Custom Templates werden nicht gefunden dazu folgende Änderung: Datei pi1/class.tx_wfqbe_results.php Folgendes ersetzen
function userLayout($ris,$row){
#$file = $this->cObj->fileResource($row['template']== ? $this->conf["template"] : $this->baseTemplateUrl.$row['template']);//estraggo il template
$file = $this->cObj->fileResource($row['template']== ? $this->conf["template"] : $this->pibase->baseTemplateUrl.$row['template']);
Sprachdatei erweitern
pi1/locallang.xml
<?xml version="1.0" encoding="utf-8" standalone="yes" ?> <T3locallang> <meta type="array"> <type>module</type> <description>Language labels for plugin "tx_wfqbe_pi1"</description> </meta> <data type="array"> <languageKey index="default" type="array"> <label index="prev">Previous page</label> <label index="next">Next page</label> <label index="go_to_page">Go to page </label> </languageKey> <languageKey index="de" type="array"> <label index="prev">Zurück</label> <label index="next">Weiter</label> <label index="go_to_page">Gehe zu Seite </label> </languageKey> <languageKey index="it" type="array"> <label index="prev">Pagina precedente</label> <label index="next">Pagina successiva</label> <label index="go_to_page">Vai a pagina </label> </languageKey> </data> </T3locallang>
Suchabfragen
Dafür baut man ein Select Query in dem man die WHERE Clauses durch Platzhalter in der Art ###WFQBE_SUCHMICH### ersetzt. Eine 2. Suchabfrage wird im Search Modus ausgeführt und auf die vorher erstellte Liste verwiesen. Darin stehen die Platzhalter automatisch zur Verfügung.
Tipps
Platzhalter benutzen:
SELECT * WHERE meinFeld LIKE '%###WFQBE_SUCHMICH###%'
Detailansichten realisieren
Wir möchten eine Liste von VHS-Kursen ausgeben. In dieser Ausgabeliste sollen alle Datensätze einen Link bekommen. Wenn man diesen anklickt werden die Daten des gewählten Datensatzes in einer Detailansicht gezeigt. Außerdem gibt es ein Datum und ein Bild des Referenten.
Als Ausgangspunkt haben wir für das Beispiel einen Datensatz mit der uid=1 der eine Liste ausgibt und einen mit der uid=4 der die Detailansicht ausgibt.
Abfrage der Listenansicht (uid des Datensatzes = 1)
SELECT tt_kurse.uid AS Detailansicht, tt_kurse.referent AS Referent, tt_kurse.hausOrt AS Ort, tt_kurse.seminarName AS Seminarname FROM tt_kurse
Abfrage der Detailansicht (uid des Datensatzes = 4)
SELECT tt_kurse.seminarName, tt_kurse.seminarText, tt_kurse.referent, tt_kurse.referentBild, tt_kurse.seminarStart FROM bb_kurse WHERE bb_kurse.uid = ###WFQBE_UID###
Der Platzhalter wird später durch die Übergabe des Parameters tx_wfqbe_pi1[uid]=uid ersetzt
Im TypoScript manipulieren wir jetzt die Listenansicht:
# customProcess.uid_des_Listendatensatzes
plugin.tx_wfqbe_pi1.customProcess.1 {
0 = TEXT
0.value = Show details
0.typolink = 1
# Seiten ID
0.typolink.parameter = 20
0.typolink.additionalParams = &tx_wfqbe_pi1[uid]=###WFQBE_FIELD_0###
}
Erklärung
Mit customProcess.1 wird der Datensatz angesprochen der die Links bekommen soll.
Alle mit dem Select Query ausgegebenen Felder stehen als Array in einem COA TypoScript Objekt zur Verfügung. D.h. mit der 0 kann man das erste Feld als TypoScript Objekt ansprechen mit der 1 das nächste und so weiter. Der Inhalt steht außerdem als Marker in der Form ###WFQBE_FIELD_Nummer### zur Verfügung.
Im Beipiel wird das 1. Feld als TEXT Objekt generiert und mit einem Link versehen. Als Parameter geben wir die uid des Datensatzes mit. Der Marker in der letzten Zeile wird mit dessen Wert ersetzt.
Timestamp formatieren
Wir haben gesehen, daß man mit customProcess einen Query Datensatz ansprechen kann und seine Felder als TypoScript Objekte umsetzen. Das machen wir nun mit einem Datumsfeld. Dazu erweitern wir das TypoScript Template und greifen diesesmal auf den Datensatz mit der Detailansicht zu (uid = 4)