suchausgabe, leerzeichenproblem bei <br /> im artikel

Gesperrt
micha667
Beiträge: 143
Registriert: Di 4. Mai 2004, 11:54
Kontaktdaten:

suchausgabe, leerzeichenproblem bei <br /> im artikel

Beitrag 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
HerrB
Beiträge: 6935
Registriert: Do 22. Mai 2003, 12:44
Wohnort: Berlin
Kontaktdaten:

Beitrag 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
Bitte keine unaufgeforderten PMs oder E-Mails -> use da Forum!

Newsletter: V4.4.x | V4.6.0-15 (Module, Backend) | V4.6.22+
Standardartikelliste: V4.4.x | V4.6.x
http://www.contenido.org/forum/search.php | http://faq.contenido.org | http://www.communido.net
micha667
Beiträge: 143
Registriert: Di 4. Mai 2004, 11:54
Kontaktdaten:

Beitrag 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
micha667
Beiträge: 143
Registriert: Di 4. Mai 2004, 11:54
Kontaktdaten:

Beitrag 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
lunsen_de
Beiträge: 302
Registriert: Mo 17. Okt 2005, 20:26
Wohnort: Weimar
Kontaktdaten:

Beitrag 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
micha667
Beiträge: 143
Registriert: Di 4. Mai 2004, 11:54
Kontaktdaten:

Beitrag 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));
HerrB
Beiträge: 6935
Registriert: Do 22. Mai 2003, 12:44
Wohnort: Berlin
Kontaktdaten:

Beitrag von HerrB »

Öhm ... sicher, dass diese Änderung ein <br> durch ein Leerzeichen ersetzt?

Gruß
HerrB
Bitte keine unaufgeforderten PMs oder E-Mails -> use da Forum!

Newsletter: V4.4.x | V4.6.0-15 (Module, Backend) | V4.6.22+
Standardartikelliste: V4.4.x | V4.6.x
http://www.contenido.org/forum/search.php | http://faq.contenido.org | http://www.communido.net
micha667
Beiträge: 143
Registriert: Di 4. Mai 2004, 11:54
Kontaktdaten:

Beitrag von micha667 »

äh, nein, aber das ist die ursprungsstelle an der die änderung eingefügt werden muß.

micha
lunsen_de
Beiträge: 302
Registriert: Mo 17. Okt 2005, 20:26
Wohnort: Weimar
Kontaktdaten:

Beitrag 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
mvf
Beiträge: 1758
Registriert: Mo 1. Aug 2005, 00:35
Wohnort: in der schönen Hallertau, mitten im Hopfen
Kontaktdaten:

Beitrag 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

:idea:
Grüsse, Guido

"A common mistake that people make when trying to design something completely foolproof is to underestimate the ingenuity of complete fools."
Mostly Harmless - Douglas Adams
HerrB
Beiträge: 6935
Registriert: Do 22. Mai 2003, 12:44
Wohnort: Berlin
Kontaktdaten:

Beitrag 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 &ouml; usw.

Gruß
HerrB
Bitte keine unaufgeforderten PMs oder E-Mails -> use da Forum!

Newsletter: V4.4.x | V4.6.0-15 (Module, Backend) | V4.6.22+
Standardartikelliste: V4.4.x | V4.6.x
http://www.contenido.org/forum/search.php | http://faq.contenido.org | http://www.communido.net
mvf
Beiträge: 1758
Registriert: Mo 1. Aug 2005, 00:35
Wohnort: in der schönen Hallertau, mitten im Hopfen
Kontaktdaten:

Beitrag 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, :oops:
Grüsse, Guido

"A common mistake that people make when trying to design something completely foolproof is to underestimate the ingenuity of complete fools."
Mostly Harmless - Douglas Adams
Gesperrt