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