Kann mir jemand einen Tipp geben, wie ich das MultiImageManagementWidget einsetze?
Ich suche eine einfache Möglichkeit, per DCA eine Datei hochzuladen.
Gruß
Olli
Kann mir jemand einen Tipp geben, wie ich das MultiImageManagementWidget einsetze?
Ich suche eine einfache Möglichkeit, per DCA eine Datei hochzuladen.
Gruß
Olli
Der valumsFileUploader kommt nicht in Frage?
Doch natürlich. Gucke ich mir sofort an. Geht damit auch ein Upload Feld im Backend? Möchte beim Schreiben einer News mit Bild den Weg über die Dateiverwaltung umgehen.
Seit 3.x bringt valumsFileUploader auch ein BE-Widget mit. Wir haben es auf vielfachen Wunsch implementiert, solltest du Wünsche oder allgemeine Ergänzungen zu dem Widget haben, immer her damit. Wie es eingesetzt wird findest du im Wiki und auf Github.
Oh wie geil. Den Valums kannte ich, das mit dem Widget nicht. Super und danke.
Die gibt es auch nicht. Es handelt sich dabei um ein Widget, welchen du z.B. bei deinem eigenen Modul im DCA als inputType angeben kannst. Es sind jedoch weitere Einstellungen direkt im DCA nötig, die so nicht dokumentiert sind. Auch bestimmte Datenbankfelder werden benötigt (warum weiß ich nicht).
Scheinbar muss ich eine Media Tabelle anlegen/angeben sowie einen Speicherpfad festlegen.
Die Media Tabelle muss wohl neu angelegt werden und soweit ich das auf den ersten Blick erkennen konnte folgende Felder haben:
- pid
- tstamp
- title
- singleSRC
- sorting
Kann das wer bestätigen?
Eventuell komme ich heute aber noch selber zum testen.
Gruß
Nikolas
So, nun mal auseinandergepflückt das Ganze.
Zusätzlich zu deinem DCA sollte ein weiterer DCA für die DB Tabelle mit eben den Media Daten erstellt werden.
Hier mal beispielhaft:
Diese Felder sollten mindestens vorhanden sein damit alle Funktionen unterstützt werden können.PHP-Code:
'fields' => array
(
'id' => array
(
'sql' => "int(10) unsigned NOT NULL auto_increment"
),
'pid' => array
(
'sql' => "int(10) unsigned NOT NULL default '0'"
),
'tstamp' => array
(
'sql' => "int(10) unsigned NOT NULL default '0'"
),
'title' => array
(
'label' => &$GLOBALS['TL_LANG']['tl_media_table']['title'],
'inputType' => 'text',
'eval' => array('media_editable' => 'true'),
'sql' => "varchar(255) NOT NULL default ''"
),
'singleSRC' => array
(
'sql' => "varchar(255) NOT NULL default ''"
),
'sorting' => array
(
'sql' => "int(10) unsigned NOT NULL default '0'"
),
'published' => array
(
'sql' => "int(10) unsigned NOT NULL default '0'"
)
)
Felder die im BE pro Bild bearbeitet werden können sollen müssen im eval Array folgenden Wert bekommen:
Siehe auch bei dem Feld "title" im obigen Beispiel.PHP-Code:
'media_editable' => 'true'
So können auch weitere Felder dem Widget hinzugefügt werden.
Damit das Widget dann auch eingebunden wird muss in dem eigentlichen DCA deines Moduls folgende Angaben in dem entsprechenden Feld Array gemacht werden:
"media_table" gibt dabei den Tabellennamen eurer zuvor über den zusätzlichen DCA erstellten Tabelle an.PHP-Code:
'inputType' => 'multiImageManagementWidget',
'eval' => array('media_table'=>'tl_media_table', 'media_path'=>'files/media', 'media_name'=>'offer')
"media_path" ist der Pfad wo die hochgeladenen Bilder gespeichert werden sollen.
"media_name" ist ein optionaler Name für das hochgeladene Bild. Wird dieser Wert weggelassen wird das Bild mit dem Originalnamen gespeichert.
Ich hoffe ich hab nichts weiter übersehen oder hier vergessen und konnte weiterhelfen.
Gruß
Nikolas
Nachtrag:
Um Radio Buttons, z.B. für die Titelbild Auswahl, zu den Bildern hinzuzufügen muss folgende Felddefinition im tl_media_table DCA eingetragen werden:
Das Feld wird zwar als Checkbox deklariert aber durch die eval Angabe "media_oneofmany=>true" wird die Checkbox in eine Radio Button Gruppe für alle Bilder umgewandelt.PHP-Code:
'titleImage' => array
(
'label' => 'Als Titelbild verwenden',
'inputType' => 'checkbox',
'eval' => array('media_editable' => 'true', 'media_oneofmany'=>true),
'sql' => "int(1) unsigned NOT NULL default '0'"
)
Gruß
Nikolas
Danke Nikolas für die fehlende Dokumentation!
Ich habe jetzt für Contao 2.11 die database.sql und dca für tl_media_table angelegt und das Upload-Widget wird richtig angezeigt.
Wenn ich ein Bild hochlade wird es im Dateisystem richtig gespeichert, beim hochladen des Bildes entstehen jedoch Fehler, da die Klasse MultiImageManagementBackend die Contao 3 Klasse Image und Message nutzt, die in 2.11 nicht verfügbar sind.
Wenn man auf die Funktionalität verzichten kann funktioniert es mit diesen zwei Extra-Klassen:
Danke,PHP-Code:
<?php
class Image
{
public static function resize($image, $width, $height, $mode='')
{
return; // don't resizte images, just fix the broken call from MultiImageManagementBackend
}
}
<?php
class Message
{
public static function addInfo($msg)
{
return; // don't do anything, just fix the broken call from MultiImageManagementBackend
}
}
Roland
Geändert von rolandschuetz (26.04.2014 um 15:34 Uhr)
Hallo,
falls noch jemand das wunderbare MultiImageManagementWidget nutzt, hier noch eine kleiner Hinweis zum DCA ab Contao 3.2 (?):
PHP-Code:
'singleSRC' => array
(
'sql' => "binary(16) NULL"
),
DANKE RUDINHIO!!!!!
Deine Anleitung war absolut genial und das Plugin/Widget ist genial!
Ich verwende es für Gebrauchtfahrzeuge und es funktioniert genial.
Man erstellt dazu Pro Einsatzzweck einen Media-Table (tl_fahrzeuge_media, tl_gebaeude_media usw...), in Beziehung stehen diese dann einfach mittels id => pid.
Schade dass dieses tolle Widget kommentarlos ins ER geworfen wird - könnte bestimmt vielen helfen.
Ich hoffe es finden vielen diesen Thread.
Viele Grüße
Winchester
Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
Lesezeichen