private static function parse_map(Tag $map_tag, $url, $path, $scope, $base_class, $secure, $update, $map_index, $get_meta) { $params = $args = $vars = $modules = $meta = array(); if (!$map_tag->is_param('class')) { $map_tag->param('class', $base_class); } $params['url'] = $url; $params['scope'] = $scope; $params['map_index'] = $map_index; $params['redirect'] = File::path_slash($map_tag->in_param('redirect'), false, false); $params['template'] = File::path_slash($map_tag->in_param('template'), false, false); $params['secure'] = $map_tag->in_param('secure', $secure) === 'true'; $params['update'] = $map_tag->in_param('update', $update) === 'true'; if (!empty($params['template']) && !empty($path)) { $params['template'] = $path . '/' . $params['template']; } foreach (array('class', 'method', 'name') as $c) { $params[$c] = $map_tag->in_param($c); } foreach ($map_tag->in('module') as $t) { $modules[] = self::parse_module($t); } foreach ($map_tag->in('var') as $t) { $vars[] = self::parse_var($t); } foreach ($map_tag->in('arg') as $a) { $args[$a->in_param('name')] = $a->in_param('value', $a->value()); } if ($get_meta) { $meta['summary'] = $map_tag->in_param('summary'); } list($params['vars'], $params['modules'], $params['args'], $params['meta']) = array($vars, $modules, $args, $meta); if (!empty($params['class']) && empty($params['method'])) { Exceptions::add(new InvalidArgumentException('map `' . $map_tag->plain() . '` method not found')); } if (!empty($params['method']) && empty($params['class'])) { Exceptions::add(new InvalidArgumentException('map `' . $map_tag->plain() . '` class not found')); } return $params; }
protected function __set_media_url__($url) { $this->media_url = File::absolute(self::base_media_url(), File::path_slash($url, null, true)); }