Mit dem Destination-Pointer legen wir fest, an welcher Stelle das Element eingefügt werden soll, während „$elementRow“ den „tt_content“-Datensatz enthält, den wir in der Datenbank erzeugen möchten.
Flexform-Pointer
Als Destination-Pointer wird ein String oder Array vom Typ Flexform-Pointer erwartet (siehe auch Kasten). Er bezeichnet die genaue Position, an der das neue Element eingefügt werden soll. Flexform-Pointer werden Ihnen an verschiedenen Stellen wieder begegnen, denn sie werden innerhalb der API immer dann verwendet, wenn eine Positionsangabe erforderlich ist.
| Flexform-Pointer |
|
Mit Flexform-Pointern lässt
sich die Position innerhalb von Flexform-Daten exakt definieren.
Neben der Array-Variante (siehe Text) kann der Pointer auch als
String übergeben werden. Die einzelnen Parameter werden dabei
durch Doppelpunkte getrennt und in folgender Reihenfolge angegeben:
table:uid:sheet:sLang:field:vLang:position |
Die folgenden Zeilen sorgen nun dafür, dass ein neues Element nach dem zweiten (=letzten) Element in dem Bereich „field_content“ der Seite Nr. 1905 angelegt wird:
$destinationPointer = array( 'table' => 'pages', 'uid' => 1905, 'sheet' => 'sDEF', 'sLang' => 'lDEF', 'field' => 'field_content', 'vLang' => 'vDEF', 'position' => 2, ); $elementRow = array( 'CType' => 'text', 'title' => 'Test Element', 'bodytext' => 'Lorem Ipsum und so' ); $uid = $templavoilaApiObj->insertElement($destinationPointer, $elementRow);
Listing 3
Wenn alles geklappt hat, befindet sich nach dem Aufruf der Funktion „insertElement“ die ID des neuen Elements in „$uid“. Mit folgendem Funktionsaufruf verschieben wir schließlich das neue Element in die rechte Spalte der Seite:
$sourcePointer = $destinationPointer; $sourcePointer['position'] = 3; $sourcePointer['targetCheckUid'] = $uid; $destinationPointer['position'] = 0; $destinationPointer['field'] = 'field_rightbar'; $templavoilaApiObj->moveElement($sourcePointer, $destinationPointer);
Listing 4
Eine Reihe von Beispielen finden sich im Quellcode des TemplaVoilà-Seitenmoduls (mod1/index.php).




