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:

xt:commerce Version 3.04

June 21st, 2007

Wer xt:commerce testen möchte, der kann hier das aktuelle Paket (Stand 2007-06-21) downloaden.

Nach ausführlichen Tests könnt Ihr dann die aktuellste Version im xt:Commerce-Shop erwerben und das Entwicklerteam mit einem kleinen Obolus unterstützen.

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.

MySQL - Spaltennamen einer Tabelle abfragen

May 31st, 2007

Mit folgender Anweisung kann man sich die Spaltennamen und -informationen einer Tabelle anzeigen lassen:

SHOW COLUMNS FROM tabellen_name;

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 []

Sortieren im Mambo / Joomla! phpShop (VirtueMart)

November 5th, 2005

Wer sich schon immer geärgert hat, dass die Sortierfunktion (auf- bzw. absteigend) im phpShop nicht funktioniert, dem biete ich hier eine Lösung an. Bislang habe ich nur Shops gefunden, in der dies nicht funktionierte und im Web bzw. im Forum von phpShop fand ich keine Lösung dazu.

Damit es funktioniert, müssen in der Datei shop.browse.php, welche sich im Verzeichnis administrator/components/com_phpshop/html befindet, folgende Änderungen vorgenommen werden:

Folgende Zeilen (bei mir 439-444)

echo mm_writeWithJS(

<input name="DescOrderBy" value="’.$asc_desc[0].‘" type="hidden" /><a href="#" onclick="document.order.DescOrderBy.value=’‘.$asc_desc[1].’‘; order.submit()"><img src="http://www.creazion.de/blog/wp-admin/%27.%20$mosConfig_live_site." alt="’. $PHPSHOP_LANG-&gt;_PHPSHOP_PARAMETER_SEARCH_DESCENDING_ORDER .‘" title="’.$PHPSHOP_LANG-&gt;_PHPSHOP_PARAMETER_SEARCH_DESCENDING_ORDER .‘" border="0" height="12" width="12" /></a>’,
‘ <select class="inputbox" name="DescOrderBy"><option value="DESC">’.$PHPSHOP_LANG-&gt;_PHPSHOP_PARAMETER_SEARCH_DESCENDING_ORDER.‘</option><option value="ASC">’.$PHPSHOP_LANG-&gt;_PHPSHOP_PARAMETER_SEARCH_ASCENDING_ORDER.‘</option></select> <input class="button" value="’.$PHPSHOP_LANG-&gt;_PHPSHOP_SUBMIT.‘" type="submit" />’);

müssen durch diese ausgetauscht werden

echo

<input name="DescOrderBy" value="’.$asc_desc[1].‘" type="hidden" />’.\n;
echo
<input style="border: 0pt none ; cursor: pointer; vertical-align: middle; width: 18px; height: 18px" value=" " type="submit" />’
.\n;

Wie im Shop von out of orient zu sehen, funktioniert es jetzt.Wenn es bei Euch nicht funktionieren sollte, bin ich gern bereit, Euch bei der Einrichtung zu helfen und wer eine elegantere Lösung parat hat, kann diese hier gern niederschreiben.;)

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 :)

Der Befehl ImageTTFText / ImageTTFbbox bei 1und1

September 25th, 2005

Wieder mal schien ich vor einem Problem zu stehen, welches ich einfach nicht nachvollziehen konnte.

Da habe ich nun ein kleines Tool gebastelt, welches ein Bild generiert, das eine Zeichenkette aus zufälligen Zahlen und Buchstaben enthält. (Es dient als Spam-Schutz; der Code muss in ein Eingabefeld abgetippt werden.)

Zunächst habe ich es auf unserem lokalen Server getestet und dann bei einem unserer OnlineProvider. So weit, so gut. Doch als ich es beim Kunden installierte, dessen Seite bei 1und1 gehostet ist, funktionierte es auf einmal nicht mehr. Es wurde kein Bild mehr generiert und an den Browser zurückgegeben.

Nach einer gewissen Zeit der Fehlersuche (Schriftart, Schreibweise der Schriftart, Hintergrundbild…), kristallisierte sich der Fehler heraus.

Es lag am Pfad, der zum Hintergrundbild und der Schrift führte. Denn dieser muss absolut angegeben werden.

/kunden/homepages/45/xxx/htdocs/acid.ttf

Zuvor hatte ich nur den Dateinamen angegeben, was auch bei mir und ein paar anderen Online-Providern funktionierte.

Wer noch mehr Provider/Hoster kennt, kann sie mir gern hier nennen, damit ich das nächste Mal gleich den richtigen Pfad angebe. ;)

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. :)

Imagemaps in Firefox

August 28th, 2005

Bitte kein “fixed” für den Background verwenden.