Back to LanguageAdapter class

Method resetUserLanguage

private void
resetUserLanguage
()
Resets user language to default language
Returns
  • void
Since
  • 4.0.0

Method resetUserLanguage - Source code

/**
 * Resets user language to default language
 *
 * @return  void
 *
 * @since   4.0.0
 */
private function resetUserLanguage() : void
{
    $client = ApplicationHelper::getClientInfo($this->extension->client_id);
    if ($client->name !== 'site' && $client->name !== 'administrator') {
        return;
    }
    // Setting the language of users which have this language as the default language
    $db = Factory::getDbo();
    $query = $db->getQuery(true)->select([$db->quoteName('id'), $db->quoteName('params')])->from($db->quoteName('#__users'));
    $db->setQuery($query);
    $users = $db->loadObjectList();
    if ($client->name === 'administrator') {
        $param_name = 'admin_language';
    } else {
        $param_name = 'language';
    }
    $count = 0;
    // Prepare the query.
    $query = $db->getQuery(true)->update($db->quoteName('#__users'))->set($db->quoteName('params') . ' = :registry')->where($db->quoteName('id') . ' = :userId')->bind(':registry', $registry)->bind(':userId', $userId, ParameterType::INTEGER);
    $db->setQuery($query);
    foreach ($users as $user) {
        $registry = new Registry($user->params);
        if ($registry->get($param_name) === $this->extension->element) {
            // Update query parameters.
            $registry->set($param_name, '');
            $userId = $user->id;
            $db->execute();
            $count++;
        }
    }
    if (!empty($count)) {
        Log::add(Text::plural('JLIB_INSTALLER_NOTICE_LANG_RESET_USERS', $count), Log::NOTICE, 'jerror');
    }
}