• This site uses cookies. By continuing to use this site, you are agreeing to our use of cookies. Learn more.

Lack of interest Add new method to handle user for XenForo_Deferred_User

Milano

Well-known member
#1
Currently I want to extend XenForo_Deferred_User and add my own rebuild feature, but doing so, I have to duplicate the code from the execute method to fetch the users, meaning that the code will be run twice. Maybe separates these lines of code to a new method could be better just like preparePost, prepareThread, prepareUser, etc inside models.

PHP:
$userDw = XenForo_DataWriter::create('XenForo_DataWriter_User', XenForo_DataWriter::ERROR_SILENT);
if ($userDw->setExistingData($userId))
{
    XenForo_Db::beginTransaction();

    $userDw->set('alerts_unread', $userModel->getUnreadAlertsCount($userId));
    $userDw->set('conversations_unread', $conversationModel->countUnreadConversationsForUser($userId));
    $userDw->save();
    $userDw->rebuildUserGroupRelations();
    $userDw->rebuildPermissionCombinationId();
    $userDw->rebuildDisplayStyleGroupId();
    $userDw->rebuildCustomFields();
    $userDw->rebuildIgnoreCache();

    XenForo_Db::commit();
}