Ergebnis 1 bis 3 von 3

Thema: Per Hook Formularfeld hinzufügen

  1. #1
    Contao-Nutzer Avatar von dirkweimar
    Registriert seit
    24.06.2009.
    Beiträge
    206

    Standard Per Hook Formularfeld hinzufügen

    Hallo!

    Ich möchte den Hook addComment nutzen, um eine zusätzlich Checkbox in das Formular einzubauen, wo der User einen Kommentar zu News hinterlassen kann. Hier soll der Kommentator die Möglichkeit bekommen, bei weiteren Kommentaren per Mail benachrichtigt zu werden.

    Also registriere ich meine Funktion in der Config meines Moduls:
    PHP-Code:
     $GLOBALS['TL_HOOKS']['addComment'][] = array('Notify_Commentators''notifyCommentators'); 
    In der Klasse Comments (die ich mit meiner Klasse erweitere) gibt es in der Funktion addCommentsToTemplate die Stelle, wo die Formularfelder definiert werden:
    PHP-Code:
            // Form fields
            
    $arrFields = array
            (
                
    'name' => array
                (
                    
    'name' => 'name',
                    
    'label' => $GLOBALS['TL_LANG']['MSC']['com_name'],
                    
    'value' => trim($this->User->firstname ' ' $this->User->lastname),
                    
    'inputType' => 'text',
                    
    'eval' => array('mandatory'=>true'maxlength'=>64)
                ),
                
    'email' => array
                (
                    
    'name' => 'email',
                    
    'label' => $GLOBALS['TL_LANG']['MSC']['com_email'],
                    
    'value' => $this->User->email,
                    
    'inputType' => 'text',
                    
    'eval' => array('rgxp'=>'email''mandatory'=>true'maxlength'=>128'decodeEntities'=>true)
                ),
                
    'website' => array
                (
                    
    'name' => 'website',
                    
    'label' => $GLOBALS['TL_LANG']['MSC']['com_website'],
                    
    'inputType' => 'text',
                    
    'eval' => array('rgxp'=>'url''maxlength'=>128'decodeEntities'=>true)
                )
            ); 
    Weiter unten wird dann meine Hook-Funktion aufgerufen:
    PHP-Code:
                // HOOK: add custom logic
                
    if (isset($GLOBALS['TL_HOOKS']['addComment']) && is_array($GLOBALS['TL_HOOKS']['addComment']))
                {
                    foreach (
    $GLOBALS['TL_HOOKS']['addComment'] as $callback)
                    {
                        
    $this->import($callback[0]);
                        
    $this->$callback[0]->$callback[1]($insertId$arrSet);
                    }
                } 
    Da ich ja das $arrSet übergeben bekomme, kann ich das zwar modifizieren, ich müsste aber mein neues Formularfeld auch in $arrFields einbauen, damit die Sache funktioniert. Weiss aber nicht, wie

    Weiss jemand Rat?

  2. #2
    Contao-Fan Avatar von Dani
    Registriert seit
    19.06.2009.
    Ort
    Meilen, Schweiz
    Beiträge
    552

    Standard

    Das geht nicht anders. Du musst die Comments kopieren, umbennenen in CommentsExtended, bearbeiten und in ein neues Modul packen. Dort schreibst du in die config.php:
    PHP-Code:
    /**
     * Back end modules
     */
    array_insert($GLOBALS['BE_MOD']['content'], 5, array
    (
        
    'commentsextended' => array
        (
            
    'tables'     => array('tl_comments'),
            
    'icon'       => 'system/modules/comments/html/icon.gif',
            
    'stylesheet' => 'system/modules/comments/html/style.css'
        
    )
    )); 
    Das Backend-Modul 'comments' musst du halt noch aus dem Array löschen, damit es nicht mehr im BE erscheint. Nun sollten deine Änderungen im FE erscheinen.

  3. #3
    Contao-Nutzer Avatar von dirkweimar
    Registriert seit
    24.06.2009.
    Beiträge
    206

    Standard

    Hi Dani,
    erst mal ein verspätetes Dankeschön für Deinen Tipp. Aber: so richtig "schön" ist das ja nicht. Ich müsste ja bei jedem Contao-Update schauen, ob sich etwas an der Comments-Klasse geändert hat und die Änderungen in das Modul übernehmen. Updatesicher ist anders

    Geht das wirklich nicht anders?

Aktive Benutzer

Aktive Benutzer

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

Ähnliche Themen

  1. Betreff aus Formularfeld in E-Mail übernehmen
    Von x-ray im Forum Formulare
    Antworten: 5
    Letzter Beitrag: 28.02.2012, 15:14
  2. Ajax Select Formularfeld
    Von johannes.enjoy im Forum Entwickler-Fragen
    Antworten: 6
    Letzter Beitrag: 28.09.2010, 11:07
  3. Formularfeld.....?
    Von pix im Forum Sonstige Erweiterungen
    Antworten: 6
    Letzter Beitrag: 22.02.2010, 12:32
  4. Formularfeld vom Typ hidden mit id
    Von kellerkind im Forum Formulare
    Antworten: 1
    Letzter Beitrag: 06.11.2009, 06:50

Lesezeichen

Lesezeichen

Berechtigungen

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