Zum Inhalt springen

tca.php bearbeiten

Erstellt am 20. September 2010 · 1 Antwort · letzte Antwort am 20. September 2010

Tags: TCA, Frontend-Benutzer, Frage

Unbekannter Benutzer ·

guten morgen zusammen,
da mir die Darstellung der chekboxen in der sr_feregistration im Hinblick auf barrierefreies webdesign nicht ganz so gut gefällt, versuche ich gerade die Darstellung von checkboxen und Radiobuttons zu verändern.
Genauer versuche ich den title der checkboxen zu entfernen bzw. nicht ausgeben zu lassen.
Die Konfiguration für alle Auswahlelemente wird ja in der tca.php der jeweiligen Extension vorgenommen.
Leider verstehe ich nicht, wo im folgenden Quellcode festgelegt wird, welche elemente (Titel name etc) ausgegeben werden. Löschen und Nderungen haben nämlich nichts bewirkt.

'check':
  $label = $this->langObj->getLL('tooltip_' . $colName);
  $label = htmlspecialchars($label,ENT_QUOTES,$charset);

  if (is_array($itemArray)) {
    $uidText = $this->pibase->pi_getClassName($colName).'-'.$mrow['uid'];
    $colContent = '<ul id="'. $uidText . ' " class="tx-srfeuserregister-multiple-checkboxes">';
    
    if ($this->controlData->getSubmit() || $this->controlData->getDoNotSave() || $cmd=='edit')        {
      $startVal = $mrow[$colName];
    } else {
      $startVal = $colConfig['default'];
    }

    foreach ($itemArray as $key => $value) {
      $checked = ($startVal & (1 << $key))?' checked="checked"':'';
      $label = $this->langObj->getLLFromString($itemArray[$key][0]);
      $label = htmlspecialchars($label,ENT_QUOTES,$charset);
      $colContent .= '<li><input type="checkbox"' . $this->pibase->pi_classParam('checkbox') . ' id="' . $uidText . '-' . $key .  '" name="FE[' . $theTable . '][' . $colName . '][]" value="' . $key . '"' . $checked . ' /><label for="' . $uidText . '-' . $key . '">' . $label . '</label></li>';
    }
    $colContent .= '</ul>';
    } else {
      $colContent = '<input type="checkbox"' . $this->pibase->pi_classParam('checkbox') . ' id="'. $this->pibase->pi_getClassName($colName) . '"  title="' . $label . '"' . ($mrow[$colName]?' checked="checked"':'') . ' />';
    }
    break;

Kann mir jemand einen Tip geben oder suche ich komplett an der falschen STelle? Hatte auch mit showitem des tca experimentiert.
Danke für alle Antworten
Andi

lisardo · · Beste Antwort

Hallo Andi,

zunächst mal zwei Anmerkungen:
- die tca.php ist ausschließlich für die Darstellung der Eingabemasken im Backend zuständig.
- eine Änderung an der Extension selbst bedeutet, dass du die Änderungen bei jedem Update immer wieder machen musst.

Die Darstellung im Frontend - und um die geht es dir ja wohl, wenn du von Barrierefreiheit sprichst - wird m. W. praktisch ausschließlich in den HTML-Templates geregelt. Da müsstest du praktisch jede Freiheit haben. Also lass den PHP-Code erst mal wie er ist und schau dir die HTML-Templates genau an. Die Textausgaben erfolgen aus den Language-Dateien und werden korrekterweise über Typoscript geändert; auch das solltest du dir genau ansehen, da man so weit ich mich erinnere die meisten Ausgaben via Typoscript manipulieren kann.

Änderungen am PHP-Code sollten wirklich ausschließlich als letztes Mittel erfolgen.

Gruß
Peter
Lisardo Multimedia