Ring PerlaPerla von Julia Müllers 
 Ohrhänger Fischlein von Ilka Bruse 
 Perlenanhänger Celebrate von Kerstin Kircher 
 Ohrhänger Harlekin von Ilka Bruse 

Beitrag lesen und kommentieren

Valides HTML auch bei Datenpflege im xt:Commerce Admin-Bereich

In xt:Commerce wurde wenig Wert auf valides HTML gelegt, wie die Online-Prüfung der meisten xt:Commerce-Shops belegt.

Gleichwohl ist es möglich, mit xt:Commerce valides HTML zu erzeugen, wie unsere eigene Seite purador zeigt. Dahinter steckt allerdings ein beträchtlicher Aufwand.

Ärgerlich ist es, dass bei der Datenpflege im Admin-Bereich valides HTML “zerschossen” wird, wenn man z. B. im Content-Manager Text pflegt, der die HTML-Umschreibung für das Kaufmannsund & enthält. Diese Umschreibung ist für valides HTML unabdingbar, wird aber beim erneuten Bearbeiten des Textes durch ein reines & erstetzt. Und damit ist das valide HTML futsch.

Der Effekt tritt nach meinem Kenntnisstand nur bei mehrzeiligen Eingabefeldern auf, den sog. textareas. Und das auch, wenn man ausschließlich im Quelltexteditor arbeitet.

Abhilfe schafft ein kleiner Eingriff in die Datei html_output.php im Verzeichnis /admin/includes/functions:

Originale xtc-Datei html_output.php


// Output a form textarea field
function xtc_draw_textarea_field($name, $wrap, $width, $height, $text = '', $params = '', $reinsert_value = true) {
  $field = '<textarea id="'.$name.'" name="' . $name . '" wrap="' . $wrap . '" cols="' . $width . '" rows="' . $height . '"';
  if ($params) $field .= ' ' . $params;
  $field .= '>';
  if ( ($GLOBALS[$name]) && ($reinsert_value) ) {
    $field .= $GLOBALS[$name];
  } elseif ($text != '') {
    $field .= $text;
  }
  $field .= '</textarea>';

  return $field;
}

Angepasste xtc-Datei html_output.php


// Output a form textarea field
function xtc_draw_textarea_field($name, $wrap, $width, $height, $text = '', $params = '', $reinsert_value = true) {
  $field = '<textarea id="'.$name.'" name="' . $name . '" wrap="' . $wrap . '" cols="' . $width . '" rows="' . $height . '"';
  if ($params) $field .= ' ' . $params;
  $field .= '>';
  if ( ($GLOBALS[$name]) && ($reinsert_value) ) {
    $field .= str_replace('&', '&amp;', $GLOBALS[$name]);  // xxx
  } elseif ($text != '') {
    $field .= str_replace('&', '&amp;', $text); // xxx
  }
  $field .= '</textarea>';

  return $field;
}

Es wurden nur die zwei Zeilen mit xxx verändert.

Nachtrag am 12.3.2008: Der obige Patch führt im Admin-Bereich unter Konfiguration -> Mein Shop -> Geschäftsadresse und Telefonnummer zu HTML-Mischmasch. Auch dazu habe ich einen Workaround geschrieben:

Original /admin/configuration.php:


if ($configuration['set_function']) {
    eval('$value_field = ' . $configuration['set_function'] . '"' . htmlspecialchars($configuration['configuration_value']) . '");');
} else {
    $value_field = xtc_draw_input_field($configuration['configuration_key'], $configuration['configuration_value'],'size=40');
}

Workaround (Patch):


if ($configuration['set_function']) {
    // Patch start
    if ($configuration['configuration_key'] != 'STORE_NAME_ADDRESS')
        eval('$value_field = ' . $configuration['set_function'] . '"' . htmlspecialchars($configuration['configuration_value']) . '");');
    else
        eval('$value_field = ' . $configuration['set_function'] . '"' . $configuration['configuration_value'] . '");');
    // Patch end
} else {
    $value_field = xtc_draw_input_field($configuration['configuration_key'], $configuration['configuration_value'],'size=40');
}

RSS 2.0 Feed | Trackback

3 Reaktionen zu “Valides HTML auch bei Datenpflege im xt:Commerce Admin-Bereich”

Valides HTML auch beim Editieren im xt:Commerce Backend - TP Hilfe Forum am 29. Februar 2008 um 17:27 Uhr

Zu diesem Thema gibt es einen Thread im Forum von Traum-Projekt.

DIGIMan am 23. Mai 2008 um 08:06 Uhr

Ich habe eine Verbesserung des Adminbereiches von xt:Commerce gefunden. Auf der Seite http://www.xtadmin.de kann man sich die kommerzielle Software anschauen und herunterladen …

xt:commerce Neuigkeiten und Tipps | ESTUGO.net Webhosting am 22. September 2008 um 14:06 Uhr

[…] Anleitung mit welcher man genau diese Problematik beseitigen kann. Weitere Informationen sind im purador.de Blog zu […]

Einen Kommentar oder eine Frage verfassen

Wer sich auskennt, der kann folgende HTML-Auszeichnungen im Kommentar verwenden:
<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <code> <em> <i> <strike> <strong>

Mensch oder Maschine? Bitte lösen Sie den reCAPTCHA-Test