Example #1
0
/**
 * Вывод списка аккаунтов пользователя
 * @param int $user_id - ID пользователя (если не задан - текущий пользователь)
 * @return string
 */
function get_ulogin_user_accounts_panel($user_id = 0)
{
    global $wpdb, $current_user;
    uLoginPluginSettings::register_database_table();
    wp_enqueue_style('ulogin-prov-style');
    wp_enqueue_style('ulogin-style');
    $user_id = empty($user_id) ? $current_user->ID : $user_id;
    if (empty($user_id)) {
        return '';
    }
    $networks = $wpdb->get_col($wpdb->prepare("SELECT network FROM {$wpdb->ulogin} where userid = %d", $user_id), 0);
    $output = '';
    if ($networks) {
        $output .= '<div id="ulogin_accounts">';
        foreach ($networks as $network) {
            $output .= "<div data-ulogin-network='{$network}'\n                 class='ulogin_network big_provider {$network}_big'></div>";
        }
        $output .= '</div>';
    }
    return $output;
}
Example #2
0
 /**
  * Получает div панель
  */
 function get_div_panel($place = 0, $with_label = true, $id = '', $div_only = false)
 {
     $ulOptions = self::getOptions();
     $default_panel = false;
     switch ($place) {
         case 0:
             $uloginID = $ulOptions['uloginID1'];
             break;
         case 1:
             $uloginID = $ulOptions['uloginID2'];
             break;
         case 2:
             $uloginID = $ulOptions['uloginID3'];
             if (empty($uloginID)) {
                 $uloginID = $ulOptions['uloginID2'];
             }
             break;
         default:
             $uloginID = $ulOptions['uloginID1'];
             break;
     }
     if (empty($uloginID)) {
         if ($ulOptions['label'] != 'Войти с помощью:') {
             $valid_label = $ulOptions['label'];
             $ulOptions = self::getOldOptions();
             $ulOptions['label'] = $valid_label;
         } else {
             $ulOptions = self::getOldOptions();
         }
         $default_panel = true;
     }
     $id = 'uLogin' . self::$count . substr(preg_replace('/[^0-9]/', '', md5(wp_generate_password(8))), 0, 7);
     $panel = $with_label ? '<div class="ulogin_label">' . $ulOptions['label'] . '&nbsp;</div>' : '';
     $currentUrl = ulogin_get_current_page_url();
     $str = parse_url($currentUrl, PHP_URL_QUERY);
     parse_str($str, $output);
     if (isset($output['redirect_to'])) {
         $currentUrl = $output['redirect_to'];
         // Если в запросе к wp-login.php есть адрес "редиректа", то редиректим туда. Верно учитываются запросы вроде "&redirect_to=http://mysite.ru/wp-admin/index.php?page=aktv"
     }
     $only_ssl = uLoginPluginSettings::getOptions();
     $only_ssl = $only_ssl['only_ssl'];
     if ($only_ssl) {
         $scheme = 'https';
     } else {
         //берем протокол текущей страницы и заменяем на него в home_url
         $scheme = parse_url($currentUrl, PHP_URL_SCHEME);
         if (empty($scheme)) {
             $scheme = 'http';
         }
     }
     $home_url = preg_replace("/^https?/", $scheme, home_url());
     $redirect_uri = urlencode($home_url . '/?ulogin=token&backurl=' . urlencode($currentUrl . ($place === 1 ? '#commentform' : '')));
     $panel .= '<div id=' . $id . ' class="ulogin_panel"';
     if ($default_panel) {
         $ulOptions['redirect_uri'] = $redirect_uri;
         unset($ulOptions['label']);
         $x_ulogin_params = '';
         foreach ($ulOptions as $key => $value) {
             $x_ulogin_params .= $key . '=' . $value . ';';
         }
         if ($ulOptions['display'] != 'window') {
             $panel .= ' data-ulogin="******"></div>';
         } else {
             $panel .= ' data-ulogin="******" href="#"><img src="https://ulogin.ru/img/button.png" width=187 height=30 alt="МультиВход"/></div>';
         }
     } else {
         $panel .= ' data-uloginid="' . $uloginID . '" data-ulogin="******"></div>';
     }
     $panel = '<div class="ulogin_block">' . $panel . '<div style="clear:both"></div></div>';
     if (!$div_only) {
         return $this->get_js_str() . $panel . $this->get_custom_init_str($id);
     } else {
         return $panel;
     }
 }