Ergebnis 1 bis 1 von 1

Thema: Erweiterung von form_captcha.html5

  1. #1
    Contao-Nutzer
    Registriert seit
    13.03.2012.
    Beiträge
    74

    Standard Erweiterung von form_captcha.html5

    Serwus,

    mir ist in letzter Zeit eine nervige Sache an dem Captcha Template aufgefallen (-> Contao 2.11.3). Wenn man ein Kommentarmodul einbindet, wird autom. ein vorgegebenes Form generiert mit einer Sicherheitsfrage. Die Sicherheitsfrage steht im Label.

    HTML-Code:
    <label for="ctrl_captcha">
    <span class="captcha_text">Bitte addieren Sie 3 und 6.</span>
    <span class="mandatory">*</span>
    </label>
    <input id="ctrl_captcha" class="captcha mandatory" type="text" maxlength="2" value="" name="cf014de3ad1d28ea12feee655debe849a">
    Wenn ich jetzt ein ähnliches Form mit dem Formulargenerator nachbauen will, dann krieg ich die Sicherheitsfrage nicht in das Label. Dadurch kann die CSS Formatierung ünnotig kompliziert werden, wenn ich die Labels z.B. über den Inputs als Block Element haben will.

    Es sieht entweder so aus:
    HTML-Code:
    <span class="captcha_text">Bitte addieren Sie 9 und 7.</span>
    <input id="ctrl_10" class="captcha mandatory" type="text" maxlength="2" value="" name="c40d119422f37320cc516c1ffb0883cab">
    oder so, wenn ich im Formulargenerator eine "Feldbezeichnung" mitgebe:
    HTML-Code:
    <label class="mandatory" for="ctrl_10">
    <span class="invisible">Pflichtfeld</span>
    Sicherheitsfrage
    <span class="mandatory">*</span>
    <span class="invisible">Was ist die Summe aus 9 und 9?</span>
    </label>
    <input id="ctrl_10" class="captcha mandatory" type="text" maxlength="2" value="" name="ceae8282116c5d94beb0c776dcaa886f9">
    <span class="captcha_text">Was ist die Summe aus 9 und 9?</span>
    Ich habe jetzt das form_captcha.html5 Template so erweitert, dass es das gleiche HTML wie beim Kommentarmodul generiert.

    PHP-Code:
    <?php if (!$this->tableless): ?>
      <tr class="<?php echo $this->rowClass?>">
        <td class="col_0 col_first"><?php echo $this->generateLabel(); ?></td>
        <td class="col_1 col_last"><?php echo $this->generateWithError(); ?> <?php echo $this->generateQuestion(); ?></td>
      </tr>

    <?php else: ?>
    <?php 
    if ($this->generateLabel()): ?>  
      <?php echo $this->generateLabel(); ?> 
      <?php echo $this->generateQuestion(); ?> <br>
      <?php echo $this->generateWithError(); ?> <br>

    <?php else: ?>
      <label class="mandatory" for="ctrl_<?php echo $this->strId ?>"><?php echo $this->generateQuestion(); ?><span class="mandatory">*</span></label>
      <?php echo $this->generateWithError(); ?> <br>
    <?php endif; ?>
    <?php 
    endif; ?>
    Wenn man im Formulargenerator keine "Feldbezeichnung" eingibt, dann ist die Sicherheitsfrage im Label. Im anderen Fall ist es so wie vorher.

    Ich hoffe ich konnte dem einem oder anderem helfen.

    Grüße

    edit: Ein Problem gibt es noch. Bei einem Fehler erhält das Label nicht die Klasse "error". Das ist beim Kommentar Modul aber auch so. Wenn jemand spontan weiß wie es geht, nur her damit.
    Geändert von rumpelsepp (17.05.2012 um 12:06 Uhr)

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
  •