FolderGallery 1.22

Fragen und Hinweise zu Addons, die ursprünglich für Website Baker oder LEPTON erstellt wurden
Benutzeravatar
florian
Beiträge: 75
Registriert: Mo 12. Aug 2013, 09:47
Wohnort: Leipzig
Kontaktdaten:

FolderGallery 1.22

Beitrag von florian »

Hallo,

ich habe das Modul aktualisiert.
  • Lightboxscripte, die noch gepflegt werden, habe ich auf die jeweils verfügbare neueste Version aktualisiert
  • Lightboxscripte, die nicht mehr mit jQuery 2.1.1 funktionieren, habe ich entfernt
  • Statt des colorboxSnippet-Templates ist nun ein SlimboxSnippet-Template dabei
  • die frontend.js gibt eine Warnung aus, wenn jQuery nicht geladen ist (das ist noch suboptimal. Ich habe versucht, da eine Abfrage einzubauen, die dann ggf. jQuery nachlädt, das hat aber mit den gängigen Methoden nicht funktioniert o_O)
  • in der frontend.css habe ich ein paar Zeilen ergänzt, um zu vermeiden, dass die Vorschaubilder mit Aufzählungspunkten oder Zusatzrahmen angezeigt werden
  • in der view.php sind die überflüssigen Loader für frontend.css / frontend.js raus
  • Rechtschreibfehler in der DE.php korrigiert
VG
-f.
Dateianhänge
foldergallery_1.22.zip
(1.68 MiB) 354-mal heruntergeladen
Benutzeravatar
MK70
Beiträge: 224
Registriert: Sa 21. Dez 2013, 15:38
Wohnort: 47809 Krefeld
Kontaktdaten:

Re: FolderGallery 1.22

Beitrag von MK70 »

Ich will Daumen smilies haben...

*daumen daumen daumen* 8-) :P
Mit creativen Grüßen
MK
DestinationMuc
Beiträge: 94
Registriert: Sa 31. Aug 2013, 18:52
Wohnort: München

Re: FolderGallery 1.22

Beitrag von DestinationMuc »

supi.... *daumen* :D
Benutzeravatar
Morpheus
Beiträge: 1050
Registriert: Do 8. Aug 2013, 10:49
Kontaktdaten:

Re: FolderGallery 1.22

Beitrag von Morpheus »

smilie on [Daumen hoch] smilie off

Update wollte nicht so richtig, hatte zwar keine Fehlermeldungen aber es waren noch alle Moden von der vorherigen Version da.
Seiten gelöscht, Modul deinstalliert, neu installiert und Seiten neu angelegt!
Alles super :)

Live:
http://www.buerger-hillscheid.de/page/u ... sionen.php
und
http://www.buerger-hillscheid.de/page/u ... karten.php
Keiner ist unnütz, er kann immer noch als schlechtes Beispiel dienen!
Benutzeravatar
florian
Beiträge: 75
Registriert: Mo 12. Aug 2013, 09:47
Wohnort: Leipzig
Kontaktdaten:

Re: FolderGallery 1.22

Beitrag von florian »

Hallo,

ja, das war mir dann auch noch durch den Kopf gegangen, dass das Upgradescript zumindest dafür sorgen sollte, die alten Scripte rauszuschmeißen.* Ist halt erst mal nur ein Quick-&-Dirty-Bugfix... ich muss mir das alles nochmal genauer anschauen, auch, weshalb die 1.34 nicht mehr verwendbar ist. Vielleicht ist die mit vertretbarem Aufwand hinzubiegen. Die Uploadfunktion aus der Version wäre ja auch noch ganz nett. Mal sehen.

* Deinstallation und Neuinstallation ist nur bedingt zufriedenstellend, z.B. würden dadurch ja sämtliche in der Galerie hinterlegten Titel zu den Bildern und Kategorien und manuell festgelegte Reihenfolgen verloren gehen.

Wie handhabt BlackCat grundsätzlich das Update-Thema? Bei WB werden vorhandene Moduldateien nicht überschrieben, es sei denn, dies wird per Häkchen im Installationsdialog explizit gewünscht. Die Option gibt es bei BC nicht, oder?

VG
-f.
Benutzeravatar
shadowcat
Administrator
Beiträge: 5329
Registriert: Di 5. Feb 2013, 10:36
Kontaktdaten:

Re: FolderGallery 1.22

Beitrag von shadowcat »

Wir überschreiben immer, drum brauchen wir auch keinen Haken. (Für Updatesicherheit haben wir ja andere Mechanismen.) Das löst natürlich nicht das Problem überzähliger Dateien.

Wenn das Überschreiben nicht geklappt hat, müßte man sich ggfs. mal die Dateisystemrechte anschauen.
My software never has bugs, it just develops random features.
If it’s not broken, keep fixing it until it is
Benutzeravatar
shadowcat
Administrator
Beiträge: 5329
Registriert: Di 5. Feb 2013, 10:36
Kontaktdaten:

Re: FolderGallery 1.22

Beitrag von shadowcat »

florian hat geschrieben:die frontend.js gibt eine Warnung aus, wenn jQuery nicht geladen ist (das ist noch suboptimal. Ich habe versucht, da eine Abfrage einzubauen, die dann ggf. jQuery nachlädt, das hat aber mit den gängigen Methoden nicht funktioniert o_O)
Vielleicht kann ich helfen?
My software never has bugs, it just develops random features.
If it’s not broken, keep fixing it until it is
Benutzeravatar
shadowcat
Administrator
Beiträge: 5329
Registriert: Di 5. Feb 2013, 10:36
Kontaktdaten:

Re: FolderGallery 1.22

Beitrag von shadowcat »

Eine Methode aus einem anderen Modul...

frontend.js

Code: Alles auswählen

if ( typeof jQuery == 'undefined' ) {
    var fileref=document.createElement("script")
    fileref.setAttribute("type", "text/javascript");
    fileref.setAttribute("src", "https://code.jquery.com/jquery-1.11.1.min.js");
    if (typeof fileref != "undefined") {
        document.getElementsByTagName("head")[0].appendChild(fileref);
    }
}
frontend_body.js

Code: Alles auswählen

function defer(method) {
    if (window.$)
        method();
    else
        setTimeout(function() { defer(method) }, 50);
}

defer(fg_main);

function fg_main() {
    if(typeof jQuery != 'undefined') {
        jQuery(document).ready(function($) {
            $.getScript( WB_URL+"/modules/fotogalerie/js/jquery.prettyPhoto.js", function( data, textStatus, jqxhr ) {
                $("a[rel^='prettyPhoto']").prettyPhoto({
                    theme: "facebook",
                    slideshow:5000,
                    autoplay_slideshow:true,
                    social_tools:false,
                    allow_resize:true,
                    overlay_gallery_max:50
                });
            });
        });
    }
}
Die frontend.js kommt ja in den Header und schreibt da schon den jQuery Aufruf rein. Die frontend_body.js kommt vor </body> und prüft erst nochmal, ob jQuery geladen ist. Wenn nein, wird über defer() gewartet, bis das der Fall ist. Was da nur fehlt, ist ein Timeout, falls jQuery nie geladen werden kann.
My software never has bugs, it just develops random features.
If it’s not broken, keep fixing it until it is
Benutzeravatar
florian
Beiträge: 75
Registriert: Mo 12. Aug 2013, 09:47
Wohnort: Leipzig
Kontaktdaten:

Re: FolderGallery 1.22

Beitrag von florian »

Eine Methode aus einem anderen Modul...

frontend.js
Funktioniert leider auch nicht.
Ich ändere zu Testzwecken den Eintrag

Code: Alles auswählen

	'jquery' => array(
			array(
				'core'			=> true
			)
		),
in der headers.inc.php des Templates auf "false". Meine Erwartung ist dann, dass bei Aufruf der Seite mit der FG die frontend.js des Moduls ausgeführt wird und somit jQuery nachlädt.
http://ihb-leipzig.de/bc11/page/neue-seite/foga.php
Dies ist aber nicht der Fall. Habe ich einen Denkfehler?

Bevor dieses Problem sowie eine Lösung für die Beseitigung der veralteten Scripte im Zuge eines Modulupdates gefunden worden ist (und das ist mangels PHP-Kenntnissen von mir eher nicht zu erwarten, sry), halte ich es nicht für sinnvoll, dieses halbfertige Etwas ins Repository aufzunehmen.

VG
-f.
Dateianhänge
2014-12-10_113254.jpg
2014-12-10_113254.jpg (41.47 KiB) 8406 mal betrachtet
Benutzeravatar
shadowcat
Administrator
Beiträge: 5329
Registriert: Di 5. Feb 2013, 10:36
Kontaktdaten:

Re: FolderGallery 1.22

Beitrag von shadowcat »

Schauen wir mal in den Header -> da wird jQuery geladen. (Man braucht Web Developer Toolbar und "Erzeugten Quelltext anzeigen", um das zu sehen.) Hier mal der vollständige Header:

Code: Alles auswählen

<head>
	<title>BlackCat CMS1 - foga</title>
	    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
    <title>BlackCat CMS1</title>
<meta name="viewport" content="width=device-width, initial-scale=1"><link rel="stylesheet" type="text/css" href="http://ihb-leipzig.de/bc11/templates/darkspace/css/fitgrid.css" media="all">
<link rel="stylesheet" type="text/css" href="http://ihb-leipzig.de/bc11/templates/darkspace/css/sm-core-css.css" media="all">
<link rel="stylesheet" type="text/css" href="http://ihb-leipzig.de/bc11/templates/darkspace/css/sm-clean.css" media="all">
<link rel="stylesheet" type="text/css" href="http://ihb-leipzig.de/bc11/modules/lib_jquery/plugins/Slimbox2/jquery-slimbox2.css" media="screen">
<link rel="stylesheet" type="text/css" href="http://ihb-leipzig.de/bc11/modules/lib_jquery/plugins/Slimbox2/slimbox2-rtl.css" media="screen">
<link rel="stylesheet" type="text/css" href="http://ihb-leipzig.de/bc11/modules/lib_jquery/plugins/Slimbox2/slimbox2.css" media="screen">
<link rel="stylesheet" type="text/css" href="http://ihb-leipzig.de/bc11/templates/darkspace/css/template.css" media="screen,projection">
<link rel="stylesheet" type="text/css" href="http://ihb-leipzig.de/bc11/modules/lib_search/templates/default/frontend.css" media="all">
<link rel="stylesheet" type="text/css" href="http://ihb-leipzig.de/bc11/modules/foldergallery/frontend.css" media="all">
<script type="text/javascript">
		var WB_URL							  = '//ihb-leipzig.de/bc11',
			LEPTON_URL						  = '//ihb-leipzig.de/bc11',
            CAT_URL                           = '//ihb-leipzig.de/bc11';
            </script>    <script type="text/javascript" src="http://ihb-leipzig.de/bc11/templates/darkspace/js/jquery.smartmenus.min.js"></script>
    <script type="text/javascript" src="http://ihb-leipzig.de/bc11/modules/lib_jquery/plugins/Slimbox2/jquery-slimbox2-min.js"></script>
<script type="text/javascript" src="http://ihb-leipzig.de/bc11/modules/foldergallery/frontend.js"></script><script src="https://code.jquery.com/jquery-2.1.1.min.js" type="text/javascript"></script>

<script type="text/javascript" src="http://ihb-leipzig.de/bc11/modules/lib_search/templates/default/frontend.js"></script>



	<script type="text/javascript">
	$(function() {
		$('#main-menu').smartmenus({
			mainMenuSubOffsetX: -1,
			subMenusSubOffsetX: 10,
			subMenusSubOffsetY: 0
		});
	});
	</script>	
    
	
</head>
Allerdings paßt die Reihenfolge nicht; jQuery wird als letztes geladen. Das mag z.B. dann die Slimbox nicht. Das Smartmenü auch nicht. Zudem ist das durchaus ein Brocken, bis der geladen ist, ist der "hartcodierte" JavaScript Code (der mit dem smartmenu) schon ausgeführt. Fehlerhaft ausgeführt. Und da JavaScript beim ersten Fehler "aufhört", kommt danach auch nix mehr.

Sinnvoll wäre es daher, alles, was auf jQuery basiert, NACH jQuery zu laden. Das war der Teil mit dem defer() in meinem Quote. Man kann dann in der frontend.js der FG warten, bis jQuery geladen ist, dann mit getScript() das darauf basierende Plugin (z.B. Slimbox) laden, und in der function() alles weitere machen.

Was klappte denn da nicht?
My software never has bugs, it just develops random features.
If it’s not broken, keep fixing it until it is
Gesperrt