Liebe REDAXO-Fans,
wenn ich ein paar Testsuchen durchführe, werden keine Ergebnisse angezeigt, sofern mein gesuchter Testbegriff einen Umlaut enthält. Kann das sein? Wenn ja, gibt es eine Lösung dafür?
Viele Grüße
glowy
Hallo,
Wir haben in letzter Zeit festgestellt, dass die Kommunikation via Slack viel schneller und zielführender ist als ein Beitrag im Forum. Aufgrund der neuen und besseren Möglichkeiten der Kommunikation haben wir uns entschlossen das Forum nur noch als Archiv zur Verfügung zu stellen. Somit bleibt es weiterhin möglich hier nach Lösungen zu suchen. Neue Beiträge können nicht mehr erstellt werden.
Wir empfehlen, für deine Fragen/Probleme Slack zu nutzen. Dort sind viele kompetente Benutzer aktiv und beantworten jegliche Fragen, gerne auch von REDAXO-Anfängern! Slack wird von uns sehr intensiv und meistens "rund um die Uhr" benutzt
Selbst einladen kannst Du dich hier: https://redaxo.org/slack/
Wir haben in letzter Zeit festgestellt, dass die Kommunikation via Slack viel schneller und zielführender ist als ein Beitrag im Forum. Aufgrund der neuen und besseren Möglichkeiten der Kommunikation haben wir uns entschlossen das Forum nur noch als Archiv zur Verfügung zu stellen. Somit bleibt es weiterhin möglich hier nach Lösungen zu suchen. Neue Beiträge können nicht mehr erstellt werden.
Wir empfehlen, für deine Fragen/Probleme Slack zu nutzen. Dort sind viele kompetente Benutzer aktiv und beantworten jegliche Fragen, gerne auch von REDAXO-Anfängern! Slack wird von uns sehr intensiv und meistens "rund um die Uhr" benutzt
Selbst einladen kannst Du dich hier: https://redaxo.org/slack/
- timo.huber
- Beiträge: 305
- Registriert: 22. Dez 2009, 13:26
Tach
schau dir mal diesen Link an:
Wörter mit Umlauten und Sonderzeichen werden bei der Suche nicht gefunden. Warum ist das so und wie kann ich das beheben?
http://wiki.redaxo.de/index.php?n=R4.XSearch#faq2
mfg
schau dir mal diesen Link an:
Wörter mit Umlauten und Sonderzeichen werden bei der Suche nicht gefunden. Warum ist das so und wie kann ich das beheben?
http://wiki.redaxo.de/index.php?n=R4.XSearch#faq2
mfg
$glaskugel = new rex_glaskugel();
$loesung = $glaskugel->getLoesung("problem");
foreach ($loesung as $l)
{
echo $l;
}
$loesung = $glaskugel->getLoesung("problem");
foreach ($loesung as $l)
{
echo $l;
}
Hallo glowy!
Wenn du UTF-8 verwendest, solltest du aber dringend vermeiden, dass Zeichen mit ihren Entitäten ersetzt werden.
Wie das geht, hat Andreas erklärt: http://forum.redaxo.de/sutra70918.html#70918
Das ist der Grund, warum Umlaute nicht gefunden werden.glowy hat geschrieben:In der Tabelle "rex_article" stehen "normale "Umlaute" in den Feldern, z. B. "ä" oder "ü". Im Gegensatz dazu steht in "rex_article_slice" "ä" oder "ü".
Damit meinte ich, dass du TinyMCE verwendest, richtig?glowy hat geschrieben:Was meinst du mit "Wie kommen die Texte in die Datenbank"?
Wenn du UTF-8 verwendest, solltest du aber dringend vermeiden, dass Zeichen mit ihren Entitäten ersetzt werden.
Wie das geht, hat Andreas erklärt: http://forum.redaxo.de/sutra70918.html#70918
Derzeit steht im Header des Templates
<meta http-equiv="content-type" content="text/html; charset=ISO-8859-1" />
Wie sieht denn jetzt der einfachste Weg aus, um das Problem mit den Umlauten in der Suche bzw. generell zu lösen und dafür zu sorgen, dass auch französische Sonderzeichen, spanische und deutsche korrekt angezeigt werden?
Viele Grüße, glowy
<meta http-equiv="content-type" content="text/html; charset=ISO-8859-1" />
Wie sieht denn jetzt der einfachste Weg aus, um das Problem mit den Umlauten in der Suche bzw. generell zu lösen und dafür zu sorgen, dass auch französische Sonderzeichen, spanische und deutsche korrekt angezeigt werden?
Viele Grüße, glowy
Der Einfachste: Behandle die Sucheingabe ebenfalls mit htmlentities.glowy hat geschrieben:Wie sieht denn jetzt der einfachste Weg aus, um das Problem mit den Umlauten in der Suche bzw. generell zu lösen und dafür zu sorgen, dass auch französische Sonderzeichen, spanische und deutsche korrekt angezeigt werden?
Der Beste: Stelle auf UTF-8 um und vermeide jegliche Umwandlung von Zeichen bei der Abspeicherung. Erst bei der Ausgabe muss kontextgerecht maskiert werden.
Die Anpassung im Code in der Datei class.rex_sql.inc.php habe ich jetzt gemacht, sie ändert allerdings nichts am Problem. Würde jetzt gern das mit TinyMCE ausprobieren, muss ich hierfür zwangsläufig den etwas umfangreicheren Codeschnipsel in die Modul-Eingabe einfügen (s. http://forum.redaxo.de/sutra70918.html#70918)?
Verstehe hier nicht genau, wo ich was einfügen muss, damit die Zeichen unmaskiert gespeichert werden.
Komischerweise funktioniert bei der deutschen Version die Umlautanzeige, klicke ich allerdings auf die englische Flagge per Sprachwähler, werden statt 'ä' und 'ü' komische Zeichen angezeigt.
Vielen Dank nochmal für eure Hilfe.
Verstehe hier nicht genau, wo ich was einfügen muss, damit die Zeichen unmaskiert gespeichert werden.
Komischerweise funktioniert bei der deutschen Version die Umlautanzeige, klicke ich allerdings auf die englische Flagge per Sprachwähler, werden statt 'ä' und 'ü' komische Zeichen angezeigt.
Vielen Dank nochmal für eure Hilfe.
Hi glowy!
So umfangreich ist die Änderung des Moduls ja gar nicht. Du musst einfach nur die zusätzlich Konfiguration an die Funktion übergeben.
Ich nehm´ mal das erweiterte Beispielmodul als Grundlage:Hier ist nur die Zeile mit entity_encoding : 'raw' hinzugekommen.
Du hast jetzt aber ein größeres Problem: Du musst nämlich alle Slices, in denen der Tiny eingesetzt wird, editieren und neu abspeichern, damit die Änderungen in die Datenbank übernommen werden. =)
Achja, und ganz wichtig: Die Seite muss auf UTF-8 laufen.
So umfangreich ist die Änderung des Moduls ja gar nicht. Du musst einfach nur die zusätzlich Konfiguration an die Funktion übergeben.
Ich nehm´ mal das erweiterte Beispielmodul als Grundlage:
Code: Alles auswählen
<strong>Fliesstext:</strong><br />
<?php
if (class_exists('rexTinyMCEEditor'))
{
$wysiwigvalue =<<<EOD
REX_VALUE[1]
EOD;
// Neue Instanz der Klasse
$tiny = new rexTinyMCEEditor();
// Buttons setzen (hier alle Buttons der Standardkonfiguration)
$tiny->buttons1 = 'bold,italic,underline,strikethrough,sub,sup,|,forecolor,backcolor,styleselect,formatselect,|,charmap,cleanup,removeformat,|,preview,code,fullscreen';
$tiny->buttons2 = 'cut,copy,paste,pastetext,pasteword,|,justifyleft,justifycenter,justifyright,justifyfull,|,bullist,numlist,|,link,unlink,redaxoMedia,redaxoEmail,anchor,|,advhr,image,emotions,media,syntaxhighlighter';
// zusaetzliche Buttons fuer Undo/Redo, Tabellen und Template
$tiny->buttons3 = 'undo,redo,|,tablecontrols,visualaid,|,template,help';
$tiny->buttons4 = '';
// Breite und Hoehe des Editors
$tiny->width = 555;
$tiny->height = 350;
// Valides XHTML generieren true/false
$tiny->validxhtml = false;
// Hier koennen eigene Werte ueber die Standardwerte ueberlagert werden
//
// Achtung:
// bei einigen Parametern (z.B. Plugins) muss der Wert aus der
// Standardkonfiguration e r w e i t e r t werden
// Hier als Beispiel erweitert um die Plugins syntaxhighlighter, table, template
$mytinyconfig =<<<EOD
plugins : 'advhr,advimage,advlink,contextmenu,emotions,fullscreen,inlinepopups,media,paste,preview,redaxo,safari,visualchars,syntaxhighlighter,table,template',
skin : 'o2k7',
skin_variant : 'silver',
entity_encoding : 'raw'
EOD;
// eigene Konfiguration übernehmen
$tiny->configuration = $mytinyconfig;
// WYSIWYG-Content zuordnen
$tiny->content = $wysiwigvalue;
// Id des REX_VALUES zuordnen
$tiny->id = 1;
// WYSIWYG-Editor anzeigen
$tiny->show();
}
else
{
echo rex_warning('Dieses Modul benötigt das "TinyMCE"-Addon!');
}
?>
Du hast jetzt aber ein größeres Problem: Du musst nämlich alle Slices, in denen der Tiny eingesetzt wird, editieren und neu abspeichern, damit die Änderungen in die Datenbank übernommen werden. =)
Achja, und ganz wichtig: Die Seite muss auf UTF-8 laufen.
-
- Beiträge: 126
- Registriert: 20. Okt 2005, 20:52
- Wohnort: 23966 Tressow
- Kontaktdaten: Website
Die kompletten Inhalte lassen sich sehr einfach konvertieren, indem man einen sql Export von der rex_article_slice macht und diese komplett mit einem kleinen php skript behandelt:
Und diese Datei dann wieder in sql importiert. Klappt prima.
Gruß Wolfgang
Code: Alles auswählen
<?
$datei = 'pfad/zu_deiner/datei';
$contens = file_get_contents($datei);
$contens = html_entity_decode($contens,ENT_NOQUOTES,'UTF-8');
file_put_contents($datei,$contens);
?>
Gruß Wolfgang