imagemouth
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

31-03-2020 09:54:56
JOOM::GALLERY::FORUMArchivJoomGallery 1.5 MVCJoomGallery MVC ALPHA/BETAModul JoomImages 1.5.5 BETA3 - Vorschlag
Seiten: [1]
Drucken
Autor Thema: Modul JoomImages 1.5.5 BETA3 - Vorschlag  (Gelesen 4770 mal)
0 Mitglieder und 1 Gast betrachten dieses Thema.
aHa
Entwickler-Team
Hero Member
*****
Offline Offline

Beiträge: 2.367


WWW
« am: 07-04-2010 19:46:55 »

Hallo,
für die kommende Version des Moduls JoomImages 1.5.5 BETA
wurden zwei Optionen ergänzt, die schon mehrfach gewünscht wurden.
Wir möchten Euch diese vorstellen und um einen Test bitten.

- Unterhalb von 'Kategorien' eine neue Option: 'Mit Unterkategorien'
Damit können die Unterkategorien der in 'Kategorien' angegebenen Kategorienids ebenfalls durchsucht werden

- Unterhalb von 'Anzahl Spalten' in der Standardansicht zwei neue Optionen: 'Pagination' und 'Bilder in Pagination'
Damit können die insgesamt ausgewählten Bilder in einer Seitendarstellung ausgegeben werden. Die Navigation wird unten angezeigt.

Das Modul in dieser Version funktioniert derzeit nur in der JoomGallery 1.5.5 BETA2.
Bitte testet es also nicht auf einer produktiven Seite.


Vielen Dank vorab für die Rückmeldungen und Verbesserungsvorschläge.
Gruß
Andreas

aktuelles Build: 10.4.2010
« Letzte Änderung: 26-04-2010 18:03:54 von aHa » Gespeichert
Erftralle
Sr. Member
****
Offline Offline

Beiträge: 803


« Antworten #1 am: 08-04-2010 15:31:15 »

Hallo Andreas,
die zusätzlichen Features, insbesondere die Option 'Mit Unterkategorien', halte ich für sehr sinnvoll sm_yes .
Vielen Dank dafür.
Die Optionen 'Mit Unterkategorien' und die Pagination haben in meinen Tests, abgesehen von Feinheiten, einwandfrei funktioniert.

Beim Spielen mit dem Modul sind mir noch folgende Kleinigkeiten aufgefallen:

1. Die Parameter 'Maximale Textlänge' und 'Zeilenumbruch Text' für die Bildbeschreibung sind nicht wirksam.
Ich habe mal die Zeilen 82-87 der mod_joomimg/tmpl/default.php
Code
  // Make wordwrap for imgdescription
 if($joomimgObj->getConfig('strdeswrap') && $joomimgObj->getConfig('strdeswrap')>0
   && isset($img->imgtext) && strlen($img->imgtext)>0)
 {
   $obj->imgtext = wordwrap($obj->imgtext, $joomimgObj->getConfig('strdeswrap'), '<br />' ,1);
 }
 
in
Code
  // Make wordwrap for imgdescription
 if($joomimgObj->getConfig('strdeswrap') && $joomimgObj->getConfig('strdeswrap')>0
   && isset($obj->imgtext) && strlen($obj->imgtext)>0)
 {
   $obj->imgtext = wordwrap($obj->imgtext, $joomimgObj->getConfig('strdeswrap'), '<br />' ,1);
 }
geändert. Das Kappen auf die maximale Textlänge müsste man aber immer noch einbauen.

2. Die Zeilen 579ff in mod_joomimg/helper.php könnte man doch folgendermaßen abändern, da JoomHelper ja schon über das Interface eingebunden wird und eine statische Klasse ist:
Code
    $subcats = array();
   // Iterate through array and call getAllSubCategories
   // in helper class of JoomGallery
   foreach ($cats as $cat)
   {
     if (!in_array($cat, $subcats))
     {
       $subcats = array_merge($subcats, JoomHelper::getAllSubCategories($cat));
     }
   }
 

3. Bei der Wahl von Zufallsbildern und Pagination erscheinen die gleichen Bilder auf unterschiedlichen Seiten.
Du magst zwar sagen, dass die Wahl dieser beiden Optionen zusammen keinen Sinn macht. Da müsste ich dir vielleicht sogar Recht geben sm_wink .
Bei mir hat es trotzdem eine Weile gedauert, bis mir ein Licht aufging.

4. Noch eine kleine Feinheit ist mir aufgefallen. Ist der Wert für 'Bilder in Pagination' kein ganzzahliges Vielfaches von 'Anzahl Bilder' werden insgesamt über alle Seiten gerechnet mehr Bilder angezeigt, als in 'Anzahl Bilder' vorgegeben wurde (vorausgesetzt, es sind auch genügend Bilder in der Datenbank).

5. Um FirePHP zum Debuggen anwenden zu können, müsste noch der Quellcode für die FirePHP Klasse eingebunden werden.

6. Noch eine Feinheit. Es wäre meines Erachtens schöner, wenn die Pagination nicht angezeigt werden würde, wenn es nur eine Seite gibt.

7. Bei der Anzeige von Bildern mit Kommentaren wird trotz der Einstellungen
Maximale Kommentarlänge = 0
Zeilenumbruch Kommentar = 0
Link zu Kommentar = Nein

ein 'Weiterlesen' - Link angezeigt. Könnte es sein, dass in der Funktion showText($obj) in mod_joomimg/helper.php bei
Code
          if ($this->getConfig('showcmtmore') == 1
             && $this->getConfig('strcmtcount') > 0
             && $this->getJConfig('jg_detailpic_open')==0 &&
             ($this->getJConfig('jg_showdetailpage')==0 && $user->get('aid')!=0 )
             || $this->getJConfig('jg_showdetailpage')==1 )
 
noch ein zusätzliches Klammernpaar fehlt, also
Code
          if ($this->getConfig('showcmtmore') == 1
             && $this->getConfig('strcmtcount') > 0
             && $this->getJConfig('jg_detailpic_open')==0 &&
             (($this->getJConfig('jg_showdetailpage')==0 && $user->get('aid')!=0 )
             || $this->getJConfig('jg_showdetailpage')==1 ))
 
korrekt wäre?

7. Eine superkleine Feinheit. Die Tooltips für die Parameter 'Zeilenumbruch Kommentar', 'Zeilenumbruch Text' und 'Zeilenumbruch Kommentar' sind ein klein wenig irreführend, da 'wordwrap' nach der angegebenen Anzahl Zeichen einen Umbruch generiert, nicht nach der Anzahl der Worte.

Fazit:
Das Modul ist schon eine supertolle Sache.
Ich persönlich würde es noch ein klein wenig toller finden, wenn die Pagination ohne Neuladen des gesamtem Dokuments möglich wäre sm_smilewinkgrin .

Gruß
Erftralle
« Letzte Änderung: 08-04-2010 17:28:24 von Erftralle » Gespeichert
aHa
Entwickler-Team
Hero Member
*****
Offline Offline

Beiträge: 2.367


WWW
« Antworten #2 am: 09-04-2010 10:19:38 »

Hallo Erftralle,
vielen Dank, dass Du Dir Zeit für einen ausführlichen Test genommen hast.
Eine neue Version befindet sich im ersten Post.

1.) Das sollte korrigiert sein. Weil durch den wordwrap auch HTML Code betroffen ist, habe ich dort ein 'strip_tags' berücksichtigt

2.) Ich habe es versucht, erhalte dann aber immer eine Meldung, dass JoomHelper nicht bekannt ist. Merkwürdigerweise kann dort aber das require_once entfallen. Es sollte jetzt so geändert sein.

3.) Ich stimme Dir zu. Random führt hier zu einem verwirrenden Ergebnis. Ich wäre aber auch verwirrt, wenn diese Sortierung für die Pagination automatisch ausgeschlossen wäre.

4.) sollte jetzt gefixt sein

5.) Als dieser Debug-Code eingeführt wurde, habe ich FirePHP mit einem SystemPlugin für Joomla! genutzt. Dies besorgte den include der Klasse automatisch. Mittlerweile ist es aus den extensions von Joomla! verschwunden, ich weiss nicht warum.... Kurzerhand hab ich die Debug-Anweisungen komplett entfernt, weil ich z.B. nur noch mit XDebug innerhalb von Eclipse arbeite. Die fehlende Möglichkeit, mit firePHP auf einem 'entferntem' Server zu arbeiten, nehme ich in Kauf.

6.) sollte jetzt gefixt sein

7(1).) Danke für den Hinweis, ich habe die Änderung übernommen. Zusätzlich habe ich die Parameter 'Zeilenlänge/wordwrap/link' für die Kommentartexte der Funktion decodetext() übergeben. Diese wurde ja auch damals für die besondere Behandlung der Kommentarinhalte mit ggf. Smilies und BBCode aufgebaut.

7(2).) Stimmt, es geht nur um Zeichen. Ich hoffe, es ist alles entsprechend geändert.

Zitat
Ich persönlich würde es noch ein klein wenig toller finden, wenn die Pagination ohne Neuladen des gesamtem Dokuments möglich wäre sm_smilewinkgrin .

Ich auch sm_smile. Unschön ist neben dem nötigen neuen Seitenaufbau, dass bei aktiver Pagination ein Browserrefresh zu der lästigen Frage führt, ob das Formular noch einmal abgeschickt werden soll... Ein wichtiger allgemeiner Sicherheitsaspekt des Browsers, aber hier verwirrend.
Ich habe aber noch keine Alternative zu einer POST-Variablen gefunden. Ein GET (auch im Zusammenhang mit der JPAgination) habe ich sofort verworfen, weil es Effekte auf eine bestehende andere Pagination haben könnte.

Einen AJAX-Request ähnlich wie bei dem JoomSearch durchzuführen, wäre eine Möglichkeit. Im Gegensatz dazu wird aber nicht eine spezielle relativ kleine Ergebnisseite zurückgeliefert, sondern der komplette HTML-Code.
Ich habe noch keinen Weg gefunden, eine schlanke Ausgabe wie z.B. bei 'format=raw' zu erhalten.
Alternativ könnte man einen Aufruf generieren, der nur die relevanten Inhalte zurückgibt. Das ginge sehr gut bei einer Komponente, aber leider nicht bei einem Modul.
Ich kann es ja nicht direkt ansprechen und muss den Umweg über die ganze Seite gehen.

Auf ein Script außerhalb des Frameworks würde ich gern aus Sicherheitsgründen verzichten.
Ok, es gibt im Modul schon eines (resize.php). Aber das wird bald geändert...

Ich werde Tests mit AJAX-Aufrufen durchführen. Vielleicht ist es einfacher, als ich es mir vorstelle.

Danke nochmals.
Gruß
Andreas
« Letzte Änderung: 09-04-2010 18:20:44 von aHa » Gespeichert
Erftralle
Sr. Member
****
Offline Offline

Beiträge: 803


« Antworten #3 am: 10-04-2010 09:59:26 »

Hallo Andreas,

vielen Dank für die neue Version. Sie funktioniert jetzt meines Erachtens (fast) einwandfrei  sm_yes .

Eine kleine Sache ist hinzugekommen, die jedoch in der vorhergehenden Version schon funktioniert hat.
Der Parameter 'Zeilenumbruch Kommentar' scheint bei mir jetzt nicht mehr wirksam zu sein. Ich meine auch gesehen zu haben, dass du entsprechenden Quellcode für den Zeilenumbruch aus der default.php entfernt hast.

Noch mal zur Pagination:
Grundsätzlich könnte man sich doch auch eine Pagination mit Hilfe von Javascript vorstellen. Die Slideshow macht ja im Prinzip auch nichts anderes.
In einem einfachen Ansatz könnte man die CSS Klassen bestimmter Container durchnummerieren und dann je nach anzuzeigender Seite ein- und ausblenden (vielleicht sogar mit Effekten).
Der Ansatz mit Javascript hat zwar den Nachteil, dass es ohne Aktivierung desselben nicht funktioniert und schon von Beginn an alle Bilder (Parameter 'Anzahl der Bilder') geladen werden müssen, was ja unter Umständen sehr lange dauern könnte.
Aber dies ist von mir erst sehr unrein angedacht. Ich bin in Sachen Webentwicklung auch noch eher unerfahren und muss bei manchen Ansätzen, die ich selbst verfolge, hinterher feststellen, dass ich entscheidende Dinge nicht bedacht bzw. gewusst habe. Aber so ist das halt mit dem Lernen.

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

Beiträge: 2.367


WWW
« Antworten #4 am: 10-04-2010 13:20:51 »

Hallo Erftralle,
stimmt, die Kommentarkürzung und der -umbruch wurden der Funktion decodetext() übergeben. Bedauerlich, dass der Umbruch dort nicht durchgeführt wurde....
Komischerweise fällt mir da der Begriff 'Regressionstest' ein, nur nebenbei... sm_wink
Ich habe ihn dort jetzt eingefügt. Sicher geht er noch ein wenig unintelligent vor, weil die Gefahr besteht, dass BBCode oder Smilies durchbrochen werden könnten.

Nebenbei legt das Modul trotz ausgeschalter Option in Joomla! einen Cache an. Mir ist unklar, warum dies geschieht. Bei dem Modul 'JoomCategories' übrigens nicht.
Auf der Suche nach einer Erklärung habe ich diesen Artikel gefunden und deshalb den Parameter im Modul eingefügt.
Es scheint bei eingeschaltetem Joomla! Cache tatsächlich etwas zu bringen, weil manche DB-Abfragen nicht mehr wiederholt aufgerufen werden.

Zu der Pagination:
Ich habe gestern versucht, dies per AJAX/mootools zu lösen. Es funktionierte mit dem Effekt, dass auf die Anfrage der HTML-Code der kompletten Seite zurückgegeben wurde.
Vor dem Einfügen in dem richtigen DIV wäre also ein aufwändiges Parsen der Rückgabe notwendig. Abgesehen von diesem Aufwand bleibt ein Grundproblem. Die Stärke von AJAX
soll ja sein, dass bestimmte Inhalte gezielt angefragt,zurückgegeben und aktualisiert werden und damit der Traffic (theoretisch) gemindert wird. Dies ist hier nie der Fall.
Es wird immer der Code der kompletten Seite geliefert, obwohl nur ein Bruchteil benötigt wird. Das scheint mir eine Sackgasse zu sein....

Wir haben intern überlegt, ob man nicht den Umweg über den speziellen Aufruf einer bestimmten 'modulejoomimgraw' View der JoomGallery realisieren könnte.
Der Vorteil wäre auf jeden Fall, dass man gezielt eine URL aufruft und einen definierten HTML-Code zurückerhält.
Bedingung: Alle Funktionen, die sich jetzt noch in der helper und teilweise der default befinden, müssten im Interface untergebracht werden.
Damit würde sehr spezifischer JoomImg-Code dorthin wandern. Man denke nur an die zwei (mich extrem störenden) DB-Abfragen, abhängig davon, ob Kommentare betroffen sind.
Es wäre zu überlegen, ob dies im Sinne eines allgemein arbeitenden Interfaces sein soll.

Ein weiteres Beispiel wäre der Aufruf des 'resize.php' in der default.php, um Bilder dynamisch zu croppen. Aus der 'view' der JoomGallery müsste dann ein Script innerhalb des Moduls aufgerufen werden....
Es wäre ein wenig intransparent, wenn nicht sogar falsch, sich 'querbeet' in Joomla! Funktionalität aus anderen Erweiterungen zu besorgen....

Zu Deinem Vorschlag, der mir recht gut gefällt:
Javascript wäre immer notwendig, soweit eine Dynamisierung im Spiel ist. Ich vermute, dass bei der AJAX/mootools-Lösung ein 'non-obtrusiver' Ansatz möglich ist, indem mit ausgeschaltetem Javascript das normale Abschicken des Formulars ermöglicht wird. Aber sicher bin ich mir nicht.

Die Slideshow geht recht einfach vor, sie behandelt nur 'img' Tags. Zum Start werden ihr per Javascript alle Bilder in einem Array übergeben.
Sie lädt dann daraus die beiden ersten Bilder in zwei 'img' Tags, das zweite bleibt dabei immer unsichtbar. Nach Ablauf der Wartezeit erfolgt ein Wechsel des zweiten Bildes
in das erste 'img' Tag und das dritte Bild wird im zweiten 'img' aufgebaut usw.
So ähnlich geht auch die Slideshow der JoomGallery vor.

Diesen Ansatz könnte man grundsätzlich für ein paginiertes Modul verwenden.
Auf jeden Fall wäre ein neues Template nötig. Die 'default.php' umzuschreiben, halte ich für falsch.
Sie würde sehr unübersichtlich werden, wenn sie es ohnehin nicht schon ist.....

So würde eine Änderung im CSS eigentlich entfallen, die Container sind ja schon bekannt.
Die Nummerierung dieser ergibt sich dann aus der Abfrage durch die '$$' mootools Funktion, die ein Array zurückgibt.

Ja, die DB-Abfragen müssten geändert werden, um alle Bilder zurückzugeben. Ich sehe hier nicht zwingend eine Mehrbelastung im Vergleich zu dem Modul ohne Pagination.
Spätestens wenn auch versucht wird, z.B. 500 Bilder paginiert á 5 Bilder darzustellen, treten schon gewisse Probleme in der Darstellung der Paginationsleiste auf....

Ok, ich versuche es mal.

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

Beiträge: 803


« Antworten #5 am: 10-04-2010 20:30:27 »

Hallo Andreas,

vielen Dank für die neue Version.

Der Zeilenumbruch der Kommentare funktioniert jetzt - und alles andere scheinbar auch noch (Stichwort Regressionstest sm_wink ).

Den Cache Parameter habe ich gleich mal ausprobiert. Hier scheint es aber Probleme zu geben.
Mit aktiviertem Cache in den Global Settings von Joomla und im Modul (System Plugin Cache aber deaktiviert) werden z.B. alle CSS Deklarationen, die vom Modul über 'addStyleDeclaration' dem Dokument dynamisch hinzugefügt werden, beim Abruf der Seite aus dem Cache nicht hinzugefügt.
Dem Modul fehlen dann die CSS Deklarationen, dementsprechend sieht es dann auch aus.
Dies konnte ich in meiner Testinstallation eindeutig nachvollziehen. Erst, wenn die Cache Zeit abgelaufen war oder der Cache manuell gelöscht wurde, hat sich das Modul wieder ordentlich gestylt präsentiert.

Hier kannst du genaueres zu diesem Bug? oder Feature? nachlesen.
Auch dieser Artikel hat mich dem Joomla Caching etwas näher gebracht.

Freut mich sm_smile, das du versuchen willst, die Pagination per Javascript zu realisieren.
Ich freue mich jetzt schon auf die Ergebnisse.

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

Beiträge: 2.367


WWW
« Antworten #6 am: 13-04-2010 18:49:02 »

Hallo Erftralle,
danke für die Links. Von dem Bug wegen des Caching wusste ich noch nicht. Er scheint auch noch in der Diskussion zu sein.
Ich belasse die Einstellung aber im Modul, weil ich dort von einer Lösung auch in Joomla! 1.5 ausgehe. Möglicherweise
werde ich dann, falls noch nicht behoben, den Parameter um ein 'experimentell' erweitern.

Für die JS-Pagination habe ich leider noch keine brauchbare Lösung gefunden, sorry.

Gruß
Andreas
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 1679 access attempts in the last 7 days.