Seite 1 von 1

AdvModRewriting function

Verfasst: Mo 19. Dez 2005, 22:53
von MyAccount
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

Verfasst: Di 20. Dez 2005, 12:59
von emergence
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...

Verfasst: Di 20. Dez 2005, 13:15
von MyAccount
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?

Verfasst: Di 20. Dez 2005, 13:17
von emergence
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

Verfasst: Di 20. Dez 2005, 14:03
von MyAccount
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

Verfasst: Di 27. Dez 2005, 20:49
von mvf
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 ;)