Also, ich habe das mit meinem Kenntnissen als NeuContaoer versucht zu lösen, was auch geklappt hat. Da ich aber auch kein Php-Profi bin, gibt es sicher elegantere Lösungen.
Zuerst habe ich mir über den Hook "ProcessEfgFormData" die übergebenen Arrays angeschaut. Da sehen die Eintragungen in "arrFiles" für den valumesFileUploader ganz anders aus als beim Efg. Leider habe ich es nicht hinbekommen, ein umgebautes Array (als 2. in der Übergabe) in den Callback zurückzugeben. So habe ich eine andere Lösung gefunden:
Im Formular habe ich versteckte Felder angelegt, in die ich im Hook die Pfadangaben aus valumes übertrage. Ich habe die Upload-Anzahl auf acht begrenzt und somit die Felder "bild1...bild8" angelegt. Mit "return($arrSubmitted);" wurden das auch hervorragend gespeichert.
Dann habe ich mir eigene Templates erstellt. Dazu folgendes Vorgehen: Im Ordner "system/modules/efg/templates" die Dateien "info_fd_simple_default.xhtml" (oder html5) nach "info_fd_simple_default_my" und "list_fd_table_default" nach "list_fd_table_default_my" kopiert. Damit erscheinen die auch im BE für das Modul "Auflistung Formular-Daten".
Zur Anpassung habe ich die dann im BE über die Template-Verwaltung kopiert, womit die updatesicher sind.
In den Templates habe ich die Namen "bild..." abgefragt und die Ausgabe gesteuert.
Für "list:fd_table...." habe ich immern bild1 selektiert und auch einen Link auf die Detail-Seite eingebaut. Der Trick dabei ist, dass bei versteckten Feldern kein Label angegeben werden kann. So habe ich auf das Verzeichnis "tl_files" abgefragt.
Aus der Zeile 113
Code:
<?php else: echo $col['content']; endif;?></td>
wurde
Code:
<?php else: if (0===stripos($col['content'],'tl_files/'): ?>
<a href="<?php echo $col['link_details']; ?>" >
<img src="<?php echo($this->getImage($col['content'], 80, null)); ?>" alt="<?php echo $this->textlink_details[1]; ?>" title="<?php echo $this->textlink_details[1]; ?>" />
</a>
<?php else:
echo $col['content']; endif; endif;?></td>
Schwieriger war die Detailansicht. Hier habe ich gleich leere Felder ausgeblendet und alle Bilder am Ende der Seite in einer Tabbele für die Lightbox gesammelt. Dazu habe ich in einem ersten Durchlauf alle "image"und "bild...." Eintragungen überlesen, in einer zweiten Runde nur diese in eine Tabelle für die Lightbox gepackt. Dabei sind auch alle mit der Core-Upload-Funktion hochgeladenen Bilder und die in den versteckten Feldern aus dem valumesFileUploader.
Für die Abfrage für Leerfelder war auch wichtig, das " " abzufragen:
Code:
<?php $nocontent = $fields['content']; if (($nocontent > ' ' && $nocontent <> ' ') && false===stripos($fields['label'],'bild')): ?>
Frage an die Experten: Gibt es bessere Möglichkeiten oder kann man die Erweiterungen angleichen?
Lesezeichen