Страница 1 из 1

Добавить фильтр на листинг пользователей

СообщениеДобавлено: 28 май 2020, 19:48
monarch
Добрый день,

Хотелось бы видеть доп.фильтр на листинг пользователей, чтобы скрыть тех, кто создал аккаунт (когда бронировал что-то) и появился в этом списке с 0 объектов (размещенных).
Опционально хотелось бы видеть ВКЛ/ВЫКЛ где то в админке
https://demo-pro.open-real-estate.info/ru/users/viewall
Текущий вариант позволяет "вытащить" всех клиентов одним кликом практически.

Можно решить средствами веб-сервера сделав редирект на главную или отдав 503, но это не элегантно будет.

Должно быть актуально для тех, у кого масса запросов по бронированиям.

Re: Добавить фильтр на листинг пользователей

СообщениеДобавлено: 29 май 2020, 02:15
Dmitry
ППКС! Отличное решение для проблемы, которую я описывал в теме про то ошибки версии 1.32.3 (в этом сообщении п.20).
Те у кого нет объявлений, скорее всего клиенты, а не агенты или владельцы жилья. Чтобы клиенты находились в этом списке - однозначное зло, а владельцам жилья только на пользу. При наличии такой настройки я бы может даже регистрацию при бронировании не стал бы отключать.

Re: Добавить фильтр на листинг пользователей

СообщениеДобавлено: 29 май 2020, 07:37
Xpycm
Распишите, пожалуйста, какую настройку или какие настройки необходимо добавить и что они должны делать?
Если вам по сути нужно только чтобы в списке пользователей не отображались те пользователи, у кого нет объектов, то можно обойтись и без дополнительных настроек

Re: Добавить фильтр на листинг пользователей

СообщениеДобавлено: 29 май 2020, 11:39
monarch
Xpycm писал(а):чтобы в списке пользователей не отображались те пользователи, у кого нет объектов, то можно обойтись и без дополнительных настроек

А как это сделать?

Re: Добавить фильтр на листинг пользователей

СообщениеДобавлено: 29 май 2020, 17:01
Xpycm
Файл protected/modules/users/controllers/MainController.php
Вместо:
Код: Выделить всё
$criteria = new CDbCriteria();
$type in_array($typearray_keys($existTypes)) ? $type 'all';
if (
$type != 'all') {
    
$criteria->compare('type'$type);
}
$criteria->with = array('countAdRel');

$sort = new CSort();

$sort->sortVar 'sort';
$sort->defaultOrder 'date_created DESC';
$sort->multiSort true


Вставить:
Код: Выделить всё
$criteria = new CDbCriteria();
$type in_array($typearray_keys($existTypes)) ? $type 'all';
if (
$type != 'all') {
    
$criteria->compare('t.type'$type);
}
$criteria->with = array('countAdRel');
$criteria->join 'INNER JOIN {{apartment}} ap ON t.id = ap.owner_id';
$criteria->select 't.*';
$criteria->having 'COUNT(ap.id) > 0';
$criteria->group 't.id';

$sort = new CSort();

$sort->sortVar 'sort';
$sort->defaultOrder 't.date_created DESC';
$sort->multiSort true

Re: Добавить фильтр на листинг пользователей

СообщениеДобавлено: 06 июн 2020, 07:05
Dmitry
Проверил - то, что нужно!
Вот только учитывает и неактивированные объявления (а они, как мне показалось, могут создаваться полу-несознательно *PARDON* ). В идеале (если не вызовет больших нагрузок), было бы выводить только тех у кого есть активные объявления.
Ну и настройку в админке назвать соответствующим образом:
"Отображать в списке пользователей тех у кого нет активный объявлений" ✔️ (Да/Нет)

Правда нашел 1 проблему - не работает сортировка пользователей по дате регистрации (по имени - сортировка нормально меняется):
CDbCommand не удалось исполнить SQL-запрос: SQLSTATE[23000]: Integrity constraint violation: 1052 Column 'date_created' in order clause is ambiguous.

на так чтобы мне особо нужна была тут сортировка, как не нужна 404 и прочее отличное от 200 ) , ну и если настройка появится в "коробке", то не хорошо если баги проберутся

Re: Добавить фильтр на листинг пользователей

СообщениеДобавлено: 11 дек 2020, 20:24
van33
изучаю Ваш движок и как риелтор нашел для себя таки неудобства
1. в модуле местоположения не учтена специфика территориального устройства стран Страна - Регион-Город , это не полный перечень территориальных единиц, Страна - Регион- Район- Город/село микро. район так для риелторов удобней
2, Запутанная система назначения цени в разделе аренда
3,В объявления продажа земли тип участка очень важен в вы его поставили в последние пункты при заполнении об’явлений логично его поставить под тип недвижимости
4.Не очень удобный редактор меню сложно работать без мишки ( сделать его погрубей а то там все по миллиметрах )