Seite 1 von 1
Artikelliste Titel wird als Code angezeigt
Verfasst: Do 6. Nov 2003, 16:08
von chrigionline
Bei der Artikellisten Titel wird der Code angezeigt statt nur der Text. Es müsste ein Fehler in der Abfrage der SQL-Datenbank liegen. Hat jemand eine Ahnung wie man das ganze beheben kann?
Gruss Christian
Verfasst: Fr 7. Nov 2003, 15:13
von agon
Hallo,
welches Modul meinst Du genau? Poste doch einfach mal den Code.
Gruß
Andreas
Verfasst: Sa 15. Nov 2003, 09:41
von chrigionline
Halllo Andreas,
Danke für deine rasche Antwort. Ich in denn letzten Tag nicht da und konnte deshalb nicht zurück schreiben.
Es liegt sehr wahrscheinlich am Output und der SQL-Abfrage:
Der Code ist hier:
Code: Alles auswählen
<?php
/***********************************************
* CONTENIDO MODUL - OUTPUT
*
* REFERENZ MODUL / ARTIKELLISTE
*
* Artikelliste mit Img 1, Head 1, Head 2
*
* Erstellt eine Liste mit allen Artikel bis
* auf den Startartikel.
*
* Author : Jan Lengowski
* Copyright : four for business AG
* Created : 15-08-2002
* Modified : 16-08-2002
************************************************/
// second db class instance
$db2 = new DB_Contenido;
// selected category
$selcat = "CMS_VALUE[0]";
if($selcat!="0" && $selcat!=""){
// select all articles in category widthout start article
$query = "SELECT ARTLANG.idart, ARTLANG.idartlang FROM ".$cfg["tab"]["cat_art"]." AS CATART, ".
$cfg["tab"]["art_lang"]." AS ARTLANG ".
"WHERE CATART.idcat = '$selcat' AND ARTLANG.idart = CATART.idart AND ARTLANG.idlang = '$lang' AND ".
"ARTLANG.online = '1' ORDER BY CATART.idart DESC";
// execute query
$db->query($query);
unset($articleID);
unset($linkID);
// get id's of sub articles
while ($db->next_record()) {
$articleID[] = $db->f("idartlang");
$linkID[] = $db->f("idart");
} // end while
// loop through subarticles
echo '
<table width="400" border="0" cellspacing="0" cellpadding="0">
';
if (is_array($articleID)) {
foreach ($articleID as $key => $value) {
// select all CMS variables of the article
$sql = "SELECT * FROM ".$cfg["tab"]["content"]." WHERE idartlang = '$value' AND idtype = '1' AND typeid = '1'";
$db->query($sql);
$db->next_record();
$head = $db->f("value");
if ( strlen($head) > "CMS_VALUE[3]") {
$head = substr($head, 0, "CMS_VALUE[3]");
$head .= '..';
}
// link
$link = $sess->url("front_content.php?client=$client&lang=$lang&idcat=$selcat&idart=$linkID[$key]&m=$m&s=$s");
echo '<tr><td colspan="2" class="text" height="22" style="border: 0px; border-bottom:1px; border-color: #000000; border-style: solid; background-color: #FFFFFF; padding-left:10px"><a href="'.$link.'" target="_blank">'.$db->f("value").'</a></td></tr>';
} // end while
unset($headline);
unset($text);
} // end foreach
} // end if (is_array)
echo '</table><br>';
?>
Verfasst: Mo 17. Nov 2003, 09:40
von agon
Hallo,
was solle ich sagen?
Bei mir funktioniert das Modul!?
Ich würde allerdings
ersetzen durch
Code: Alles auswählen
$head = strip_tags(urldecode(substr($head, 0, "CMS_VALUE[3]")));
und ebenso
durch
Gruß
Andreas
gleiches Problem
Verfasst: Do 4. Dez 2003, 14:48
von Madinson
Hallo::
Ich verwende das gleiche Modul...und nach einem Update von 4.3b auf 441 geschieht es, das der Code als Link ausgeben wird....
Beispiel:
20.+Oktober+2003%26nbsp%3B%7C+Kabelnetzbetreiber+fordern+Chancengleichheit+statt+Subventionen
Wenn ich die von agon vorgeschlagenen Änderungen einsetze bekomme ich eine rote Warnmeldung (Lämpchen) und die Site ist auch nicht mehr aufrufbar (blank!).
Haben nicht alle diese Problemchen??? Bitte um Info!
Verfasst: Do 4. Dez 2003, 16:37
von agon
Hallo,
also das von Dir geschilderte Problem rührt definitiv daher, daß ab 4.4 beim Schreiben in die Datenbank urlencode() verwendet wird, was man mit urldecode() zurückholen muß (was hier im Forum auch schon einige Male diskutiert wurde).
Bist Du Dir sicher, daß Dir bei der Anpassung des Moduls keine Schreibfehler unterlaufen sind (z.B. bzgl. öffnender/schließender Klammern)?
Gruß
Andreas
....anpassung
Verfasst: Do 4. Dez 2003, 16:47
von Madinson
mh,
ich weiß nicht wie sieht denn das angepasste Modul aus?
Hätte ich nur die 2 von dir geschilderten Stellen ändern müssen???
danke
Verfasst: Do 4. Dez 2003, 17:01
von agon
Hallo,
habe mir den Output noch einmal angeschaut, ist in der Tat irgendwie krumm (
$head wird definiert, aber eigentlich nicht weiter verwendet). Versuch 'mal das als Output (läuft bei mir):
Code: Alles auswählen
<?php
/***********************************************
* CONTENIDO MODUL - OUTPUT
*
* REFERENZ MODUL / ARTIKELLISTE
*
* Artikelliste mit Img 1, Head 1, Head 2
*
* Erstellt eine Liste mit allen Artikel bis
* auf den Startartikel.
*
* Author : Jan Lengowski
* Copyright : four for business AG
* Created : 15-08-2002
* Modified : 16-08-2002
************************************************/
// second db class instance
$db2 = new DB_Contenido;
// selected category
$selcat = "CMS_VALUE[0]";
if($selcat!="0" && $selcat!=""){
// select all articles in category widthout start article
$query = "SELECT ARTLANG.idart, ARTLANG.idartlang FROM ".$cfg["tab"]["cat_art"]." AS CATART, ".
$cfg["tab"]["art_lang"]." AS ARTLANG ".
"WHERE CATART.idcat = '$selcat' AND ARTLANG.idart = CATART.idart AND ARTLANG.idlang = '$lang' AND ".
"ARTLANG.online = '1' ORDER BY CATART.idart DESC";
// execute query
$db->query($query);
unset($articleID);
unset($linkID);
// get id's of sub articles
while ($db->next_record()) {
$articleID[] = $db->f("idartlang");
$linkID[] = $db->f("idart");
} // end while
// loop through subarticles
echo '
<table width="400" border="0" cellspacing="0" cellpadding="0">
';
if (is_array($articleID)) {
foreach ($articleID as $key => $value) {
// select all CMS variables of the article
$sql = "SELECT * FROM ".$cfg["tab"]["content"]." WHERE idartlang = '$value' AND idtype = '1' AND typeid = '1'";
$db->query($sql);
$db->next_record();
$head = strip_tags(urldecode($db->f("value")));
if ( strlen($head) > "CMS_VALUE[3]") {
$head = substr($head, 0, "CMS_VALUE[3]");
$head .= '..';
}
// link
$link = $sess->url("front_content.php?client=$client&lang=$lang&idcat=$selcat&idart=$linkID[$key]&m=$m&s=$s");
echo '<tr><td colspan="2" class="text" height="22" style="border: 0px; border-bottom:1px; border-color: #000000; border-style: solid; background-color: #FFFFFF; padding-left:10px"><a href="'.$link.'" target="_blank">'.$head.'</a></td></tr>';
} // end while
unset($headline);
unset($text);
} // end foreach
} // end if (is_array)
echo '</table><br>';
?>
Gruß
Andreas
Verfasst: Do 4. Dez 2003, 17:15
von ttb
Hm, ich würde eher mit folgender Codeänderung/Erweiterung die Artikelüberschrift komplett ausgeben und zusätzlich einen Anrisstext vom Artikel ausgeben, dessen Länge man im Input definieren kann:
Code: Alles auswählen
$sql = "SELECT ".$cfg["tab"]["content"].".*,".$cfg["tab"]["art_lang"].".summary
FROM ".$cfg["tab"]["content"]
left join ".$cfg["tab"]["art_lang"]
on ".$cfg["tab"]["content"].".idartlang=".$cfg["tab"]["art_lang"].".idartlang
WHERE ".$cfg["tab"]["content"].".idartlang = '$value'
AND ".$cfg["tab"]["content"].".idtype = '1'
AND ".$cfg["tab"]["content"].".typeid = '1'";
$db->query($sql);
$db->next_record();
$head = $db->f("value");
$summary1 = "select value from ".$cfg["tab"]["content"]." where ".$cfg["tab"]["content"].".idartlang=$linkID[$key] AND ".$cfg["tab"]["content"].".idtype=2";
$db2->query($summary1);
$db2->next_record();
$summary= $db2->f("value");
if ( strlen($summary) > CMS_VALUE[3]) {
$summary = substr($summary,0,CMS_VALUE[3]);
$summary.= '..';
}
// link
$link = $sess->url("front_content.php?client=$client&lang=$lang&idcat=$selcat&idart=$linkID[$key]&m=$m&s=$s");
echo '<a href="'.$link.'">'.urldecode($head).'</a><br>Summary:'.urldecode($summary);
läuft nicht
Verfasst: Mo 8. Dez 2003, 11:42
von Madinson
Vielen Dank...für die lieben Kommentare:
Ich möchte halt nur
die Artikel einer Kategorie mit der 1. Headline listen..
weswegen nicht alles abgefragt wird.
Die von Euch geposteten Scripts laufen bei mir nicht.
Der Output-Bereich erhält die rote Fehlermeldung!!
Ich habe die Version 4.3b auf 4.4.1 geupdatet..und die alten Daten wiedergeholt.
Welche Vatriante läuft und wird mit Contenido zusammen geliefert??
Re: läuft nicht
Verfasst: Mo 8. Dez 2003, 11:59
von timo
Madinson hat geschrieben:Die von Euch geposteten Scripts laufen bei mir nicht.
Der Output-Bereich erhält die rote Fehlermeldung!!
Es gibt keine "rote" Fehlermeldung - es gibt nur die rote "Lampe", welche beim Mouse-Over eine Fehlermeldung enthält - welche ist das?
Übrigens: Ein Update auf die 4.4.2 wäre ganz gut, wenn bei einem Upgrade von 4.3b auf 4.4.1 werden die Typen nicht upgedatet.