Lightbox-Plugin funktioniert nicht mehr richtig, dafür Slimbox [Update: Quote Rotator] [Update: Beide Probleme gelöst]

So, nachdem ich mal mein Lightbox-Wordpress-Plugin von v1.8.2 auf v2.0.2 (unter WordPress v2.6.5) aktualisiert habe, musste ich feststellen, dass die Lightbox nicht mehr auf allen Seiten funktionierte. Nach einem SHIFT+RELOAD ließ sie sich zwar auf einigen Seiten wieder zum Leben erwecken, nicht jedoch auf der Startseite meines Blogs.

Ein Bischen googlen brachte dann eine Lösung: möglicherweise arbeitet die neue Lightbox nicht mehr so recht, wenn man andere Plugins, die evt. die „jQuery“-Bibliothek verwenden, installiert hat. Das Austauschen der Lightbox gegen die jQuery-Lightbox brachte – ausser einer Verhässlichung – nichts. Jedoch das Austauschen gegen die sog. „Slimbox„.

Das Slimbox WordPress Plugin ist praktisch identisch zur Lightbox (bis auf die Einstellmöglichkeiten), arbeitet aber viel schneller, weil es kleiner ist. Und zu meiner Freude funktioniert die Slimbox auf allen Seiten meines Blogs. Es muss keine Veränderung an den Bilder- oder Anker-Tags in den Artikeln vorgenommen werden, da die Slimbox 100% kompatibel zur Lightbox ist und ebenfalls auf das Attribut rel=“lightbox“ reagiert. Um einen Test der Slimbox zu sehen, hier klicken.

Wer also auch Interesse an der Slimbox hat, findet sie hier:
http://www.4mj.it/slimbox-wordpress-plugin

(Sehr weit runterscrollen für den Download-Link)

[Update 21.12.2008]
Da habe ich mich wohl zu früh gefreut. Wie ich soeben feststellen musste, hat das Deaktivieren des Lightbox- und das Aktivieren des Slimbox-Plugins dazu geführt, dass mein Quote Rotator Plugin nun nicht mehr funktioniert, sondern den JavaScript-Fehler „Effect is not defined“ produziert, anstatt ein Zitat einzublenden. Die Stelle im Ausgabe Quelltext, die diesen Fehler produziert, ist diese:

new Effect.Appear('quoterotator',{duration:3})

Nach einer langen Suche in diversen WordPress Scripten sowie einigen Tests, komme ich zu dem Schluss, dass das Problem entweder darin besteht, dass die Klasse „Effect“ in dem von der Slimbox verwendeten „mootools framework“ im Gegensatz zu dem von der Lightbox verwendeten „prototype/scriptaculous framework“ nicht mehr existiert bzw. umbenannt wurde oder es schlicht an der Reihenfolge liegt, in der WordPress die ggf. von Plugins gewünschten JavaScripts über den Aufruf der Funktion „wp_head()“ in der (zum Theme gehörenden) „header.php“ einbindet.

Baut man nämlich die beiden für die Benutzung des „prototype/scriptaculous framework“ notwendigen Zeilen in die Datei „header.php“ vor dem Aufruf der Funktion „wp_head()“ ein, funktioniert das Quote Rotator-Plugin zwar wieder, dafür aber das Slimbox-Plugin nicht mehr:

<script src="/blog/wp-includes/js/scriptaculous/prototype.js">// <![CDATA[
mce:0
// ]]></script><script src="/blog/wp-includes/js/scriptaculous/scriptaculous.js">// <![CDATA[
mce:1
// ]]></script>

Vielleicht erübrigt sich dieses ganze Gefrickel ja, wenn ich demnächst auf WordPress v2.7 aktualisiere – was ich jedoch etwas bezweifle – bis dahin werde ich einfach mein Quote Rotator Widget aus der Sidebar nehmen. Ich lasse es Euch wissen, wenn ich wieder eine Lösung gefunden habe, mit den neuesten Plugin-Versionen hübsch eingeblendete, schwebende Bilder darstellen und gleichzeitig das Quote Rotator Widget in der Sidebar anzeigen zu können.

[Update 10.01.2009]
Ein Update auf WordPress 2.7 bringt die Lightbox auch nicht wieder zum laufen. Jedoch habe ich nun dennoch eine Lösung gefunden. Es ist wohl so, dass nach dem Update auf die neueste Version des Lightbox Plugins es nötig geworden ist, jeden Artikel, den man bisher geschrieben hat und in dem min. 1 Bild, das die Lightbox benutzen soll, vorkommt, einmal im Adminbereich von WordPress zu Bearbeitung zu öffnen und direkt wieder zu speichern.

Dadurch wird scheinbar das Meta-Feld „lightboxoff“ erst in den Artikel gespeichert und enthält – wenn man nicht extra „Disable Lightbox“ auf der Artikel-Bearbeiten-Seite anklickt – dann einen Wert, der vom PHP-Script „wp-content/plugins/lightbox-2-wordpress-plugin/lightbox.php“ des Lightbox-Plugins ausgelesen wird. Ansonsten bindet das Plugin nämlich nicht die nötigen Zeilen …

echo '<script>// <![CDATA[
mce:2
// ]]></script>'."\n"; echo ' '."\n"; echo '<script src="' . $lightboxpluginpath . 'lightbox/js/prototype.js">// <![CDATA[
mce:3
// ]]></script>'."\n"; echo '<script src="' . $lightboxpluginpath . 'lightbox/js/scriptaculous.js?load=effects,builder">// <![CDATA[
mce:4
// ]]></script>'."\n"; echo '<script src="' . $lightboxpluginpath . 'lightbox/js/lightbox.js">// <![CDATA[
mce:5
// ]]></script>'."\n"; echo ' <!-- #overlay {background-color:' . $lightboxcolor1 . ';} --> '."\n";

… ein. Nachdem ich das also gemacht hatte, funktionierte die Lightbox wieder wunderbar. Es gibt aber auch ein Manko: das Quote Rotator-Plugin. Weil ich jenes Plugin so modifiziert habe, dass es nicht auch noch die „Scriptaculous“-JavaScript-Bibliothek einbinden soll, welche sich mit derjenigen vom Lightbox Plugin beißt, funktionierte der Quote Rotator nicht mehr auf allen Seiten, sprich genau auf den Seiten, auf denen auch durch das Lightbox-Plugin keine „Scriptaculous“-JavaScript-Bibliothek eingebunden wurde.

Ich habe den Quote Rotator so gelassen, dafür aber das Lightbox-Plugin verbessert – was wahrscheinlich auch alleine gereicht hätte und das Öffnen und Speichern aller meiner bebilderten Artikel überflüssig gemacht hätte.

Diese Zeile in der Datei „wp-content/plugins/lightbox-2-wordpress-plugin/lightbox.php“ in der Funktion „lightbox_wp_head()“:

if ($lightboxoffmeta == "false") {

Sollte so geändert werden:

if ($lightboxoffmeta == "false" || $lightboxoffmeta === "") {

Dadurch bindet das Lightbox-Plugin nun auf allen Seiten die „Scriptaculous“-JavaScript-Bibliothek etc. ein und sorgt somit dafür, dass andere Plugins dies nicht mehr machen müssen (und übrigens auch nicht sollten). Nun funktioniert bei mir die Lightbox und der Quote Rotator wieder auf allen Seiten.

Viel Erfolg!

Weitersagen: Diese Icons verlinken auf Bookmark Dienste bei denen Nutzer neue Inhalte finden und mit anderen teilen können.
  • email
  • Google Bookmarks
  • Facebook
  • Twitter
  • del.icio.us
  • Digg
  • LinkedIn
  • Technorati

Flattr this!

1 Trackback

  1. am 10. Januar 2009 um 17:50

    […] Lightbox Plugin hat, kann ja mal meinen alten Artikel lesen, den ich gerade eben aktualisiert habe: http://www.baudys.de/blog/2008/12/20/lightbox-plugin-funktioniert-nicht-mehr-richtig/ Dieser Beitrag wurde geschrieben von condor am 10. Januar 2009 um 17:50 MESZ und gespeichert […]