<?php $arrAttr = ['icq' => 'Label ICQ' , 'email' => 'Ваш email' ]; ?>
<?php foreach($arrAttr as $key=> $attr):?>
<?php if (property_exists($user, $key)) : ?>
<p class='attr'><?= $attr?></p><p><?=$user->{$key}; ?></p>
<?php endif; ?>
<?php endforeach;?>
$connection = new \yii\db\Connection([
'dsn' => $dsn,
'username' => $username,
'password' => $password,
]);
$connection->open();
# Услуги, списать баланс раз в день в 24:00 по мск
0 0 * * * /usr/bin/php -f /home/user/data/www/setename.biz/yii service/index
## Базовый конфиг для всех источников
source sitename_config
{
type = mysql
sql_host = localhost
sql_user = root
sql_pass = mysql
sql_db = new_site
sql_port = 3306
sql_query_pre = SET NAMES utf8
sql_query_pre = SET CHARACTER SET utf8
}
# применили конфиг путем наследования
source sitename_audio :sitename_config
{
sql_query = \
SELECT a.* \
FROM audio a
# указываем какие поля мы хотим индексировать
sql_attr_uint = user_id
sql_field_string = id3_title
sql_field_string = id3_artist
sql_field_string = description
sql_attr_json = id3_json
}
index sitename_audio
{
source = sitename_audio
path = e:/Server/sphinx/data/sitename_audio
docinfo = extern
charset_table = 0..9, A..Z->a..z, _, a..z, U+410..U+42F->U+430..U+44F, U+430..U+44F
min_word_len = 3
html_strip = 1
min_infix_len = 3
index_exact_words = 1
blend_chars = &,U+23
#morphology = stem_en
#morphology = stem_enru, soundex, metaphone
# морфология через словари словоформ...
morphology = lemmatize_ru_all
}
##################
# Comon config
##################
indexer
{
mem_limit = 128M
}
searchd
{
listen = 9312
listen = 9306:mysql41
log = e:/Server/sphinx/log/searchd.log
query_log = e:/Server/sphinx/log/query.log
read_timeout = 5
max_children = 30
pid_file = e:/Server/sphinx/log/searchd.pid
max_matches = 1000
seamless_rotate = 1
preopen_indexes = 1
unlink_old = 1
workers = threads # for RT to work
binlog_path = e:/Server/sphinx/data
}
common
{
lemmatizer_base = e:/Server/sphinx/dicts/
}
<ul><li class="active">1</li><li>2</li><li>3</li></ul>
// ищем текущий таб который играет
var next = $('.tab.active').next();
if(next.length >0) next.trigger('click'); // посылаем событие клика на таб
public function actions()
{
return [
'social' => [
'class' => 'yii\authclient\AuthAction',
'successCallback' => [$this, 'successCallback'],
],
];
}
/**
* @param $client
*/
public function successCallback($client)
{
$day = 86400;
$client_id = Yii::$app->request->get('authclient');
$attributes = $client->getUserAttributes();
$email = '';
$sex = 0;
// VK
if($client instanceof VKontakte)
{
$auth_params = $client->getAccessToken()->getParams();
$email = ArrayHelper::getValue($auth_params,'email','');
// Аватарка из соц сети
$vk_data_response = $client->api('users.get','POST',['uids'=> $attributes['id'] , 'fields'=> 'photo_max_orig']);
if($vk_data_response = ArrayHelper::getValue($vk_data_response,'response',false))
{
$vk_data = array_shift($vk_data_response);
Yii::$app->session->setFlash('social_avatar', $vk_data['photo_max_orig']);
}
}
if($client instanceof YandexOAuth)
{
$ya_data_response = $client->api('info','GET',['format'=>'json']);
$email = array_shift($ya_data_response['emails']);
Yii::$app->session->setFlash('social_avatar', "https://avatars.yandex.net/get-yapic/{$ya_data_response['default_avatar_id']}/islands");
if(!empty($ya_data_response['sex']))
{
$sex = $ya_data_response['sex'] == 'female' ? UserProfile::SEX_FEMALE : UserProfile::SEX_MALE;
}
}
if($client instanceof Odnoklassniki)
{
$od_data_response =$client->api('','GET',[
'method' => 'users.getCurrentUser',
'application_key' => $client->application_public_key
]);
$sex = $od_data_response['gender'] == 'female' ? UserProfile::SEX_FEMALE : UserProfile::SEX_MALE;
if(isset($od_data_response['pic_1']))
{
Yii::$app->session->setFlash('social_avatar', $od_data_response['pic_1']);
}
}
if($client instanceof Facebook) {
try
{
$curl = new Curl;
$fb_curl_result = $curl->get("https://graph.facebook.com/{$attributes['id']}/picture?width=300&redirect=false");
$fb_data_responce = Json::decode($fb_curl_result);
if (isset($fb_data_responce['data'])) {
Yii::$app->session->setFlash('social_avatar', $fb_data_responce['data']['url']);
}
}
catch (Exception $e) {};
}
$user_social = UserSocial::findOne([
'client' => $client_id ,
'internal_id' => $attributes['id']
]);
if(!$user_social)
{
$user = new User;
if(!empty($email) && !$user = User::find()->where(['email'=>$email])->one())
{
$user = new User;
$user->email = $email;
}
// тут я шаманил у меня соц пользователи не имеют логина и пароля через валидатор авторизации они не пройдут так как пустые.
$user->scenario = 'social';
if($user->isNewRecord)
{
$user->username = '';
$user->password_hash = '';
}
// регистрируем в User
if($user->register())
{
$user_social = new UserSocial;
$user_social->user_id = $user->id;
$user_social->client = $client_id;
$user_social->internal_id = (string)$attributes['id'];
$user_social->save();
// $this->referralRegistration($user->id);
}
//$this->setSocialAvatarToProfile($user->id);
Yii::$app->session->set('auth_social',[
'client' => $client_id,
'attributes' => $attributes,
'token' => ''
]);
}
$user = $user_social->user;
Yii::$app->user->login($user , $day * 366);
}