Курс 2016 года “Разработка на UMI.CMS от 0 до готового сайта”

0 Пользователей и 2 Гостей просматривают эту тему.

*

sam

  • ***
  • 216
  • +3/-1
  • "Век живи - век учись!"
    • Просмотр профиля
uLogin
« : 20 Июня 2017, 10:16:24 »
Здравствуйте! Кто-нибудь может поделиться файлами /php/users/authorization.phtml и /xslt/modules/users/authorization.xsl ?
Жизнь слишком коротка, чтобы выучить и знать всё на свете. Тем более, что мир быстро меняется, и технологии за ним тоже. Но это не повод, чтобы перестать учиться к чему-то новому. "Век живи - век учись!" Иначе жизнь будет прожита без пользы, как для себя, так и для окружающих.

*

sam

  • ***
  • 216
  • +3/-1
  • "Век живи - век учись!"
    • Просмотр профиля
Re: uLogin
« Ответ #1 : 20 Июня 2017, 13:35:25 »
Или может кто поможет с переписыванием кода ниже под uLogin (http://ulogin.ru/constructor.php)?

abstract class __loginza_users {
 
    public function  getLoginzaProvider() {
        $loginzaAPI = new loginzaAPI();
 
        $result = Array();
        foreach($loginzaAPI->getProvider() as $k=>$v) {
            $result['providers']['nodes:provider'][] = array('attribute:name'=>$k, 'attribute:title'=>$v);
        }
 
        $result ['widget_url'] = $loginzaAPI->getWidgetUrl() . "&providers_set=yandex,mailru,rambler,vkontakte,odnoklassniki,mailruapi,google,facebook,twitter";
 
        if (def_module::isXSLTResultMode()) {
            return $result;
        } else {
            return $result['widget_url'];
        }
    }
 
    public function loginza($template = 'default') {
        if(!empty($_POST['token']) ) {
            $loginzaAPI = new loginzaAPI();
 
            $profile = $loginzaAPI->getAuthInfo($_POST['token']);
 
            if( !empty($profile)) {
                $profile = new loginzaUserProfile($profile);
 
                $objectTypes = umiObjectTypesCollection::getInstance();
                $objectTypeId    = $objectTypes->getBaseType("users",    "user");
                $objectType = $objectTypes->getType($objectTypeId);
 
                $nickname = $profile->genNickname();
                $provider = $profile->genProvider();
                $provider_url = parse_url($provider);
                $provider_name = str_ireplace('www.', '', $provider_url['host']);
                $login = $nickname . "@" . $provider_name;
                $password = $profile->genRandomPassword();
                $email = $profile->genUserEmail();
                $lname = $profile->getLname();
                $fname = $profile->getFname();
 
                if(!$fname) $fname=$nickname;
 
                $sel = new selector('objects');
                $sel->types('object-type')->name('users', 'user');
                $sel->where('login')->equals($login);
                $sel->where('loginza')->equals($provider_name);
                $user =  $sel->first;
                $from_page = getRequest("from_page");
 
                if($user instanceof iUmiObject) {
                    permissionsCollection::getInstance()->loginAsUser($user);
                    session_commit();
 
                    $this->redirect($from_page ? $from_page : ($this->pre_lang . '/users/auth/'));
                }
 
                if(!preg_match("/.+@.+\..+/", $email)) {
                    while(true) {
                        $email = $nickname.rand(1,100)."@".getServer('HTTP_HOST');
                        if($this->checkIsUniqueEmail($email)) {
                            break;
                        }
                    }
                }
 
                $object_id = umiObjectsCollection::getInstance()->addObject($login, $objectTypeId);
                $object = umiObjectsCollection::getInstance()->getObject($object_id);
 
                $object->setValue("login", $login);
                $object->setValue("password", md5($password));
                $object->setValue("e-mail", $email);
                $object->setValue("fname", ($fname));
                $object->setValue("lname", $lname);
                $object->setValue("loginza", $provider_name);
                $object->setValue("register_date", time());
                $object->setValue("is_activated", '1');
                $object->setValue("activate_code", md5(uniqid(rand(), true)));
 
                $_SESSION['cms_login'] = $login;
                $_SESSION['cms_pass'] = md5($password);
                $_SESSION['user_id'] = $object_id;
                session_commit();
 
                $group_id = regedit::getInstance()->getVal("//modules/users/def_group");
                $object->setValue("groups", Array($group_id));
 
 
                $data_module = cmsController::getInstance()->getModule('data');
                $data_module->saveEditedObject($object_id, true);
 
                $object->commit();
 
                $this->redirect($from_page ? $from_page : ($this->pre_lang . '/users/auth/'));
            }
        }
        return $this->auth();
    }
}
Жизнь слишком коротка, чтобы выучить и знать всё на свете. Тем более, что мир быстро меняется, и технологии за ним тоже. Но это не повод, чтобы перестать учиться к чему-то новому. "Век живи - век учись!" Иначе жизнь будет прожита без пользы, как для себя, так и для окружающих.