Seite 1 von 1
suchausgabe, leerzeichenproblem bei <br /> im artikel
Verfasst: Do 22. Jun 2006, 10:38
von micha667
hallo zusammen,
die suchausgabe hängt mir auf der übersichtseite der suchergebnisse bei texten mit <br>-umbruch im artikel immer das letzte wort der
1.zeile bzw. erstes wort 2.zeile ohne leerzeichen aneinander.
also etwa:
xyz gmbhconsultingfirma für dies und dasmusterstraße 1
im artikel steht aber:
xyz gmbh
consultingfirma für dies und das
musterstraße 1
jemand ne ahnung, wie ich da in der ergebnisübersicht ein leerzeichen reinbekomme?
nl2br() und str_replace() brachte nichts.
danke schonmal vorab.
gruß
micha
Verfasst: Do 22. Jun 2006, 12:33
von HerrB
Vermutlich findet sich im Code ein strip_tags. Vor dem strip_tags ein $text = str_replace ("<br>", "$br$", $text); (und nochmal mit "<br />" bzw. <br/>) einbauen, strip_tags und danach wieder zurückersetzen.
Syntax str_replace:
http://www.php.net
Gruß
HerrB
Verfasst: Do 22. Jun 2006, 12:58
von micha667
hi, hatte kurz zuvor den selben gedanken und die stelle auch schon gefunden, aber die änderung in der funktion getSearchContent() in der class.search.php:
Code: Alles auswählen
$cms_content = str_replace("<br />", "\n", $article->getContent($cms_type, $id));
$cms_content = str_replace("<br>", "\n", $cms_content);
$cms_content = strip_tags($cms_content);
und dann im modul nl2br($text) bringt leider auch nicht das gewünschte.
gruß micha
Verfasst: Do 22. Jun 2006, 13:20
von micha667
ein nachtrag:
so hat es jetzt geklappt. das <br> wird als "gültige ausnahme" mit übergeben
$cms_content = strip_tags($cms_content, "<br>");
micha
Verfasst: Fr 23. Jun 2006, 01:19
von lunsen_de
Hallo, ich habe das selbe Problem. Ein Break wir in der Suchausgabe entfernt und die Wörter kleben aneinander. Wie kann ich das Break durch ein Leerzeichen ersetzen? Ich möchte nicht das brübergeben, sondern es ersetzen.
Anhand der Antworten konnte ich das Problem nicht lösen. In welcher Datei muss ich das ändern?
Gruss lunsen_de
Verfasst: Fr 23. Jun 2006, 09:02
von micha667
hallo,
in der datei contenido/classes/class.search.php
in der funktion:
getSearchContent()
an zwei stellen bei zeile 1546:
Code: Alles auswählen
$cms_content = strip_tags($article->getContent($cms_type, $cms_nr));
und zeile 1566
Code: Alles auswählen
$cms_content = strip_tags($article->getContent($cms_type, $id));
Verfasst: Fr 23. Jun 2006, 09:36
von HerrB
Öhm ... sicher, dass diese Änderung ein <br> durch ein Leerzeichen ersetzt?
Gruß
HerrB
Verfasst: Fr 23. Jun 2006, 09:41
von micha667
äh, nein, aber das ist die ursprungsstelle an der die änderung eingefügt werden muß.
micha
Verfasst: Fr 23. Jun 2006, 10:33
von lunsen_de
Also bei mir funktioniert das nicht. Kann jemand eine class.search.php posten die <br> und < /br> in ein Leerzeichen umwandelt?
Gruss lunsen_de
Verfasst: Fr 23. Jun 2006, 21:57
von mvf
lunsen_de hat geschrieben:Also bei mir funktioniert das nicht. Kann jemand eine class.search.php posten die <br> und < /br> in ein Leerzeichen umwandelt?
Gruss lunsen_de
so ganz blicke ich auch nicht durch, ich suche nach ner lösung, die mir sowohl die htmlentities
<br /> als auch <p></p>
im output beibehält

Verfasst: Fr 23. Jun 2006, 22:56
von HerrB
Jetzt werden wir aber faul... Jungs, sooo schwer ist es nicht und ihr gebt mir gerade ein bisschen schnell auf.
Unter
http://www.php.net/manual/en/function.strip-tags.php findet sich eine hervorragende Dokumentation zu dem Thema, micha667 hat die Stellen genannt, so what?
micha667 hat geschrieben:in der datei contenido/classes/class.search.php
in der funktion:
getSearchContent()
an zwei stellen bei zeile 1546:
Code: Alles auswählen
$cms_content = strip_tags($article->getContent($cms_type, $cms_nr));
und zeile 1566
Code: Alles auswählen
$cms_content = strip_tags($article->getContent($cms_type, $id));
Wenn man jeweils hinter die vorletzte Klammer so etwas wie ,'<br><p>' schreibt, sind br und p zugelassen, ob das so auch mit <br/> funktioniert, muss man testen... (-> strip_tags($article->...)
,'<br><p>');).
Und wenn es ganz hart auf hart kommt (und strip_tags mit allowed tags-Angabe doch noch etwas zu viel rausfiltert), setzt man vor die strip_tags-Zeile eine Umwandlung und danach eine Rückwandlung (Beispiel für Zeile 1546, siehe auch
http://www.php.net/manual/en/function.str-replace.php):
Code: Alles auswählen
$sData = $article->getContent($cms_type, $cms_nr);
$sData = str_replace("<strong>", "!strong!", $sData);
$sData = str_replace("</strong>", "!/strong!", $sData);
$sData = strip_tags($sData, <hiervielleichtnochAngaben>);
$sData = str_replace("!strong!", "<strong>", $sData);
$sData = str_replace("!/strong!>", "</strong>", $sData);
$cms_content = $sData;
Dieses Beispiel ist natürlich sinnlos, da das auch mit der Angabe "<strong>" als allowed tag hätte gelöst werden können.
die mir sowohl die htmlentities
Welche? Die Funktion sollte nur Tags filtern, keine ö usw.
Gruß
HerrB
Verfasst: Fr 23. Jun 2006, 23:45
von mvf
HerrB hat geschrieben:Jetzt werden wir aber faul... Jungs, sooo schwer ist es nicht und ihr gebt mir gerade ein bisschen schnell auf.
nicht wirklich, allerdings sitze ich hier schon wieder seit 16 std (nicht daran

) und es stand nicht wirklich auf meiner prio ganz oben.
im endeffekt funzt es prima, ist ienfach nur schon zu spät und die konzentration will nicht mehr
sorry mea maxima culpa,
