示例#1
0
 /**
  * get url redirect to a specified opi
  */
 public static function get($opi = false, $redirect_url = false)
 {
     if (!$opi) {
         $opi = OAuthConfig::getOpi();
     }
     if (!$opi) {
         throw new Exception("You must pass OPI as param, or define it in <data> part of oauthconf.xml");
     }
     $params = array("id" => urlencode(UserApi::getUserLoggedOid()), "sc" => urlencode(OAuthConfig::getBrand()), "carry_url" => urlencode($redirect_url));
     $info = UserApi::getUserLogged();
     $opi_age = false;
     $opi_gender = false;
     try {
         $birthday = isset($info->user->user_data->birthday) ? $info->user->user_data->birthday->value : null;
         if ($birthday != null) {
             $birthday = explode("/", $birthday);
             $age = date("md", date("U", mktime(0, 0, 0, $birthday[2], $birthday[1], $birthday[0]))) > date("md") ? date("Y") - $birthday[2] - 1 : date("Y") - $birthday[2];
             if (18 <= $age && $age <= 24) {
                 $opi_age = 1;
             } else {
                 if (25 <= $age && $age <= 34) {
                     $opi_age = 2;
                 }
             }
             if (35 <= $age && $age <= 44) {
                 $opi_age = 3;
             }
             if (45 <= $age && $age <= 64) {
                 $opi_age = 4;
             }
         }
     } catch (Exception $e) {
     }
     try {
         $gender = isset($info->user->user_data->gender) ? $info->user->user_data->gender->vid : null;
         if ($gender == 1) {
             $opi_gender = 2;
         } else {
             if ($gender == 2) {
                 $opi_gender = 1;
             }
         }
     } catch (Exception $e) {
     }
     if ($opi_age) {
         $params["carry_edad"] = $opi_age;
     }
     if ($opi_gender) {
         $params["carry_sexo"] = $opi_gender;
     }
     $query = array();
     foreach ($params as $param => $value) {
         $query[] = "{$param}={$value}";
     }
     return OAuthConfig::getApiUrl('opi', 'base_url') . OAuthConfig::getApiUrl('opi', 'rules') . "/" . $opi . "?" . implode('&', $query);
 }