Artikelliste Titel wird als Code angezeigt

Gesperrt
chrigionline
Beiträge: 18
Registriert: Do 7. Aug 2003, 09:04
Kontaktdaten:

Artikelliste Titel wird als Code angezeigt

Beitrag 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
agon
Beiträge: 83
Registriert: Mi 29. Okt 2003, 16:01
Kontaktdaten:

Beitrag von agon »

Hallo,

welches Modul meinst Du genau? Poste doch einfach mal den Code.

Gruß
Andreas
chrigionline
Beiträge: 18
Registriert: Do 7. Aug 2003, 09:04
Kontaktdaten:

Beitrag 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>';


?>
agon
Beiträge: 83
Registriert: Mi 29. Okt 2003, 16:01
Kontaktdaten:

Beitrag von agon »

Hallo,

was solle ich sagen?
Bei mir funktioniert das Modul!?
Ich würde allerdings

Code: Alles auswählen

$head = substr($head, 0, "CMS_VALUE[3]");
ersetzen durch

Code: Alles auswählen

$head = strip_tags(urldecode(substr($head, 0, "CMS_VALUE[3]")));
und ebenso

Code: Alles auswählen

$db->f("value")
durch

Code: Alles auswählen

strip_tags(urldecode($db->f("value")))
Gruß
Andreas
Madinson
Beiträge: 52
Registriert: Di 7. Okt 2003, 13:57
Wohnort: Köln
Kontaktdaten:

gleiches Problem

Beitrag 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!
webwebweb...
agon
Beiträge: 83
Registriert: Mi 29. Okt 2003, 16:01
Kontaktdaten:

Beitrag 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
Madinson
Beiträge: 52
Registriert: Di 7. Okt 2003, 13:57
Wohnort: Köln
Kontaktdaten:

....anpassung

Beitrag 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
webwebweb...
agon
Beiträge: 83
Registriert: Mi 29. Okt 2003, 16:01
Kontaktdaten:

Beitrag 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
ttb
Beiträge: 182
Registriert: So 26. Okt 2003, 19:54
Wohnort: Schwerin
Kontaktdaten:

Beitrag 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);
Madinson
Beiträge: 52
Registriert: Di 7. Okt 2003, 13:57
Wohnort: Köln
Kontaktdaten:

läuft nicht

Beitrag 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??
webwebweb...
timo
Beiträge: 6284
Registriert: Do 15. Mai 2003, 18:32
Wohnort: Da findet ihr mich nie!
Kontaktdaten:

Re: läuft nicht

Beitrag 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.
Gesperrt