Hier ein Minibeitrag aus der Development Corner.
An vielen Stellen der Extensionentwicklung kann man eine kommaseparierte Liste von Seiten UID (PID) gebrauchen. Hier zwei kleine Beispiele fürs FE und BE.
1. pi_getPidList()
Um in einer DB Abfrage innerhalb eines FE Plugins Werte auszugeben, kann man Werte innerhalb von mehreren Seiten Suchen. Das Gute: Innerhalb von FE Erweiterungen stehen uns in der Regel die pibase Methoden zur Verfügung. Hier also auch pi_getPidList() (siehe API).
Beispiel Liste
$liste = $this->pi_getPidList($elternPID, $tiefe); // 1,3,4,34,3 |
Gängiges Beispiel mit Ausgangspunkt
$liste = $this->pi_getPidList($this->cObj->data['pages'], $this->cObj->data['recursive']); // 1,3,4,6 $GLOBALS['TYPO3_DB']->exec_SELECTquery ( $select = '*', $form = 'table', $where = 'pid IN (' . $liste . ')', $groupby = '', $orderby = '', $limit = 1 ); |
2. getTreeList()
Wenn uns die pibase Methoden nicht zur Verfügung stehen, kann das schon schwerer sein (z.B. im Backend oder bei Verwendung von CLI oder EID). Ich habe damals einen halben Tag nach einer anständigen Lösung gesucht und bin auf getTreeList() (siehe API) gestoßen.
Beispiel Liste
$tree = t3lib_div::makeInstance('t3lib_queryGenerator'); $liste = $tree->getTreeList($elternPID, $tiefe, 0, 1); // 1,3,4,34,3 |
Nachzulesen ist das Ganze in der API.
Hoffentlich kann das jemand gebrauchen!?
Cheers, Alex