Ergebnis 1 bis 6 von 6

Thema: compile und dca?

  1. #1
    Community-Moderator Avatar von schman
    Registriert seit
    19.06.2009.
    Ort
    Dornbirn
    Beiträge
    3.739
    User beschenken
    Wunschliste

    Standard compile und dca?

    Hallo Entwickler ich hätte da mal ne Frage die ihr mir sicher in Null komma Nichst beantworten könnt.

    Im diesem Thread wurde danach gefragt wie eine Pflichtfeld deaktiviert werden kann.
    Geht ja eigentlich ganz einfach per dca. Kurz nachgeschaut und auch gleich gefunden

    PHP-Code:
    $GLOBALS['TL_DCA']['tl_guestbook']['fields']['email']['eval']['mandatory'] = false
    Leider zeigte das keine Wirkung, dann habe ich mir die GuestBookForm (es handelt sich im übrigen um die Gästebuch Erweiterung) angeschaut und gesehen das hier in der compile Funktion das Formular gebaut wird.

    PHP-Code:
    protected function compile()
        {
            
    // Get front end user object
            
    $this->import('FrontendUser''User');
            
    // Access control
            
    if ($this->protected && !BE_USER_LOGGED_IN)
            {
                if (!
    FE_USER_LOGGED_IN)
                {
                    
    $this->Template->protected true;
                    return;
                }
                
    $arrGroups deserialize($this->groups);
                if (
    is_array($arrGroups) && count(array_intersect($this->User->groups$arrGroups)) < 1)
                {
                    
    $this->Template->protected true;
                    return;
                }
            }
            
    // Form fields
            
    $arrFields = array
            (
            
    'name' => array
            (
            
    'label' => $GLOBALS['TL_LANG']['GUESTBOOK']['gb_name'],
            
    'name' => 'gbname',
            
    'value' => trim($this->User->firstname ' ' $this->User->lastname),
            
    'inputType' => 'text',
            
    'eval' => array('mandatory'=>true'maxlength'=>128)
            ),
            
    'email' => array
            (
            
    'label' => $GLOBALS['TL_LANG']['GUESTBOOK']['gb_email'],
            
    'name' => 'gbemail',
            
    'value' => $this->User->email,
            
    'inputType' => 'text',
            
    'eval' => array('rgxp'=>'email''mandatory'=>true'maxlength'=>128'decodeEntities'=>true'tl_class'=>'w50')
            )
            ); 
            if (!
    $this->gb_disableURL)
            {
                
    $arrFields['website'] = array
            (
            
    'label' => $GLOBALS['TL_LANG']['GUESTBOOK']['gb_website'],
            
    'name' => 'gbwebsite',
            
    'value' => $this->User->website,
            
    'inputType' => 'text',
            
    'eval' => array('rgxp'=>'url''maxlength'=>128'decodeEntities'=>true,'tl_class'=>'w50')
            );

    Jetzt meine Frage, wie kann man das denn update sicher ändern? Gilt das DCA nur fürs Backend?
    Kein Privat Support via PM.

  2. #2
    Contao-Urgestein
    Registriert seit
    03.06.2010.
    Ort
    Wuppertal
    Beiträge
    2.149
    User beschenken
    Wunschliste

    Standard

    Ja, die DCA Informationen gelten nur für das Backend und der Definition der Felder dort.

    Dir bleibt leider nichts anderes übrig als hier einen Corehack einzubauen, genau wie im anderen Thread empfohlen, was natürlich nicht updatesicher ist, was die Extension angeht.

  3. #3
    Community-Moderator Avatar von schman
    Registriert seit
    19.06.2009.
    Ort
    Dornbirn
    Beiträge
    3.739
    User beschenken
    Wunschliste

    Standard

    Danke für die rasche Antwort, wäre schön wenn es hier auch eine Möglichkeit geben würde aber naja nützt nichts.
    Kein Privat Support via PM.

  4. #4
    Contao-Urgestein
    Registriert seit
    03.06.2010.
    Ort
    Wuppertal
    Beiträge
    2.149
    User beschenken
    Wunschliste

    Standard

    Eventuell würde sich der Entwickler bereit erklären hier einen Hook zu installieren, am Ende der compile() Methode. Dadurch könnte man bequem per eigenem Modul auf das Resultat zugreifen und Veränderungen durchführen...

  5. #5
    Community-Moderator Avatar von schman
    Registriert seit
    19.06.2009.
    Ort
    Dornbirn
    Beiträge
    3.739
    User beschenken
    Wunschliste

    Standard

    Ich habe gerade auch gesehen das das Core Modul Comments sich hier genau so verhält.

    Ich werde mal dem Modul Entwickler anschreiben.
    Kein Privat Support via PM.

  6. #6
    Contao-Urgestein
    Registriert seit
    03.06.2010.
    Ort
    Wuppertal
    Beiträge
    2.149
    User beschenken
    Wunschliste

    Standard

    Zitat Zitat von schman Beitrag anzeigen
    Ich habe gerade auch gesehen das das Core Modul Comments sich hier genau so verhält.

    Ich werde mal dem Modul Entwickler anschreiben.
    Jein. Es baut zwar das Formular auch in der Klasse auf, bietet aber in Zeile 273ff den Hook "addComment". Hier kann man mit einer Funktion auf das Array des Formulars nochmal zugreifen um eventuelle Änderungen durchzuführen.
    Einen analogen Hook könnte der Entwickler auch in die Klasse GuestbookForm einbauen.

Aktive Benutzer

Aktive Benutzer

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

Ähnliche Themen

  1. Allgemeine frage zu den Functionen generate() and compile()
    Von gzocker im Forum Entwickler-Fragen
    Antworten: 4
    Letzter Beitrag: 06.03.2017, 20:39
  2. compile() wird nicht ausgeführt
    Von dirkweimar im Forum Entwickler-Fragen
    Antworten: 2
    Letzter Beitrag: 27.12.2009, 15:20
  3. compile() vs. generate()
    Von FloB im Forum Entwickler-Fragen
    Antworten: 5
    Letzter Beitrag: 05.07.2009, 16:56

Lesezeichen

Lesezeichen

Berechtigungen

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