Seite 1 von 1

Nach 4.4.4 Update +-Zeichen und HTML-Code in eig. Newsflash

Verfasst: Fr 22. Okt 2004, 15:01
von igc979
Hallo,

nachdem ich die Contenido Version 4.4.4 auf unserem System installiert habe, sehe ich bei neu angelegten Artikeln in unserem Newsflash für jedes Leerzeichen innerhalb eines Textes ein "+"-Zeichen sowie für Sonderzeichen, Zeilenumbrüche usw. Zeichen wie:

%3CP%3E%26nbsp%3BTest+...%2B%26amp%3B%3C%2FP%3E%0D%0A%3CP%3E%26nbsp%3B%3C%2FP%3E%26nbsp%3B

Der Quellcode für unseren Newsflash hat folgendes Aussehen:

Code: Alles auswählen

// second db class instance
$db2 = new DB_Contenido;

// selected category
$selcat = "CMS_VALUE[0]";

 if($selcat!="0" && $selcat!="")
 {

	$query = "	SELECT 
				ARTLANG.idart, 
                                                                ARTLANG.idartlang,
				ARTLANG.created, 
                                                                ARTLANG.lastmodified, 
				CONTENT.typeid ,CONTENT.value
				FROM ".$cfg["tab"]["cat_art"]." AS CATART, ".$cfg["tab"]["art_lang"]." AS ARTLANG, ".$cfg["tab"]["content"]. " AS CONTENT
	         	WHERE 
				CATART.idcat = '$selcat' 
				AND ARTLANG.idart = CATART.idart 
				/* Join auf Content */
				AND CONTENT.idartlang = ARTLANG.idartlang AND CONTENT.idtype = '1' AND CONTENT.typeid in ('1','2') 
				AND ARTLANG.idlang = '$lang' 
				AND "."ARTLANG.online = '1' 
				ORDER BY
				
				case
					when ARTLANG.lastmodified > ARTLANG.created then ARTLANG.lastmodified
					else ARTLANG.created
				end desc 
				,ARTLANG.idart,CONTENT.typeid
				";
				//print("<pre>".$query."</pre>");

// execute query
$db->query($query);
// get id's of sub articles
while ($db->next_record()) 
{
	$head 		= $db->f("value");
	$ShortText	= $db->f("value");

	if( $db->f("typeid") == 1 )
	{ 
?>
            <tr> 
              <td background="pics/news-fond.gif" class="news">
<?php
	}
	if( $db->f("typeid") == 1 )
	{
		$head 		= $db->f("value");
		// link
		$link  = $sess->url("front_content.php?client=".$client."&lang=".$lang."&idcat=".$selcat."&idart=".$db->f("idart")."&m=".$m."&s=".$s."");
?>
		<a href="<?php echo($link) ?>" class="newsheader"><?php echo($head) ?></a><br>
<?php
	}
	// Bei Kurzbeschreibung auch noch auf Feldlaenge achten
	if( $db->f("typeid") == 2 )
	{
		$ShortText	= $db->f("value");
		if ( strlen($ShortText) > CMS_VALUE[3]) 
		{
			$ShortText = substr($ShortText, 0, CMS_VALUE[3]);
			$ShortText .= ' ...';
			echo($ShortText);
?>
				</td>
            </tr>
            <tr> 
              <td><img src="pics/news-trennlinie.gif" width="180" height="1"></td>
            </tr>
<?php
		}
	}

} // end while

}
?>[/color]

Ich habe bereits den Tipp bekommen, dass die Ursache im geänderten Datenbankhandling der neuen Contenido-Version liegen kann. Habe deshalb Einträge in der Form

 &db->f("value");

geändert in

 trim(strip_tags(urldecode($db->f("value"))));

Hat aber leider keine Besserung gebracht.
Wer kann mir bei diesem Problem weiterhelfen?

Vielen Dank im Voraus!!![/list]

Verfasst: Fr 22. Okt 2004, 15:28
von timo
urldecode sollte eigentlich helfen...schau dir mal an, wie es bei den beispielmodulen gemacht ist...