private Nachricht auf str durchsuchen?

Du suchst einen bestimmten Mod, weißt aber nicht genau wo bzw. ob er überhaupt existiert? Wenn dir dieser Artikel nicht weiterhilft, kannst du hier den von dir gewünschten/gesuchten Mod beschreiben ...
Falls ein Mod-Autor eine der Anfragen hier aufnimmt, um einen neuen Mod zu entwickeln, geht's in [3.0.x] Mods in Entwicklung weiter.
Forumsregeln
phpBB 3.0 hat das Ende seiner Lebenszeit überschritten
phpBB 3.0 wird nicht mehr aktiv unterstützt. Insbesondere werden - auch bei Sicherheitslücken - keine Patches mehr bereitgestellt. Der Einsatz von phpBB 3.0 erfolgt daher auf eigene Gefahr. Wir empfehlen einen Umstieg auf die neuste phpBB-Version, welches aktiv weiterentwickelt wird und für welches regelmäßig Updates zur Verfügung gestellt werden.
tuxx123
Mitglied
Beiträge: 7
Registriert: 09.05.2009 00:03

private Nachricht auf str durchsuchen?

Beitrag von tuxx123 »

Servus,

ich möchte gerne die privaten Nachrichten vor dem Absenden, durchsuchen nach divesen Zeichen wie z.B. alle Umlaute. DIese möchte ich dann mittels str_replace ersetzen bzw. umwandeln.

kann mir Jemand verraten in welcher Datei ich meine Umwandlung hinzufügen kann? vielleicht sogar ca. an welcher Stelle? :)

danke...!
Benutzeravatar
oxpus
Ehemaliges Teammitglied
Beiträge: 5395
Registriert: 03.02.2003 12:33
Wohnort: Bad Wildungen
Kontaktdaten:

Re: private Nachricht auf str durchsuchen?

Beitrag von oxpus »

Öhm, ich verstehe zwar nicht ganz, was das für einen Sinn haben soll, aber bitte:
Mit der Datei includes/functions_privmsgs.php werden die PMs gespeichert.
Dort in der Funktion submit_pm(....) kannst Du letztmalig Einfluss auf die Inhalte nehmen, bevor sie in die Datenbank geschrieben werden.
Idealerweise spätestens vor

Code: Alles auswählen

	$sql = '';

	switch ($mode)
	{
		case 'reply':
		case 'quote':
			$root_level = ($data['reply_from_root_level']) ? $data['reply_from_root_level'] : $data['reply_from_msg_id'];
Dazu:
Der Titel der PM ist in $subject, der Text dagegen in $data['message'] enthalten.
Grüße
OXPUS
Kein Support bei unaufgeforderten PNs, E-Mails oder auf anderem Weg!!
tuxx123
Mitglied
Beiträge: 7
Registriert: 09.05.2009 00:03

Re: private Nachricht auf str durchsuchen?

Beitrag von tuxx123 »

das geht bei mir irgendwie nicht?
kann mir Jemand die Position ca. sagen wo ich

Code: Alles auswählen

str_replace("ä", "ae", $data['message']);
str_replace("ü", "ue", $data['message']);
str_replace("ö", "oe", $data['message']);
einfügen sollte?!
ich will komplett die Umlaute deaktivieren, also dass sie komplett bei jeder PM umgewandelt werden,
kann mir da Jemand helfen? :(
Benutzeravatar
oxpus
Ehemaliges Teammitglied
Beiträge: 5395
Registriert: 03.02.2003 12:33
Wohnort: Bad Wildungen
Kontaktdaten:

Re: private Nachricht auf str durchsuchen?

Beitrag von oxpus »

Die Umlaute sollte eigentlich bereits als UTF-8-Code vorliegen.
Lasse dir doch mal mit

Code: Alles auswählen

echo ($data['message']);
einen Text anzeigen, der Umlaute enthält. Dann solltest du diesen Code sehen, den du dann ersetzen kannst.
Grüße
OXPUS
Kein Support bei unaufgeforderten PNs, E-Mails oder auf anderem Weg!!
tuxx123
Mitglied
Beiträge: 7
Registriert: 09.05.2009 00:03

Re: private Nachricht auf str durchsuchen?

Beitrag von tuxx123 »

um es vielleicht etwas genauer zu erklären,
ich möchte wenn eine PM abgeschickt wird, dass diese PM, mit dme umgewandelten Umlauten in die DB gespeichert wird.
also ich möchte bei den PMs keine Umlaute in der Datenbank haben.

Also frage ich mich, wo ich am besten meinen Code einfüge, dass PHPBB es so speichert :>
Benutzeravatar
oxpus
Ehemaliges Teammitglied
Beiträge: 5395
Registriert: 03.02.2003 12:33
Wohnort: Bad Wildungen
Kontaktdaten:

Re: private Nachricht auf str durchsuchen?

Beitrag von oxpus »

tuxx123 hat geschrieben:um es vielleicht etwas genauer zu erklären,
ich möchte wenn eine PM abgeschickt wird, dass diese PM, mit dme umgewandelten Umlauten in die DB gespeichert wird.
also ich möchte bei den PMs keine Umlaute in der Datenbank haben.

Also frage ich mich, wo ich am besten meinen Code einfüge, dass PHPBB es so speichert :>
Warum eigentlich nicht?
Die werden doch mit UTF-8-Zeichen ersetzt und problemlos verwaltet?
Grüße
OXPUS
Kein Support bei unaufgeforderten PNs, E-Mails oder auf anderem Weg!!
tuxx123
Mitglied
Beiträge: 7
Registriert: 09.05.2009 00:03

Re: private Nachricht auf str durchsuchen?

Beitrag von tuxx123 »

weil ich einen Fehler bekomme, dass ich zuwenig memory_size habe, sobald man eine PM mit Umlauten schreibt. Da mein Hoster 1€ im Monat will, dass er den Speicherbedarf für ein PHP-Script erhöht, will ich dies einfach umgehen und vor dem absenden die Umlaute umwandeln :)

also, kann mir da einer helfen an welche Stelle ich den Code packen muss?

Gruß
Benutzeravatar
oxpus
Ehemaliges Teammitglied
Beiträge: 5395
Registriert: 03.02.2003 12:33
Wohnort: Bad Wildungen
Kontaktdaten:

Re: private Nachricht auf str durchsuchen?

Beitrag von oxpus »

Ah ja. Dabei gibt es aber auch so viele Free Hoster, die hier weniger Beschränkungen haben. Musst Du aber wissen, da will ich dir nicht reinreden.

Okay, zum Thema:
Öffne die Datei includes/ucp/ucp_pm_compose.php, finde die Zeile

Code: Alles auswählen

		$message_parser->message = utf8_normalize_nfc(request_var('message', '', true));
und ersetze diese durch

Code: Alles auswählen

		$pm_message = request_var('message', '', true);
		$find_ary = array('ä', 'Ä', 'ö', 'Ö', 'ü', 'Ü', 'ß');
		$replace_ary = array('ae', 'Ae', 'oe', 'Oe', 'ue', 'Ue', 'ss');
		$pm_message = str_replace($find_ary, $replace_ary, $pm_message);
		$message_parser->message = utf8_normalize_nfc($pm_message);
Grüße
OXPUS
Kein Support bei unaufgeforderten PNs, E-Mails oder auf anderem Weg!!
tuxx123
Mitglied
Beiträge: 7
Registriert: 09.05.2009 00:03

Re: private Nachricht auf str durchsuchen?

Beitrag von tuxx123 »

habs genau so gemacht, bringt allerdings noch immer den fehler wenn ich die PM absende, vielleicht doch noch an einer anderen stelle? :(
danke dir trotzdem, das müsste doch eigentlich gehen?!
wolfman24
Mitglied
Beiträge: 892
Registriert: 25.09.2005 13:17

Re: private Nachricht auf str durchsuchen?

Beitrag von wolfman24 »

So wie ich das sehe ist der einzige Weg, die Speichermeldung zu vermeiden, den Speicher zu erhöhen, oder besser gesagt das Limit zu erhöhen. Was du da mit dem Ersetzen der Ü's durch UE's versucht bringt nichts, da das Problem ja nicht die Datenbank ist. Ich bin mir nicht sicher, aber das Problem wird die Zeile

Code: Alles auswählen

request_var('message', '', true)
sein, da hier die Nachricht in den Speicher gelesen und einer Variable übergeben wird. Die Verarbeitung der message im Speicher schlägt wegen der Umlaute fehl, die dürften halt gar nicht erst eingetippt werden.

Wie hoch ist denn der Wert von memory_size?

Kann auch sein, daß ich mich irre, ich bin halt kein Profi was php betrifft.
Antworten

Zurück zu „[3.0.x] Mod Suche/Anfragen“