AdvModRewriting function

Gesperrt
MyAccount
Beiträge: 383
Registriert: Do 17. Jul 2003, 10:21

AdvModRewriting function

Beitrag von MyAccount » Mo 19. Dez 2005, 22:53

Hallo,

AdvModRewriting funktioniert bisher einwandfrei bei mir. Leider finde ich mich in den Funktionen nicht so richtig zurecht. Ich suche nämlich eine Möglichkeit die URL nur aus Kleinbuchstaben aufzubauen. PHP bietet hier ja die strtolower()-Funktion. Aber wo muss die eingebaut werden?

Hier jedenfalls hat strtolower() keine Auswirkungen auf die URL:

Code: Alles auswählen

class ModRewrite {
	
    /**
     * Constructor Function
     * @param
     */
    function ModRewrite() {
        // empty
    } // end function



	/**
     * create_websafe_name()
	 *
     * Returns WebSafe name
	 * @param string original name to convert
	 * @param integer id of category or article
     * @return string newname
     */
	function create_websafe_name( $str_original_name = "", $int_id = 0 ) {
		$arr_original	= Array(
        "/Ú/","/Ù/","/Û/","/Ì/","/Í/","/Î/","/Ê/","/É/","/È/","/Á/","/À/","/Â/","/Ó/","/Ò/","/Ô/",
        "/ú/","/ù/","/û/","/ì/","/í/","/î/","/ê/","/é/","/è/","/á/","/à/","/â/","/ó/","/ò/","/ô/",
        "/Ä/","/ä/","/Ö/","/ö/","/Ü/","/ü/","/ß/","/ /","/&/","/\//","/\\\\/","/\+/");
		$arr_replace	= Array( 
         "U" , "U" , "U" , "I" , "I" , "I" , "E" , "E" , "E" , "A" , "A" , "A" , "O" , "O" , "O",
         "u" , "u" , "u" , "i" , "i" , "i" , "e" , "e" , "e" , "a" , "a" , "a" , "o" , "o" , "o",
         "Ae","ae" , "Oe", "oe", "Ue", "ue", "ss", "-" , "-" , "-"  ,"-"     ,"-");
		
		// replace umlaut with websafe characters
		$str_new_name = preg_replace($arr_original, $arr_replace, $str_original_name);
		
		// remove non validating characters in urls 
		$str_new_name = preg_replace("/([^a-zA-Z0-9-_\.~])/i", "", $str_new_name);
		
		// add article id or category id, if necessary
		if ($int_id > 0) {
			$str_new_name.= "_" . $int_id;
		}
		/* Added by MyAccount */
		$str_new_name = strtolower($str_new_name);
		return $str_new_name;
	} // end function

emergence
Beiträge: 10645
Registriert: Mo 28. Jul 2003, 12:49
Wohnort: Austria
Kontaktdaten:

Beitrag von emergence » Di 20. Dez 2005, 12:59

ich kenn das teil zu wenig...
wird die create_websafe_name überhaupt aufgerufen ?

vielleicht hilft es ja mal den browser cache zu leeren oder bei der url mal &force=1 anzuhängen...
*** make your own tools (wishlist :: thx)

MyAccount
Beiträge: 383
Registriert: Do 17. Jul 2003, 10:21

Beitrag von MyAccount » Di 20. Dez 2005, 13:15

Danke emergence,

ob die aufgerufen wird, weiß ich auch nicht. Wie kann man das denn prüfen? einfach ein ECHO rein?

Cache und con_code hab ich geleert. und www.domain.de/HOME/?force=1 ändert auch nichts. Was ist das überhaupt?

emergence
Beiträge: 10645
Registriert: Mo 28. Jul 2003, 12:49
Wohnort: Austria
Kontaktdaten:

Beitrag von emergence » Di 20. Dez 2005, 13:17

MyAccount hat geschrieben:ob die aufgerufen wird, weiß ich auch nicht. Wie kann man das denn prüfen? einfach ein ECHO rein?
ja einfach ein echo rein...
MyAccount hat geschrieben:Cache und con_code hab ich geleert. und www.domain.de/HOME/?force=1 ändert auch nichts. Was ist das überhaupt?
das force=1 erstellt nur den eintrag in der con_code neu, aber nur für diesen artikel
ein löschen der con_code hat an sich den selben effekt aber für alle artikel
*** make your own tools (wishlist :: thx)

MyAccount
Beiträge: 383
Registriert: Do 17. Jul 2003, 10:21

Beitrag von MyAccount » Di 20. Dez 2005, 14:03

Ich hab's! :D :D :D

In der Klasse contenido/classes/class.modrewrite.php das hier in der function build_new_url() suchen:

Code: Alles auswählen

      $str_full_url = $str_new_url . $str_categories . $str_article . $str_additional_params;
und die Zeile davor.

Code: Alles auswählen

      $str_categories=strtolower($str_categories);
Das war's.

Danke emergence

mvf
Beiträge: 1758
Registriert: Mo 1. Aug 2005, 00:35
Wohnort: in der schönen Hallertau, mitten im Hopfen
Kontaktdaten:

Beitrag von mvf » Di 27. Dez 2005, 20:49

MyAccount hat geschrieben:

Code: Alles auswählen

      $str_full_url = $str_new_url . $str_categories . $str_article . $str_additional_params;
und die Zeile davor.

Code: Alles auswählen

      $str_categories=strtolower($str_categories);
oder

Code: Alles auswählen

      $str_full_url=strtolower($str_full_url);
hinter deine erste zeile, dann ist alles einfach klein geschrieben ;)
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