Letzte besuchte Seiten und haeufigste besuchte Seiten

Halchteranerin
Beiträge: 5478
Registriert: Di 2. Mär 2004, 21:11
Wohnort: Halchter, wo sonst? ;-)
Kontaktdaten:

Letzte besuchte Seiten und haeufigste besuchte Seiten

Beitrag von Halchteranerin » Di 29. Jun 2004, 10:58

Noch zwei kleine Module: die letzten besuchten Seiten (Artikel) und die haeufigsten besuchten Seiten samt Anzahl der Aufrufe. Die Anzahl der Artikel ist in der Konfiguration einstellbar.

Bei mir funktionieren sie, allerdings habe ich im errorlog Eintraege mit Invalid SQL gefunden, die ich noch nicht nachvollziehen konnte. Ich werd's im Auge behalten, bzw. vielleicht faellt jemandem auch so etwas auf.

Input fuer beide Module:

Code: Alles auswählen

/*********************************************** 
* CONTENIDO MODUL - INPUT 
* 
* Modulname   :     Übersicht häufigste/zuletzt besuchte Seiten
* Author          :     Christa Tabara 
* Copyright     :      Christa Tabara 
* Created        :     25-06-2004 
* Modified       :      12-07-2004 
************************************************/ 

echo "<table cellspacing=\"0\" cellpadding=\"10\" border=\"0\">
        <tr>
           <td>Wieviele Artikel sollen aufgelistet werden?</td>
           <td><input type=\"text\" name=\"CMS_VAR[0]\" value=\"CMS_VALUE[0]\"></td>
           </tr></table>";
Output fuer haeufigste besuchte Seiten:

Code: Alles auswählen

<?php
/*********************************************** 
* CONTENIDO MODUL - OUTPUT 
* 
* Modulname   :     Übersicht häufigste besuchte Seiten
* Author          :     Christa Tabara 
* Copyright     :      Christa Tabara 
* Created        :     25-06-2004 
* Modified       :      12-07-2004 
************************************************/ 
$anzahl='CMS_VALUE[0]';
$db = new DB_Contenido;
$sql = "SELECT ARTLANG.title, ARTLANG.idart, CAT.idcat, STAT.visited
           FROM {$cfg['tab']['art_lang']} AS ARTLANG, 
                    {$cfg['tab']['cat_art']} AS CATART,
                    {$cfg['tab']['cat']} AS CAT,
                    {$cfg['tab']['stat']} AS STAT
           WHERE ARTLANG.online = '1' 
                      AND ARTLANG.idart = CATART.idart 
                      AND ARTLANG.idlang = STAT.idlang
                      AND CATART.idcatart = STAT.idcatart
                      AND CATART.idcat = CAT.idcat 
                      AND STAT.idlang= '$lang' 
                      AND STAT.idclient = '$client'
           ORDER BY STAT.visited desc
           LIMIT 0,".$anzahl;
$db->query($sql);

              echo '<table width="290" border="0" cellspacing="0" cellpadding="2" style="border: 1px; border-color: #4779a0; border-style: solid">
               <tr><td width="90%" style="border: 1px; border-right: 0px; border-color: #4779a0; border-style: solid; background-color: #EEEEEE; padding-left:10px" class="subheadline">Am häufigsten besuchte Seiten</td>
<td width="10%" style="border: 1px; border-color: #4779a0; border-style: solid; background-color: #EEEEEE; padding-left:10px" class="subheadline">Aufrufe</td>
               </tr>';
for ($zeilen = 0; $zeilen<$anzahl; $zeilen++)
     {
       $db->next_record();
       $title = $db->f("title");
       $idcat_mfv = $db->f("idcat");//mfv=most frequently visited
       $idart_mfv = $db->f("idart");
       $aufrufe = $db->f("visited");
       $link = $sess->url("front_content.php?client=$client&lang=$lang&idcat=$idcat_mfv&idart=$idart_mfv");
       echo '<tr>
                <td width="90%" style="border: 1px; border-top:0px; border-right:0px; border-color: #4779a0; border-style: solid; padding-left:10px"><a href="'.$link.'">'.$title.'</a></td>
<td width="10%" style="border: 1px; border-top:0px; border-color: #4779a0; border-style: solid; padding-left:10px" class="subheadline">'.$aufrufe.'</a></td>
                </tr>';
      }
echo '</table>';
?>
Output zuletzt besuchte Seiten:

Code: Alles auswählen

<?php
/*********************************************** 
* CONTENIDO MODUL - OUTPUT 
* 
* Modulname   :     Übersicht zuletzt besuchte Seiten
* Author          :     Christa Tabara 
* Copyright     :      Christa Tabara 
* Created        :     25-06-2004 
* Modified       :      12-07-2004 
************************************************/ 
$anzahl='CMS_VALUE[0]';
$db = new DB_Contenido;
$sql = "SELECT ARTLANG.title, ARTLANG.idart, CAT.idcat, STAT.visitdate
           FROM {$cfg['tab']['art_lang']} AS ARTLANG, 
                    {$cfg['tab']['cat_art']} AS CATART,
                    {$cfg['tab']['cat']} AS CAT,
                    {$cfg['tab']['stat']} AS STAT
           WHERE ARTLANG.online = '1' 
                      AND ARTLANG.idart = CATART.idart 
                      AND ARTLANG.idlang = STAT.idlang
                      AND CATART.idcatart = STAT.idcatart
                      AND CATART.idcat = CAT.idcat 
                      AND STAT.idlang= '$lang' 
                      AND STAT.idclient = '$client'
           ORDER BY STAT.visitdate desc
           LIMIT 0,".$anzahl;
$db->query($sql);

              echo '<table width="290" border="0" cellspacing="0" cellpadding="2" style="border: 1px; border-color: #4779a0; border-style: solid">
               <tr><td style="border: 1px; border-right: 0px; border-color: #4779a0; border-style: solid; background-color: #EEEEEE; padding-left:10px" class="subheadline">Zuletzt besuchte Seiten</td>
               </tr>';
for ($zeilen = 0; $zeilen<$anzahl; $zeilen++)
     {
       $db->next_record();
       $title = $db->f("title");
       $idcat_lv = $db->f("idcat");//lv=last visited
       $idart_lv = $db->f("idart");
       $link = $sess->url("front_content.php?client=$client&lang=$lang&idcat=$idcat_lv&idart=$idart_lv");
       echo '<tr>
                <td width="50%" style="border: 1px; border-top:0px; border-right:0px; border-color: #4779a0; border-style: solid; padding-left:10px"><a href="'.$link.'">'.$title.'</a></td>
                </tr>';
      }
echo '</table>';
?>
Konfiguration nicht vergessen, sonst ist die Maximalanzahl der Artikel, die dargestellt werden sollen, nicht bekannt.
Zuletzt geändert von Halchteranerin am Sa 16. Okt 2004, 08:27, insgesamt 3-mal geändert.

emergence
Beiträge: 10645
Registriert: Mo 28. Jul 2003, 12:49
Wohnort: Austria
Kontaktdaten:

Beitrag von emergence » Mo 12. Jul 2004, 11:08

habs mir gerade mal angesehen... nett ;-)
*** make your own tools (wishlist :: thx)

Halchteranerin
Beiträge: 5478
Registriert: Di 2. Mär 2004, 21:11
Wohnort: Halchter, wo sonst? ;-)
Kontaktdaten:

Beitrag von Halchteranerin » Mo 12. Jul 2004, 13:17

danke, danke :)
Ich muss mir das mal bei Gelegenheit in Ruhe wieder anschauen, ob es hier auch Probleme mit anderen Modulen gibt (s. auch http://www.contenido.de/forum/viewtopic ... c&start=15) und den Code ggf. etwas anpassen.

emergence
Beiträge: 10645
Registriert: Mo 28. Jul 2003, 12:49
Wohnort: Austria
Kontaktdaten:

Beitrag von emergence » Mo 12. Jul 2004, 13:29

outch... bin da gerade auf was drauf genagelt...
du solltest keinenfalls in deinem output modul die variablen
$idcat und $idart umdefinieren...
nachfolgende module die sich dieser werte bedienen hätten dann die falsche $idart oder $idcat zur verfügung... habs gerade beim comments modul bemerkt...

am besten für eigene module bei den variablen etwas wie $tempVar... verwenden... (besonders in schleifen...)
*** make your own tools (wishlist :: thx)

Halchteranerin
Beiträge: 5478
Registriert: Di 2. Mär 2004, 21:11
Wohnort: Halchter, wo sonst? ;-)
Kontaktdaten:

Beitrag von Halchteranerin » Mo 12. Jul 2004, 15:51

emergence hat geschrieben:du solltest keinenfalls in deinem output modul die variablen $idcat und $idart umdefinieren...
Das sagst Du mir jetzt? :lol:
emergence hat geschrieben: nachfolgende module die sich dieser werte bedienen hätten dann die falsche $idart oder $idcat zur verfügung... habs gerade beim comments modul bemerkt...

am besten für eigene module bei den variablen etwas wie $tempVar... verwenden... (besonders in schleifen...)
ja ja, JETZT haben wir das auch festgestellt. :) ich habe ja nun in dem anderen Modul idcat und idart um _lc (wie last changed) erweitert, das werde ich bei diesen Modulen analog auch gleich tun. Bis der naechste Seiteneffekt auftritt. :twisted: Aber je mehr Leute das einsetzen, desto eher faellt so etwas auf ... :wink:

emergence
Beiträge: 10645
Registriert: Mo 28. Jul 2003, 12:49
Wohnort: Austria
Kontaktdaten:

Beitrag von emergence » Mo 12. Jul 2004, 16:43

Halchteranerin hat geschrieben:Das sagst Du mir jetzt?
lieber jetzt als gar nicht :wink:
*** make your own tools (wishlist :: thx)

i-fekt
Beiträge: 1520
Registriert: Mo 3. Jan 2005, 02:15
Wohnort: Chemnitz
Kontaktdaten:

Beitrag von i-fekt » So 16. Jan 2005, 00:27

Kann man das "Häufigste Aufrufe"-Modul nicht beschränken auf eine bestimmte Kategorie? :?

Halchteranerin
Beiträge: 5478
Registriert: Di 2. Mär 2004, 21:11
Wohnort: Halchter, wo sonst? ;-)
Kontaktdaten:

Beitrag von Halchteranerin » So 16. Jan 2005, 00:48

Craxx hat geschrieben:Kann man das "Häufigste Aufrufe"-Modul nicht beschränken auf eine bestimmte Kategorie? :?
sicher doch, und da du auf dem besten Weg zum PHP-Experten bist, kannst du das bestimmt schon selbst machen. :lol:
Ich habe gerade keine Zeit zum Umschreiben, aber du muesstest entweder die Nr. der Kategorie "hart codiert" in die SQL-Abfrage der Ausgabe schreiben, oder du machst es eleganter, fragst im Input-Bereich die Kategorie ab und uebergibst die Eingabe an die SQL-Abfrage im Output-Bereich.

i-fekt
Beiträge: 1520
Registriert: Mo 3. Jan 2005, 02:15
Wohnort: Chemnitz
Kontaktdaten:

Beitrag von i-fekt » So 16. Jan 2005, 02:13

Geb mir mal nen Tipp, ich komme ned drauf. ;)

Halchteranerin
Beiträge: 5478
Registriert: Di 2. Mär 2004, 21:11
Wohnort: Halchter, wo sonst? ;-)
Kontaktdaten:

Beitrag von Halchteranerin » So 16. Jan 2005, 02:20

Aehm ... das waren sogar zwei Tipps!
Halchteranerin hat geschrieben:du muesstest entweder die Nr. der Kategorie "hart codiert" in die SQL-Abfrage der Ausgabe schreiben, oder du machst es eleganter, fragst im Input-Bereich die Kategorie ab und uebergibst die Eingabe an die SQL-Abfrage im Output-Bereich.
also irgendwas mit AND CATART.idcat=XXX [fuer XXX gewuenschte Kategorienr. einsetzen) in dem WHERE-Teil der SQL-Anweisung.

i-fekt
Beiträge: 1520
Registriert: Mo 3. Jan 2005, 02:15
Wohnort: Chemnitz
Kontaktdaten:

Beitrag von i-fekt » So 16. Jan 2005, 02:26

Das hattee ich schon versucht, lieferte allerdings x mal den selben Artikel. :?

Halchteranerin
Beiträge: 5478
Registriert: Di 2. Mär 2004, 21:11
Wohnort: Halchter, wo sonst? ;-)
Kontaktdaten:

Beitrag von Halchteranerin » So 16. Jan 2005, 02:50

Craxx hat geschrieben:Das hattee ich schon versucht, lieferte allerdings x mal den selben Artikel. :?
Das kann nicht sein! Ich hab's gerade mit

Code: Alles auswählen

$sql = "SELECT ARTLANG.title, ARTLANG.idart, CAT.idcat, STAT.visited
           FROM {$cfg['tab']['art_lang']} AS ARTLANG,
                    {$cfg['tab']['cat_art']} AS CATART,
                    {$cfg['tab']['cat']} AS CAT,
                    {$cfg['tab']['stat']} AS STAT
           WHERE ARTLANG.online = '1'
                      AND ARTLANG.idart = CATART.idart
                      AND ARTLANG.idlang = STAT.idlang
                      AND CATART.idcatart = STAT.idcatart
                      AND CATART.idcat = CAT.idcat
                      AND CATART.idcat = 3
                      AND STAT.idlang= '$lang'
                      AND STAT.idclient = '$client'
           ORDER BY STAT.visited desc
           LIMIT 0,".$anzahl; 
probiert, und es hat geklappt (fuer die Kategorie Nr. 3)

i-fekt
Beiträge: 1520
Registriert: Mo 3. Jan 2005, 02:15
Wohnort: Chemnitz
Kontaktdaten:

Beitrag von i-fekt » So 16. Jan 2005, 03:03

Ach so das muss dazu, ich habe es nur ersetzt. Mehrere Kategorien oder besser gesagt Unterordner einer Kategorie gehen dann nicht so einfach, oder?

Halchteranerin
Beiträge: 5478
Registriert: Di 2. Mär 2004, 21:11
Wohnort: Halchter, wo sonst? ;-)
Kontaktdaten:

Beitrag von Halchteranerin » So 16. Jan 2005, 04:12

Craxx hat geschrieben:Mehrere Kategorien oder besser gesagt Unterordner einer Kategorie gehen dann nicht so einfach, oder?
Klar, du musst nur weitere Zeilen hinzufuegen, nach dem obigen Muster. Nur dass du die Abfragen nach der idcat mit OR verbinden musst, also so etwas:

Code: Alles auswählen

$sql = "SELECT ARTLANG.title, ARTLANG.idart, CAT.idcat, STAT.visited
           FROM {$cfg['tab']['art_lang']} AS ARTLANG,
                    {$cfg['tab']['cat_art']} AS CATART,
                    {$cfg['tab']['cat']} AS CAT,
                    {$cfg['tab']['stat']} AS STAT
           WHERE ARTLANG.online = '1'
                      AND ARTLANG.idart = CATART.idart
                      AND ARTLANG.idlang = STAT.idlang
                      AND CATART.idcatart = STAT.idcatart
                      AND CATART.idcat = CAT.idcat
                      AND (CATART.idcat = 3
                      OR CATART.idcat = 4711
                      OR CATART.idcat = 0815)
                      AND STAT.idlang= '$lang'
                      AND STAT.idclient = '$client'
           ORDER BY STAT.visited desc
           LIMIT 0,".$anzahl;

mäci
Beiträge: 36
Registriert: Sa 26. Feb 2005, 18:10
Kontaktdaten:

Beitrag von mäci » Di 15. Mär 2005, 09:43

also bei mir werden keine besuchten seiten angezeigt, es steht nur der titel "zuletzt besuchte seiten". wo stelle ich den diese konfiguration ein?
danke

Gesperrt