Перейти к содержимому
Открыть в приложении

Удобный способ просмотра. Узнать больше.

Дизайн и модификация Invision Community

Полноэкранное приложение на главном экране с push-уведомлениями, медалями и многим другим.

Чтобы установить это приложение на iOS и iPadOS
  1. Нажмите иконку «Поделиться» в Safari
  2. Прокрутите меню и нажмите На экран «Домой».
  3. Нажмите Добавить в правом верхнем углу.
Чтобы установить это приложение на Android
  1. Нажмите меню из трёх точек (⋮) в правом верхнем углу браузера.
  2. Нажмите Добавить на главный экран или Установить приложение.
  3. Подтвердите, нажав Установить.
Русский язык для Invision Community 5

Запрет изменения репутации пользователям

Немогу понять, как реализовать идею запрета изменять репутацию другим пользователям в теме, если у желающего изменить репутация ниже определенного количества (общая)... Точнее, немогу определить условие для переменной, определяющую общую репутацию не автора темы/ответа, а авторизованного пользователя.

 

По идеи хотел прописать условие в ячейки таблицы с + и - к репутации в repButtons, если репутация ниже n баллов, то происходила замена ссылки на изменение, на другую картинку...

 

Прописываю в repButtons -

 

<div <if test="$member['pp_reputation_points'] < -10">{parse replacement="rep_up_all_off"}</if>
<div <if test="$member['pp_reputation_points'] < -10">style="visibility:hidden;</if>">

 

И получается что pp_reputation_points выводит/подтягивает общую репутацию автора ответа/темы, а не авторизованного пользователя, т.е. условие некорректно.

Рекомендованные сообщения

У текущего пользователя (авторизованного или нет) всегда "супер массив" $this->memberData

$this->memberData['pp_reputation_points']

 

В шаблоне это конечно хорошо, но вы понимаете что кулхацкер свободно сможет отправить запрос в обход спрятанной кнопки. На самом деле это можно сделать проще http://ipbskins.ru/forum/topic9138.html?do=findComment&comment=66741, вместо $this->memberData['posts'] - $this->memberData['pp_reputation_points']. Ну и да.. Проверить что именно минусует можно при помощи переменной $rating - минус 0

  • Автор

1. Открыть файл admin/sources/classes/class_reputation_cache.php

2. Найти функцию addRate:

 

public function addRate( $type, $type_id, $rating, $message='', $member_id=0, $app='' )

 

 

3. Добавить в нее

 

if( $this->memberData['posts'] < 10 )

{

$this->error_message = 'Сообщение';

return false;

}

 

Хотел поэлегантней сделать, чтобы вместо обычных значков изменения репутации появлялись блеклые, если недопустимый балл репутации...

  • Автор

С другой стороны, эти два способа можно и совместить...

  • Автор

Я так понимаю, что запрос сделан неверно... не выполняется условие <if test="$this->memberData['pp_reputation_points']<-5">

 

   <td style="border-right:1px solid #fff;">
   <div <if test="$this->memberData['pp_reputation_points']<-5">{parse replacement="rep_up_all_off"}</if>
   <div <if test="$this->memberData['pp_reputation_points']<-5">style="visibility:hidden;"</if>>

<if test="canGiveRep:|:IPSMember::canGiveRep( $data, $member ) !== false">	
<div class="ipsList_inline" <if test="giveRepUp:|:IPSMember::canRepUp( $data, $member ) === false">style="display:none"</if>>		
					    <a href='{$this->settings['base_url']}app=core&module=global&section=reputation&do=add_rating&app_rate={$data['app']}&type={$data['type']}&type_id={$data['primaryId']}&rating=1&secure_key={$this->member->form_hash}&post_return={$data['primaryId']}' class='rep_up' title='{$this->lang->words['reputation_up']}'>{parse replacement="rep_up_all"}</a></div>
                           </if></div></div>
                           </td>

Создайте аккаунт или войдите в него для комментирования

Аккаунт

Навигация

Поиск

Поиск

Настроить push-уведомления браузера

Chrome (Android)
  1. Нажмите на иконку замка рядом с адресной строкой.
  2. Нажмите Права доступа -> Уведомления.
  3. Измените свои настройки.
Chrome (компьютер)
  1. Нажмите на иконку замка в адресной строке.
  2. Выберите Настройки сайта.
  3. Найдите Уведомления и измените свои настройки.