Запрет Записи на стену

Ограничение по рейтингу

 
Посетитель
small user social cms
Медаль
Сообщений: 121
Гуру, подскажите чайнику... Как сделать чтобы оставлять записи на стене могли пользователи с рейтингом больше 1 ??? или кармой больше 1 ??? Достали спамщики. Очень нужна помощь.. Версия 1.10.6
http://vmestewse.ru
http://multidrug.ru
Посетитель
small user social cms
Медаль
Сообщений: 121
это нерешаемо?
http://vmestewse.ru
http://multidrug.ru
Реклама
cms
Посетитель
small user social cms
МедальАвторитет форумаКубок зрительских симпатий
Сообщений: 1979
Первое, что приходит в голову, это в файле templates/_default_/components/com_users_profile.tpl
найти ссылку
Код TPL:
  1. <a href="javascript:void(0)" id="addlink" class="ajaxlink" onclick="addWall('users', '{$usr.id}');return false;">
  2. <span>{$LANG.WRITE_ON_WALL}</span>
  3. </a>
И обернуть ее в условие, например {if $rating_user > 10}......{/if}.

Естественно, во фронтэнде компонента users, перед вызовом страницы com_users_profile.tpl следует по id просматривающего страницу уточнить рейтинг посетителя. Проще всего запросить его из базы:
Код PHP:
  1. $rating_user = $inDB->get_field('cms_users', "id = {$inUser->id}", 'rating');
И не забыть отправить в шаблон строчкой
Код PHP:
  1. assign('rating_user', $rating_user)->
Недостаток предложенного кода ясен сразу. Если ваш собственный рейтинг меньше 10, вы сами на своей стене не напишите - ссылка не будет выводится. Невозможно установить этот порог из админки. Впрочем, я даю вам не готовый код, а направление, куда думать.
Редактировалось: 1 раз (Последний: 30 января 2016 в 23:23)
NOP
Посетитель
small user social cms
МедальАвторитет форумаКубок зрительских симпатий
Сообщений: 2592
Странник:
Недостаток этого кода ясен сразу. Если ваш собственный рейтинг меньше 10
Можно сначала проверку на владельца страницы ) Если не хозяин ( if !$my_profile ) то проверку на рейтинг если рейтинг меньше 10 и т д.
Так вроде нормально должно быть)
Редактировалось: 1 раз (Последний: 30 января 2016 в 23:26)
Посетитель
small user social cms
Медаль
Сообщений: 121
Нил™:

Странник:
Недостаток этого кода ясен сразу. Если ваш собственный рейтинг меньше 10
Можно сначала проверку на владельца страницы ) Если не хозяин ( if !$my_profile ) то проверку на рейтинг если рейтинг меньше 10 и т д.
Так вроде нормально должно быть)

А пошагово можно? Я просто только учусь... zst
http://vmestewse.ru
http://multidrug.ru
Посетитель
small user social cms
МедальАвторитет форумаКубок зрительских симпатий
Сообщений: 3026
Нил™:
Можно сначала проверку на владельца страницы )
Думаю это лишнее, т.к. у меня только для того и регистрируются, что бы сразу на стене собственной ссылку на левый ресурс нагадить. На блоги у меня стоят ограничения.
Посетитель
small user social cms
МедальАвторитет форумаКубок зрительских симпатий
Сообщений: 2592
Volgomarket:
Думаю это лишнее, т.к. у меня только для того и регистрируются, что бы сразу на стене собственной ссылку на левый ресурс нагадить. На блоги у меня стоят ограничения.
Тут как раз речь и идет о том, что бы на своей стене можно было гадить)

Александр Потапов,
совсем пошагово вряд ли)

Если сделать вот так, то смогут писать только друзья пользователя, админ и владелец

Код PHP:
  1. <div class="usr_wall_addlink" style="float:right">
  2. <a href="javascript:void(0)" id="addlink" class="ajaxlink" onclick="addWall('users', '{$usr.id}');return false;">
  3. <span>{$LANG.WRITE_ON_WALL}</span>
  4. </a>
  5. </div>
заменить на

Код PHP:
  1. {if $myprofile || $is_admin || $usr.isfriend}
  2. <div class="usr_wall_addlink" style="float:right">
  3. <a href="javascript:void(0)" id="addlink" class="ajaxlink" onclick="addWall('users', '{$usr.id}');return false;">
  4. <span>{$LANG.WRITE_ON_WALL}</span>
  5. </a>
  6. </div>
  7. {/if}
  8.  
Или используйте вариант Странник,

Код PHP:
  1. {if $myprofile || $is_admin || $usr.isfriend}
  2.  
  3. <div class="usr_wall_addlink" style="float:right">
  4. <a href="javascript:void(0)" id="addlink" class="ajaxlink" onclick="addWall('users', '{$usr.id}');return false;">
  5. <span>{$LANG.WRITE_ON_WALL}</span>
  6. </a>
  7. </div>
  8.  
  9. {elseif $rating_user > 10}
  10.  
  11. <div class="usr_wall_addlink" style="float:right">
  12. <a href="javascript:void(0)" id="addlink" class="ajaxlink" onclick="addWall('users', '{$usr.id}');return false;">
  13. <span>{$LANG.WRITE_ON_WALL}</span>
  14. </a>
  15. </div>
  16.  
  17. {/if}
  18.  
предварительно выполнив то описал Странник,
Странник:
Естественно, во фронтэнде компонента users, перед вызовом страницы com_users_profile.tpl следует по id просматривающего страницу уточнить рейтинг посетителя. Проще всего запросить его из базы:


Таким образом должно получиться что смогут писать владелец, админ, друзья и у кого рейтинг. Вроде так.
Посетитель
small user social cms
МедальАвторитет форумаКубок зрительских симпатий
Сообщений: 3026
Нил™:
Тут как раз речь и идет о том, что бы на своей стене можно было гадить)
так я как раз про то, что нефиг и на своей гадить. Пусть поучаствует в жизни проекта,заработает рейтинг, тогда пусть и пользуется стеной. Что боты,что спамеры зарабатывать рейтинг не будут - им надо здесь и сейчас. Я так понял,что ТС пишет не о проблеме спамерства между пользователями на стенах (хотя это то же вариант) а о том о чем написал выше я, что спамятна своих стенах (сеошники туды их в качель)
Посетитель
small user social cms
МедальАвторитет форума
Сообщений: 1147
Чёт вы перемудрили: и шаблон править, и код править, к базе лишний раз обращаться...
А в итоге - если спамер через POST рассылает, ему эта ссылка нафиг не нужна.

Решение:
Файл core/ajax/wall.php
После
Код PHP:
  1. if($do == 'add'){
вставить строку типа
Код PHP:
  1. if (!$inUser->rating) { cmsCore::jsonOutput(array('error' => true, 'text' => 'Нет рейтинга - нет надписей!')); }
Редактировалось: 2 раз (Последний: 31 января 2016 в 06:53)
Посетитель
small user social cms
Медаль
Сообщений: 121
Думаю это лишнее, т.к. у меня только для того и регистрируются, что бы сразу на стене собственной ссылку на левый ресурс нагадить. На блоги у меня стоят ограничения.
Нужно всем запретить писать на стене у кого рейтинг ниже... У меня тоже регаются, гадят на своей стене и сваливают... для чужих стен у меня стоит запрет по группам пользователей.
http://vmestewse.ru
http://multidrug.ru
Посетитель
small user social cms
Медаль
Сообщений: 121
Sonat:

Чёт вы перемудрили: и шаблон править, и код править, к базе лишний раз обращаться...
А в итоге - если спамер через POST рассылает, ему эта ссылка нафиг не нужна.

Решение:
Файл core/ajax/wall.php
После
Код PHP:
  1. if($do == 'add'){
вставить строку типа
Код PHP:
  1. if (!$inUser->rating) { cmsCore::jsonOutput(array('error' => true, 'text' => 'Нет рейтинга - нет надписей!')); }

Сделал! Доволен!!! Спасибо!!!
http://vmestewse.ru
http://multidrug.ru
Посетитель
small user social cms
Медаль
Сообщений: 121
а можно так же блоги закрыть?
http://vmestewse.ru
http://multidrug.ru
Посетитель
small user social cms
МедальАвторитет форумаКубок зрительских симпатий
Сообщений: 3026
Александр Потапов:

а можно так же блоги закрыть?
Это в настройках инстанта делается Блоги - Шестеренка - Ограничения
Посетитель
small user social cms
Медаль
Сообщений: 121
Volgomarket:

Александр Потапов:

а можно так же блоги закрыть?
Это в настройках инстанта делается Блоги - Шестеренка - Ограничения

Точно! Как же я мог забыть.. zst Просто два сайта на разных ветках у меня... Спасибо ОГРОМНОЕ!
http://vmestewse.ru
http://multidrug.ru
Посетитель
small user social cms
МедальАвторитет форумаКубок зрительских симпатий
Сообщений: 2592
Александр Потапов:
Доволен!!!
Наверняка пользователи тоже счастливы)
Sonat:
Чёт вы перемудрили: и шаблон править, и код править, к базе лишний раз обращаться...
Мы не ищем лёгких путей...
Спойлер
glasses
В начало страницы
Предыдущая темаСледующая тема Перейти на форум: