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

1.5.x SQL запрос на удаление пользователей, у которых нет аватара.

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

Загрузка
Метки:
  1. patrig

    patrig Местный

    Регистрация:
    11.06.11
    Сообщения:
    221
    Симпатии:
    189
    Версия XF:
    2.0.5
    Подскажите запрос на удаление пользователей, у которых нет аватара.

    Возможно ли такое сделать массово?

    Спасибо
     
  2. infis

    infis Местный

    Регистрация:
    27.06.11
    Сообщения:
    5 966
    Симпатии:
    3 548
    Версия XF:
    1.5.9
    Главное, не делайте так, как Вам предложили во втором посте этой темы.

    А теперь по теме. Прямого пути нет, но можно сделать так.
    1. Создаем группу "Без аватарки".
    2. Создаем повышение группы пользователей, где указываем в качестве условия "У пользователя нет аватара", а в качестве группы указываем созданную "Без аватарки".
    3. Пакетно удаляем пользователей, у которых установлена дополнительная группа "Без аватарки".
     
    FractalizeR, Mirovinger, patrig и ещё 1-му нравится это.
  3. patrig

    patrig Местный

    Регистрация:
    11.06.11
    Сообщения:
    221
    Симпатии:
    189
    Версия XF:
    2.0.5
    Благодарю @infis. Тему можно закрыть.
     
  4. FractalizeR

    FractalizeR XenForo Addicted

    Регистрация:
    27.09.10
    Сообщения:
    1 085
    Симпатии:
    832
    Версия XF:
    1.3.2
    Вот небольшой скрипт, которым можно удалить пользователей, если способа, описанного @infis окажется недостаточно:
    PHP:
    <?php

    const FLAG_FIELD_NAME 0;
    const 
    FLAG_SHOULD_DELETE 2;

    if (
    PHP_SAPI != 'cli') {
        die(
    'This script may only be run at the command line.');
    }

    $fileDir realpath(dirname(__FILE__).'/../../../../');

    if (!
    class_exists('XenForo_Autoloader'false)) {
        
    chdir($fileDir);

        require_once(
    $fileDir.'/library/XenForo/Autoloader.php');
        
    XenForo_Autoloader::getInstance()->setupAutoloader($fileDir.'/library');

        
    XenForo_Application::initialize($fileDir.'/library'$fileDirtrue);
    }

    $db XenForo_Application::getDb();

    $sql "SELECT user_id FROM xf_user WHERE user_state = 'moderated'"// Change query to match your conditions
    $userIds $db->fetchCol($sql);
    $userCount count($userIds);

    echo(
    "Found {$userCount} users to delete\n");

    $db->beginTransaction();

    foreach (
    $userIds as $userId) {
        
    $dw XenForo_DataWriter::create('XenForo_DataWriter_User');
        
    $dw->setExistingData($userId);
        echo(
    "Deleting user ".$dw->get('username')."...\n");
        
    $dw->delete();
    }

    $db->commit();
    echo(
    "Done");
     
    Mirovinger нравится это.

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