Umlaute in den Pretty URLs umwandeln

Post Reply
User avatar
Torsten_Kelsch
Master Bludit
Posts: 150
Joined: Thu Aug 27, 2015 10:24 pm
Location: Germany
Contact:

Tue Oct 10, 2017 7:16 pm

Wenn im Backend aus dem Titel einer erstellten Seite automatisch ein Pretty URL erzeugt wird (rechte Seitenleiste neben dem Editor), dann werden Umlaute zu Vokalen gemacht, also zum Beispiel Malerwerkstätten in malerwerkstatten. Es ist zwar kein großer Aufwand, etwa ein e einzufügen und malerwerkstaetten daraus zu machen, aber schöner wäre natürlich ein Automatismus.

Leider reichen meine PHP-Kenntnisse nicht aus, um selbst so was zu schreiben. Vielleicht hat jemand eine Idee, wie man das lösen könnte. Ich denke da an ein Array wie bei dem Workaround für deutsche Monatsnamen (https://planet-bludit.ch/deutsche-monate-und-wochentage), wüsste aber jetzt nicht, wie und wo so etwas einzufügen wäre, möglichst natürlich nicht im Core.
ON ERROR GOTO BED
User avatar
Edi
Site Admin
Posts: 1284
Joined: Sun Aug 09, 2015 5:01 pm
Location: Zurich
Contact:

Mon Oct 16, 2017 1:07 pm

Das lässt sich tatsächlich ähnlich machen.

Dafür kann folgendes in den Dateien new-content.php (nach Zeile 218) und edit-content.php (nach Zeile 244) im Verzeichnis /bl-kernel/admin/views ergänzt werden:

Code: Select all

  	text = text.toLowerCase();
  	text = text.replace(/\u00e4/g, 'ae');
  	text = text.replace(/\u00f6/g, 'oe');
  	text = text.replace(/\u00fc/g, 'ue');
  	text = text.replace(/\u00df/g, 'ss');
Der Code sieht dann so aus:

Code: Select all

	$("#jstitle").keyup(function() {

        	var text = $(this).val();

  		text = text.toLowerCase();
  		text = text.replace(/\u00e4/g, 'ae');
  		text = text.replace(/\u00f6/g, 'oe');
  		text = text.replace(/\u00fc/g, 'ue');
  		text = text.replace(/\u00df/g, 'ss');

		var parent = $("#jsparent").val();

		generateSlug(text, parent, key, $("#jsslug"));
	});
Planet Bludit, Tipps, Snippets und nützliche Links. - Newsletter, Informationen zu Bludit (auf Deutsch).
User avatar
Torsten_Kelsch
Master Bludit
Posts: 150
Joined: Thu Aug 27, 2015 10:24 pm
Location: Germany
Contact:

Mon Oct 16, 2017 1:51 pm

Cool, danke, werde ich ausprobieren. Allerdings wird es ja dann bei einem Core-Update überschrieben. Kann man das nicht auch übers Template lösen? Das wäre famos.
ON ERROR GOTO BED
User avatar
Edi
Site Admin
Posts: 1284
Joined: Sun Aug 09, 2015 5:01 pm
Location: Zurich
Contact:

Mon Oct 16, 2017 2:33 pm

Es gibt verschiedene Möglichkeiten, wie das gemacht werden könnte. Diego will sich das auch überlegen.
Planet Bludit, Tipps, Snippets und nützliche Links. - Newsletter, Informationen zu Bludit (auf Deutsch).
Post Reply