XF 1.5 Создать много переписок между двумя тестовыми пользователями

Статус
В этой теме нельзя размещать новые ответы.

Элионт

Проверенные
Сообщения
36
Реакции
20
Баллы
1,705
Доброе время суток.
Есть какой-нибудь плагин или способ набить несколько тысяч переписок между двумя пользователями на локалке?

Заранее спасибо.
 
Нашёл как:
Код:
    public function actionCv()
    {
        for ($x = 0; $x <= 2; $x++) {
            $recipient_id = 2;
        
            $options = $this->fetchConversationData();

            //Create Conversation
            $options['message'] = XenForo_Helper_String::autoLinkBbCode($options['message']);

            $admin = $this->_getUserModel()->getUserById($options['user_id']);

            /** @var XenForo_DataWriter_ConversationMaster $conversationDw */
            $conversationDw = XenForo_DataWriter::create('XenForo_DataWriter_ConversationMaster');
            $conversationDw->setExtraData(XenForo_DataWriter_ConversationMaster::DATA_ACTION_USER, $admin);
            $conversationDw->setExtraData(XenForo_DataWriter_ConversationMaster::DATA_MESSAGE, $options['message']);
            $conversationDw->set('user_id', $admin['user_id']);
            $conversationDw->set('username', $admin['username']);
            $conversationDw->set('title', $options['title'].(intval(XenForo_Application::$time)+$x));
            $conversationDw->set('open_invite', 0);
            $conversationDw->set('conversation_open', $options['conversation_locked'] ? 0 : 1);
            $conversationDw->addRecipientUserIds([$recipient_id]);

            $messageDw = $conversationDw->getFirstMessageDw();
            $messageDw->set('message', $options['message']);
            $messageDw->setExtraData(XenForo_DataWriter_ConversationMessage::DATA_ATTACHMENT_HASH, '');

            $conversationDw->preSave();

            $conversationDw->save();
            $conversation = $conversationDw->getMergedData();

            $this->_getConversationModel()->markConversationAsRead(
                $conversation['conversation_id'], $admin['user_id'], XenForo_Application::$time
            );

            $deleteType = $options['leave_conversation'];
            switch ($deleteType) {
                case 'delete':
                case 'delete_ignore':
                $this->_getConversationModel()->deleteConversationForUser(
                    $conversation['conversation_id'], XenForo_Visitor::getUserId(), $deleteType
                );
            }
        }

        return $this->responseRedirect(
            XenForo_ControllerResponse_Redirect::SUCCESS,
            XenForo_Link::buildPublicLink('')
          );
    }

    /**
     * Returns the settings of the user
     *
     * @return array
     */
    protected function fetchConversationData()
    {
        $options = XenForo_Application::getOptions();
        return [
            'user_id'             => '1',
            'message'             => 'message',
            'title'               => 'title ',
            'conversation_locked' => false,
            'leave_conversation'  => 'no',
        ];
        
        // return [
            // 'user_id'             => $options->lsConversationUserId,
            // 'message'             => $options->lsConversationMessage,
            // 'title'               => $options->lsConversationTitle,
            // 'conversation_locked' => $options->lsConversationLocked,
            // 'leave_conversation'  => $options->lsLeaveConversation,
        // ];
    }

    /**
     * @return XenForo_Model_User
     */
    protected function _getUserModel()
    {
        return $this->getModelFromCache('XenForo_Model_User');
    }

    /**
     * @return XenForo_Model_Conversation
     */
    protected function _getConversationModel()
    {
        return $this->getModelFromCache('XenForo_Model_Conversation');
    }
Screenshot-2095.jpg
 
Статус
В этой теме нельзя размещать новые ответы.
Современный облачный хостинг провайдер | Aéza
Назад
Сверху Снизу