Ergebnis 1 bis 8 von 8

Thema: Datepicker außerhalb DCA verwenden

  1. #1
    Jayster
    Gast

    Standard Datepicker außerhalb DCA verwenden

    Ich erstelle gerade ein Backendmodul, dass kein DCA ist, sondern ein eigenes Backendtemplate hat (also so ähnlich wie bei der Systemwartung, die ich mir als Beispiel angesehen habe). Darin würde ich gerne ein Textfeld mit Datepicker verwenden. Gibt es eine Möglichkeit, ein Inputfeld wie im DCA zu erstellen und den gewünschten Datepicker hinzuzufügen?

  2. #2
    Contao-Urgestein Avatar von fiedsch
    Registriert seit
    09.07.2009.
    Ort
    München
    Beiträge
    2.943

    Standard

    Wie erstellst Du denn das Textfeld? HTML-Code direkt im Template angegeben? Dann könntest du vielleicht den Code um das erweitern, was bei automatischer Genereirung (via DCA) gemacht wird. Bsp.:

    Code:
    <input id="ctrl_stop" class="tl_text" name="stop" value="" onfocus="Backend.getScrollOffset()" type="text">
    <img id="toggle_stop" src="assets/mootools/datepicker/2.2.0/icon.gif" alt="" title="" style="vertical-align:-6px;cursor:pointer" width="20" height="20">
    <script>
    
        window.addEvent("domready", function() {
          new Picker.Date($("ctrl_stop"), {
            draggable: false,
            toggle: $("toggle_stop"),
            format: "%d.%m.%Y %H:%M",
            positionOffset: {x:-211,y:-209},
          timePicker:true,
            pickerClass: "datepicker_bootstrap",
            useFadeInOut: !Browser.ie,
            startDay: 1,
            titleFormat: "%d. %B %Y"
          });
        });
      
    </script>
    Die ID ('ctrl_stop' im Beispiel) muss dann natürlich jeweils angepasst werden.
    Contao-Community-Treff Bayern: http://www.contao-bayern.de

  3. #3
    Jayster
    Gast

    Standard

    @fiedsch Danke für deine Antwort. Ich habe das Feld direkt im Template. Mit deinem Code funktioniert es.

    Für meine Erweiterung ist das völlig ausreichend. Es wäre aber interessant zu wissen, ob man die DCA-Syntax für Formular Felder auch an anderer Stelle verwenden kann. Irgendwo muss es ja eine Stelle geben, an der der DCA die Array-Daten in HTML-Code umwandelt.

  4. #4
    Contao-Urgestein Avatar von fiedsch
    Registriert seit
    09.07.2009.
    Ort
    München
    Beiträge
    2.943

    Standard

    Zitat Zitat von Jayster Beitrag anzeigen
    Irgendwo muss es ja eine Stelle geben, an der der DCA die Array-Daten in HTML-Code umwandelt.
    system/modules/core/classes/DataContainer.php

    Ich sehe allerdings nicht, wie Du das nutzen könntest.
    Contao-Community-Treff Bayern: http://www.contao-bayern.de

  5. #5
    Contao-Nutzer Avatar von benzin
    Registriert seit
    06.02.2016.
    Ort
    Essen/Düsseldorf, NRW
    Beiträge
    84
    Partner-ID
    11060

    Standard

    Zitat Zitat von Jayster Beitrag anzeigen
    Für meine Erweiterung ist das völlig ausreichend. Es wäre aber interessant zu wissen, ob man die DCA-Syntax für Formular Felder auch an anderer Stelle verwenden kann. Irgendwo muss es ja eine Stelle geben, an der der DCA die Array-Daten in HTML-Code umwandelt.
    Du kannst die Widget-Klassen direkt benutzen, z.B. hier das Text-Input-Feld. Dem Konstruktor übergibst du einfach das Konfigurations-Array, wie du es in einer Felddefinition im DCA schreiben würdest (ohne sql, natürlich, weil du ja kein Tabellenfeld konfigurierst).

  6. #6
    Jayster
    Gast

    Standard

    Danke für diese Idee. Ich habe das mal probiert, leider klappt es noch nicht ganz. Folgendes ist mein Code:

    PHP-Code:
    $inputStart = new \TextField([
        
    'label' => 'Start',
        
    'default' => time(),
        
    'inputType' => 'text',
        
    'eval' => array('rgxp' => 'date''datepicker' => true'tl_class' => 'w50 wizard'),
    ]);
    $this->Template->inputStart $inputStart->parse(); 
    Mache ich etwas falsch?

  7. #7
    Contao-Urgestein Avatar von Toflar
    Registriert seit
    15.06.2009.
    Beiträge
    4.467
    Partner-ID
    8667
    User beschenken
    Wunschliste

    Standard

    Der Kalender-Picker, wie auch der Color-Picker u.a. sind Spezialfälle. Sie sind nicht Teil des Widgets, sondern ein "Wizard".
    Jedes Widget kann im Backend einen "wizard" annehmen, welcher im Prinzip einfach nur einen beliebigen HTML-Output nach dem Widget ausgibt. Das Widget ist also ein reguläres Text-Widget plus ein Wizard, der den Code für den Picker enthält. Nur mit dem Widget wirst du folglich nicht zum Ziel kommen.

    Das "datepicker" => true im eval-Array ist im Prinzip nur eine Abkürzung, damit man nicht jedes Mal den Wizard neu schreiben muss. Was Contao dabei allerdings tut, ist genau das, es generiert dir einen Wizard.
    Siehe: https://github.com/contao/core/blob/...ainer.php#L367
    Contao Core-Entwickler @terminal42 gmbh
    Wir sind Contao Premium-Partner!
    Für Individuallösungen kannst du uns gerne kontaktieren.
    PS: Heute schon getrakked?

  8. #8
    Jayster
    Gast

    Standard

    Danke für deine Erklärung. Ich glaube, ich bleibe daher erst mal bei der Lösung von fiedsch. Also den HTML Code manuell im Template einzugeben.

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
  •