Wie kann ich bei einer Extension im Backend Felder dynamisch vorausfüllen

  • 0 x
    19 Beiträge
    1 Hilfreiche Beiträge
    16. 12. 2009, 09:40

    Ein freundliches "Moin" :)

    Ich habe eine Extension gebastelt, die als Standard Content-Elemente eingefügt werden kann.
    Also im Dropdown bei "Text, Text mit Bild, ..." im Backend auftaucht.
    Nun möchte ich gerne folgendes erreichen:
    Einzelne Felder der EXtension "max. Bildbreite, max. Bildhöhe" sollen in der Extension schon im BE vorausgefüllt sein.
    Nun der Haken, wo ich wirklich gesucht, aber nichts gefunden habe:
    Die vorausgefüllten Werte sollen je nach "Layoutspalte", also Links, Rechts, Normal, ... unterschiedlich sein, da im FE die Spalten unterschiedlich breit sind.
    An sich könnte man wohl die Post Werte des "New Content Element" dort "colPos" abgreifen, aber die sind ja beim Wechsel im Dropdown von "..." zu meinem Content-Element schon weg.
    Was ich nun bräuchte wäre z.B. die aktuelle UID, damit ich in der Datenbank schauen kann, welcher colPos Wert dem Element zugeordnet ist, um dann einen default Wert für Breite und Höhe setzen zu können.
    Ich hoffe, ich habe mein Problem halbwegs verständlich dargestellt
    und bin für jede Hilfe dankbar.


  • 1
  • meckpo meckpo
    R2-D2
    0 x
    127 Beiträge
    0 Hilfreiche Beiträge
    16. 12. 2009, 12:32

    Hallo,

    schau dir in t3lib_tcemain den Hook processDatamap_preProcessFieldArray an, der sollte dir die Möglichkeit bieten die du suchst.

  • 0 x
    19 Beiträge
    1 Hilfreiche Beiträge
    16. 12. 2009, 22:09

    Hallo meckpo,

    erstmal vielen Dank für die Antwort :)
    Funzt scheinbar sogar..... :o

    Ich hab nun folgendes in die ext_localconf.php getan:

    1. $GLOBALS['TYPO3_CONF_VARS']['SC_OPTIONS']['t3lib/class.t3lib_tcemain.php']['processDatamapClass'][] ='EXT:mk_flashcnt/hooks/class.tx_mk_flashcnt_setWidth.php:tx_mk_flashcnt_setWidth';

    und das in die class.tx_mk_flashcnt_setWidth.php:

    1. class tx_mk_flashcnt_setWidth {
    2. function processDatamap_preProcessFieldArray(&$fieldArray, $table, $id, &$pObj) {
    3.  
    4. if (!$fieldArray['tx_mkflashcnt_width'] && $fieldArray['colPos'] == 0) {
    5. $fieldArray['tx_mkflashcnt_width'] = 448;
    6. }
    7. if (!$fieldArray['tx_mkflashcnt_width'] && $fieldArray['colPos'] == 1) {
    8. $fieldArray['tx_mkflashcnt_width'] = 376;
    9. }
    10. if (!$fieldArray['tx_mkflashcnt_width'] && $fieldArray['colPos'] == 3) {
    11. $fieldArray['tx_mkflashcnt_width'] = 889;
    12. }
    13. #print_r ($fieldArray);
    14. }
    15. }

    wie gesagt, funzt. Falls das nun grober Unfug ist, wäre ein Korrekturhinweis natürlich sehr willkommen. Ich werde jetzt nochmal tüdeln um dort die festgeschriebenen Zahlen rauszukriegen, sobald ich das habe poste ich mein Machwerk in Gänze.
    (Das sieht mir zu einfach aus, so leicht kann das doch nicht sein, oder)

  • 1