mouth
Willkommen Gast.
Um die volle Funktionalität des Forums nutzen zu können,
müssen Sie sich einloggen oder registrieren.
Haben Sie Ihre Aktivierungs E-Mail übersehen?

 
Erweiterte Suche

31.110 Beiträge in 6.475 Themen- von 6.477 Mitglieder - Neuestes Mitglied: Frideborg

30-03-2020 10:13:12
JOOM::GALLERY::FORUMArchivJoomGallery 1.5 MVCJoomGallery MVC ALPHA/BETAModul JoomCategories für JoomGallery MVC
Seiten: [1]
Drucken
Autor Thema: Modul JoomCategories für JoomGallery MVC  (Gelesen 6964 mal)
0 Mitglieder und 1 Gast betrachten dieses Thema.
Erftralle
Sr. Member
****
Offline Offline

Beiträge: 803


« am: 31-03-2010 14:49:50 »

Hallo,

als Nachfolgemodul des Moduls "JoomGallery Latest Categories" möchte ich euch heute für und ab der Version JoomGallery 1.5.5 MVC BETA2 das Modul "JoomCategories" zur Verfügung stellen.

Das neue Modul beinhaltet natürlich all die Funktionalitäten, die das Vorgängermodul auch hatte und folgende Features mehr:
  • verbesserte Slideshow mit Overlay Effekt
  • es kann nun zwischen der Anzeige der "Zuletzt hinzugekommenen", "Meist gesehenen" und "Hoch bewerteten" Kategorien gewählt werden
  • es kann ein zusätzlicher, parametrierbarer Link am Modulende angezeigt werden
  • Einführung eines Kategoriefilters, um bestimmte Kategorien bei der Anzeige auszuschließen

Eine komplette Liste der Änderungen befindet sich wie immer in der Datei changelog.php.

Da die Entwickler der JoomGallery meine Bitte nach einer kleinen Änderung in dem Javascript components/com_joomgallery/assets/js/smoothgallery/scripts/jd.gallery.js (siehe auch hier) nicht erfüllt haben (ein klein wenig traurig stimmt mich das schon sm_cry), muss man die hier beschriebene Codeänderung bei Verwendung der Slideshow im Modul vornehmen.
Ich hoffe aber weiterhin auf eine Übernahme dieser kleineren Änderung. Ich wäre auf einen Hinweis bzw. auf eine Antwort des Teams dankbar.

Und nun wünsche ich euch viel Spaß mit dem Modul JoomCategories.
Ein Installationszip (englische und deutsche Sprache enthalten) befindet sich im Anhang.

Auf Anregungen, Verbesserungsvorschläge und Bugreports freue ich mich sm_smile .

Gruß
Erftralle

EDIT: Dateianhang entfernt. Das Modul ist jetzt auf den Downloadseiten für die JoomGallery MVC BETA verfügbar.
« Letzte Änderung: 27-04-2010 17:23:45 von Erftralle » Gespeichert
aHa
Entwickler-Team
Hero Member
*****
Offline Offline

Beiträge: 2.367


WWW
« Antworten #1 am: 31-03-2010 20:41:40 »

Hallo Erftralle,
zuerst vielen Dank für die Weiterentwicklung dieser und anderer Erweiterungen
Entschuldigung, dass uns der andere Thread hinsichtlich Deiner Vorschläge ein wenig durch die Lappen gegangen ist.
Die von dir beschriebene Änderung der 'jd.gallery.js' fliesst auf jeden Fall in die Stable der MVC ein.

Ich werde Dir auf die anderen Punkte antworten, wenn ich mir die Sache ein wenig genauer ansehen konnte.

Gruß
Andreas
« Letzte Änderung: 31-03-2010 20:47:24 von aHa » Gespeichert
aHa
Entwickler-Team
Hero Member
*****
Offline Offline

Beiträge: 2.367


WWW
« Antworten #2 am: 31-03-2010 21:20:25 »

Hallo Erftralle,
mir ist etwas aufgefallen, genau kann ich es mir nicht erklären.
JoomGallery 1.5.5 MVC BETA2 (englisch), das Modul mit den oben erwähnten Änderungen im JS der Slideshow
Slideshow im Modul aktiviert
Detailansicht der Galerie

Javascript-Fehler:
Code:
missing } after property list
http://<domain>/index.php?view=detail&id=678&option=com_joomgallery&Itemid=55
Line 246
was missverständlich ist, da ich keinen Fehler in der Klammersetzung finden kann

Ich konnte dies nur so beheben:

helper.php, Zeile 710
Code
errorMessage:"'.$errorMessage.'"
 

Gruss
Andreas
Gespeichert
Erftralle
Sr. Member
****
Offline Offline

Beiträge: 803


« Antworten #3 am: 01-04-2010 15:36:50 »

Hallo Andreas,

Die von dir beschriebene Änderung der 'jd.gallery.js' fliesst auf jeden Fall in die Stable der MVC ein.
Vielen Dank, das freut mich.

Leider hab ich es nicht geschafft, den von dir beschriebenen Javascript-Fehler nachzustellen.
Mit welchem Browser hast du denn getestet?

Als ich das Modul jedoch mit dem IE7/8 durchgetestet habe, habe ich jede Menge anderer Javascript-Fehler erhalten Roll Eyes .
Mit dem Firefox funktioniert die Slideshow einwandfrei und ohne Fehlermeldung. Sträflicherweise habe ich nach meinen letzten Änderungen das Modul nicht nochmal erneut mit dem IE getestet.

Auf jeden Fall habe ich das Modul noch einmal überarbeitet, einige Javascript-Fehler korrigiert und nochmal in allen wichtigen Browsern (FF3.5/3.6, IE7/8, Chrome, Safari, Opera) getestet.
Würde mich auf jeden Fall interessieren, ob dein Fehler jetzt auch weg ist. Die von dir vorgeschlagene Änderung habe ich noch nicht übernommen.

Eine kleine zusätzliche Änderung habe ich noch in components/com_joomgallery/assets/js/smoothgallery/scripts/jd.gallery.js vorgenommen, um noch einen Javascript-Fehler zu unterbinden, der beim Starten der Slideshow im IE bei gleichzeitiger Aktivierung des Info Panels und des Carousels auftritt (übrigens auch in der Slideshow der Detailansicht).

Vorher:
Code
  centerCarouselOn: function(num) {
   if (!this.carouselWallMode)
   {
     var carouselElement = this.thumbnailElements[num];
     var position = carouselElement.element.offsetLeft + (carouselElement.element.offsetWidth / 2);
     var carouselWidth = this.carouselWrapper.element.offsetWidth;
     var carouselInnerWidth = this.carouselInner.offsetWidth;
     var diffWidth = carouselWidth / 2;
     var scrollPos = position-diffWidth;
     this.carouselWrapper.elementScroller.scrollTo(scrollPos,0);
   }
 },
Nachher:
Code
  centerCarouselOn: function(num) {
   if (!this.carouselWallMode)
   {
     var carouselElement = this.thumbnailElements[num];
     var position = carouselElement.element.offsetLeft + (carouselElement.element.offsetWidth / 2);
     var carouselWidth = this.carouselWrapper.element.offsetWidth;
     var carouselInnerWidth = this.carouselInner.offsetWidth;
     var diffWidth = carouselWidth / 2;
     var scrollPos = position-diffWidth;
     try {
       this.carouselWrapper.elementScroller.scrollTo(scrollPos,0);
     }
     catch(e)
     {
     }
   }
 },
Vielleicht könnte man diese kleine Änderung auch noch mit in die Stable der MVC übernehmen.
Auf jeden Fall würde die Änderung nicht weh tun.

Das aktualisierte Modul befindet sich im Anhang des ersten Beitrags.

Gruß
Erftralle
« Letzte Änderung: 01-04-2010 16:18:37 von Erftralle » Gespeichert
aHa
Entwickler-Team
Hero Member
*****
Offline Offline

Beiträge: 2.367


WWW
« Antworten #4 am: 01-04-2010 19:47:07 »

Hallo Erftralle,
den Fehler habe ich mit dem Firefox 3.6.2 bemerkt. Leider auch in der neuen Version des Moduls.
Wenn in dem Modul die Slideshow aktiviert ist und gleichzeitig die Detailansicht der Galerie aufgerufen wird,
hat ein Klick auf einen Thumb im Modul keine Wirkung.
Der Fehler wird schon bei dem Aufruf der Detailseite angezeigt.

Ebenso im IE8:
Code:
Meldung: '}' erwartet
Zeile: 233
Zeichen: 127
Code: 0

Wegen der Vermeidung des Fehlers im IE würde ich eine kleine Änderung Deines Fixes vorschlagen.
Tatsächlich ist es so, dass 'scrollPos' in dem Fall nicht definiert ist:
Code
  centerCarouselOn: function(num) {
   if (!this.carouselWallMode)
   {
     var carouselElement = this.thumbnailElements[num];
     var position = carouselElement.element.offsetLeft + (carouselElement.element.offsetWidth / 2);
     var carouselWidth = this.carouselWrapper.element.offsetWidth;
     var carouselInnerWidth = this.carouselInner.offsetWidth;
     var diffWidth = carouselWidth / 2;
     if (typeof(scrollPos) != "undefined")
     {
       var scrollPos = position-diffWidth;
       this.carouselWrapper.elementScroller.scrollTo(scrollPos,0);
     }
   }
 },
 

Ich bin mir nicht sicher, ob das leere catch zum Abfangen des Fehlers nicht intern Seiteneffekte verursacht.

Gruß
Andreas
Gespeichert
Erftralle
Sr. Member
****
Offline Offline

Beiträge: 803


« Antworten #5 am: 01-04-2010 21:40:19 »

Hallo Andreas,

erstmal vielen Dank für deine Tests sm_smile .

ich kann den Fehler aber immer noch nicht nachvollziehen.
Sowohl im FF 3.6.2 als auch im IE8 geht bei mir in der Detailansicht beim Klick auf einen Modulthumb ein Popup mit dem Hinweis auf, dass in der Detailansicht die Modulslideshow aus Kompatibilitätsgründen deaktiviert ist. Würde ich sie hier aktivieren, dann würden die Texte bzw. Bildbeschreibungen im Accordion ja verfälscht.

Ich hab es mit allen Standard Templates und dem JA_Purity II getestet.
Als Umgebung hab ich eine aktuelle Joomla! Installation mit Beispieldaten genommen, zusätzlich nur JoomGallery Komponente und JoomGallery Module bzw. Plugins (XAMPP 1.7.1 unter Windows 7).

Hmmmmmmmm, ich bin ein wenig ratlos.
Auf welches Javascript bezieht sich denn die Fehlermeldung? Wird das nicht angezeigt?
Wie sehen denn deine Modulparameter aus?
Wie sieht deine Umgebung aus?
Vielleicht gibt es bei dir Inkompatibilitäten mit anderen Skripts?
Vielleicht weißt du noch was, was ich als Info von dir gut gebrauchen könnte?

Die Änderung des Fixes kann meines Erachtens nicht funktionieren.
Code
typeof(scrollPos)
ist jetzt doch immer "undefined", folglich wird der Code in der if-Abfrage nie bearbeitet.
Das Positionieren auf das aktuelle Thumb im Carousel funktioniert auch nicht mehr mit dieser Änderung.

Welche Seiteneffekte könnte denn ein leeres catch verursachen?

Gruß
Erftralle
Gespeichert
aHa
Entwickler-Team
Hero Member
*****
Offline Offline

Beiträge: 2.367


WWW
« Antworten #6 am: 01-04-2010 22:06:30 »

Hallo Erftralle,
installiere bitte das aktuelle Zip der Galerie.
Deine vorherigen Änderungsvorschläge sollten eingearbeitet sein.
Mir geht es erst einmal um eine gemeinsame Codebasis

Zitat
ist jetzt doch immer "undefined"
Warum?

Danke
Gruß
Andreas
Gespeichert
Erftralle
Sr. Member
****
Offline Offline

Beiträge: 803


« Antworten #7 am: 01-04-2010 22:27:46 »

Hallo Andreas,

installiere bitte das aktuelle Zip der Galerie.
Deine vorherigen Änderungsvorschläge sollten eingearbeitet sein.
Mir geht es erst einmal um eine gemeinsame Codebasis

OK, habe ich gemacht, jedoch bekomme ich immer noch keinen Javascript-Fehler.

Warum?
Weil die lokale Variable 'scrollPos' doch erst in der if-Abfrage definiert wird.

Gruß
Erftralle
Gespeichert
aHa
Entwickler-Team
Hero Member
*****
Offline Offline

Beiträge: 2.367


WWW
« Antworten #8 am: 01-04-2010 22:28:58 »

Hallo Erftralle,
ich habe das Modul und das aktuelle Zip der JoomGallery auf einem nicht lokalen Webserver installiert
Es wird die gleiche Meldung angezeigt

Wenn Du magst, sende ich Dir gern die Zugangsdaten per PN

Gruß
Andreas

edit: Sorry
Zitat
Weil die lokale Variable 'scrollPos' doch erst in der if-Abfrage definiert wird.
Jetzt habe ich es auch verstanden sm_wink
Gespeichert
Erftralle
Sr. Member
****
Offline Offline

Beiträge: 803


« Antworten #9 am: 01-04-2010 22:39:48 »

Hallo Andreas,
Wenn Du magst, sende ich Dir gern die Zugangsdaten per PN

nicht, das ich dir nicht glauben würde, aber sehen würde ich es schon gerne.

Danke.

Gruß
Erftralle
Gespeichert
Erftralle
Sr. Member
****
Offline Offline

Beiträge: 803


« Antworten #10 am: 01-04-2010 23:34:18 »

Hallo Andreas,

vielen Dank für den Zugang.

Jetzt hab ich den Fehler auch gesehen sm_yes und auch nachvollziehen können.
Irgendwie ist bei mir nicht angekommen, dass du im Frontend die englische Sprache eingestellt hattest.

Es liegt an der Fehlermeldung selbst, die in dem Popup ausgegeben werden soll. Sie lautet:
Zitat
Sorry, but the module slideshow is for reasons of compatibility not available in the gallery's detail view. Please use the slideshow of the gallery itself in the detail view.
Leider ist mir da (mal wieder) ein einfaches Anführungszeichen reingerutscht.

Sorry für den Aufwand, den ich dir bereitet habe.

Entweder ändert man die Fehlermeldung in der Sprachdatei so
Zitat
Sorry, but the module slideshow is for reasons of compatibility not available in the gallery\'s detail view. Please use the slideshow of the gallery itself in the detail view.
um oder man sorgt mit 'addslashes' im Code dafür, das die Meldung "ordentlich" aufbereitet wird.

Nochmals vielen Dank für deine Hilfe sm_smile .

Ich werde morgen eine korrigierte Version des Moduls bereitstellen.

Gruß
Erftralle
Gespeichert
aHa
Entwickler-Team
Hero Member
*****
Offline Offline

Beiträge: 2.367


WWW
« Antworten #11 am: 02-04-2010 08:39:54 »

Hallo Erftralle,
ok, auf den Inhalt an sich bin ich nicht gekommen.
Zu dem Fehler im IE. Er scheint tatsächlich in der Smoothgallery bekannt zu sein..
Ich habe aber keinen besseren Lösungsansatz als Deinen mit dem try..catch gefunden.
Besser gesagt, nur mit deiner Änderung funktioniert es.

Mich hat das leere catch irritiert. Normalerweise findet dort eine Fehlerbehandlung statt
oder es wird der Fehler 'nach oben' per throw() weitergereicht. Deshalb habe ich hier 'Seiteneffekte' befürchtet,
weil es (für mich) kein definiertes Verhalten ist. Aber man lernt täglich hinzu..
Deine Änderung wird so übernommen.

Gruß
Andreas

Gespeichert
Erftralle
Sr. Member
****
Offline Offline

Beiträge: 803


« Antworten #12 am: 02-04-2010 10:29:25 »

Hallo Andreas,

ich stimme dir zu, das der Einsatz des try..catch nicht unbedingt den Regeln der Programmierkunst entspricht.
In unserem Fall dient er ja lediglich dazu, einen Fehler abzufangen, um eine unschöne Meldung beim Start der Slideshow im Browser zu unterdrücken.
Besser wäre natürlich, diesen Fehler durch eine Änderung im SmoothGallery Script gar nicht erst aufkommen zu lassen. Aber der Entwickler des Scripts hat ja in seinem Forum auch nicht reagiert. Er wird wohl wissen, warum.
Man müsste in jedem Fall tiefer in das Skript einsteigen, um den Fehler zu korrigieren.

Wie gestern versprochen befindet sich ein aktualisiertes Modul im Anhang des ersten Beitrags.

Und nochmals vielen Dank für deine Unterstützung.

Gruß
Erftralle
Gespeichert
aHa
Entwickler-Team
Hero Member
*****
Offline Offline

Beiträge: 2.367


WWW
« Antworten #13 am: 02-04-2010 11:38:36 »

Hallo Erftralle,
der vorherige Fehler tritt in der neuen Version nicht mehr auf. Danke für die Änderung.
Interessanterweise funktioniert auch diese Änderung wegen des anderen Fehlers:
Code
      var scrollPos = position-diffWidth;
     try
     {
       this.carouselWrapper.elementScroller.scrollTo(scrollPos,0);
     }
     catch(e)
     {
       this.carouselWrapper.elementScroller.scrollTo(scrollPos,0);
     }
 
sm_cool

Der Code wird mehrfach durchlaufen. Einmal bei der Initialisierung des carousel.
Dann greift das catch und der gleiche Code wird fehlerfrei druchlaufen.

Danach vor dem Wechsel zu dem nächsten Bild. Dann hat der IE keine Probleme mehr mit dem Code im try.
Es scheint also an der Initialisierung zu liegen, vielleicht ein Timingproblem....

Gruß
Andreas
Gespeichert
Erftralle
Sr. Member
****
Offline Offline

Beiträge: 803


« Antworten #14 am: 02-04-2010 12:25:29 »

Hallo Andreas,

sieht zwar etwas komisch aus, aber das es funktioniert, kann ich bestätigen.

Vielleicht wird im "Hintergrund" durch den ersten Aufruf im "try" auch "etwas" initialisiert, so dass es beim zweiten Aufruf im "catch" dann nicht mehr zu einer Exception kommt.
Ein reines Timingproblem könnte im Grenzfall (anderer Rechner, andere Last) auch zu einer erneuten Exception führen.

Gruß
Erftralle
Gespeichert
Seiten: [1]
Drucken
Gehe zu:  

HOSTED BY SCHWARZKÜNSTLER ®

PROTECTED BY  ZB BLOCK  AND Project Honey Pot
Theme orange-lt created by panic

Bad Behavior has blocked 1692 access attempts in the last 7 days.

mouth