Nachdem ich nun 4 mal nicht dazu gekommen bin den Beitrag fertigzustellen weil sich mein Internet irgendwie dagegen streubt, hier die schnelle Fassung bevor ich hier noch die Kriese kriege
Hallo zusammen,
an sich könnte man das ganze auf verschiedene Varianten lösen.
Quick and Dirty: Man nutzt die Sortierung der Felder im Backend.
Im Template kann man mit Hilfe einer Laufvariablen die entsprechenden Werte in einer Schleife zuweisen.
PHP-Code:
foreach ($this->tbody as $row):
//#1 some code here
$i=0;
foreach ($row as $col):
switch ($i++) {
case 0:
$vorname = $col['content'];
break;
case 1:
$nachname = $col['content'];
break;
//...
case N:
$notizen = $col['content'];
break;
}
endforeach;
//#2 some code here
endforeach;
In #1 kann dabei beliebiger Code folgen.
In #2 werden die Variablen dann genutzt und ausgegeben. Hier ist also das eigentliche Template für z.B. einzelne Profile zu finden.
Die erste foreach sorgt dabei für das Erstellen der einzelnen Profile, die zweite NUR zum Definieren der Variablen.
Die Daten werden also vor der Ausgabe nochmals verarbeitet und können dann beliebig im Template positioniert werden.
Problem: Änderungen im Backend können zu Fehlern führen. Folglich muss alles manuell angepasst werden.
Eine kompliziertere Alternative und wahrscheinlich auch weniger effizient weil quasi eine Vergewaltigung von Array-Strukturen stattfindet:
PHP-Code:
$arr['vorname'][$i]['content'];
$arr['nachname'][$i]['content'];
//...
$arr['notizen'][$i]['content'];
Das anlegen dieses Arrays kann ich jetzt so auf die Schnelle nicht beschreiben, die Idee dahinter ist jedoch die KEYs über die Feld-Bezeichnungen anzulegen.
Problem:Diese Methode kann flexibler sein, jedoch ist der Aufwand deutlich höher und eine Anpassung vom Template für den Fall von Änderungen ist auch nicht auszuschließen. Lediglich was die Reihenfolge der Elemente betrifft.
Ich würde Variante 1 empfehlen weil alles andere viel zu viel Aufwand mit sich tragen würde.
Ich hoffe ich konnte damit im groben weiterhelfen. Falls hier weitere Hilfe benötigt wird, einfach schreiben, ich hab das Forum aboniert
Liebe Grüße,
Patrick
Lesezeichen