Перейти к публикации
Дизайн и модификация IPS Community IPBSkinsBETA
Поиск в
  • Дополнительно...
Искать результаты, содержащие...
Искать результаты в...
Гость RSS-Bot

Важное с Sysman.Ru: Пользователи попадают на премодерацию

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

Гость RSS-Bot

Song:

 

Версия форума 2.1.x

 

Если вы в недавнее время устанавливали модификацию eXTended Reputation System и у вас некоторые пользователи стали попадать на премодерацию беспричинно, то эта тема для вас.

 

В инструкции есть фрагмент:

Цитата
//----------------------------------

// sources/classes/class_session.php

//----------------------------------

 

==============================================================

НАХОДИМ (load_member):

--------------------------------------------------------------

id, name, mgroup, member_login_key, email, restrict_post, view_sigs, view_avs, view_pop, view_img, auto_track

----------------

ДОБАВЛЯЕМ ПОСЛЕ:

----------------

, rep_allow, rep_notify

=======================

 

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

 

Исправление:

После rep_notify вам нужно поставить запятую. Т.е. исправленный фрагмент инструкции дожен выглядеть так:

Цитата
//----------------------------------

// sources/classes/class_session.php

//----------------------------------

 

==============================================================

НАХОДИМ (load_member):

--------------------------------------------------------------

id, name, mgroup, member_login_key, email, restrict_post, view_sigs, view_avs, view_pop, view_img, auto_track

----------------

ДОБАВЛЯЕМ ПОСЛЕ:

----------------

, rep_allow, rep_notify,

=======================

 

Далее объясняется причина столь досадного недоразумения для тех кому интересно.

 

Причина:

Глюк получился действительно интересный и возник случайно.

Возник он от того, что следующим полем после поля auto_track (после которого предлагается поставить отрывок мода) является поле mod_posts.

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

SELEСT [color=magenta].[/color][color=magenta].[/color][color=magenta].[/color] id, name, mgroup, member_login_key, email, restrict_post, view_sigs, view_avs, view_pop, view_img, auto_track, rep_allow, rep_notify mod_posts,

Это равносильно синтаксису в MySQL:

rep_notify [color=brown]as[/color] mod_posts

т.е. поле mod_posts становится алиасом поля rep_notify.

При этом поле rep_notify для форума будет наывазаться mod_posts, но вот содержаться в нём будет отнюдь не mod_posts, а rep_notify!

 

А т.к. при включенной опции rep_notify в профиле юзера там содержится "1", то в коде форума срабатывает:

Цитата (Post.php)
    [color=green]/*-------------------------------------------------------------------------*/[/color]    [color=green]// Check for member post queue[/color]    [color=green]/*-------------------------------------------------------------------------*/[/color]        [b]function[/b] _check_post_mod()    {        [color=green]//-----------------------------------------[/color]        [color=green]// Does this member have mod_posts enabled?[/color]        [color=green]//-----------------------------------------[/color]                 [b]if[/b] ( [color=#048284]$this[/color]->ipsclass->member['mod_posts'] )        {            [b]if[/b] ( [color=#048284]$this[/color]->ipsclass->member['mod_posts'] == [color=navy]1[/color] )            {                [color=#048284]$this[/color]->han_post->obj['moderate'] = [color=navy]1[/color];            }            [b]else[/b]            {

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

Поделиться сообщением


Ссылка на сообщение
Гость
Эта тема закрыта для публикации сообщений.

  • Сейчас на странице   0 пользователей

    Нет пользователей, просматривающих эту страницу.

×
×
  • Создать...