/**
* 插件显示内容里生成访问插件的url
* @param string $url url
* @param array $param 参数
* @author 麦当苗儿 <zuojiazi@vip.qq.com>
*/
function addons_url($url, $param = array()){
$url = parse_url($url);
$case = C('URL_CASE_INSENSITIVE');
$addons = $case ? parse_name($url['scheme']) : $url['scheme'];
$controller = $case ? parse_name($url['host']) : $url['host'];
$action = trim($case ? strtolower($url['path']) : $url['path'], '/');
/* 解析URL带的参数 */
if(isset($url['query'])){
parse_str($url['query'], $query);
$param = array_merge($query, $param);
}
/* 基础参数 */
$params = array(
'_addons' => $addons,
'_controller' => $controller,
'_action' => $action,
);
$params = array_merge($params, $param); //添加额外参数
return U('Home/Addons/execute', $params);
}
OneThink的插件URL生成存在一点定位问题,在其他应用模块里调用这个插件生成URL需进行修正。
修正方式是在return的U函数内带上Home,强制定位到Home应用模块内。