Ergebnis 1 bis 5 von 5

Thema: Ausgabe der manuellen Klassen nur beim div ...?

  1. #1
    Contao-Fan Avatar von Bas
    Registriert seit
    03.12.2009.
    Ort
    Hamburg
    Beiträge
    555

    Standard Ausgabe der manuellen Klassen nur beim div ...?

    Hallo Ihr,

    wenn ich einem Formularfeld manuell eine CSS-Klasse hinzufüge, sieht die Ausgabe aus wie folgt:
    PHP-Code:
    <div class="widget widget-text meine-klasse">
      <
    label for="ctrl_1" class="meine-klasse">Mein Label</label>
      <
    input type="text" name="textfeld" id="ctrl_1" class="text meine-klasse" value="">
    </
    div
    Ich möchte erreichen, dass die manuell vergebene Klasse ("meien-Klasse") nur beim umliegenden <div> hinzugefügt wird, und nicht bei Label und Eingabefeld.

    Im Template finde ich nur die Ausgabe <?= $this->class ?> - dieser String enthält aber neben den manuellen Klassen auch weitere Klassennamen wie "error", "mandatory" und so weiter. Daher kann ich das nicht einfach entfernen.

    Das Beste was mir einfällt ist es diesen String zu durchsuchen und alle Klassen die ich manuell vergeben möchte zu entfernen. Da dieses aber 108 Klassen sind, möchte ich das ungern so machen.
    Hat jemand ne bessere Idee?

    Danke für Hilfe!

  2. #2
    Contao-Nutzer
    Registriert seit
    05.10.2012.
    Beiträge
    213

    Standard

    Erstmal ganz doof gefragt, warum musst du sie denn entfernen? Wenn's ums CSS geht, sollte es doch genügend Möglichkeiten geben, das wieder auszugleichen?

  3. #3
    Contao-Fan Avatar von Bas
    Registriert seit
    03.12.2009.
    Ort
    Hamburg
    Beiträge
    555

    Standard

    Weil ich mein eigenes Grid den Formularfeldern direkt zuweisen möchte, und ich diese 108 Klassen nicht für Sonderfälle überschreiben möchte. Es wäre halt soviel sinnvoller die Ausgabe anzupassen (sprich abzuspecken), anstatt nen Haufen zusätzliches CSS auszugeben.

    (Abgesehen davon fand ich es schon immer unsinnig in dem Kontext die Klasse dreimal auszugeben, da sich über die umgebende Klasse alles regeln lässt.)

  4. #4
    Contao-Nutzer
    Registriert seit
    05.10.2012.
    Beiträge
    213

    Standard

    Hm, im Template kommt tatsächlich immer nur der kombinierte String mit allen Klassen an.

    Ich komm grad auf keine elegantere Lösung, probier mal so im Template (form_textfield):

    PHP-Code:
    <?php $this->extend('form_row'); ?>

    <?php  
      $innerClass 
    $this->class;
      
    $objFormfieldModel = \FormFieldModel::findByPk($this->strId);
      
    $customClass $objFormfieldModel->class;
      
      if (
    $innerClass && $customClass)
      {
        
    $innerClass str_replace($customClass''$innerClass);
      }
    ?> 

    <?php $this->block('label'); ?>
      <?php if ($this->label): ?>
        <label for="ctrl_<?= $this->id ?>"<?php if ($this->class): ?> class="<?= $innerClass ?>"<?php endif; ?>>
          <?php if ($this->mandatory): ?>
            <span class="invisible"><?= $this->mandatoryField ?> </span><?= $this->label ?><span class="mandatory">*</span>
          <?php else: ?>
            <?= $this->label ?>
          <?php endif; ?>
        </label>
      <?php endif; ?>
    <?php $this
    ->endblock(); ?>

    <?php $this->block('field'); ?>
    <!-- <?=$customClass?> -->

      <?php if ($this->hasErrors()): ?>
        <p class="error"><?= $this->getErrorAsString() ?></p>
      <?php endif; ?>
      <input type="<?= $this->type ?>" name="<?= $this->name ?>" id="ctrl_<?= $this->id ?>" class="text<?php if ($this->hideInput) echo ' password'?><?php if ($innerClass) echo ' ' $innerClass?>" value="<?= specialchars($this->value?>"<?= $this->getAttributes() ?>>

      <?php if ($this->addSubmit): ?>
        <input type="submit" id="ctrl_<?= $this->id ?>_submit" class="submit" value="<?= $this->slabel ?>">
      <?php endif; ?>
    <?php $this
    ->endblock(); ?>
    Geändert von pju (01.06.2016 um 17:32 Uhr)

  5. #5
    Contao-Fan Avatar von Bas
    Registriert seit
    03.12.2009.
    Ort
    Hamburg
    Beiträge
    555

    Standard

    Funktioniert ... ich freu mir.

    Dickes Danke.

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
  •