public function url($module_name = false)
{
if ($module_name == false) {
$mod_data = $this->app->parser->current_module;
if (isset($mod_data['url_to_module'])) {
return $mod_data['url_to_module'];
}
if (isset($mod_data['url_to_module'])) {
return $mod_data['url_to_module'];
} else {
$mod_data = $this->current_module;
if (isset($mod_data['url_to_module'])) {
return $mod_data['url_to_module'];
}
}
}
if (!is_string($module_name)) {
return false;
}
$secure_connection = false;
if (isset($_SERVER['HTTPS'])) {
if ($_SERVER['HTTPS'] == 'on') {
$secure_connection = true;
}
}
$args = func_get_args();
$function_cache_id = '';
foreach ($args as $k => $v) {
$function_cache_id = $function_cache_id . serialize($k) . serialize($v);
}
$cache_id = $function_cache_id = __FUNCTION__ . crc32($function_cache_id);
$cache_group = 'modules/global';
$cache_content = $this->app->cache_manager->get($cache_id, $cache_group);
if ($cache_content != false) {
return $cache_content;
}
static $checked = array();
if (!isset($checked[$module_name])) {
$ch = $this->locate($module_name, $custom_view = false);
if ($ch != false) {
$ch = dirname($ch);
$ch = $this->app->url_manager->link_to_file($ch);
$ch = $ch . '/';
$checked[$module_name] = $ch;
} else {
$checked[$module_name] = false;
}
}
$this->app->cache_manager->save($checked[$module_name], $function_cache_id, $cache_group);
if ($secure_connection == true) {
$checked[$module_name] = str_ireplace('http://', 'https://', $checked[$module_name]);
}
return $checked[$module_name];
}