/**
  * Builds a URL from link parameters
  * @param	parameters		Array of link parameters containing...
  * 			page			String of page name
  * 			type			String of type name
  * 			action			String of action name
  * 			id				Scalar of ID of row
  * 			parameter		Scalar parameter or Array of parameters
  */
 public static function url(array $parameters)
 {
     global $wgTitle;
     // Gets the base url
     if (!self::$urlBase) {
         self::$urlBase = $wgTitle->getFullUrl();
     }
     $parameters = array_merge(array('page' => null, 'type' => null, 'id' => null, 'action' => null, 'parameter' => null, 'limit' => null, 'offset' => null), $parameters);
     $url = self::$urlBase;
     // Checks if the page is set now
     if ($parameters['page'] !== null) {
         // Adds page to url
         $url .= '/' . $parameters['page'];
         if ($parameters['type'] !== null) {
             // Adds type to url
             $url .= ':' . $parameters['type'];
             // Checks if object id was given
             if ($parameters['id'] !== null) {
                 // Adds id to url
                 $url .= ':' . $parameters['id'];
             }
         }
         // Checks if action was given
         if ($parameters['action'] !== null) {
             // Adds action to url
             $url .= '/' . $parameters['action'];
             // Checks if parameter was given
             if ($parameters['parameter'] !== null) {
                 if (is_array($parameters['parameter'])) {
                     // Adds parameter to url
                     $url .= ':' . implode(',', $parameters['parameter']);
                 } else {
                     // Adds parameter to url
                     $url .= ':' . $parameters['parameter'];
                 }
             }
         } elseif ($parameters['limit'] !== null) {
             $url .= '/';
         }
         if ($parameters['limit'] !== null) {
             $url .= '/' . $parameters['limit'];
             if ($parameters['offset'] !== null) {
                 $url .= ':' . $parameters['offset'];
             }
         }
     }
     // Returns url
     return $url;
 }