HTML erlauben bei Usereingaben

Montag, 2. November 2009

Joomla hat ab einer der letzten Versionen - ich glaube 1.5.14 - die durchaus vernünftige Eigenschaft, dass HTML in $_GET und $_POST Parametern automatisch gefiltert wird. Das ist zwar grundsätzlich gut, blöd ist es nur wenn man nichts davon weiß und dich die ganze Zeit wundert wieso vor verschiedenen Zeichen auf einmal nur mehr Slashes auftauchen, sprich diese escaped werden. Egal, nach langer Suche weiß ich jetzt wie man damit umgeht:

$parameter = JRequest::getVar( 'parameter', '', 'post', 'string', JREQUEST_ALLOWHTML );

Suchmaschinenfreundliche Urls mit mod_rewrite Problem

Donnerstag, 2. April 2009

Also irgendwie verkommt das hier ja schon fast zu einem reinen Joomla-Blog...

Egal :-)

Hab gestern ein Joomla auf einen 1und1 Webspace installiert und irgendwie haben die Suchmaschinenfreundlichen URLS mit mod_rewrite nicht funktioniert und der Server hat mir die ganze Zeit den Status "500 -Internal server error" zurückgegeben. Die Lösung des Problems liegt in der .htaccess-Datei. Warum ist mir ein Rätsel (wie so circa alles, was sich in einer htaccess befindet).

Es müssen einfach zwei Zeilen geändert werden:

  1. Die Zeile "Options +FollowSymLinks" muß auskommentiert werden, sprich einfach in "#Options +FollowSymLinks" ändern.
  2. Bei der Zeile "#RewriteBase / " soll der Kommentar (das "#") entfernt werden, also in "RewriteBase / " ändern. Falls Joomla in einem Unterverzeichnis relativ zum Document Root installiert wird (beispielsweise "http://domain.com/cms/" muss die Zeile dementsprechend in "RewriteBase /cms/ " geändert werden.

Lösung gefunden auf joomlaportal.de (wie so oft)

Interner Link im Joomla-Template

Montag, 19. Januar 2009

Manchmal kann es notwendig sein, einen internen Link direkt ins Joomla Template einzufügen. Die naheliegendste Möglichkeit ist wohl, auf die entsprechende Seite im Browser zu gehen, die URL zu kopieren und im Template einzufügen. Allerdings kann sich der Name der Seite (und damit unter Umständen der Alias) ändern und das ergibt dann ungültige Links auf der Seite. Diese gilt es zu vermeiden.

Nun, die Lösung ist eigentlich ganz einfach und heißt JHTML::link(). Das ist die Funktion, die aus einer URL mit GET-Parametern eine schöne Joomla-URL macht.

Also, zuerst müssen wir den Link zusammenbauen:

Einen Artikel verlinken

Im Joomla-Backend auf die Beitragsübersicht gehen um die ID des Artikels herauszufinden (in der ganz rechten Spalte):

Die ID wird dann an den folgenden Link statt xyz angehängt.

index.php?option=com_content&view=article&id=xyz

Oft will man aber nicht auf den Beitrag, sondern auf einen bestimmten

Menüpunkt verlinken

Dazu geht man im Backend auf ein Menü, und wählt den entsprechenden Menüeintrag aus. In der Detailansicht sieht man dann die ID des Menüeintrags (Menü-Item), die man benötigt:

Auch hier wird die ID (in diesem Fall 54) an den Link angehängt:

index.php?Itemid=xyz

Ins Template einfügen

Nun muß der Link nur noch an der gewünschten Stelle ins Template eingefügt werden:

<?
echo JHTML::link('index.php?Itemid=xyz','Linktitel', $attribute);
?>

Mögliche HTML Attribute des Link-Tags können über das assoziative Array $attribute übergeben werden, z.B.:

<?
$attribute = array('class'=>'menulink', 'title'=>'Zum Menü');
echo JHTML::link('index.php?Itemid=xyz','Linktitel', $attribute);
?>

Joomla Tipps #3

Mittwoch, 22. Oktober 2008

Größe des Email-Popups ändern für Joomla 1.5

Das Ändern der Größe des mailto-Popups von Joomla ist eigentlich sehr einfach, wenn sich auch die Frage stellt, warum es dazu nicht einfach ein kleines Konfigurations-Tool im Backend gibt...

Die Einzige Voraussetzung ist eigentlich, dass man Zugriff auf das Dateisystem des Servers, auf dem Joomla installiert ist, hat. Man sucht die Datei "<Wurzelverzeichnis>/components/com_content/helpers/icon.php", öffnet diese und sucht die Funktion email() - bei mir in Zeile 64. In dieser Funktion findet man die Zeile

$status = 'width=400,height=300,menubar=yes,resizable=yes';

Einfach nach "width=" die gewünschte Breite und nach "height=" die Höhe in Pixel eintragen, speichern und die Datei wieder hochladen.

So einfach kanns sein...

Joomla-Tipps #2

Mittwoch, 9. Juli 2008
User-ID herausfinden

Für alle möglichen Zwecke kann es bei der Komponenten- und Modulentwicklung nützlich die User-Id herauszufinden.

Das geht ganz einfach mittels der JFactory-Klasse, die das User-Objekt des aktuellen Users zurückgibt:

$user =& JFactory::getUser();
$userid = $user->get('id');
Auf die Datenbank zugreifen

Auch auf das Datenbank-Objekt kann man über die JFactory zugreifen:

$db =& JFactory::getDBO();

In einigen Klassen kann auch einfach über 

$db =& $this->getDBO();

 zugegriffen werden. Das sind (zumindest, die, die mir bekannt sind) die Klassen JModel und JTable, bzw. deren Unterklassen.

Joomla-Tipps

Montag, 12. Mai 2008
Sprache Herausfinden

Oft ist es interessant, die Sprache des aktuellen Users festzustellen, etwa wenn man aus mehreren Sprachen auswählen kann. Das geht ganz einfach mittels:

$language = JFactory::getLanguage();

 Nun bekommt man ein JLanguage-Objekt, durch den Aufruf der Methode 'getTag()' erhält man das Sprachkürzel in der Form 'de-DE':

$tag = $language->getTag();
 Layout im Menü-Maager verstecken / Layout (um)benennen

Bei der Entwicklung von Komponenten ist es oft wichtig, im Menümanager des Backends ein Layout einer View zu verstecken, oder dem Layout einen ansprechenderen Namen zu geben.

Dazu legt man in dem 'tmpl'-Ordner der View ein neues XML-File an. Den Namen der Datei bestimmt der Name des Layouts. Ist das Layout-File beispielsweise 'show_item.php', muss die XML-Datei 'show_item.xml' heißen. Um das Layout zu verstecken muss die XML-Datei nun folgenden Aufbau haben:

<?xml version="1.0" encoding="UTF-8"?>
<metadata>
<layout hidden="true" />
</metadata>

 Um dem Layout einen ansprechenden Namen zu geben, muss sie folgenden Inhalt haben:

<?xml version="1.0" encoding="UTF-8"?>
<metadata>
<layout title="Alle Items anzeigen"></layout>
</metadata>

Komponenten für Joomla entwickeln

Freitag, 25. April 2008

Es gibt eigentlich 2 gute Quellen bzw. Tutorials für die Entwicklung von Komponenten für Joomla 1.5: Das Online-Buch von Hagen Graf und die Joomla Tutorials (Englisch).

UPDATE 26.12.2010: Die Links sind nicht mehr aktuell, fragt Google nach aktuellen Tutorials;)

Juhuuu! Projektpraktikum und Bakkelaureatsarbeit über Joomla!

Dienstag, 15. April 2008

Nach langem Suchen hab ich endlich eine Bakkarbeit gefunden, die mir wirklich zusagt. Ursprünglich hätte ich mich für dieses Praktikum interessiert, war dann aber leider schon vergeben. Jetzt hab ich am INSO ein Projektpraktikum gefunden, bei dem ich mich mit Joomla beschäftigen kann. Um was es genau geht weißich selbst noch nicht wirklich (ist noch nicht genau ausspezifiziert), auf jeden Fall wird eine Joomla-Komponente entwickelt. Und das macht Spaß, hab mich schon ein bisschen mit Joomla 1.5 und dem neuen Framework mit MVC herumgespielt, bin begeistert, kann nur jedem, der sich für PHP und MySQL interessiert raten, sich das anzusehen.