1. Приветствуем Вас на неофициальном форуме технической поддержки XenForo на русском языке. XenForo - коммерческий форумный движок от бывших создателей vBulletin, написанный на PHP.

Пакетное создание пользователей

Тема в разделе "Для новичков", создана пользователем Дима Полстянко, 28.03.2014.

Загрузка
  1. Дима Полстянко

    Дима Полстянко Местный

    Регистрация:
    22.12.10
    Сообщения:
    197
    Симпатии:
    12
    Версия XF:
    1.1.3
    Добрый день, необходимо добавить 1000 пользователей на форум.

    есть возможность пакетного добавления по шаблону
    может кто то написал уже ?
     
  2. Betelgelze

    Betelgelze Местный

    Регистрация:
    30.12.11
    Сообщения:
    355
    Симпатии:
    101
    Версия XF:
    1.1.5
    Так вот как у всех посещаемость растёт. :) А я то думал надо нарабатывать базу, а тут оказывается всё просто :)

    А если по теме, то нужно взять любую базу на 1000 email. Всё что до знака @ - это будет ником. Осталось только сгенерировать 1000 паролей и внести эти данные в нужные ячейки БД.
    Я к сожалению не программист, а так бы помог. Базу email думаю вы найдёте, сделаете ники и пароли. Создадите таблицу.
    А дальше думаю с такой таблицей проще будет найти исполнителя.
     
  3. Дима Полстянко

    Дима Полстянко Местный

    Регистрация:
    22.12.10
    Сообщения:
    197
    Симпатии:
    12
    Версия XF:
    1.1.3
    посещаемость здесь вообще нипричем

    нужно добавить в СВОЙ форум 1000 логинов и в дальнейшем добавлять

    прямое редактирование таблицы в ксюхе неправильное решение
    инфа о пользователях есть и в других таблицах
     
  4. akinak

    akinak Местный

    Регистрация:
    12.02.13
    Сообщения:
    259
    Симпатии:
    243
    Версия XF:
    1.1.3
    Код:
    public function AddNewFromExternal($data)
       {
         //Обязательные данные
         if
         (array_key_exists('email',$data) &&
           array_key_exists('passw',$data) &&
           array_key_exists('name',$data)
         )
         {
           $email = $data['email'];
           $passw = $data['passw'];
           $name = $data['name'];
           $errors = array();
           $options = XenForo_Application::getOptions();
           $writer = XenForo_DataWriter::create('XenForo_DataWriter_User');
           if ($options->registrationDefaults)
           {
             $writer->bulkSet($options->registrationDefaults, array('ignoreInvalidFields' => true));
           }
    
           $writer->bulkSet(array(
            'username' => $name,
            'email' => $email,
            ));
    
           $writer->setPassword($passw , $passw , null, true);
    
    
           $writer->set('user_group_id', XenForo_Model_User::$defaultRegisteredGroupId);
    
           $writer->advanceRegistrationUserState();
           $writer->preSave();
    
           $errors = array_merge($errors, $writer->getErrors());
    
           if ($errors)
           {
             $return = 'Произошла ошибка при регистрации';
           }
    
           else
           {
             $writer->save();
           $return = 'Пользователь успешно создан';
           }
    
         }
         else {
           $return = 'Присланы не все данные';
         }
    
         return $return;
       }
    
    
    На входе массив $data('email' => $email, 'passw' => $passw, 'name' => $username);
    Если есть еще какая-нить инфа, типа возраста или языка и т. п., то задается аналогично через
    $writer->set('user_group_id', значение группы например);
    Подробнее смотрите XenForo_DataWriterUser и XenForo_ControllerPublic_Register::actionRegister
    Запись будет не только в таблицу xf_user а и во все связанные, ну например доп. поля, если они будут заданны.
     
    FractalizeR и Mirovinger нравится это.
  5. Дима Полстянко

    Дима Полстянко Местный

    Регистрация:
    22.12.10
    Сообщения:
    197
    Симпатии:
    12
    Версия XF:
    1.1.3
    Спасибо !
    А в дополнительные поля писать тоже через $writer->set('dop_pole_id', значение доп поля ?);
     
  6. akinak

    akinak Местный

    Регистрация:
    12.02.13
    Сообщения:
    259
    Симпатии:
    243
    Версия XF:
    1.1.3
    Для доп. полей свой метод

    Код:
     
      $customFields = $this->_input->filterSingle('custom_fields', XenForo_Input::ARRAY_SIMPLE);
         $customFieldsShown = array_keys($this->_getFieldModel()->getUserFields(array('registration' => true)));
         $writer->setCustomFields($customFields, $customFieldsShown);
    
     
    Mirovinger нравится это.
  7. Betelgelze

    Betelgelze Местный

    Регистрация:
    30.12.11
    Сообщения:
    355
    Симпатии:
    101
    Версия XF:
    1.1.5
    какое ещё прямое редактирование?! )) Вы же не вручную вносить будете. Естественно, что инфа о пользователях есть в разных таблицах. В скрипте вы указываете все нужные таблицы и он внесёт эти данные.
    В любом случае, если у вас есть данные для регистрации новых пользователей, то хорошо. Скрипт вам выше написали. А если нету данных, то вам их нужно где то брать. Вот я выше и предложил, что можно взять любую базу email, которая валяется в интернете.
     
  8. ViktorHR89

    ViktorHR89 Новичок

    Регистрация:
    31.03.14
    Сообщения:
    1
    Симпатии:
    0
    Подскажите пжл как пользоваться данным скриптом, я в программирование мало разбираюсь.
     
  9. infis

    infis Местный

    Регистрация:
    27.06.11
    Сообщения:
    5 966
    Симпатии:
    3 548
    Версия XF:
    1.5.9
    Немного не так. Этот код считывает из отправленной формы данные. Естественно, это в данном случае неуместно. Просто нужно задать ассоциативный массив типа:
    Код:
    $customFields = array('id_поля' => 'значение', 'id_поля2' => 'значение');
    В общем задаете идентификатор поля и значения и т.д.
     
  10. mms

    mms Новичок

    Регистрация:
    11.08.14
    Сообщения:
    21
    Симпатии:
    3
    Версия XF:
    1.3.4
    Хотел бы разобраться как пользоваться данным скриптом.
     
  11. infis

    infis Местный

    Регистрация:
    27.06.11
    Сообщения:
    5 966
    Симпатии:
    3 548
    Версия XF:
    1.5.9
    mms нравится это.
  12. mms

    mms Новичок

    Регистрация:
    11.08.14
    Сообщения:
    21
    Симпатии:
    3
    Версия XF:
    1.3.4

Поделиться этой страницей