public static function buildLink($v, $param, $extraParam = array(), $offset = null) { if (isset($param[$offset]) && $v->offsetExists($param[$offset])) { return static::buildLink($v->get($param[$offset]), $param, $extraParam, $offset); } else { $params = array('param' => $param, 'extraParam' => $extraParam); if ($v->offsetExists('target')) { $r = Utils::regexValidador($v->get('route'), '@(https?://([-\\w\\.]+)+(:\\d+)?(/([\\w/_\\.]*(\\?\\S+)?)?)?)@'); $r = $r ? 'param' : 'extraParam'; $params[$r] = array_merge($params[$r], array('target' => $v->get('target'))); } return link_to($v->get('label'), $v->get('route'), $params['param'], $params['extraParam']); } }