/** * Вывод списка аккаунтов пользователя * @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; }
/** * Получает 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'] . ' </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; } }