CMS_HTML enthalten Leerzeichen, <p> u.ä.

Gesperrt
phsoho
Beiträge: 3
Registriert: Fr 19. Mär 2004, 18:30
Kontaktdaten:

CMS_HTML enthalten Leerzeichen, <p> u.ä.

Beitrag von phsoho »

Die Variablen CMS_HTML enhalten manchmal unkontrolliert Leerzeichen, <p>-Tags und &nbsp;, was extrem stört. Woher kommt das und wie kann man das unterbinden? Version ist 4.4.0.

Viele Grüße,
phsoho
SkyBlader
Beiträge: 303
Registriert: Do 18. Mär 2004, 16:23
Wohnort: Ratingen / NRW
Kontaktdaten:

Beitrag von SkyBlader »

kannst du evtl genauer beschreiben wann das autritt ? bzw. in welchem zusammenhang, welche rahmenbedingugnen zu dem zeitpunkt gegeben sind usw ?

bzw. evtl kurz wie man das Problem heraufbeschwören kann um es nachvollziehen ? hab dies in keiner der 5 4.4.0 Installationen nachvollziehen können bis jetzt :/
Contenido 4.4.4/4.4.5 - Contenido 4.5.x

Module:sn_multinav für 4.5.x
phsoho
Beiträge: 3
Registriert: Fr 19. Mär 2004, 18:30
Kontaktdaten:

Absatzzeichen und Leerstellen in Text/HTML-Boxen

Beitrag von phsoho »

Wenn im HTML-Editor ein bestehender Text gelöscht wird bleibt oft eine Absatzmarkierung zurück, die im Contenido-eigenen HTML-Editor in der Design-View nicht sichtbar ist.

Hatte aber auch schon mehrmals den Fall, das ich in der HTML-Ansicht das Text-Feld des Editors geleert habe, um beim nächsten öffnen einen Nonbreaking-Space vorzufinden.

Hintergrund ist folgender: ich habe einige Module geschrieben, die kleine Tabellen mit einem farbig hinterlegtem Header und üblichem Fliess-Text füllt. Wenn für den Header keine Infos eingetragen sind soll die farbige Tabellenzelle nicht generiert werden, oder sind beide leer, wird keine Tabelle geschrieben.

Folglich fange ich momentan folgende Fälle ab:
1. ob die Variable für den Header nur ein Space, oder
2. nur einen Nonbreaking-Space enhält, bevor ich die TD schreiben lasse. Jetzt zusätzlich einen leeren Paragraph-TAG und einen mit Nonbreaking-Space abzufangen wird dann etwas mühsam.

hängt wahrscheinlich an der Sorgfalt der HTML-Pflegekräfte, aber es ist unklar auf wieviel man da bauen kann.

Oder gibt es eine Möglichkeit dem Editor das generieren von leeren Paragraphs und unnötigen Spaces abzu gewöhnen?
4423
Beiträge: 133
Registriert: Mi 3. Sep 2003, 10:46
Kontaktdaten:

Beitrag von 4423 »

Das Thema ist schon mal besprochen worden, such mal nach SPAW. Soweit ich mich erinnern kann, ist das standardmäßige Vorhandensein des Leerzeichens notwendig, weil..... weess ich ooch nich :wink:

schönen abend

jens
-------------------------------------------------------

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

Beitrag von Halchteranerin »

4423 hat geschrieben:Soweit ich mich erinnern kann, ist das standardmäßige Vorhandensein des Leerzeichens notwendig, weil..... weess ich ooch nich :wink:
weil sonst Mozilla das Feld nicht anzeigt (nur eine Zeile der Hoehe 0), somit man auch nichts eingeben kann.

Aber guter Tipp, im Archiv suchen. :wink:
phsoho
Beiträge: 3
Registriert: Fr 19. Mär 2004, 18:30
Kontaktdaten:

Beitrag von phsoho »

Für optionale Textboxes (kein Text -> keine Tabelle):

Habe eine function zum Textparsen gebaut. Aber nach ersten Erfahrungen macht es am meisten Sinn diese nicht in der front_content.php zu referenzieren, das gab es Probleme mit der SWF_CMS (von kombi), sondern in den Layouts. Vielleicht hat da jemand mehr Ahnung wo man sowas eleganter unterbringt.

user_def.php:

Code: Alles auswählen

<?php
function checkC($content1)
{
	$write1 = 1; 
	$txtDumper = array(""," ","\r","\r\n","&nbsp;","<p></p>","<p> </p>","<p>&nbsp;</p>");

	$DumpLen = count($txtDumper);
	$content1 = zeile($content1);

	for ($i = 0; $i < $DumpLen; $i++)
	{
		$testStr = $txtDumper[$i];
		if($content1 == $testStr) {$write1 = 0;}	
	}
	return($write1);
}


function zeile($txts1)
{	
	for($x = 0;$x < strlen($txts1);$x++)
	{	$mz1 = $txts1[$x];
		$mz2 = ord($mz1);
		//ASCII Zeichen 160 aus der iso 8559-1 
		//macht oft totalen ärger
		if($mz2 != 160)
		{	
			$txts2 = $txts2 . $mz1;
		}
	}
	return $txts2;
}

?>
erster Block in allen Layouts:

Code: Alles auswählen

<?php
include "user_def.php";
?>
und in der Modul-Ausgabe dann ungefähr so verwenden:

Code: Alles auswählen

<?php 
$pruef1 = "CMS_HTMLHEAD[x]";
$pruef2 = "CMS_HTML[x]";

$test1 = checkC($pruef1);
$test2 = checkC($pruef2);

#Tabelle auf
if($test1 == 1 || $test2 == 1){
	echo "<table width='180' border='0' cellspacing='0' cellpadding='0'>";
	}
# Headline
if($test1 == 1){
	echo "<tr><td height='26' class='BoxHead'>CMS_HTMLHEAD[x]&nbsp;&nbsp;</td></tr>";
	}
# Fliess Text	
if($test2 == 1){
	echo" <tr><td valign='top' class='info'>CMS_HTML[x]<br><br></td></tr>"; 
}
#Tabelle zu
if($test1 == 1 || $test2 == 1){
	echo "</table>";
}

?>
Gesperrt