Новые пользователи: убрать те у кого нет аватара

#1 2 мая 2012 в 13:04
Как сделать так чтоб модуль Новые пользователи (последние зарегистрированные) показывал только тех у кого есть аватар?
#2 3 мая 2012 в 00:20
Откройте файл /modules/mod_lastreg/module.php, строка 24 (это в запросе к БД)
  1.  
  2. WHERE u.is_deleted = 0 AND u.is_locked=0
  3.  
замените на
  1.  
  2. WHERE u.is_deleted = 0 AND u.is_locked=0 AND p.imageurl != ''
  3.  
И будут выводиться только с аватарами.
#3 3 мая 2012 в 09:57
Хорошо бы эту опцию добавить в настройки модуля, а не городить огород )
#4 10 мая 2012 в 12:42
Марат, спасибо)
Еще один вопрос насчет дизайна: Изменяю дизайн анкеты но столкнулся с проблемой…
Где изменить css стили полей которые созданы через Конструктор форм в шаблоне Default?
Вот код

  1. {if $cfg.privforms}
  2. {$usr.privforms}
  3. {/if}
#5 10 мая 2012 в 21:35
В style.css.
#usr_prof_form #title
#usr_prof_form #field
#6 7 января 2015 в 10:35

Откройте файл /modules/mod_lastreg/module.php, строка 24 (это в запросе к БД)

Марат
В последних версиях этот рецепт не работает. Кто нибудь знает как теперь можно сделать что бы в модуле "новые пользователи" не показывались те, у кого нет аватара?
#7 23 ноября 2015 в 16:51

Откройте файл /modules/mod_lastreg/module.php, строка 24 (это в запросе к БД)
Код PHP:
 
WHERE u.is_deleted = 0 AND u.is_locked=0
 
замените на
Код PHP:
 
WHERE u.is_deleted = 0 AND u.is_locked=0 AND p.imageurl != ''
 
И будут выводиться только с аватарами.

Марат

это как реализовать? у меня модуле так

function mod_lastreg($module_id, $cfg){

$inDB = cmsDatabase::getInstance();

cmsCore::loadModel('users');
$model = new cms_model_users();

$inDB->orderBy('regdate', 'DESC');

$inDB->limitPage(1, $cfg['newscount']);

$users = $model->getUsers();

if ($cfg['view_type']=='list'){
$total_all = cmsUser::getCountAllUsers();
} else { $total_all = 0; }

cmsPage::initTemplate('modules', 'mod_lastreg')->
assign('usrs', $users)->
assign('cfg', $cfg)->
assign('total_all', $total_all)->
assign('total', sizeof($users))->
display('mod_lastreg.tpl');

return true;

}
#8 23 ноября 2015 в 17:14
Как вариант обернуть шаблон модуля в условие.
{foreach key=aid item=usr from=$usrs}
{if $usr.imageurl}
...........................
{/if}
{/foreach}
#9 23 ноября 2015 в 20:25


Откройте файл /modules/mod_lastreg/module.php, строка 24 (это в запросе к БД)

Марат
В последних версиях этот рецепт не работает. Кто нибудь знает как теперь можно сделать что бы в модуле "новые пользователи" не показывались те, у кого нет аватара?

Нил™

Мы вот так сделали и вручную переводим тех у кого ава нарисовалась
#10 25 ноября 2015 в 00:38


Как вариант обернуть шаблон модуля в условие.
{foreach key=aid item=usr from=$usrs}
{if $usr.imageurl}
...........................
{/if}
{/foreach}

Lora

выдает ошибку 500 если модуль обернуть
#11 25 ноября 2015 в 01:50

выдает ошибку 500 если модуль обернуть

Michail
этот вариант в любом случае был бы не удачным, так как он не дает подсчета количества выводимых пользователей в модуле. Настройки количества задаются в админке и всё это регулируется в файлах компонента. Шаблон только отображает. Таким образом. при настройке "отображать 20 пользователей" в модуле было бы каждый раз разное количество
#12 25 ноября 2015 в 07:53

выдает ошибку 500 если модуль обернуть

Michail
Это не пример, а идея.Что бы работало следует в условие обернуть вывод самого изображения соответственно поменяв {$usr.avatar} на /путь до файла/{$usr.imageurl}.Хотя обернув всё условие тоже работает.
#13 25 ноября 2015 в 09:44

так как он не дает подсчета количества выводимых пользователей в модуле

Нил™
Почему? За вывод кол-ва отвечает $cfg['newscount'] и она в шаблоне нигде не работает, а так же $total которая работает только со списком.
#14 25 ноября 2015 в 14:49

Почему? За вывод кол-ва отвечает $cfg['newscount'] и она в шаблоне нигде не работает, а так же $total которая работает только со списком.

Lora
Ну. Вы настроили показывать в модуле 10 последних пользователей. $cfg['newscount'] отдает 10 последних пользователей.
Из 10 последних пользователей аватар есть у 2.
В шаблоне вы указали показывать только тех у кого есть аватары. Сколько будет показано? По моему 2.
Условие по поводу показывать тех кто только с аватаром должно находиться до $cfg['newscount'] ))

То есть сначала должна происходить выборка только тех кто с аватаром что то типа
SELECT from cms_user_profiles WHERE imageurl IN
а потом уже из этой выборки формируется количество сколько показывать
#15 25 ноября 2015 в 15:45

Сколько будет показано? По моему 2

Нил™
А сколько надо? Вроде задача так и стояла? Показывать тех у кого есть аватар.В вашем случае 2 из 10

Условие по поводу показывать тех кто только с аватаром должно находиться до $cfg['newscount'] ))

Нил™
Я не пойму где в шаблоне данная переменная? Она лишь в админке и в module.php и влияет на запрос к базе, что к самому шаблону не имеет никакого отношения.
Вы не можете отвечать в этой теме.
Войдите или зарегистрируйтесь, чтобы писать на форуме.
Используя этот сайт, вы соглашаетесь с тем, что мы используем файлы cookie.