com.semiodesign.URL
A force de développer avec swfaddress et des url en flash, voilà une petite classe de manipulation d’URL
/**
* @version 1.2
*/
class com.semiodesign.URL extends String {
public var value :String;
private var uri_arr :Array;
public function URL(p_uri:String){
value = p_uri;
uri_arr = value.split(« / »);
}
/**
* Returns length of an url
* ex: level1/level2/level3 returns 3
*/
public function get length(){
return uri_arr.length;
}
/**
* Returns id of the asked level
* ex: on level1/level2/level3
* idAtLevel(2) returns level2
*/
public function idAtLevel(p_id:Number):String{
if (p_id>uri_arr.length) return undefined;
return uri_arr[p_id-1];
}
/**
* Returns url of the asked level
* ex: on level1/level2/level3
* urlAtLevel(2) returns level1/level2
*/
public function urlAtLevel(p_id:Number):String{
var tmp_arr:Array;
if (p_id>uri_arr.length) return undefined;
tmp_arr = uri_arr.slice(0,p_id);
return tmp_arr.join(« / »);
}
/**
* Returns url from the asked level
* ex: on level1/level2/level3
* urlFromLevel(2) returns level2/level3
*/
public function urlFromLevel(p_id:Number):String{
var tmp_arr:Array;
if (p_id>uri_arr.length) return undefined;
tmp_arr = uri_arr.slice(p_id-1);
return tmp_arr.join(« / »);
}
}
Et quelques exemples d’utilisations :
url = new URL(pUri);
if (url.value == « ») {
}
lang = url.idAtLevel(1);
part = url.urlAtLevel(2);
