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

03-04-2020 00:57:40
JOOM::GALLERY::FORUMArchivJoomGallery 1.5 MVC - ErweiterungenModuleLetzte Kommentare
Seiten: [1]
Drucken
Autor Thema: Letzte Kommentare  (Gelesen 8044 mal)
0 Mitglieder und 1 Gast betrachten dieses Thema.
Claudia E.
Global Moderator
Hero Member
*****
Offline Offline

Beiträge: 1.842



« am: 24-01-2009 10:13:54 »

Hallo,

heute habe ich auch mal wieder eine Frage.
Ich lasse das JoomImages auf verschiedene Art in einer Content-Seite anzeigen, unter anderem auch zur Anzeige der letzten Kommentare.

Wenn ich "Pech" habe und ein Bild innerhalb einiger Minuten mehrmals kommentiert wird, taucht im Modul (betrifft die Toplisten ebenfalls) dieses eine Bild wieder und wieder auf.
Andere Bilder werden dagegen aus der Liste verdrängt, obwohl die Kommentare ebenfalls noch aktuell sind.

Meine Frage:
Lässt es sich einrichten, dass ein Bild bei neuem Kommentar einfach nach vorn rückt, ohne acht mal in der Liste zu stehen?

Ich hoffe, mein Anliegen war zu verstehen... sm_smile

PS. Die Version der JoomGallery ist momentan 1.0, aber für 1.5 interessiert es mich genauso (oder sogar mehr), da ich ja später auf jeden Fall wechseln werde.
Gespeichert

Freundliche Grüße von
Claudia
Erftralle
Sr. Member
****
Offline Offline

Beiträge: 803


« Antworten #1 am: 25-01-2009 21:18:18 »

Hallo Claudia E.,

wenn ich Dich richtig verstanden habe, möchtest Du, daß jedes Bild nur einmal von JoomImages angezeigt wird, und zwar mit dem neuesten Kommentar.
Das ist per Modulkonfiguration zur Zeit nicht möglich. Aber mit einem kleinen Hack im Code ist das sicher möglich.

Wenn Du in der mod_joomimg.php die Zeile 171 (Version 1.5 BETA für JoomGallery 1.5 BETA) bzw. Zeile 154 (Version 1.0 BETA für JoomGallery 1.0.0)

Code:
    $objects = $modObject->dbComments($modConfig['sorting'],$modConfig['limit'] );

ersetzt mit folgendem Code

Code:
    $TmpObjects = $modObject->dbComments($modConfig['sorting'], "99" );
    $aPicIdList = Array();
    $CntLimit = 0;
    $Cnt = 0;
    foreach( $TmpObjects As $Tmp ) {
      if( $CntLimit < $modConfig['limit'] ) {
        if ( in_array( $Tmp->picid, $aPicIdList ) ) {
          unset ( $TmpObjects[ $Cnt ] );
        }
        else {
          array_push( $aPicIdList, $Tmp->picid );
          $CntLimit++;
        }
      }
      else {
        unset( $TmpObjects[ $Cnt ] );
      }
      $Cnt++;
    }
    $objects = $TmpObjects;

dann werden gleiche Bilder herausgefiltert.

Etwas unschön ist das feste LIMIT 99, d.h. wenn die 99 letzten Kommentare zu dem gleichen Bild gehören, würde nur ein Bild in JoomImages erscheinen. Ohne LIMIT könnte das Array bei sehr vielen kommentierten Bildern sehr groß werden. Eleganter wäre natürlich eine Datenbankabfrage, aber die passiert ja im JoomGallery Code. Diesen Filter könnte man leicht über eine zusätzliche Option in der Modulkonfiguration schaltbar machen.

Gruß Erftralle
Gespeichert
Claudia E.
Global Moderator
Hero Member
*****
Offline Offline

Beiträge: 1.842



« Antworten #2 am: 25-01-2009 22:01:03 »

Hallo Erftralle,

was soll ich sagen?!
Genau das hab ich mir gewünscht.

(99 Kommentare auf einmal kommen bei mir nicht an, da bin ich mir sicher. sm_smile )

Hach, sieht das jetzt klasse aus! sm_smile

Danke, danke, danke!
Gespeichert

Freundliche Grüße von
Claudia
Claudia E.
Global Moderator
Hero Member
*****
Offline Offline

Beiträge: 1.842



« Antworten #3 am: 20-02-2009 20:25:06 »

Hallo Erftralle,

darf ich dich noch mal bemühen? sm_smile
Wenn ich jetzt den Code wie beschrieben ersetze, erhalte ich eine Fehlermeldung:
(JoomGallery 1.5 RC, Modul JoomImages 1.5)

Warning: Invalid argument supplied for foreach() in /srv/www/web743/html/modules/mod_joomimg/mod_joomimg.php on line 201
Es sind keine Bilder in der Galerie vorhanden, die angezeigt werden können.

Sind sie aber wohl! Grin
Vielleicht hast du auch hier wieder eine Idee.
Äh, falls nicht, geht die Welt auch nicht unter.
Dein Einsatz hier ist schon mehr als bemerkenswert. sm_smile
Gespeichert

Freundliche Grüße von
Claudia
Erftralle
Sr. Member
****
Offline Offline

Beiträge: 803


« Antworten #4 am: 20-02-2009 21:46:41 »

Hallo Claudia E.,

ich habe die Änderung mit den neuesten Versionen (JoomGallery 1.5 RC, Modul JoomImages 1.5) auch noch mal ausprobiert.
Bei mir funktioniert es  sm_yes .

Allerdings hat sich die Zeile geändert. Es ist jetzt die Zeile 159, die nun ersetzt werden muß. Vielleicht hast Du auch nicht die letzte Zeile aus dem Codefenster erwischt ( die Zuweisung $objects = $TmpObjects; ).

In diesem Zusammenhang noch ein Hinweis an die Entwickler. PHP gibt bei mir mehrere Warnungen aus:
Zitat
Undefined variable: my in /opt/lampp/htdocs/beaveteranen15/components/com_joomgallery/classes/modules.class.php

Gruß
Erftralle

Gespeichert
Chraneco
Entwickler-Team
Hero Member
*****
Offline Offline

Beiträge: 4.066



« Antworten #5 am: 20-02-2009 21:52:45 »

Hi,

vielen Dank für den Hinweis, das wird in der nächsten Version behoben sein!

Gruß
Chraneco
Gespeichert

Der Sprecher
Claudia E.
Global Moderator
Hero Member
*****
Offline Offline

Beiträge: 1.842



« Antworten #6 am: 20-02-2009 22:13:51 »

Hallo Erftralle,

Himmel, ist das peinlich...
Die richtige Zeile hatte ich gefunden - aber deine Vermutung, nicht den kompletten Code erwischt zu haben, war vollkommen richtig.
Es funktioniert also wirklich wie gewollt.

Danke!!! sm_smile
Gespeichert

Freundliche Grüße von
Claudia
Erftralle
Sr. Member
****
Offline Offline

Beiträge: 803


« Antworten #7 am: 20-02-2009 22:26:28 »

Hallo Claudia E.,

wieso peinlich, da bin ich nur drauf gekommen, weil es mir eben auch passiert ist  sm_laugh .

Gruß
Erftralle
Gespeichert
Claudia E.
Global Moderator
Hero Member
*****
Offline Offline

Beiträge: 1.842



« Antworten #8 am: 21-02-2009 14:51:29 »

Ok, das gefällt mir natürlich. Grin
Gespeichert

Freundliche Grüße von
Claudia
DJMightyMike
Newbie
*
Offline Offline

Beiträge: 20


« Antworten #9 am: 12-03-2009 00:44:06 »

Hallo,

also die Codeanpassung für das Modul ist super und funktioniert einwandfrei!!!

Nur hätte ich den gleichen Effekt gerne für die Top 20 der zuletzt kommentierten Bilder. Schaut halt blöd aus wenn die ganze Seite mit 20x dem gleichen Bild dargestellt wird.

Wie, wo und was müßte ich denn ändern um den Effekt auch dort zu erhalten?

Danke und Gruß

Mike
Gespeichert
Erftralle
Sr. Member
****
Offline Offline

Beiträge: 803


« Antworten #10 am: 12-03-2009 14:49:33 »

Hallo DJMightyMike,

versuchs mal mit folgenden Änderungen in joom.viewspecial.php. Ich gehe mal davon aus, daß Du Joomla 1.5.9 und JoomGallery 1.5 RC2 verwendest. Bitte vorher Backup nicht vergessen.

Die Änderungen sind mit - start bzw. - end gekennzeichnet.

Erstens die Datenbankabfrage ...
Code
  case 'lastcomment':
   // Changed query 20090312 - start
   // $query1="SELECT a.*,cc.*, ca.*,u.username, a.owner AS owner
   //    FROM #__joomgallery AS a, #__joomgallery_catg AS ca, #__joomgallery_comments AS cc
   //    LEFT JOIN #__users AS u on cc.userid = u.id
   //    WHERE a.id=cc.cmtpic AND a.catid=ca.cid AND a.published = '1' " . " AND a.approved='1' " . " AND cc.published = '1' " . " AND ca.published = '1' " . " AND cc.approved='1' " . " AND ca.access<=".$user->get('aid'). "\n
   //    ORDER BY cc.cmtdate DESC LIMIT ".$config->jg_toplist;
   $query1="SELECT a.*,cc.*, ca.*,u.username, a.owner AS owner
       FROM #__joomgallery AS a, #__joomgallery_catg AS ca, #__joomgallery_comments AS cc
       LEFT JOIN #__users AS u on cc.userid = u.id
       WHERE a.id=cc.cmtpic AND a.catid=ca.cid AND a.published = '1' "
. " AND a.approved='1' " . " AND cc.published = '1' " . " AND ca.published = '1' " . " AND cc.approved='1' " . " AND ca.access<=".$user->get('aid'). "\n
       ORDER BY cc.cmtdate DESC LIMIT 99 "
;
   // Changed query 20090312 - end
   $tl_title = JText::_('JGS_TOP').' '.$config->jg_toplist.' '.JText::_('JGS_LAST_COMMENTED_PICTURE');
   break;
 
und dann weiter unten die Filterung der doppelten Bilder ...
Code
# Database Query
$database->setQuery( $query1 );
$rows=$database->loadObjectList();
 
// added 20090312 - start
if( $sorting == 'lastcomment' ) {
 $TmpRows = $rows;
 $aPicIdList = Array();
 $CntLimit = 0;
 $Cnt = 0;
 foreach( $TmpRows As $Tmp ) {
   if( $CntLimit < $config->jg_toplist ) {
     if ( in_array( $Tmp->id, $aPicIdList ) ) {
       unset ( $TmpRows[ $Cnt ] );
     }
     else {
       array_push( $aPicIdList, $Tmp->id );
       $CntLimit++;
     }
   }
   else {
     unset( $TmpRows[ $Cnt ] );
   }
   $Cnt++;
 }
 $Cnt = 0;
 unset( $rows );
 foreach( $TmpRows As $Tmp ) {
   $rows[ $Cnt ] = $Tmp;
   $Cnt++;
 }
}
// added 20090312 - end
 
HTML_Joom_Specials::Joom_ShowSpecials_HTML( $tl_title, $rows);
 

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 1908 access attempts in the last 7 days.