jQuery und Lightbox-Plugin

Hier können Probleme und alles andere in Deutscher Sprache gelöst werden.
User avatar
hagenroewer
Regular
Posts: 178
Joined: Mon Aug 14, 2006 12:41 am
Contact:

jQuery und Lightbox-Plugin

Post by hagenroewer » Sun May 26, 2013 3:37 pm

Mir fällt aufgrund der Bearbeitung in einem Projekt bzgl. jQuery folgendes auf:

In Auf eigenes Template im JS verweisen schreibt Yellowled folgendes:
Vor allem solltest Du jQuery nicht noch einmal manuell einbinden, das tut nämlich s9y schon (in halbwegs aktuellen Versionen) und zweimal ist eine Performance-Bremse.
Wenn ich das richtig verstanden habe, passiert das seit S9Y 1.6, und momentan ist in der 1.7 jQuery 1.8.1 eingebunden.

Wenn man nun dazu das Lightbox-Plugin einbindet, und dort z. B. prettyPhoto benutzt, entdecke ich das gleiche, was auch Yellowled vor längerer Zeit beschrieben hat in Lightbox plugin partially broken in s9y >= 1.6:
* prettyPhoto also includes it's own jQuery version, but I haven't found any side effects (yet).
Die dort eingebundene jQuery-Bibliothek kommt dann zum Zuge, wenn das Plugin "serendipity_event_jquery" nicht eingesetzt wird, da nach including prettyPhoto to serendipity_event_lightbox Garvin folgendes schrieb:
Since currentlyl ightbox runs without an external jquery plugin, ideally it should be solved by simply adding a "if (class_exists('serendipity_event_jquery')" check, so that if jquery plugin is loaded, the lightboxplugin does not emit its own jquery.
Frage: Sollte generell für das Lightboxplugin, und die dort vorhandenden Klonversionen nicht noch eine Abfrage eingebaut werden, dass ab S9Y 1.6 generell die vorneherein eingebundenen jQuery-Bibliothek zu benutzen ist?

Oder gibt es dann Probleme, mit dem was Yellowled schon im ersten erwähnten Link Auf eigenes Template im JS verweisen weiter ausführt:
Außerdem bitte beachten, dass das mit s9y gebundlete jQuery im noConflict-Modus läuft, falls Du eigenes Javascript einbinden musst. Das bedeutet primär, dass $ so nicht funktioniert, sondern durch jQuery ersetzt werden muss, also

Code: Select all

jQuery('body')
statt

Code: Select all

$('body')
und falls das Plugin nicht „anständig“ gebaut ist, kann es sein, dass das auch im Plugin geändert werden muss. Das sollte aber bei Backstretch nicht nötig sein.
Gruß von der Ruhr
Hagen Röwer Dienstlich | XING | LinkedIn

User avatar
Timbalu
Regular
Posts: 4598
Joined: Sun May 02, 2004 3:04 pm

Re: jQuery und Lightbox-Plugin

Post by Timbalu » Sun May 26, 2013 3:50 pm

1.7 hat 1.8.3 soweit ich mich erinnere...

Nur so nebenbei... Man kann zB das Serendipity jQuery usage einfach abschalten, mit:
$serendipity['capabilities']['jquery'] = false;
zb in der serendipity_config_local.inc.php oder der template eigenen config.inc.php
Regards,
Ian

Serendipity Styx Edition and additional_plugins @ https://ophian.github.io/ @ https://github.com/ophian

User avatar
yellowled
Regular
Posts: 7090
Joined: Fri Jan 13, 2006 12:46 pm
Location: Eutin, Germany
Contact:

Re: jQuery und Lightbox-Plugin

Post by yellowled » Sun May 26, 2013 3:59 pm

hagenroewer wrote:Wenn ich das richtig verstanden habe, passiert das seit S9Y 1.6, und momentan ist in der 1.7 jQuery 1.8.1 eingebunden.
Richtig. Auch im Backend übrigens.
hagenroewer wrote:Sollte generell für das Lightboxplugin, und die dort vorhandenden Klonversionen nicht noch eine Abfrage eingebaut werden, dass ab S9Y 1.6 generell die vorneherein eingebundenen jQuery-Bibliothek zu benutzen ist?
Im Prinzip ja. Theoretisch gibt es auch noch die Möglichkeit, die Einbindung des mit dem Kern gebundleten jQuery zu unterbinden, um (z.B. zur ultimativen Performance-Optimierung) jQuery nicht (wie es bei der Kern-Version geschieht) im <head> auszugeben. Damit würde dann aber das Lightbox-Plugin ohnehin nicht mehr funktionieren. Wer sowas macht, sollte generell wissen, was er tut, insofern ist das zu vernachlässigen.

Das Lightbox-Plugin könnte generell mal ein wenig developer love vertragen. Die gebundleten Lightbox-Skripte sind nur noch bedingt state of the art, funktionieren z.T. nicht mehr ganz usw. Dazu müsste sich aber natürlich – wie immer – ein Entwickler mit Zeit und Lust finden.
hagenroewer wrote:Oder gibt es dann Probleme, mit dem was Yellowled schon im ersten erwähnten Link Auf eigenes Template im JS verweisen weiter ausführt:
Nö, eigentlich nicht. Soweit ich sehe, ist auch der derzeitige Aufruf für prettyPhoto schon auf noConflict ausgelegt.

YL
amazon Wishlist - Serendipity-Podcast (German only, sorry)

User avatar
hagenroewer
Regular
Posts: 178
Joined: Mon Aug 14, 2006 12:41 am
Contact:

Re: jQuery und Lightbox-Plugin

Post by hagenroewer » Thu May 30, 2013 5:02 pm

hagenroewer wrote: Frage: Sollte generell für das Lightboxplugin, und die dort vorhandenden Klonversionen nicht noch eine Abfrage eingebaut werden, dass ab S9Y 1.6 generell die vorneherein eingebundenen jQuery-Bibliothek zu benutzen ist?
yellowled wrote: Das Lightbox-Plugin könnte generell mal ein wenig developer love vertragen. Die gebundleten Lightbox-Skripte sind nur noch bedingt state of the art, funktionieren z.T. nicht mehr ganz usw. Dazu müsste sich aber natürlich – wie immer – ein Entwickler mit Zeit und Lust finden.
Ich habe mir mal das Plugin und die eingebundenen Bibliotheken angeschaut, und die mit deren aktuellen Ständen verglichen:

s. a. dazu
https://github.com/s9y/additional_plugi ... /ChangeLog

Code: Select all

Version 1.7 (Barberousse):

    * Change graybox to greybox
    * Greybox upgraded to version 5.53
    * Lightbox 2 upgraded to version 2.04
    * Lightbox Plus upgraded to version 20061027
zu Greybox:
GreyBox Version 5.54 (19. October 2009)
zu Lightbox 2:
Lightbox 2 v2.51
uses the jQuery framework
zu Lightbox Plus:
Version: 20100821
und
23 Aug 2010
fixed a bug ( some captions could be shown on out side of screen )

Code: Select all

Version 1.6 (brockhaus):

    * Upgraded ThickBox 2.1 to 3.1 as the older version produced 
      problems with in example a flicker js widget. 
Die Original Thickbox 3.1 von Cody Lindley scheint im Netz verschwunden zu sein, dafür
Thickbox 4.1 - One Box To Rule Them All. https://github.com/Coffeebreakers/jquery-thickbox By Mario Felipe Rinaldi By Douglas Castilho
Based on thickbox 3.1 By Cody Lindley

Code: Select all

1.9.5: prettyPhoto 3.1.4 update, allow configuration of default object
zu prettyPhoto
“3.1.5:Fixed:Now works with jQuery 1.9 Dropped: Support for IE6”
Die Original Lightbox Bibliothek wird anscheinend seit Ende Januar2006 nicht mehr weiter gepflegt, dafür gibt es ja vom gleichen Autor die Lightbox 2 Variante:
CHANGELOG:
1/19/06 10:40PM EST - Added keypress activated closing.
1/15/06 12:50PM EST - Added optional 'close' button.
1/10/06 10:30PM EST - Added support for captions.
12/31/05 6:00PM EST - Fixed IE6 bugs.
Ich versuche mal die Weiterentwicklung des Plugins als Gehhilfe zur Plugin-Entwicklung für mich zu nutzen.

Code: Select all

Since currentlyl ightbox runs without an external jquery plugin, ideally it should be solved by simply adding a "if (class_exists('serendipity_event_jquery')" check, so that if jquery plugin is loaded, the lightboxplugin does not emit its own jquery.
Wie fragt man jetzt zusätzlich ab nach der neuen Variante bei Einbindung von jQuery über die Templates? Nach der Version-Nr. von S9Y?

Der Original-Code lautet ja bei prettyPhoto wie folgt ab https://github.com/s9y/additional_plugi ... x.php#L203

Code: Select all

					// prettyPhoto code
					elseif ($type == 'prettyPhoto') {
    					echo '<script type="text/javascript">var prettyphoto_path = "' . $pluginDir . '/prettyphoto";</script>' . "\n";
    			if (!class_exists('serendipity_event_jquery')) echo '<script type="text/javascript" src="' . $pluginDir . '/prettyphoto/js/jquery-1.6.1.min.js"></script>' . "\n";
                        echo '<script type="text/javascript" src="' . $pluginDir . '/prettyphoto/js/jquery.prettyPhoto.js"></script>' . "\n";
                        echo '<link rel="stylesheet" type="text/css" href="' . $pluginDir.  '/prettyphoto/css/prettyPhoto.css" />' . "\n";
                        echo '<script type="text/javascript" charset="utf-8">jQuery(document).ready(function(){ jQuery("a[rel^=\'prettyPhoto\']").prettyPhoto(' . $this->get_config('init_js') . ');});</script>' . "\n";
                    } 
Gruß von der Ruhr
Hagen Röwer Dienstlich | XING | LinkedIn

User avatar
onli
Regular
Posts: 2280
Joined: Tue Sep 09, 2008 10:04 pm
Contact:

Re: jQuery und Lightbox-Plugin

Post by onli » Thu May 30, 2013 5:34 pm

hagenroewer wrote:Ich versuche mal die Weiterentwicklung des Plugins als Gehhilfe zur Plugin-Entwicklung für mich zu nutzen.
Das wäre total toll! Es hat sogar größere Relevanz, weil es abgesehen von diesem Plugin keinen Grund gibt, warum jQuery im noConflict-Modus laufen sollte.
Wie fragt man jetzt zusätzlich ab nach der neuen Variante bei Einbindung von jQuery über die Templates? Nach der Version-Nr. von S9Y?
Nein, schöner, dafür gibt es jetzt eine eigene Variable (noch nicht von mir getestet, oder nicht in letzter Zeit):

Code: Select all

if (serendipity['capabilities']['jquery']) {
    # jquery is already included and loaded
}

User avatar
yellowled
Regular
Posts: 7090
Joined: Fri Jan 13, 2006 12:46 pm
Location: Eutin, Germany
Contact:

Re: jQuery und Lightbox-Plugin

Post by yellowled » Thu May 30, 2013 7:41 pm

Es ist natürlich aus Benutzersicht immer ganz schön, wenn bereits in das Plugin integrierte Lightboxen erhalten bleiben – dass ein Lightbox-Plugin lange kein Update mehr erhalten hat, muss ja nicht unbedingt bedeuten, dass es fehlerhaft oder veraltet ist. :)

Andererseits gibt es einige wirklich zeitgemäßere, modernere Lightbox-Skripte, die ich gern in diesem Plugin sehen würde:

* Colorbox ist extrem ausgereift und wird sehr aktiv gewartet.
* Fancybox ist für viele das Lightbox-Plugin überhaupt. Vorsicht: Es gibt mittlerweile Fancybox 2, das ist aber für kommerzielle Seiten nicht mehr frei verwendbar – für private/non-profit schon, aber ich bin mir nicht sicher, ob das in einem Plugin eine gute Idee wäre. Andererseits weiß ich auch nicht, ob Fancybox 1 noch aktiv entwickelt wird.
* Magnific Popup ist mein aktueller Liebling. Ein extrem durchdachtes, sehr gut umgesetztes Lightbox-Plugin, das aber noch sehr jung ist. Lies: Da wird sich noch Einiges tun, was die Integration in ein Plugin eventuell wartungsintensiv macht.

YL
amazon Wishlist - Serendipity-Podcast (German only, sorry)

User avatar
hagenroewer
Regular
Posts: 178
Joined: Mon Aug 14, 2006 12:41 am
Contact:

Re: jQuery und Lightbox-Plugin

Post by hagenroewer » Thu May 30, 2013 11:13 pm

onli wrote: Das wäre total toll! Es hat sogar größere Relevanz, weil es abgesehen von diesem Plugin keinen Grund gibt, warum jQuery im noConflict-Modus laufen sollte.
Das war mir nicht bewusst gewesen, d. h. andere Plugins greifen darauf wirlich nicht zurück.
@Yellowled: Soll der noConflict-Modus so bestehen bleiben?

Wegen dem hatte ich hier bei mir vor kurzen wegen der Inbetriebnahme eines jQuery-Slider die Karten gelegt, bis ich den noConflict-Modus näher untersucht habe.
onli wrote:Nein, schöner, dafür gibt es jetzt eine eigene Variable (noch nicht von mir getestet, oder nicht in letzter Zeit):

Code: Select all

if (serendipity['capabilities']['jquery']) {
    # jquery is already included and loaded
}
Danke für den Hinweis, dann muss ich jetzt demnächst wohl in das Testlabor ...
Gruß von der Ruhr
Hagen Röwer Dienstlich | XING | LinkedIn

User avatar
hagenroewer
Regular
Posts: 178
Joined: Mon Aug 14, 2006 12:41 am
Contact:

Re: jQuery und Lightbox-Plugin

Post by hagenroewer » Thu May 30, 2013 11:49 pm

yellowled wrote:Es ist natürlich aus Benutzersicht immer ganz schön, wenn bereits in das Plugin integrierte Lightboxen erhalten bleiben – dass ein Lightbox-Plugin lange kein Update mehr erhalten hat, muss ja nicht unbedingt bedeuten, dass es fehlerhaft oder veraltet ist. :)
Ja, das sehe ich genauso, allein schon wegen der Abwärtskompatibilität. Man sollte einfach nur in der Plugin-Doku deutlich machen, welche schon lange nicht mehr gepflegt werden, und welche, die aktuell gepflegt werden.
Dann kann der Nutzer immer selber entscheiden.

Andererseits gibt es einige wirklich zeitgemäßere, modernere Lightbox-Skripte, die ich gern in diesem Plugin sehen würde:
yellowled wrote:* Colorbox ist extrem ausgereift und wird sehr aktiv gewartet.
Ja, stand auch schon auf meiner Merkliste ...
yellowled wrote:* Fancybox ist für viele das Lightbox-Plugin überhaupt. Vorsicht: Es gibt mittlerweile Fancybox 2, das ist aber für kommerzielle Seiten nicht mehr frei verwendbar – für private/non-profit schon, aber ich bin mir nicht sicher, ob das in einem Plugin eine gute Idee wäre. Andererseits weiß ich auch nicht, ob Fancybox 1 noch aktiv entwickelt wird.
Hatte ich auch auf den Merkzettel.

Zur Fancybox 1
http://fancybox.net/changelog/
Version 1.3.4 (2010/11/11)
2010/11/11 - v.1.3.4
Fixed - Image ratio (webkit)

Ansonsten würde ich aufgrund der Lizenzproblematik die Fancybox2 nicht in das Plugin integrieren wollen.
So sehe ich bei zwei Wordpress-Plugins Fancybox1:
http://wordpress.org/plugins/fancybox-for-wordpress/
und
http://wordpress.org/plugins/easy-fancybox/
In einem dritten Wordpressplugin dann aber Fancybox2
http://wordpress.org/plugins/fancybox2/
aber auch schon mit einer Nachfrage zur Lizenz. Dort scheint die Situation nicht ganz klar zu sein bzw. das Lizenz-Risiko wird dann direkt auf den Plugin-Anwender abgewälzt.
yellowled wrote:* Magnific Popup ist mein aktueller Liebling.
Das kannte ich noch nicht.

Erst mal schaue ich, wie ich die bestehenden Bibliotheken aktualisiert bekomme, und zweitens wie ich die Redundanz von jQuery wegbekomme und drittens schauen wir uns die neuen Bibliotheken an.

Zuvor muss ich mir ein Testlabor einrichten ...
Gruß von der Ruhr
Hagen Röwer Dienstlich | XING | LinkedIn

User avatar
yellowled
Regular
Posts: 7090
Joined: Fri Jan 13, 2006 12:46 pm
Location: Eutin, Germany
Contact:

Re: jQuery und Lightbox-Plugin

Post by yellowled » Fri May 31, 2013 9:27 am

hagenroewer wrote:Soll der noConflict-Modus so bestehen bleiben?
Dazu sollte Garvin noch etwas sagen, aber wenn's nach mir geht – ich bin der erste, der „Hurra!“ schreit, wenn wir den noConflict-Modus auch im Frontend loswerden. Im Backend wird er in 2.0 schon nicht mehr aktiv sein.

YL
amazon Wishlist - Serendipity-Podcast (German only, sorry)

User avatar
garvinhicking
Core Developer
Posts: 30020
Joined: Tue Sep 16, 2003 9:45 pm
Location: Cologne, Germany
Contact:

Re: jQuery und Lightbox-Plugin

Post by garvinhicking » Sat Jun 08, 2013 6:01 pm

Der noconflict mode ist ja nur für prototype plugins wirklich relevant. Ich glaube davon habe wir nicht mehr allzuviele? Evtl könnte man dann eher in diesen prototype plugins eine Methode vorsehen den noconflict mode zu setzen, statt ihn immer zu aktivieren. Grundsätzlich würde ich auch gerne auf noConflict verzichten.
# Garvin Hicking (s9y Developer)
# Did I help you? Consider making me happy: http://wishes.garv.in/
# or use my PayPal account "paypal {at} supergarv (dot) de"
# My "other" hobby: http://flickr.garv.in/

User avatar
yellowled
Regular
Posts: 7090
Joined: Fri Jan 13, 2006 12:46 pm
Location: Eutin, Germany
Contact:

Re: jQuery und Lightbox-Plugin

Post by yellowled » Sat Jun 08, 2013 6:34 pm

garvinhicking wrote:Der noconflict mode ist ja nur für prototype plugins wirklich relevant. Ich glaube davon habe wir nicht mehr allzuviele?
Jein. Theoretisch könnten Plugins andere JS-Bibliotheken wie z.B. MooTools nutzen, die ebenfalls $ beanspruchen. Ein hastiges grep -rl mootools * über additonal_plugins sagt, dass das nicht der Fall ist, aber grundsätzlich bezieht sich noConflict eben nicht nur auf prototype, und dummerweise gibt es ja mittlerweile (Mini-)JS-Bibliotheken wie Sand am Meer.

lightbox2 aus dem Lightbox-Plugin nutzt prototype, ansonsten anscheinend nur noch serendipity_event_autosave. Müsste mal jemand genauer greppen, der das etwas besser kann als ich. :mrgreen: Die meisten Plugins, die JS ausgiebiger nutzen, sind von onli und nutzen bereits jQuery.

YL
amazon Wishlist - Serendipity-Podcast (German only, sorry)

User avatar
onli
Regular
Posts: 2280
Joined: Tue Sep 09, 2008 10:04 pm
Contact:

Re: jQuery und Lightbox-Plugin

Post by onli » Sun Jun 09, 2013 11:53 am

That seems to be it. In serendipity_event_sidebarhider is a to_integrate.zip with prototype.js in it, but that zip isn't used anywhere as far as i could see.

User avatar
garvinhicking
Core Developer
Posts: 30020
Joined: Tue Sep 16, 2003 9:45 pm
Location: Cologne, Germany
Contact:

Re: jQuery und Lightbox-Plugin

Post by garvinhicking » Sun Jun 09, 2013 1:44 pm

Hi!

Then I'd opt for patching the lightbox2 instance version to place the "noconflict" on it's own, and then remove noConflict for the 2.0 frontend output.

Regards,
Garvin
# Garvin Hicking (s9y Developer)
# Did I help you? Consider making me happy: http://wishes.garv.in/
# or use my PayPal account "paypal {at} supergarv (dot) de"
# My "other" hobby: http://flickr.garv.in/

User avatar
yellowled
Regular
Posts: 7090
Joined: Fri Jan 13, 2006 12:46 pm
Location: Eutin, Germany
Contact:

Re: jQuery und Lightbox-Plugin

Post by yellowled » Sun Jun 09, 2013 3:09 pm

<mode="Else Kling">Sprecht's deitsch, sakrament!</mode> ;-)

Und was machen wir mit dem Autosave-Plugin? Funktionierte das nicht ohnehin nur eher so mittelgut?

YL
amazon Wishlist - Serendipity-Podcast (German only, sorry)

User avatar
Timbalu
Regular
Posts: 4598
Joined: Sun May 02, 2004 3:04 pm

Re: jQuery und Lightbox-Plugin

Post by Timbalu » Sun Jun 09, 2013 3:27 pm

Wenn ich http://board.s9y.org/viewtopic.php?f=4& ... #p10435358 richtig verstehe, ist mittelgut sogar noch ziemlich nett ausgedrückt.

Ehrlich gesagt verstehe ich überhaupt nicht, was das Plugin eigentlich bewirken bzw verbessern soll, was DRAFT nicht auch könnte. Wer sitzt denn Stunden vor dem offenen Formular, was nicht besser in jedem beliebigen Texteditor zu formulieren wäre...?
Regards,
Ian

Serendipity Styx Edition and additional_plugins @ https://ophian.github.io/ @ https://github.com/ophian

Post Reply