Funktion: Zählen der Tophits (am meisten angesehen) umschreiben ? Funktion: Zählen der Tophits (am meisten angesehen) umschreiben ?
 

News:

CPG Release 1.6.26
Correct PHP8.2 issues with user and language managers.
Additional fixes for PHP 8.2
Correct PHP8 error with SMF 2.0 bridge.
Correct IPTC supplimental category parsing.
Download and info HERE

Main Menu

Funktion: Zählen der Tophits (am meisten angesehen) umschreiben ?

Started by M4rkus, January 06, 2010, 04:35:05 PM

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

M4rkus

Hallo,

habe eine Frage zur Programmierung.
Ich zeige in der obersten Spalte meines CFG die TopHits (am meisten angesehen) an: https://www.naturfoto-galerie.net
Gibt es eine Möglichkeit das zählen der TopHits nur auf Bilder der z.b letzten 3 Tage zu beschränken ?
Ich möchte damit erreichen, das z.b nach 3 Tagen auf jeden Fall neue TopHits angezeigt werden.
Was muss man dafür wo ändern ?

Vielen Dank für eure Hilfe.
Best all, Markus

Αndré

Was genau soll angezeigt werden? Die am meisten angesehenen Bilder der letzten 3 Tage? Oder die am meisten angesehen Bilder von Bildern, die in den letzten 3 Tage hochgeladen wurden? Oder noch was anderes? 8)

M4rkus

Hi Andre,

ich würde einfach mal sagen die am meisten angesehenen Bilder der letzten 3 Tage.
Best all, Markus

Αndré

Du musst doch wissen, was du möchtest :P

Für dein Vorhaben würde ich ein neues Meta-Album anlegen, welches auf die Tabelle hit_stats zugreift und dieses dann auf deiner Startseite einbinden.

M4rkus

Danke für Deine Antwort Andre.
Das reicht mir leider nicht, da ich das programmtechnisch nicht umsetzen kann  :-\
Bräuchte da mehr Hilfe !
Best all, Markus

Αndré

Ich kann dir heute keine Lösung präsentieren, da mein Kopf schon Feierabend gemacht hat ;) Evtl. kann ich dir morgen helfen.

Sollen bei dem neuen Meta-Album die Ergebnisse nach Kategorie gefiltert werden? So ist es derzeit bei tophits. Wenn ja, was soll angezeigt werden, wenn in der entsprechenden Kategorie kein/zu wenig Bilder angesehen wurden? Sollen dann auch keine/zu wenig (<4) Bilder angezeigt werden, oder soll dann nach anderen Kriterien aufgefüllt werden?

M4rkus

Hallo Andre,

wäre toll wenn Du mir "eventuell" Morgen weitzerhelfen könntest *zwincker*
Ich weiss  wie das ist wenn man nach Feierabend, bzw. am späten Abend noch denken soll :)

Und ja, bitte wie bei den TopHits nach Kategorien filtern.
Falls zu wenig angezeigt wird nach den meisten Kommentaren firltern wenn das möglich ist ?

Wünsche noch einen schönen Abend !
Best all, Markus

Joachim Müller

Hört sich nach einem gewaltigen Ressourcen-Dieb an. Würde ich überdenken.

M4rkus

Hallo Joachim,

hast Du einen alternativen Vorschlag wie man es umsetzten könnte ?
Ich will im Endeffekt nur erreichen, dass nach einem gewissen Zeitraum andere TopHits angezeigt werden.
Ansonsten würden immer dieselben zu sehen sein.
Denn irgendwann wird es keine Bilder mehr geben die an die TopHits der besten dran kommen.
Hoffe Du verstehst was ich meine ?
Best all, Markus

Αndré

Du könntest die meist angesehen Bilder der letzten z.B. 1000 Uploads oder der in den letzten 4 Wochen hochgeladenen Dateien anzeigen. Je nachdem wie oft bei dir neue Bilder kommen, würde ich eine der beiden Varianten benutzen.

M4rkus

Best all, Markus

Αndré

Du definierst genau, was du anzeigen möchtest und ich erstell dir dann den Code.

M4rkus

Quote from: Αndré on January 07, 2010, 08:53:26 PM
Du definierst genau, was du anzeigen möchtest und ich erstell dir dann den Code.

Guten Morgen Andre,

ich habe mir mal die Uploads durchgesehen.
Dann bitte die meist angesehenen Bildern der in den letzten 7 Tagen hochgeladenen Dateien.
Das sollte in allen Fällen passen.
Best all, Markus

Αndré

Suche in include/functions.inc.php
        case 'topn': // Most viewed pictures
                if ($META_ALBUM_SET && $CURRENT_CAT_NAME) {
                        $album_name = $lang_meta_album_names['topn'].' - '. $CURRENT_CAT_NAME;
                } else {
                        $album_name = $lang_meta_album_names['topn'];
                }

                $query ="SELECT COUNT(*) from {$CONFIG['TABLE_PICTURES']} WHERE approved = 'YES' AND hits > 0  $META_ALBUM_SET $keyword";

                $result = cpg_db_query($query);
                $nbEnr = mysql_fetch_array($result);
                $count = $nbEnr[0];
                mysql_free_result($result);

                //if($select_columns != '*') $select_columns .= ', hits, aid, filename, owner_id, owner_name';
                $select_columns = '*'; //allows building any data into any thumbnail caption

                $query = "SELECT $select_columns FROM {$CONFIG['TABLE_PICTURES']} WHERE approved = 'YES'AND hits > 0 $META_ALBUM_SET $keyword ORDER BY hits DESC, filename  $limit";
                $result = cpg_db_query($query);

                $rowset = cpg_db_fetch_rowset($result);
                mysql_free_result($result);

                if ($set_caption) build_caption($rowset,array('hits'));

                $rowset = CPGPluginAPI::filter('thumb_caption_topn',$rowset);

                return $rowset;
                break;

und ersetze es durch
        case 'topn': // Most viewed pictures
                if ($META_ALBUM_SET && $CURRENT_CAT_NAME) {
                        $album_name = $lang_meta_album_names['topn'].' - '. $CURRENT_CAT_NAME;
                } else {
                        $album_name = $lang_meta_album_names['topn'];
                }

                $timeframe = time() - 604800;

                $query ="SELECT COUNT(*) from {$CONFIG['TABLE_PICTURES']} WHERE approved = 'YES' AND hits > 0 AND ctime > $timeframe $META_ALBUM_SET $keyword";

                $result = cpg_db_query($query);
                $nbEnr = mysql_fetch_array($result);
                $count = $nbEnr[0];
                mysql_free_result($result);

                //if($select_columns != '*') $select_columns .= ', hits, aid, filename, owner_id, owner_name';
                $select_columns = '*'; //allows building any data into any thumbnail caption

                $query = "SELECT $select_columns FROM {$CONFIG['TABLE_PICTURES']} WHERE approved = 'YES'AND hits > 0 AND ctime > $timeframe $META_ALBUM_SET $keyword ORDER BY hits DESC, filename  $limit";
                $result = cpg_db_query($query);

                $rowset = cpg_db_fetch_rowset($result);
                mysql_free_result($result);

                if ($set_caption) build_caption($rowset,array('hits'));

                $rowset = CPGPluginAPI::filter('thumb_caption_topn',$rowset);

                return $rowset;
                break;

M4rkus

Hallo Andre,

vielen herzlichen Dank für Deine Hilfe.
Es hat wunderbar funktioniert !
Habe den Wert abgeändert auf 345600 für 4 Tage.
Zusätzlich habe ich noch was über Coppermine und seine Funktionen gelernt.

Mal ein großes Lob an die Supporter hier, denn ich denke das hier geht absolut über das normale Maß hinaus !!!

Beste Grüße  ;)
Best all, Markus