Example #1
0
 public static function url($key, $options = array(), $external = false)
 {
     $values = array();
     $link = $external ? Config::getHTMLBase() : '';
     if (Req::hasget('environment')) {
         $options['environment'] = Req::get('environment');
     }
     if (Config::$sef) {
         Lib::load('router');
         $segments = array();
         foreach (Router::getRouters() as $router) {
             if (is_string($router->allowedBuild) && $key !== $router->allowedBuild) {
                 continue;
             }
             if (is_array($router->allowedBuild) && !in_array($key, $router->allowedBuild)) {
                 continue;
             }
             $router->encode($key, $options, $segments);
         }
         if (!empty($segments)) {
             $link .= implode('/', $segments);
         }
     } else {
         $link .= 'index.php';
     }
     if (!empty($options)) {
         $values = array();
         foreach ($options as $k => $v) {
             $values[] = urlencode($k) . '=' . urlencode($v);
         }
         $queries = implode('&', $values);
         if (!empty($queries)) {
             $queries = '?' . $queries;
         }
         $link .= $queries;
     }
     return $link;
 }