Ergebnis 1 bis 5 von 5

Thema: Hinweisfeld im DCA hinzufügen

  1. #1
    Contao-Urgestein Avatar von Samson1964
    Registriert seit
    05.11.2012.
    Ort
    Berlin
    Beiträge
    2.794

    Standard Hinweisfeld im DCA hinzufügen

    Ich möchte ein Hinweisfeld in meinem DCA hinzufügen. Hier mein Code:
    PHP-Code:
    $GLOBALS['TL_DCA']['tl_content']['fields']['newslinklist_start'] = array
    (
        
    'exclude'              => true,
        
    'label'                => &$GLOBALS['TL_LANG']['tl_content']['newslinklist_start'],
        
    'inputType'            => 'text',
        
    'eval'                 => array('rgxp'=>'date''datepicker'=>true'tl_class'=>'w50 clr wizard''submitOnChange'=>true),
        
    'sql'                  => "varchar(10) NOT NULL default ''"
    );

    $GLOBALS['TL_DCA']['tl_content']['fields']['newslinklist_stop'] = array
    (
        
    'label'                => &$GLOBALS['TL_LANG']['tl_content']['newslinklist_stop'],
        
    'eval'                 => array('tl_class'=>'w50''disabled'=>true),
        
    'inputType'            => 'text',
        
    //'input_field_callback' => array('tl_content_newslinklist', 'getStoptime'),
        
    'load_callback'        => array('tl_content_newslinklist''getStoptime'),
    );

    class 
    tl_content_newslinklist extends Backend
    {

        public function 
    getStoptime(DataContainer $dc)
        {
            return 
    'Ich bin da';
        }

    Wenn in newslinklist_start der Wert geändert wird, soll in newslinklist_stop nur ein Hinweis ausgegeben werden. Konkret wird in newslinklist_start ein Datum erfaßt und ich will bei Änderung dieses Datums meinen Wert von newslinklist_stop entsprechend ändern, z.B. mit der Ausgabe eines Datums zwei Jahre davor. Dafür brauche ich ja kein Eingabefeld, aber bei input_field_callback landet die Ausgabe nicht rechts neben newslinklist_start. Und mein jetziges gesperrtes Inputfeld gibt leider auch nichts von meiner Rückgabe des load_callbacks aus.

    Was mache ich falsch?
    Viele Grüße
    Frank

    Seit Mai 2013 Fan von Contao
    Webmaster vom Deutschen Schachbund und Berliner Schachverband
    Mein Blog: Schachbulle
    Meine Erweiterungen bei GitHub
    Meine Videos auf YouTube: Playlist zur Contao-Programmierung/Einrichtung

  2. #2
    Contao-Nutzer
    Registriert seit
    17.09.2010.
    Beiträge
    161

    Standard

    Da das Stopdatum gar nicht gespeichert werden soll (wenn ich das richtig verstanden habe?) würde ich es nicht in das DCA eintragen. Stattdessen würde ich versuchen, das Template von form_textfield irgendwie umzubauen - wie genau kann ich auch nicht sagen :-) Im Template könntest Du jedenfalls die Ausgabe des Stopdatums einbauen und ggfls. ein bischen Javascript-Code, der das Stopdatum bei Eingabe des Startdatums aktualisiert.
    Wenn das -warum auch immer- nicht geht kannst Du immer noch ein eigenen Formularfeldtyp einführen...

  3. #3
    Contao-Urgestein Avatar von Samson1964
    Registriert seit
    05.11.2012.
    Ort
    Berlin
    Beiträge
    2.794

    Standard

    Stimmt, ich speichere das Feld nicht. Ich will es nur für den Benutzer als Richtwert/Hinweis anzeigen lassen, wenn sich die Eingabe im Stopfeld ändert. Theoretisch wäre also das input_field_callback geeigneter, um an der richtigen Stelle eine javascriptgesteuerte Ausgabe erscheinen zu lassen.
    Viele Grüße
    Frank

    Seit Mai 2013 Fan von Contao
    Webmaster vom Deutschen Schachbund und Berliner Schachverband
    Mein Blog: Schachbulle
    Meine Erweiterungen bei GitHub
    Meine Videos auf YouTube: Playlist zur Contao-Programmierung/Einrichtung

  4. #4
    Contao-Urgestein Avatar von do_while
    Registriert seit
    15.06.2009.
    Ort
    Berlin | Deutschland
    Beiträge
    3.614
    Partner-ID
    1081
    User beschenken
    Wunschliste
    Contao-Projekt unterstützen

    Support Contao

    Standard

    Ich habe für solche Sachen einen onload_callback verwendet, der dann den Hilfetext (unter dem Feld) entsprechend anpasst. Da der Text im DCA geladen ist, kann man ihn einfach live ändern. Das geht erstmal nur bei Aufbau des Formulars. Man könnte aber auch bei den entsprechenden Feldern einen save_callback verwenden, um den Text entsprechend anzupassen.

  5. #5
    Contao-Nutzer
    Registriert seit
    17.09.2010.
    Beiträge
    161

    Standard

    Den Javascript-Code hatte ich als Echtzeit-Aktualisierung gedacht. Genau wie das onload_callback wird das input_field_callback ja nur einmal während der Initialisierung aufgerufen. Mir scheint eine Aktualisierung über Javascript beim Verlust des Focus oder sogar bei KeyDown sinnvoller - dann sieht der User direkt nach der Eingabe des Startdatums das Stopdatum - und nicht erst, nachdem er auf Speichern geklickt hat.

Aktive Benutzer

Aktive Benutzer

Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)

Lesezeichen

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •