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.108 Beiträge in 6.473 Themen- von 6.478 Mitglieder - Neuestes Mitglied: Frideborg

17-10-2019 15:51:46
JOOM::GALLERY::FORUMArchivPonyGallery MLFrontendGelöste Themen: FrontendToplist: Meiste Kommentare
Seiten: [1]
Drucken
Autor Thema: Toplist: Meiste Kommentare  (Gelesen 3852 mal)
0 Mitglieder und 1 Gast betrachten dieses Thema.
Claudia E.
Global Moderator
Hero Member
*****
Offline Offline

Beiträge: 1.842



« am: 09-10-2008 23:59:48 »

Wie der Titel schon sagt - gibt es eine Möglichkeit, die am meisten kommentierten Bilder per Link in einem Menu anzeigen zu lassen?

Ich hab das bisher per Modul gelöst, auf Grund von Template-Änderungen hätte ich gern einen Link.
Genauer gesagt möchte ich gern ein neues Menu erstellen mit den Links:
- Zuletzt kommentiert
- Meist kommentiert
- Hoch bewertet
- Meist gesehen

Links, die sich aus den Toplisten übernehmen lassen, sind selbst für mich zu bewältigen. sm_smilewinkgrin
Nur eben dieses "Meist kommentiert"...
Gespeichert

Freundliche Grüße von
Claudia
aHa
Entwickler-Team
Hero Member
*****
Offline Offline

Beiträge: 2.367


WWW
« Antworten #1 am: 10-10-2008 10:33:53 »

Hi Claudia,
ok, den Link für z.B. die Anzeige der letzten Kommentare kennst Du schon:

Code:
http://meineseite/index.php?option=com_ponygallery&Itemid=27&func=special&sorting=lastcomment

Für die Itemid habe ich mal 27 angenommen.

Im folgenden ein kleiner Hack um diesen Link zu ermöglichen:
Code:
http://meineseite/index.php?option=com_ponygallery&Itemid=27&func=special&sorting=mostcomment

In der Datei sub_viewspecial.php werden entsprechend der Parameter lastcomment/lastadd/rating die DB-Abfragen aufgebaut.
Zwischen den Abfragen 'rating' für die am besten bewerteten Bilder und der default-Abfrage (die meist gesehenen Bilder) wird neuer Code eingefügt.

Code
  case 'rating':
   $query1="SELECT *, ROUND(imgvotesum/imgvotes, 2) AS rating
       FROM #__ponygallery AS a, #__ponygallery_catg AS ca
       WHERE a.catid=ca.cid AND a.imgvotes > '0' AND a.published = '1' "
. " AND a.approved='1' " . " AND ca.published = '1' " . " AND ca.access<=$gid " . "\n
       ORDER BY rating DESC,imgvotesum DESC LIMIT $ag_toplist"
;
   $tl_title=_PONYGALLERY_TOP." $ag_toplist "._PONYGALLERY_BEST_RATED_PIC;
   break;
 
 //NEU
 case 'mostcomment':
 $query1="SELECT *, count(co.cmtid) AS cmtcount
      FROM #__ponygallery as a
      INNER JOIN #__ponygallery_catg as ca ON ca.cid=a.catid
      INNER JOIN #__ponygallery_comments as co ON co.cmtpic=a.id
      WHERE ca.published='1' AND ca.access<=$gid
      AND a.published='1' AND a.approved='1'
      AND co.published='1' AND co.approved='1'
      GROUP BY co.cmtpic
      ORDER BY cmtcount DESC
      LIMIT $ag_toplist"
;
 $tl_title=_PONYGALLERY_TOP." $ag_toplist am meisten kommentiert";            
 break;    
 //NEU Ende
 
 default:
   $query1="SELECT *
       FROM #__ponygallery AS a, #__ponygallery_catg AS ca
       WHERE a.imgcounter > 0 AND a.catid=ca.cid AND a.published = '1' "
. "\n AND a.approved='1' " . " AND ca.published = '1' " . " AND ca.access<=$gid". "\n
       ORDER BY imgcounter DESC LIMIT $ag_toplist"
;
   $tl_title=_PONYGALLERY_TOP." $ag_toplist "._PONYGALLERY_MOST_VIEWED_PIC;
   break;
 

Jetzt müsste der neue Link schon funktionieren.

Noch ein wenig Feintuning, um unnötige DB-Abfragen zu vermeiden.
In der Datei sub_viewspecial.html.php findest Du ab der Zeile 122 diese DB-Abfrage, welche für jedes Bild die Anzahl der Kommentare ermittelt.

Code
# Check how many comments exist
$database->setQuery( "SELECT *
 FROM #__ponygallery_comments
 WHERE cmtpic='$row1->id' AND approved = '1' and published = '1' "
);
 $comments_result=$database->query();
 $comments=mysql_num_rows( $comments_result );
 

Da diese Zahl schon vorliegt, können wir diese Abfrage für den neuen Parameter 'mostcomment' umgehen:
Code
if ($sorting!='mostcomment'){
 # Check how many comments exist
 $database->setQuery( "SELECT *
     FROM #__ponygallery_comments
     WHERE cmtpic='$row1->id' AND approved = '1' and published = '1' "
);
 $comments_result=$database->query();
 $comments=mysql_num_rows( $comments_result );              
}else{
 $comments=$row1->cmtcount;
}
 

Viel Erfolg
Gruß
Andreas
« Letzte Änderung: 10-10-2008 10:36:24 von aHa » Gespeichert
Claudia E.
Global Moderator
Hero Member
*****
Offline Offline

Beiträge: 1.842



« Antworten #2 am: 10-10-2008 12:12:15 »

Hach, ich hab so gehofft, dass du mich "rettest". sm_smilewinkgrin
Klappt perfekt - danke!
Gespeichert

Freundliche Grüße von
Claudia
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 5705 access attempts in the last 7 days.