Wie man Joomla eigenen PHP-Code unterjubelt: der Sourcerer

Wenn man in den Support-Foren die Frage recherchiert, wie man denn eigenen PHP-Code in Joomla unterbringt, wird man meistens mit dem Hinweis erschlagen, dass man dafür ein eigenes Modul oder Plugin schreiben sollte. Beides ist in Joomla (im Vergleich zur WordPress-Pluginprogrammierung) recht aufwändig und für meinen Geschmack zu umständlich, wenn es nur um ein paar kleine Code Snippets geht. Wer sich selber an einem Modul versuchen möchte findet hier bei OSTraining oder hier bei joomla.org recht ausführliche Tutorials zum Thema Modulerstellung.

„Kleine“ Lösung mit dem Sourcerer

Wenn ich bloß ein paar PHP-Zeilen z.B. zum Zugriff auf eine eigene Tabelle unterkriegen will, ist mir das mit den Modulen aber wie gesagt wesentlich zu umständlich. Ich suchte nach sowas wie php Code for Posts oder einer Shortcode-Funktionalität, und bin schließlich bei der Erweiterung Sourcerer fündig geworden.  Nach der Installation findet man im Beitragseditor eine neue Funktionalität „Quelltext“, die sich sehr unauffällig gibt:

quelltext

quelltext

Nach Klick auf „Quelltext“ landet man erstmal in einem Editor, der mit den Default-Einstellungen eine kleine Hilfestellung gibt, wo man den Code platzieren kann:

sourcerer_edit

sourcerer_edit

Das wars auch schon! Nach Klick auf „Füge ein“ wird der Text inklusive der {source}-Tags in den Beitrag eingefügt und kann dort auch weiter bearbeitet werden. Leider habe ich keine Option für Code Highlighting gefunden, auch wenn in der Doku steht: „Also it comes with syntax coloring (php, js, css, html)“. Macht jetzt aber erstmal nichts, ich kopiere mir meine paar Zeilen Code aus dem Notepad++ rein. Das sieht im einfachsten Fall so aus, beispielsweise mit einem simplen echo:

php_programmerl

php_programmerl

Der Output sollte ungefähr so aussehen:

screenshot_phpcode

screenshot_phpcode

Und was machen wir jetzt damit?

Wir haben ein bisschen Spaß auf der Datenbank! Es wird höchste Zeit, sich ein wenig mit JDatabase anzufreunden, aber dafür gibt es einen neuen Beitrag.