We launched new forums in March 2019—join us there. In a hurry for help with your website? Get Help Now!
    • 50396
    • 2 Posts
    Доброго времени суток. Недавно начал осваивать данную CMS.
    Собственно вопрос. Нужно сделать авторизацию через e-mail+пароль, а так же инн+пароль. ИНН указывается при регистрации. Кто подскажет куда копать или всеже стоит в xPDO окунуться?
      • 44987
      • 14 Posts
      Для регистрации и авторизации существует компонент Login
      [[!Login? 
          &loginTpl=`loginTpl`
          &logoutTpl=`loginSuccess`
          &errTpl=`loginErrTpl`
          &loginResourceId=`13` 
          &logoutResourceId=`14`]]
      

      у него есть сниппет Register которому можно передать поля для проверки как обязательные:
      [[!Register?
          &submitVar=`registerbtn`
          &usernameField=`email`
          &activationEmailTpl=`lgnActivateEmailTpl`
          &activationEmailSubject=`Благодарим за регистрацию!`
          &activationResourceId=`16`
          &usergroups=`Пользователи`
          &preHooks=`captchaValidate`
          &successMsg=`register_success`
          &excludeExtended=`email:required:email,login-updprof-btn,phone:required,inn:required`
      ]]
      
        • 50396
        • 2 Posts
        Спасибо, разобрался. Сделал регистрацию с главным полем e-mail, после написал сниппет inn_email
        <?php
        $query = '"inn":"'.$inn.'"';
        $c = $modx->newQuery('modUser');
        $c->innerJoin ('modUserProfile','Profile');
        $c->where(array('Profile.extended:LIKE' => '%'.$query.'%'));
        $c->limit(1);
        $c->prepare();
        $c->stmt->execute();
        $result = $c->stmt->fetchAll(PDO::FETCH_ASSOC);
        return $result[0]['modUser_username'];

        А после уже дописал его вызов в Login в начаде функции runLoginProcessor()
        if (is_numeric($fields['username']))
        		{
        			$snippet = $this->modx->newObject( 'modSnippet' );
        			$snippet->set( 'name', 'inn_email' );
                    $snippet->setContent( $fields['username'] );
        			$fields['username'] = $snippet;
        		}