Autor/Verfasser

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

Beitrag von emergence » Mi 17. Mär 2004, 09:21

stony hat geschrieben:kann das modul auch anzeigen wann die letzte änderung von automatisch generierten artikel war? sprich wenn sich eine artikelliste darin befindet?
du meinst wenn sich etwas automatisch bei der artikelliste ändert ?
nein kann es nicht...

stony
Beiträge: 360
Registriert: Di 10. Jun 2003, 09:02
Wohnort: Berlin
Kontaktdaten:

Beitrag von stony » Mi 17. Mär 2004, 14:15

schade eigenlich, kann ich dann irgentwie die zeit des letzte logins auf der page bringen?

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

immer noch Probleme

Beitrag von Halchteranerin » So 11. Apr 2004, 22:14

Hallo,

ich habe heute erst (weil ich gerade auf die Idee gekommen war, das Datum der letzten Aenderung auszugeben) diesen Thread gefunden. Ich hab's bei einer 4.4.4er Installation (Neuinstallation, kein Update) benutzen wollen, aber trotz des Aenderungsvorschlags von Louis wird bei mir nicht das richtige Datum angezeigt, da steht immer irgendwas mit Stunde:04 (ob es 11:04 oder 12:04 ist), obwohl in con_content bei lastmodified andere Uhrzeiten stehen.
Jedenfalls scheint dieses Autoren-Problem auch bei 4.4.4 nicht behoben zu sein, ich glaube, ich trag's unter Bugs ein, falls ich bis morgen nichts Gegenteiliges hoere (zumindest hatte bei mir vor Louis' Aenderung die Anzeige des Autors auch nicht funktioniert).

Gruss
Christa

dekurio
Beiträge: 18
Registriert: So 25. Jan 2004, 17:35
Wohnort: Isen, Bavaria, Germany
Kontaktdaten:

Modifizierte Version des Moduls

Beitrag von dekurio » So 16. Mai 2004, 01:27

Hallo zusammen,

habe das Modul gerade in abgeänderter Form auf meiner Website installiert. Bei mir funktioniert es korrekt.

Gerne liste ich hier den von mir verwendeten Code, der auf der Arbeit von Martin und den Änderungen von Louis basiert.

Ich habe das Modul dahingehend verändert, dass es nun auch den Wochentag der letzten Aktualisierung (deutschsprachig) anzeigt. Des weiteren wird vor der Ausgabe des Textes eine horizontale Linie zur Trennung vom Seiten-Content ausgegeben.

Mit dem nachfolgend aufgeführtem Code sieht die Ausgabe in etwa so aus ("in etwa", da natürlich Abhängig vom Autor ;) ) :
Letzte Bearbeitung am Donnerstag, den 13.05.2004 um 01:18 Uhr von Systemadministrator (sysadmin)
Da das Modul ja nicht nur das Datum der letzten Aktuallisierung, sondern auch den Namen und Aliasnamen des Autoren ausgibt, und das Modul bei mir als Conten-Abschluss angezeigt wird, habe ich mir erlaubt das Modul in "Footer" umzubenennen. Das könnt ihr natürlich so handhaben wie ihr wollt.

Hier der aktualisierte Programmcode:

Name:

Code: Alles auswählen

Footer
Beschreibung:

Code: Alles auswählen

####################################################### 
# 
# Modul: Footer (Original-Name: Modified 1.0) 
# Autor: Martin Horwath 
# Datum:  01.10.2003 
# Requires: Contenido 4.3.2.1b
# Modification: "Louis" and Bernhard Ungerer (16.05.2004)
# 
####################################################### 

Ausgabe der Dokumenten-Informationen. Geplant für Ausgabe am Seitenende mit vorangestellter horizontaler Linie.
Eingabe (Input):
Ausgabe (Output):

Code: Alles auswählen

<?php 

$query = "SELECT B.author AS author, 
                 B.lastmodified AS lastmodified, 
                 C.realname AS realname 
          FROM 
                 ".$cfg["tab"]["art_lang"]." AS A, 
                 ".$cfg["tab"]["content"]." AS B, 
                 ".$cfg["tab"]["phplib_auth_user_md5"]." AS C 
          WHERE 
                 A.idart = '$idart' AND 
                 B.idartlang = A.idartlang AND 
                 C.username = B.author 
          ORDER BY 
                 B.lastmodified DESC"; 

$ds_days = array ('Sonntag', 'Montag', 'Dienstag', 'Mittwoch', 'Donnerstag', 'Freitag', 'Samstag');
$db->query($query); 
$db->next_record(); 

$author = $db->f("author"); // loginname 
$realname = $db->f("realname"); // realname 
$lastmodified = strtotime($db->f("lastmodified")); 
$ds_daynumber = date("w",$lastmodified);
$ds_date = date("d.m.Y",$lastmodified);
$ds_time = date("h:i",$lastmodified); 

echo ("<hr><div class=\"footer\">Letzte Bearbeitung am ".$ds_days [$ds_daynumber].", den ".$ds_date." um ".$ds_time." Uhr von ".$realname." (".$author.")</div>&nbsp;");

?>
Zur Formatierung von Ausgabetext und horizontaler Linie nutz das Modul nun das Cascading-Style-Sheet (CSS). Dabei ist das Format der Textausgabe in <DIV>-Tags gekapselt. Darum ist es erforderlich, dass bei euch eingesetzte CSS, standarmäßig "format.css", um folgende Einträge zu ergänzen:

CSS:

Code: Alles auswählen

.footer				 {			    /* Schriftformat für Footer */
                    font-family: arial, helvetica, geneva, sans-serif;
                    font-size: 10px;
                    color: #3399CC;
                    text-align: center;
                    }
                    
hr                  {          	/* Horizontale Linie */
                    color: #003399;
                    height: 1px;
                    border: 0px;
                    }
Hier wird die Schriftgröße mit 10 Pixel in den Schriftarten "arial, helvetica, geneva, sans-serif" angegeben. Die Schriftfarbe ist #3399CC (hellblau) und der Text wird zentriert ausgegeben. Die horizontale Linie ist einen Pixel dick (oder dünn ;) ) und hat die Farbe #003399, ohne Rahmen.

Wer das Modul in Funktion sehen will, kann gerne meine Website auf

http://www.dropsoft.de

besuchen. Hier werde ich in Kürze allerdings die Ausgabe des Autoren wieder aus dem Modul entfernen, da diese Angabe bei mir nicht erwünscht ist.

Als kleine Randbemerkung möchte ich noch angeben, dass ich mit Contenido V4.4.4 arbeite. Wie gesagt, hier arbeitet das Modul, so wie es bis jetzt aussieht, einwandfrei. Danke Martin und Louis für eure Arbeit.

HAPPY NETTING,

Dekurio
"Die Menschen stolpern nicht über Berge, sondern über Maulwurfshügel"
(Konfuzius)

dekurio
Beiträge: 18
Registriert: So 25. Jan 2004, 17:35
Wohnort: Isen, Bavaria, Germany
Kontaktdaten:

Nachtrag

Beitrag von dekurio » So 23. Mai 2004, 15:27

Nachtrag:

Habe jetzt noch einen kleinen "Fehler" im Output-Code festgestellt. Eigentlich ist es zwar kein Fehler, doch wird die Uhrzeit nicht so angezeigt, wie eigentlich gewünscht. So wie ich angegeben habe, wird die Uhrzeit im 12-Stunden Format ausgegeben (16:00 Uhr wird als 4:00 Uhr angezeigt).

Ich sollte wohl nicht nur in der Nacht an meiner Website arbeiten, dann hätte ich das schon längst festgestellt... ;)

Also, wenn ihr die Uhrzeit der letzten Änderung im 24-Stunden Format anzeigen lassen wollt, müsste ihr im Output-Code lediglich die Zeile

Code: Alles auswählen

$ds_time = date("h:i",$lastmodified); 
in

Code: Alles auswählen

$ds_time = date("H:i",$lastmodified); 
ändern. Kurz: Aus dem kleinen "h" ein großes "H" machen.

HAPPY NETTING,

Dekurio
"Die Menschen stolpern nicht über Berge, sondern über Maulwurfshügel"
(Konfuzius)

acquire
Beiträge: 194
Registriert: So 13. Jun 2004, 13:24
Kontaktdaten:

Beitrag von acquire » Mi 7. Jul 2004, 15:02

Danke dekurio.
Das was du gerade geopstet hast habe ich gesucht. Mich nervt das schon, weil ich immer in ungünstigen zeiten arbeite. mogends von 6-10 und mittags-abends von 14-20 Uhr.
Da sehen die Zeiten natürlich im 12h Format auch beschissen aus.
Was so ein H groß alles ausrichten kann.

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

Schluckauf?

Beitrag von Halchteranerin » Di 20. Jul 2004, 09:20

Ich benutze folgendes Modul fuer so eine Art Statistik (Benutzer online, Seitenaufrufe letzten/diesen Monat bzw. Seitenaufrufe seit Start der Site):

Code: Alles auswählen

<? 
# Zeit in Sekunden bis neu gezählt wird
$online = "120";

# Die Datei in der die IP und zeit gespeichert werden
$datei = "useronline.dat";

$zeit = time();
$fp = fopen($datei, "r");
  $daten = "";
  $count = "1";
  $online = $zeit - $online;

while($zeilen = fgets($fp, 1000)){
    $zeilen = chop($zeilen);
    $inhalt = explode("|", $zeilen);
            if($inhalt[0] == $REMOTE_ADDR || $inhalt[1] < $online || $inhalt[0] == "")
            continue;
            $daten = "$inhalt[0]|$inhalt[1]\n";
            $count++;
            }
fclose($fp);

$daten .= "$REMOTE_ADDR|$zeit\n";
$fp = fopen($datei, "w");
flock($fp,1);
fwrite($fp, $daten);
flock($fp,3);
fclose($fp);
if ($count=="1") { 
   echo "<span class=\"small\">&nbsp;&nbsp;$count Besucher ist online</span><br>"; 
} else { 
   echo "<span class=\"small\">&nbsp;&nbsp;$count Besucher sind online</span><br>"; 
}

//aktueller Monat
$sql2 = 'SELECT visited 
        FROM 
            '.$cfg['tab']['cat_art'].' AS A, 
            '.$cfg['tab']['stat'].' AS B 
        WHERE 
            A.idcatart = B.idcatart AND 
            A.idcatart = '.$idcatart.' AND 
            B.idlang = '.$lang; 
$db->query($sql2); 

if ($db->next_record()) { 
    echo '<span class="small">&nbsp;&nbsp;'.$db->f('visited').' Seitenaufrufe in diesem Monat</span><br>'; 
} 

//Letzter Monat
    $year = date("Y"); 
    $month = date("m"); 

    if ($month == 1) 
    { 
       $month = 12; 
       $year = $year -1; 
    } else { 
       $month = $month -1; 
    } 

    $yearmonth = sprintf("%04d%02d",$year,$month); 
    
    $sql3='SELECT C.visited AS archived 
        FROM 
            '.$cfg['tab']['cat_art'].' AS A, 
            '.$cfg['tab']['stat_archive'].' AS C 
        WHERE 
            A.idcatart = C.idcatart AND 
            C.idcatart = '.$idcatart.' AND 
            C.idlang = '.$lang.' AND 
            C.archived = '.$yearmonth; 
            
    $db->query($sql3); 

    if ($db->next_record()) { 
         echo '<span class="small">&nbsp;&nbsp;'.$db->f('archived').' Seitenaufrufe im letzten Monat</span><br>'; 

    } 
//Gesamtaufrufe aktuelle Seite
$sql = 'SELECT 
            visited 
        FROM 
            '.$cfg['tab']['cat_art'].' AS A, 
            '.$cfg['tab']['stat'].' AS B 
        WHERE 
            A.idcatart = B.idcatart AND 
            A.idcatart = '.$idcatart.' AND 
            B.idlang = '.$lang; 
$db->query($sql); 

if ($db->next_record()) { 
   $hits = $db->f('visited'); 
} 

$sql4 = 'SELECT sum(C.visited) AS archived 
        FROM 
            '.$cfg['tab']['cat_art'].' AS A, 
            '.$cfg['tab']['stat_archive'].' AS C 
        WHERE 
            A.idcatart = C.idcatart AND 
            C.idcatart = '.$idcatart.' AND 
            C.idlang = '.$lang; 
$db->query($sql4); 

if ($db->next_record()) { 
   $hits = $hits + $db->f('archived'); 
} 

echo '<span class="small">&nbsp;&nbsp;'.$hits.' Seitenaufrufe seit M&auml;rz 2004.</span><br>';
?>
Dafuer habe ich einfach mehrere Module zusammengefuegt. Mir fielen gerade folgende Eintraege in der errorlog.txt auf:

Code: Alles auswählen

[18-Jul-2004 17:10:01] Invalid SQL: SELECT 
            visited 
        FROM 
            con_cat_art AS A, 
            con_stat AS B 
        WHERE 
            A.idcatart = B.idcatart AND 
            A.idcatart =  AND 
            B.idlang = 1<br><br>
[18-Jul-2004 17:10:01] next_record called with no query pending.
[18-Jul-2004 17:10:01] Invalid SQL: SELECT 
            C.visited AS archived 
        FROM 
            con_cat_art AS A, 
            con_stat_archive AS C 
        WHERE 
            A.idcatart = C.idcatart AND 
            C.idcatart =  AND 
            C.idlang = 1 AND 
            C.archived = 200406<br><br>
[18-Jul-2004 17:10:01] next_record called with no query pending.
[18-Jul-2004 17:10:01] Invalid SQL: SELECT 
            visited 
        FROM 
            con_cat_art AS A, 
            con_stat AS B 
        WHERE 
            A.idcatart = B.idcatart AND 
            A.idcatart =  AND 
            B.idlang = 1<br><br>
[18-Jul-2004 17:10:01] next_record called with no query pending.
[18-Jul-2004 17:10:01] Invalid SQL: SELECT 
            sum(C.visited) AS archived 
        FROM 
            con_cat_art AS A, 
            con_stat_archive AS C 
        WHERE 
            A.idcatart = C.idcatart AND 
            C.idcatart =  AND 
            C.idlang = 1<br><br>
[18-Jul-2004 17:10:01] next_record called with no query pending.
Offensichtlich wird die $idcatart 'verloren'. Angezeigt wird 'irgendwas', aber ob das die richtige Anzeige ist? Zumindest sehen die Zahlen vernuenftig aus.

Die errorlog-Eintraege kommen auch nicht regelmaessig sondern eher sporadisch (ich hatte die schon mal gehabt, hatte damals nur keine Zeit, mich darum zu kuemmern). Hat jemand eine Idee, woran das liegt, und am besten auch gleich, wie man's beheben koennte? ;-)

Gruss
Christa
Bitte keine unaufgeforderten Privatnachrichten mit Hilfegesuchen schicken. WENN ich helfen kann, dann mache ich das im Forum, da ich auch alle Postings lese. PN werden nicht beantwortet!

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

Beitrag von Halchteranerin » Fr 1. Apr 2005, 14:38

Ich habe gerade neue Eintraege in der errorlog entdeckt:

Code: Alles auswählen

[07-Mar-2005 13:46:30] Invalid SQL: SELECT 
            visited 
        FROM 
            con_cat_art AS A, 
            con_stat AS B 
        WHERE 
            A.idcatart = B.idcatart AND 
            A.idcatart = 174 AND 
            B.idlang = 11)<br><br>
[07-Mar-2005 13:46:30] next_record called with no query pending.
[07-Mar-2005 13:46:30] Invalid SQL: SELECT 
            sum(C.visited) AS archived 
        FROM 
            con_cat_art AS A, 
            con_stat_archive AS C 
        WHERE 
            A.idcatart = C.idcatart AND 
            C.idcatart = 174 AND 
            C.idlang = 11)<br><br>
[07-Mar-2005 13:46:30] next_record called with no query pending.
Der SQL-Code in der errorlog ist in der Tat fehlerhaft, denn immer nach idlang=11 steht eine schliessende Klammer, aber ich habe keine Ahnung, woher diese kommt! Im Modul habe ich an den problematischen Stellen keine Klammer. Wo koennte ich suchen, bzw. woran koennte es liegen? Die Sprache mit der Nr. 11 ist franzoesisch, im Contenido heisst die Sprache "français", ob es mit dem Sonderzeichen zusammenhaengt? Aber eigentlich wird ja die idlang und nicht der Name uebergeben ...

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

Beitrag von Halchteranerin » So 19. Jun 2005, 10:08

Ich muss nochmal das Thema ausbuddeln. Gerade entdeckte ich im errorlog wieder diese Eintraege:

Code: Alles auswählen

[14-Jun-2005 12:48:32] Invalid SQL: SELECT 
            visited 
        FROM 
            con_cat_art AS A, 
            con_stat AS B 
        WHERE 
            A.idcatart = B.idcatart AND 
            A.idcatart = 175 AND 
            B.idlang = 11)<br><br>
[14-Jun-2005 12:48:32] next_record called with no query pending.
[14-Jun-2005 12:48:32] Invalid SQL: SELECT 
            C.visited AS archived 
        FROM 
            con_cat_art AS A, 
            con_stat_archive AS C 
        WHERE 
            A.idcatart = C.idcatart AND 
            C.idcatart = 175 AND 
            C.idlang = 11) AND 
            C.archived = 200505<br><br>
[14-Jun-2005 12:48:32] next_record called with no query pending.
[14-Jun-2005 12:48:32] Invalid SQL: SELECT 
            visited 
        FROM 
            con_cat_art AS A, 
            con_stat AS B 
        WHERE 
            A.idcatart = B.idcatart AND 
            A.idcatart = 175 AND 
            B.idlang = 11)<br><br>
[14-Jun-2005 12:48:32] next_record called with no query pending.
[14-Jun-2005 12:48:32] Invalid SQL: SELECT 
            sum(C.visited) AS archived 
        FROM 
            con_cat_art AS A, 
            con_stat_archive AS C 
        WHERE 
            A.idcatart = C.idcatart AND 
            C.idcatart = 175 AND 
            C.idlang = 11)<br><br>
[14-Jun-2005 12:48:32] next_record called with no query pending.
[14-Jun-2005 13:44:36] PHP Warning:  chdir(): No such file or directory (errno 2) in  [Pfad zur front_content.php](563) : eval()'d code on line 630
Der Quelltext des von mir benutzten Moduls:
(Eingabe ist leer)
Ausgabe:

Code: Alles auswählen

<? 
# Zeit in Sekunden bis neu gezählt wird
$online = "120";

# Die Datei in der die IP und zeit gespeichert werden
$datei = "useronline.dat";

$zeit = time();
$fp = fopen($datei, "r");
  $daten = "";
  $count = "1";
  $online = $zeit - $online;

while($zeilen = fgets($fp, 1000)){
    $zeilen = chop($zeilen);
    $inhalt = explode("|", $zeilen);
            if($inhalt[0] == $REMOTE_ADDR || $inhalt[1] < $online || $inhalt[0] == "")
            continue;
            $daten = "$inhalt[0]|$inhalt[1]\n";
            $count++;
            }
fclose($fp);

$daten .= "$REMOTE_ADDR|$zeit\n";
$fp = fopen($datei, "w");
flock($fp,1);
fwrite($fp, $daten);
flock($fp,3);
fclose($fp);
if ($count=="1") { 
   echo "<span class=\"small\">&nbsp;&nbsp;$count Besucher ist online</span><br>"; 
} else { 
   echo "<span class=\"small\">&nbsp;&nbsp;$count Besucher sind online</span><br>"; 
}

//aktueller Monat
$sql2 = 'SELECT 
            visited 
        FROM 
            '.$cfg['tab']['cat_art'].' AS A, 
            '.$cfg['tab']['stat'].' AS B 
        WHERE 
            A.idcatart = B.idcatart AND 
            A.idcatart = '.$idcatart.' AND 
            B.idlang = '.$lang; 
$db->query($sql2); 

if ($db->next_record()) { 
    echo '<span class="small">&nbsp;&nbsp;'.$db->f('visited').' Seitenaufrufe in diesem Monat</span><br>'; 
} 

//Letzter Monat
    $year = date("Y"); 
    $month = date("m"); 

    if ($month == 1) 
    { 
       $month = 12; 
       $year = $year -1; 
    } else { 
       $month = $month -1; 
    } 

    $yearmonth = sprintf("%04d%02d",$year,$month); 
    
    $sql3='SELECT 
            C.visited AS archived 
        FROM 
            '.$cfg['tab']['cat_art'].' AS A, 
            '.$cfg['tab']['stat_archive'].' AS C 
        WHERE 
            A.idcatart = C.idcatart AND 
            C.idcatart = '.$idcatart.' AND 
            C.idlang = '.$lang.' AND 
            C.archived = '.$yearmonth; 
            
    $db->query($sql3); 

    if ($db->next_record()) { 
         echo '<span class="small">&nbsp;&nbsp;'.$db->f('archived').' Seitenaufrufe im letzten Monat</span><br>'; 

    } 
//Gesamtaufrufe aktuelle Seite
$sql = 'SELECT 
            visited 
        FROM 
            '.$cfg['tab']['cat_art'].' AS A, 
            '.$cfg['tab']['stat'].' AS B 
        WHERE 
            A.idcatart = B.idcatart AND 
            A.idcatart = '.$idcatart.' AND 
            B.idlang = '.$lang; 
$db->query($sql); 

if ($db->next_record()) { 
   $hits = $db->f('visited'); 
} 

$sql4 = 'SELECT 
            sum(C.visited) AS archived 
        FROM 
            '.$cfg['tab']['cat_art'].' AS A, 
            '.$cfg['tab']['stat_archive'].' AS C 
        WHERE 
            A.idcatart = C.idcatart AND 
            C.idcatart = '.$idcatart.' AND 
            C.idlang = '.$lang; 
$db->query($sql4); 

if ($db->next_record()) { 
   $hits = $hits + $db->f('archived'); 
} 

echo '<span class="small">&nbsp;&nbsp;'.$hits.' Seitenaufrufe seit April 2004.</span><br>';
?>
Sieht jemand IRGENDWO IRGENDWAS, was mir entgangen ist?

tono
Beiträge: 574
Registriert: Mo 25. Apr 2005, 20:51
Wohnort: Frankfurt am Main
Kontaktdaten:

Beitrag von tono » So 19. Jun 2005, 11:08

Du könntest mal versuchen die SQL-Statements mit ; abzuschließen, also hinten ein .';'; anzuhängen. Dann müsste SQL wissen, das die Anweisung dort zu Ende ist. Und wenns troztdem zu Fehlern kommt kannst Du sehen ob die merkwürdigen )<br><br> vor oder hinter dem ; stehen. Was Dir das dann nutzt weiß ich aber leider auch nicht.

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

Beitrag von Halchteranerin » So 19. Jun 2005, 11:19

Hallo tono,

mysql macht normalerweise das fehlende Semikolon nichts aus (wenn es da ist, schadet's aber auch nicht). Ich kann's versuchen, aber das kann dauern, bis ich herausbekomme, ob das etwas gebracht hat oder nicht, weil die Eintraege sporadisch und nicht reproduzierbar im errorlog auftauchen. :(

Gruss
Christa

tono
Beiträge: 574
Registriert: Mo 25. Apr 2005, 20:51
Wohnort: Frankfurt am Main
Kontaktdaten:

Beitrag von tono » Mo 20. Jun 2005, 19:55

Ich hab die Lösung:

Du hast irgendwo in deinem Projekt bei einem changelang in der URL die Klammer mitübergeben. Die wird nämlich dann in $lang übernommen! Und sie bleibt dort, bis zum nächsten changelang. Merkwürdigerweise funktioniert das ganze System auch mit Klammer, aber Dein SQL-Statement wird davon zerhauen.

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

Beitrag von Halchteranerin » Mo 20. Jun 2005, 20:30

Hallo tono,

deine Erklaerung leuchtet sogar ein :lol:, aber wie finde ich die Stelle? Eigentlich habe ich nur auf der Startseite Links mit changelang benutzt, da ist aber alles richtig, ich habe nochmal nachgeschaut. Und dann habe ich bei einem der Mandanten mehrere Sprachen im Einsatz und das Sprachwechselmodul von Alex. Ich bin leider (oder Gott sei Dank) kein Parser :mrgreen:, und so auf dem ersten und zweiten Blick sehe ich in Alex' Modul keine überflüssige Klammer. Die Anzahl der Klammerpaare stimmt zumindest, die habe ich mit dem Editor "gezaehlt" (Suchen&Ersetzen, dabei wird die Anzahl der Ersetzungen angezeigt). Wo koennte ich noch suchen? Ich kann nicht die Hand ins Feuer legen, aber ich wuesste jetzt nicht, wo sonst changelang benutzt wird ...
Hier der Code von Alex' Sprachwechselmodul:

Code: Alles auswählen

<?php
//Sprachmodul - Version 2.2
//für Contenido 4.4.x
//Alexander Zimmerhofer - alexander(at)zimmerhofer.org

//Sprachmodul zeigt kleine Landesflaggen zum Umschalten der Sprache an, wenn die entsprechenden Kategorien sowie die entsprechenden Artikel online geschaltet sind.
//Im Editormodus wird die Umschaltmöglichkeit IMMER angeboten...

//Konfiguration...
//Diese Zeilen konfigurieren das Modul...
//Aufbau: $picture["Sprach-ID"] = "PFAD zur Flagge";
$picture["7"] = "upload/images/ro.gif";
$picture["8"] = "upload/images/en.gif";
$picture["9"] = "upload/images/de.gif";
$picture["10"] = "upload/images/hu.gif";
$picture["11"] = "upload/images/fr.gif";

//Alt-Tag, das angezeigt werden soll. Analog Sprach-ID [idlang]
$alt["7"] = "Româna";
$alt["8"] = "English";
$alt["9"] = "Deutsch";
$alt["10"] = "Magyarul";
$alt["11"] = "Français";


//AB HIER NICHTS MEHR ÄNDERN...
$mydb = new DB_Contenido;

$mydb ->query ("SELECT ARTLANG.idlang, ARTLANG.online, CATLANG.visible FROM ".$cfg["tab"]["art_lang"]." AS ARTLANG, ".$cfg["tab"]["cat_lang"]." AS CATLANG WHERE ARTLANG.idart =  $idart AND CATLANG.idcat = $idcat AND ARTLANG.idlang = CATLANG.idlang ORDER BY ARTLANG.idlang ASC");

while ($mydb -> next_record())
{
  while(list($lang_id,$picture_pfad) = each($picture))
  {
      if(strstr($REQUEST_URI,"changeview=edit") || $submit=="editcontent" || strstr($REQUEST_URI,"area=con_editcontent"))
      {
         if (($lang != ($mydb->f("idlang"))) and (($mydb->f("idlang")) == $lang_id))
         {
            echo "<a href=".$sess->url("front_content.php?client=$client&changelang=".($mydb->f("idlang"))."&idcat=$idcat&idart=$idart");
            echo "><img src=".$picture_pfad." border='0' title='".$alt[$mydb->f("idlang")]."' alt='".$alt[$mydb->f("idlang")]."'></a> ";    
         }
      }
      else
      {
         if (($lang != ($mydb->f("idlang"))) and (($mydb->f("idlang")) == $lang_id) and (($mydb->f("online")) == 1) and (($mydb->f("visible")) == 1))
         {
               echo "<a href=".$sess->url("front_content.php?client=$client&changelang=".($mydb->f("idlang"))."&idcat=$idcat&idart=$idart");
               echo "><img src=".$picture_pfad." border='0'title='".$alt[$mydb->f("idlang")]."' alt='".$alt[$mydb->f("idlang")]."'></a> ";
         }
      }
   }
   reset($picture);
}
?> 


Gruss
Christa

tono
Beiträge: 574
Registriert: Mo 25. Apr 2005, 20:51
Wohnort: Frankfurt am Main
Kontaktdaten:

Beitrag von tono » Mo 20. Jun 2005, 21:47

Kann auch in einer lang= Übergabe passiert sein.
Interresant ist ja auch, dass es nur mit idlang=11 auftritt. Stimmt das?
Eigentlich kann es ja nicht sein, dass die Klammer in der SQL-Tabelle steht, oder? Vielleicht noch mal einen Blick wert.

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

Beitrag von Halchteranerin » Mo 20. Jun 2005, 22:12

tono hat geschrieben:Kann auch in einer lang= Übergabe passiert sein.
Aber wo tritt so etwas auf?
tono hat geschrieben:Interresant ist ja auch, dass es nur mit idlang=11 auftritt. Stimmt das?
Zumindest ist mir das nur bei 11 aufgefallen. Ob das Zufall ist? Vermutlich nicht, aber ich weiss auch nicht mehr, wo ich suchen soll. :(
tono hat geschrieben:Eigentlich kann es ja nicht sein, dass die Klammer in der SQL-Tabelle steht, oder? Vielleicht noch mal einen Blick wert.
Moeglich ist alles! Aber in welcher Tabelle? "11)" scheint zumindest in der DB nicht vorhanden zu sein.

Gruss
Christa

Gesperrt