Archiv für die Kategorie 'PHP'

xt:commerce - Symantische Kategorieliste

June 25th, 2007

Wer Wert auf den symantischen Aufbau seines Onlineshops legt, der wird bei xt:commerce auf viele kleine und größere Hürden stossen.

Die Kategorienübersicht wird in der aktuellen Version 3.04 noch immer mit Tabellen gelöst, was unnötigen Quellcode zum Ergebnis hat und sich auch noch schlecht per CSS gestalten lässt. Zudem leidet bei einer größeren Anzahl von Kategorien die Ladezeit der Seite.

Eigentlich erfinde ich das Rad ungern neu, doch waren mir die Ergebnisse, die ich bei Gunnar Tillmann und Matthias Slovig fand, noch nicht genug :). Es musste noch kürzer gehen.

Der Quellcode der Datei xtc_show_category.inc.php wurde aufs Nötige gekürzt und ausreichend kommentiert. Herausgekommen ist eine übersichtliche Kategorienliste mit zusätzlichen Neuerungen, die noch mehr Möglichkeiten für die Gestaltung bieten:

  • korrekt verschachtelte Listen (ul - unordered list)
  • der aktuelle Menüpunkt hat die Klasse active
  • die übergeordneten Menüs des aktuellen Menüpunktes haben die Klasse active-trail
  • Menüpunkte ohne Untermenü haben die Klasse leaf
  • Menüpunkte mit Untermenü haben die Klasse collapsed
  • Menüpunkte mit geöffnetem Untermenü haben die Klasse expanded

Hier noch eine kleine CSS-Vorlage für eine Beispiel-Gestaltung mit CSS:


ul.menu .active{
font-weight: bold;
}
ul.menu .active-trail{
font-style: italic;
}
ul.menu .collapsed{
font-weight: red;
}
ul.menu .expanded{
font-weight: blue;
}
ul.menu .leaf{
font-weight: green;
}

Die Klassen collapsed (geschlossen) und expanded (geöffnet) können für Hintergrundgrafiken genutzt werden, die Unterkategorien signalisieren.

Die geänderte und in eine ZIP-Datei verpackte xtc_show_category.inc.php kann hier heruntergeladen werden. Diese muss dann entpackt und in das Verzeichnis /source/inc innerhalb des aktiven Templates (z.B. …/templates/xtc4/source/inc) kopiert werden. Zur Sicherheit sollte zuvor die zu überschreibende Datei (xtc_show_category.inc.php) gesichert werden.

Downloads:

Weiterleitung bei Wartungsarbeiten auf eigene Datei

June 11th, 2007

Wer für die Wartungsmeldung bei Drupal lieber sein eigene Datei verwenden möchte, der sollte folgenden Code in seine template.php Datei einfügen:

function phptemplate_maintenance_page($content, $messages = TRUE, $partial = FALSE){

return header(‘Location: index.html’);

}

Dabei kann index.html gegen die Datei ausgetauscht werden, auf die weitergeleitet werden soll.

IMCE für Textfelder

May 19th, 2007

Wer das hervorragende Modul IMCE1für Textboxen (textarea) und Textfelder verwenden möchte, der sollte in der Datei imce.module folgende Zeile (758 in der Version 1.8.2.30):

$type[‘textarea’] = array(‘#process’ => array(‘imce_process_textarea’ => array(explode(‘,’, $ids))),);

wie folgt ändern:

$type[‘textarea’] = $type[‘textfield’] = array(‘#process’ => array(‘imce_process_textarea’ => array(explode(‘,’, $ids))),);
  1. http://drupal.org/project/imce []

Domain-Weiterleitung mit PHP

October 17th, 2005

Hier ein kleiner Quellcode-Schnippsel, der es ermöglicht, eine im Browser eingegebene Webseiten-Adresse weiterzuleiten.

if (eregi(‘abc.de’,$HTTP_HOST)){
HEADER(“Location:http://www.weiterleiten.de/\n\n);
}

Für wen ist das nun von Nutzen?

Man kann es nutzen, wenn man verschiedene Domains hat, die auf einen Webspace weitergeleitet werden. Gibt zum Beispiel jemand die Domain abc.de ein, die zur Domain www.weiterleiten.de weitergeleitet wird und deren Inhalt in www.weiterleiten.de/abc liegt, so wird der User von der auf www.weiterleiten.de liegenden index.php in das jeweilige Verzeichnis weitergeleitet.

Das Ganze funktioniert allerdings nur, wenn man nur die Domain eingibt und keinen kompletten Pfad (z.B. http://www.abc.de/test.php).

Viel Spaß beim Probieren :)

Unerwünschte PHPSESSID beim Validieren von Seiten auf XHTML-Konformität

September 25th, 2005

Beim Validieren einer mit CSS und XHTML gestalteten Seite kam es beim Validieren zu einer Fehlermeldung, die ich anfangs nicht nachvollziehen konnte.

PHPSESSID

 

Das Ganze tritt nur bei PHP-Dateien auf und kann mit folgendem Code-Schnipsel beseitigt werden:

ini_set(‘url_rewriter.tags’, );

Wer weitere Vorschläge dazu hat, möge sie hier kundtun. :)