Перейти к контенту

[1.x.x]Система репутаций


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

  • Ответы 91
  • Создана
  • Последний ответ

Лучшие авторы в этой теме

Лучшие авторы в этой теме

Тов. Iggs, каковы ваши планы по адаптации вашего хака к 1.2 ? Очень нужно, народ требовать будет.

fosgen, это в настройках выставить надо(Период в течении которого один пользователь не может изменить репу другому=7)

Ссылка на комментарий
Поделиться на других сайтах

james

Предложения приняты.

 

Alexey

Планы: адаптация будет. :D

Надо заняться...

 

Таблица ibf_reputation уже не нужна, спасибо. Та, которой со мной поделились, весит в зипе 150 килов. ;)

Ссылка на комментарий
Поделиться на других сайтах

У меня проблемма ! Вот я поставил хак и и все вроде нормально работает,но вот я даю голос человеку но когда просматриваю форум то все равно пишется Репутация:Нет, хотя когда нажимаю на слово репутацию то там написано что я ему дал ! Но почему именно под его аватором не показывает правильно репцтацию ?
Ссылка на комментарий
Поделиться на других сайтах

Alexey

Я обновил Karma для 1.2, смотри в архиве здесь. Основа - Reputation Hack от theIggs, правда не знаю какой - я его давно на ibplanet.com нашел и себе на 1.1.2 ставил.

Ссылка на комментарий
Поделиться на других сайтах

theIggs

Нет проблем. Делал-то я ее для своего форума, но тут некоторые посетители просили такую штуку. Мне в принципе и старой хватает. Или там какие-то очень крутые навороты?

Ссылка на комментарий
Поделиться на других сайтах

theIggs

Ладно, я скачаю для 1.1.2 и обновлю до 1.2 и наверно выложу здесь, если ты не против... По крайней мере на свой форум поставлю (я как раз щас апгрейд делаю с 1.1.2, а у меня там репутации были).

Ссылка на комментарий
Поделиться на других сайтах

theIggs

Все, сделал. Лежит здесь в архиве. Я думаю неплохо бы, если бы ты сделал апгрейд скрипт для пользователей старой Кармы или Репутации (для меня в том числе :D.

Ссылка на комментарий
Поделиться на других сайтах

Поставил, работает. Респект theIggs за модификацию и d1pro за апдейт.

PS: Что касаемо скрипта обновления, то он кажется был в этой теме несколькими страницами раньше.

PSS: Небольшой оффтоп, тов d1pro, может вы еще сможете Лайф-чат для 1,1 заапрейдить ? А то тот апгрейд что есть сейчас ожидания не оправдал. Если что, он также есть в архиве ibresource.ru.

Ссылка на комментарий
Поделиться на других сайтах

theIggs

Возникло несколько соображений - во-первых, ты ввел глобальный заголовок системы, однако ты сделал его языконезависимым. Может лучше сделать название в lang - по-любому через админку менять можно - так в форумах, где реально используется несколько языков не будет проблем (как-то не в тему видеть "Репутация" если включен английский и наоборот, если включен русский). Во-вторых, наверно неплохо было бы сделать отображение репутации в списке мемберов (вроде такого щас нет), ну или хотя бы линк на репутацию на это страничке (все-таки "репутация" в заголовке мне не нравится, но с этим проблем нет - переделаю как мне надо). Еще неплохо бы приделать возможность градации префиксов. Ну а в остальном модификация мне очень понравилась.

Alexey

Не, этим мне заниматься не охото - я щас пытаюсь свой форум апгрейднуть, уже неделю все дело стоит. Карма просто входила в те хаки, апдейты которых мне нужны для форума. А чат я хочу либо отдельный, либо свой написать. А вообще это дело не такое уж и хитрое - просто попробуй поставить старый лайф-чат на свой форум (лучше всего на локале). Если возникают ошибки - смотришь где и выясняешь почему... Вроде дело не сложное... Хотя я учусь на сисадмина и опыт программирования у меня имеется :D

В общем может быть когда-нибудь и сделаю, но вряд ли щас...

Ссылка на комментарий
Поделиться на других сайтах

  • 2 недели спустя...

Установил полностью репутацию, но возникла проблема иного плана. При попытке просмотра или при попытке перенаправления после выдачи репки на страницу отображения репутации пользователя выдается ошибка такого плана:

 

Warning: Division by zero in /var/www/html/nwnhtml/forum/sources/functions.php on line 358

 

There appears to be an error with the Legends of the Southern Lands database.

 

 

mySQL query error: SELECT r.*, m.name, t.title FROM ibf_reputation r

                LEFT JOIN ibf_members m ON (m.id=r.from_id)

                LEFT JOIN ibf_topics t ON (r.forum_id=t.forum_id AND r.topic_id=t.tid)

                WHERE r.member_id='80' ORDER BY r.msg_date DESC

                LIMIT 0,

 

mySQL error: You have an error in your SQL syntax near '' at line 5

mySQL error code: 1064

 

Кстати еще вопрос, что будет, если случайно 2 раза использовать db_hack.php в браузере окна?

Ссылка на комментарий
Поделиться на других сайтах

А чего там в 358 линии то такого?

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

Ссылка на комментарий
Поделиться на других сайтах

Вот полностью функция:

 

function build_pagelinks($data) {

  global $ibforums;

 

  $work = array();

 

  $section = 2;  // Number of pages to show per section( either side of current), IE: 1 ... 4 5 [6] 7 8 ... 10

 

  $work['pages']  = 1;

 

  if ( ($data['TOTAL_POSS'] % $data['PER_PAGE']) == 0 )

  {

   $work['pages'] = $data['TOTAL_POSS'] / $data['PER_PAGE']; 358 строчка<--

  }

  else

  {

   $number = ($data['TOTAL_POSS'] / $data['PER_PAGE']);

   $work['pages'] = ceil( $number);

  }

 

 

  $work['total_page']   = $work['pages'];

  $work['current_page'] = $data['CUR_ST_VAL'] > 0 ? ($data['CUR_ST_VAL'] / $data['PER_PAGE']) + 1 : 1;

 

 

  if ($work['pages'] > 1)

  {

   $work['first_page'] = "{$data['L_MULTI']} ({$work['pages']})";

  

   for( $i = 0; $i <= $work['pages'] - 1; ++$i )

   {

    $RealNo = $i * $data['PER_PAGE'];

    $PageNo = $i+1;

   

    if ($RealNo == $data['CUR_ST_VAL'])

    {

     $work['page_span'] .= " <b>[{$PageNo}]</b>";

    }

    else

    {

    

     if ($PageNo < ($work['current_page'] - $section))

     {

      $work['st_dots'] = " <a href='{$data['BASE_URL']}&st=0' title='{$ibforums->lang['ps_page']} 1'>« {$ibforums->lang['ps_first']}</a> ...";

      continue;

     }

    

     // If the next page is out of our section range, add some dotty dots!

    

     if ($PageNo > ($work['current_page'] + $section))

     {

      $work['end_dots'] = "... <a href='{$data['BASE_URL']}&st=".($work['pages']-1) * $data['PER_PAGE']."' title='{$ibforums->lang['ps_page']} {$work['pages']}'>{$ibforums->lang['ps_last']} »</a>";

      break;

     }

    

    

     $work['page_span'] .= " <a href='{$data['BASE_URL']}&st={$RealNo}'>{$PageNo}</a>";

    }

   }

  

   $work['return']    = $work['first_page'].$work['st_dots'].$work['page_span'].' '.$work['end_dots'];

  }

  else

  {

   $work['return']    = $data['L_SINGLE'];

  }

 

  return $work['return'];

}

 

Дело в том, что я эту функцию даже и не трогал.

Ссылка на комментарий
Поделиться на других сайтах

Finist

Это глюк, точнее недоработка. Просто ты забыл выставить сколько показывать строчек на страницу. Это в настройках системы есть (в админке), строчка вроде 2-3... Посмотри короче.

Ссылка на комментарий
Поделиться на других сайтах

При попытке понизить репутацию, выдается ошибка

"У этого пользователя и так слишком низкая репутация. "

Причем для всех , даже для тех, у кого репа положительная

Ссылка на комментарий
Поделиться на других сайтах

Custom title instead of 'Reputation' (e.g. 'Authority', 'Respect') - ПУСТО

Reputation postfix (e.g. 'kg', 'pts', 'votes') - ПУСТО

Show [X] Reputation changes per page in stats - 10

Remove posting rights if Reputation below [X]? - ПУСТО

How many days the member can't change the same member's Reputation again? - 3

Number of posts required to use the Reputation system? - 200

Allow anonymous voting? - нет

Only allow anonymous voting to members with more than [X] posts? - 1000

Name for Anonymous when raising Reputation - ПУСТО

Name for Anonymous when lowering Reputation - ПУСТО

Positive prefix to member's title - 5

 

Все остальные настройки пустые

 

В Reputation.php есть

if ($level <= $ibforums->vars['rep_remove'])

{

$std->Error( array( LEVEL => 1, MSG => 'rep_low') );

}

Т.е если выполняется условие, то выдается мессага о низкой репутации

У меня в конфе rep_remove = 50 (странно, поскольку в админке пустое значение).

Т.е получается, что если текущая репа ниже 50, то ее нельзя понизить?

Изменено пользователем Kris
Ссылка на комментарий
Поделиться на других сайтах

Я отредактировал значение это переменной. Поставил пустое. После этого вроде все заработало. Не знаю только, правильно ли это?
Ссылка на комментарий
Поделиться на других сайтах

Kris

Пустое - нормально.

Щас ещё на себе проверю эти настройки, не исключено, что глюк есть. Эту настройку тщательно не проверял.

 

Сегодня вечером ещё версию обновлю... :D

Ссылка на комментарий
Поделиться на других сайтах

Kris

В Reputation.php есть

if ($level <= $ibforums->vars['rep_remove'])

{

$std->Error( array( LEVEL => 1, MSG => 'rep_low') );

}

Т.е если выполняется условие, то выдается мессага о низкой репутации

У меня в конфе rep_remove = 50 (странно, поскольку в админке пустое значение).

Поясни, где у тебя установлено 50 так, что оно в админке не показывается? Я посмотрел, в админке должно показываться то же значение, что в conf_global... Ошибок вроде нет.

 

Если же стоит значение 50, то действительно - никому с репутацией ниже 50 её нельзя будет понизить. Считается, что ниже этой настройки пасть просто нельзя. :D

Ссылка на комментарий
Поделиться на других сайтах


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

Важная информация

Находясь на нашем сайте, вы соглашаетесь на использование файлов cookie, а также с нашим положением о конфиденциальности Политика конфиденциальности и пользовательским соглашением Условия использования.