8
Feb
AlphaContent, aber ohne AlphaContent ;-)
abgelegt unter: Codeschnipsel, Tipps & Tricks | Keine Kommentare »
Kürzlich stand ich vor der Aufgabe, in einer Joomlainstallation für verschiedenen Kategorien einen Alpha-Filter bereitstellen zu müssen.
Nun gibt es ja für diesen Zweck die Komponente AlphaContent, aber die bietet mir ganz ehrlich gesagt viel zu viel “Firlefanz” den ich gar nicht brauche, ich will doch nur in ein paar Kategorien einen Filter setzen, sonst nix
Also, es steht mal wieder “Handarbeit” an, kann ja so schwer nicht sein.
Und in der Tat, es war nicht schwer und erfüllt seinen Zweck so wie gewünscht, siehe Beispiel auf GameTotal.de.
Vorbereitung
Damit nicht zu viel in den Core-Dateien geändert werden muss, legen wir uns im Joomla-Root ein Verzeichnis myIncludes an.
In dieses Verzeichniss kommt, wie sollte es anders sein, eine leere index.html.
Als nächstes erstellen wir in diesem Verzeichnis eine Datei für unsere Änderungen, nennen wir sie my_alpha_content.php.
Die Funktionen
myAlphaContentInit( $catid, $mode )
Setzt diverse Parameter und ruft je nach Bedarf ( $mode ) die Funktion der betreffenden Änderung auf.
$catid = die aktuelle Kategorie-Id
$mode = Parameter zur Ausswahl der betr. Änderung:
myAlphaContentModel( $alphaState )
Erweitert in der Model-Datei die WHERE-Klausel der SQL-Abfrage
$alphaState = aktueller Alpha-Request
myAlphaContentHtml( $alphaState )
Erstellt die HTML-Ausgabe
$alphaState = aktueller Alpha-Request
Der Einbau
Damit unser Script auch funktioniert, benötigen wir einen kleinen medizinischen Eingriff in den Core-Code von Joomla.
1. die Model-Datei: components/com_content/models/category.php
Funktion: function _buildContentWhere()
ca. Zeile: 446
vor: switch ($state)
folgendes einfügen:
2. Die Template-Datei
Hier gibt es wiederum 2 Möglichkeiten, entweder es wird direkt die Core-Datei verändert:
- components/com_content/views/category/tmpl/blog.php
oder, falls Template-Overriding besteht, die Datei:
- templates/<aktives-template>/html/com_content/category/blog.php
folgendes einfügen:
Wo dieses (oben oder unten) in die Template-Datei eingefügt wird, kann man sich selbst aussuchen, ich habe mich dazu entschieden dieses direkt nach der folgenden if-Abfrage zu tun, also ganz oben:
So, nun noch ein bissle Kosmetik und das Werk ist vollbracht.
Die Kosmetik
Damit die Alpha-Leiste auch ein bissle gestylt wird, kann dieses in der Template-Css-Datei noch defiiert werden, z.B.
Ich hoffe, der kleine Hack ist für den ein oder anderen nützlich.
Natürlich gilt wie immer OHNE GEWÄHR
Download des Include-Verzeichnis: [download id="1"]
Foto: Gisbert Heim @ pixelio.de
Tags:Add New Tag, Alpha Filter, AlphaContent, Array, Blog, Body Bgcolor, Ehrlich, Ffffff, Funktion, Germany, Handarbeit, HTML, Ids, Joomla, Joomla! 1.5, Languages, Leere, Lt, Mainframe, Mit, Nix, Null, PHP, Programming, Scripts, SQL, States, Template Overriding

![Reblog this post [with Zemanta]](http://img.zemanta.com/reblog_e.png?x-id=ad00b703-5893-4361-8928-925ec9a2ffef)






Einen Kommentar schreiben