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);

Répondre

Vous devez être connecté pour envoyer un commentaire.