Ergebnis 1 bis 10 von 10

Thema: Registrierungs-Formular anpassen (Überschriften, Hilfetexte usw.)

  1. #1
    Contao-Fan Avatar von marcos
    Registriert seit
    09.02.2011.
    Ort
    Schweiz
    Beiträge
    575
    User beschenken
    Wunschliste

    Frage Registrierungs-Formular anpassen (Überschriften, Hilfetexte usw.)

    Hallo zusammen

    Ich hätte ein Frage bzw. ein Problem, auf das ich immer wieder stosse: die Anpassung des Registrierungs-Formulars.

    Das Formular wird ja in /system/modules/core/modules/ModuleRegistration.php zusammengebaut und im Template "member_default.html5" ausgegeben. Man hat grundsätzlich keine Möglichkeiten, direkt in die Darstellung des Formulars einzugreifen, ausser man bastelt direkt in der "ModuleRegistration.php" rum?!

    Gerne würde ich z.B. Überschriften zwischen den verschiedenen Feldern einfügen (Adresse, Login usw.) oder Hilfetexte über den jeweiligen Feldern anzeigen (Bsp. Passwort: "Geben Sie min. 8 Zeichen ein.").

    Wie kann man das realisieren? Am liebsten natürlich update-sicher.

    Vielen Dank und Gruss
    Marco

  2. #2
    Contao-Urgestein
    Registriert seit
    10.07.2010.
    Beiträge
    4.403
    User beschenken
    Wunschliste

    Standard

    Mit der Erweiterung:
    xtmembers_fieldeditor

    Bin mir nicht 100% sicher ob das auch nur für die Überschriften Hilfetexte verwenden kannst?! Zusätzliche Felder werden aber so am einfachsten gewartet.

    Damit kannst eine eigene Erweiterung erstellen. Solche Erweiterungen kannst dann von Hand speichern (und wieder von Hand einspielen).

    So hast Du dann nur gerade die Änderungen zu Hand die vom Core abweichen (da sollte man ja wirklich nix von Hand rum ändern).


  3. #3
    Contao-Urgestein Avatar von the_scrat
    Registriert seit
    24.02.2010.
    Ort
    Augsburg
    Beiträge
    2.051
    User beschenken
    Wunschliste

    Standard

    Hi,

    früher (Contao 2.x) war das Template auch anders aufgebaut, da gab es noch Gruppierungen (adress, contact,personalData), das ist jetzt im member_default.html5 nicht mehr der Fall.
    Laut Quelltext gibt es allerdings dieses Feature immernoch.


    PHP-Code:
    $this->Template->loginDetails $GLOBALS['TL_LANG']['tl_member']['loginDetails'];
    $this->Template->addressDetails $GLOBALS['TL_LANG']['tl_member']['addressDetails'];
    $this->Template->contactDetails $GLOBALS['TL_LANG']['tl_member']['contactDetails'];
    $this->Template->personalData $GLOBALS['TL_LANG']['tl_member']['personalData'];
    $this->Template->captchaDetails $GLOBALS['TL_LANG']['MSC']['securityQuestion'];

    // Add the groups
    foreach ($arrFields as $k=>$v)
    {
           
    $this->Template->$k $v// backwards compatibility

           
    $key $k . (($k == 'personal') ? 'Data' 'Details');
           
    $arrGroups[$GLOBALS['TL_LANG']['tl_member'][$key]] = $v;
    }

    $this->Template->categories $arrGroups;
    $this->Template->formId 'tl_registration';
    $this->Template->slabel specialchars($GLOBALS['TL_LANG']['MSC']['register']);
    $this->Template->action = \Environment::get('indexFreeRequest');
    $this->Template->captcha $arrFields['captcha']['captcha']; // backwards compatibility 

    Die Felder werden wohl wie früher auch noch nach Gruppenname (feGroup) gespeichert.

    PHP-Code:
    $arrFields[$arrData['eval']['feGroup']][$field] .= $temp
    Und das wird ja ans Template weitergegeben

    PHP-Code:
    // Add the groups
    foreach ($arrFields as $k=>$v)
    {
           
    $this->Template->$k $v// backwards compatibility

           
    $key $k . (($k == 'personal') ? 'Data' 'Details');
           
    $arrGroups[$GLOBALS['TL_LANG']['tl_member'][$key]] = $v;

    Schreib einfach mal ins Template <?php $this->showTemplateVars();die();?> Dann siehst du was du für Möglichkeiten hast :-)
    Programmers don't comment their code. It was hard to write, it should be hard to understand...

  4. #4
    Contao-Fan
    Registriert seit
    05.11.2009.
    Ort
    Liebschützberg (Sachsen)
    Beiträge
    527

    Standard

    Hallo,

    früher (Contao 2.x) war das Template auch anders aufgebaut, da gab es noch Gruppierungen (adress, contact,personalData), das ist jetzt im member_default.html5 nicht mehr der Fall.
    Laut Quelltext gibt es allerdings dieses Feature immernoch.
    dafür kann man das Template "member_grouped" im Modul auswählen.

    Steffen

  5. #5
    Contao-Urgestein Avatar von the_scrat
    Registriert seit
    24.02.2010.
    Ort
    Augsburg
    Beiträge
    2.051
    User beschenken
    Wunschliste

    Standard

    Stimmt, als Basis ist die besser geeignet. Wenn er aber bei bestimmten Feldern etwas darüber/darunterschreiben möchte, kommt er trotzdem nicht darum herum die Felder einzeln durchlaufen zu lassen.
    im _grouped Template wird der Inhalt pro Gruppe einfach ausgegeben

    Aber danke für den Hinweis, das Template hatte ich mir garnicht angesehen :-)
    Programmers don't comment their code. It was hard to write, it should be hard to understand...

  6. #6
    Contao-Fan Avatar von marcos
    Registriert seit
    09.02.2011.
    Ort
    Schweiz
    Beiträge
    575
    User beschenken
    Wunschliste

    Standard

    Also wenn ich den Array $this->categories ausgebe, erhalte ich folgendes:

    PHP-Code:
     print_r($this->categories); 
    HTML-Code:
    [Adressdaten] => Array
        (
            [postal] => 
    <!-- TEMPLATE START: system/modules/core/templates/forms/form_textfield.html5 -->
    <div class="widget widget-text">
          <label for="ctrl_postal">
              Postleitzahl
          </label> 
    <input type="text" name="postal" id="ctrl_postal" class="text" value="" maxlength="32">
    </div>
    <!-- TEMPLATE END: system/modules/core/templates/forms/form_textfield.html5 -->
    
            [city] => 
    <!-- TEMPLATE START: system/modules/core/templates/forms/form_textfield.html5 -->
    <div class="widget widget-text">
          <label for="ctrl_city">
              Ort
          </label>  
    <input type="text" name="city" id="ctrl_city" class="text" value="" maxlength="255">
    </div>
    <!-- TEMPLATE END: system/modules/core/templates/forms/form_textfield.html5 -->
    
    .....

    Du meinst also, ich sollte den Array via foreach auslesen und dann je nach dem was drin steht, vorher oder nachher meine Texte hinzufügen?


    LG
    Marco

  7. #7
    Contao-Fan Avatar von marcos
    Registriert seit
    09.02.2011.
    Ort
    Schweiz
    Beiträge
    575
    User beschenken
    Wunschliste

    HTML

    Zum Beispiel so würde es gehen:

    PHP-Code:
    foreach ($this->categories as $key => $value) {
      foreach(
    $value as $key2 => $field){
        if(
    strpos($field'city')!==false){
          echo 
    '<span>Dies ist das Feld Ort</span>';
          echo 
    $field;
        }
        else {
          echo 
    $field;
        }    
      }


    Ergibt:
    HTML-Code:
    <span>Dies ist das Feld Ort</span>
    <div class="widget widget-text mandatory">
    	<label class="mandatory" for="ctrl_city">
    	  <span class="invisible">Pflichtfeld</span> Ort<span class="mandatory">*</span>
    	</label>
    	<input type="text" required="" maxlength="255" value="" class="text mandatory" id="ctrl_city" name="city">
    </div>

    LG
    Marco

  8. #8
    Contao-Urgestein Avatar von the_scrat
    Registriert seit
    24.02.2010.
    Ort
    Augsburg
    Beiträge
    2.051
    User beschenken
    Wunschliste

    Standard

    Hi,

    nur mal so aus Neugier, was willst du denn da tatsächlich hinschreiben? Denn vielleicht ist der Weg viel zu komplex und es würde reichen einfach nur das Label zu überschreiben.
    Programmers don't comment their code. It was hard to write, it should be hard to understand...

  9. #9
    Contao-Fan Avatar von marcos
    Registriert seit
    09.02.2011.
    Ort
    Schweiz
    Beiträge
    575
    User beschenken
    Wunschliste

    Standard

    Zitat Zitat von the_scrat Beitrag anzeigen
    nur mal so aus Neugier, was willst du denn da tatsächlich hinschreiben? Denn vielleicht ist der Weg viel zu komplex und es würde reichen einfach nur das Label zu überschreiben.
    Ich möchte die Registrierung in verschiedene Blöcke unterteilen. Es wird eine Registrierung für Veranstalter. (Info zum Veranstalter, Kontaktangaben, Login). Ich möchte diese Bereich nun in <div> packen und jeweils eine Überschrift hinzufügen. Durch die <div> habe ich jetzt die Möglichkeit, Abstände zu definieren oder die Bereiche sogar als Tabs zu formatieren. Dann zusätzlich bei den einzelnen Felder noch Infotexte, damit ganz klar wird, was man eintragen muss.

    Gruss
    Marco

  10. #10
    Contao-Fan Avatar von marcos
    Registriert seit
    09.02.2011.
    Ort
    Schweiz
    Beiträge
    575
    User beschenken
    Wunschliste

    Frage ähnliches Problem mit haste

    hmm... jetzt hätte ich ein ähnliches Problem noch mit haste.

    Ich würde auch bei diesem Formular gerne zwischen den Feldern Überschriften oder Hilfetexte hinzufügen. Wie kann ich aber zwischen die Felder eingreifen?

    Beispiel:
    PHP-Code:
    $objForm = new \Haste\Form\Form('editEvent','POST',function ($objHaste)
    {
        return \
    Input::post('FORM_SUBMIT') === $objHaste->getFormId();
    });

    $objForm->addFormField('startDate', array(
         
    'label'         => $GLOBALS['TL_LANG']['tl_calendar_events']['startDate'][0],
         
    'default'       => $objEvent->startDate,
         
    'inputType'     => 'text'
    ));
    $objForm->addFormField('endDate', array(
         
    'label'         => $GLOBALS['TL_LANG']['tl_calendar_events']['endDate'][0],
         
    'default'       => $objEvent->endDate,
         
    'inputType'     => 'text'
    ));

    //----> z.B. hier einen Beschreibungs-Text einfügen

    $objForm->addFormField('startTime', array(
         
    'label'         => $GLOBALS['TL_LANG']['tl_calendar_events']['startTime'][0],
         
    'default'       => $objEvent->startTime,
         
    'inputType'     => 'text'
    )); 

    Gruss
    Marco

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
  •