IncominG
А это что по вашему?
Код:
#FIND
$poster_id = $postrow['user_id'];
Не надо спорить с
error_reporting(E_ALL); 
(в первой строке - использование, в последней - объявление):
Код: Выделить всё
if ( $poster_id == ANONYMOUS )
{
message_die(GENERAL_MESSAGE, $lang['reputation_anonymous_no_reviews']);
}
$is_auth = array();
$is_auth = auth(AUTH_ALL, $postrow['forum_id'], $userdata);
/* HH HH UU UU GGGGF EEEEEE
* HH HH UU UU GG EE
* HHHHHH UU UU GG GGG EEEE
* HH HH UU UU GG GG EE ( to display related post )
*/ // A HH HH UUUU GGGGG EEEEEE ( modified ) piece of code from viewtopic.php
$poster_id = $postrow['user_id'];
IncominG писал(а):Ну во первых это не переменная, а текст, но если вам от этого легче, вводим:
Нет, это не просто текст, это индекс в массиве $lang (см. message_die). В "просто тексте" не употребляют подчеркивания.
IncominG писал(а):А так свежий глаз в целом граммотный оказался
фу как невежливо

А местами я что, безграмотный?
IncominG, почему в fix.rar/usercp_reputation.php исчезли куски кода, создающие кнопки EMAIL/PM/ICQ ?
Баг в fix.rar/usercp_reputation.php
Код: Выделить всё
#FIND только второе вхождение!!!
if ( $voter_id == $userdata['user_id'] )
#REPLACE
# $voter_id был в блоке REPUTATION_EDIT, в блоке REPUTATION_DELETE объявлен $user_id
if ( $user_id == $userdata['user_id'] )
Еще баги в usercp_reputation.php
Код: Выделить всё
#FIND
for ($k = 0; $k < l; $k++ )
#REPLACE
for ($k = 0; $k < $warnings; $k++ )
#FIND
message_die(GENERAL_MESSAGE, '<a href="profile.php?mode=reputation&m=' . REPUTATION_VIEW .
}
}
}
#AFTER ADD
else
{
$s_display_expired = '';
}
И поправка к старому:
Код: Выделить всё
#FIND
$l_expire = '';
switch ( $info[$i]['modification'] )
#REPLACE
$expire = $review = $l_expire = '';
switch ( $info[$i]['modification'] )
Добавлено спустя 3 часа 33 минуты 20 секунд:
post_report.php от IncominG отличается
только 1) добавленной поддержкой мода user level, 2) исправленным
if ($enable_html) и 3) неправильной последней строкой (там редирект, как в democracy011, а в democracy012 написано message_die). Странный какой-то фикс
Еще баги в usercp_reputation.php
Код: Выделить всё
#FIND
for ($k = 0; $k < l; $k++ )
#REPLACE
for ($k = 0; $k < $postrow['warnings']; $k++ )
#FIND
$sql = 'SELECT r.post_id, r.voter_id, r.user_id, r.modification FROM ' . REPUTATION_TABLE . " r
#REPLACE
$sql = 'SELECT r.post_id, r.voter_id, r.user_id, r.modification, r.forum_id FROM ' . REPUTATION_TABLE . " r
#FIND в 2-х местах
if ( !$post_deleted )
#BEFORE ADD
# чтобы небыло undefined variable, но можно и забить. этих undefined в phpBB все равно до*** (т.е. много)
$approve = false;
#FIND
$forum_id = $row['forum_id'];
#AFTER ADD
# нужен дальше для $emailer->use_template($e_template, $user_lang);
$user_lang = $row['user_lang'];
#FIND
$lang['reputation_warning_successfull'] . $post_action . '<br /><br />' .
#REPLACE
# нет такой переменной $post_action
$lang['reputation_warning_successfull'] . '<br /><br />' .
#FIND
$row_color = ( !($i % 2) ) ? : $theme['td_color2'];
$row_class = ( !($i % 2) ) ? : $theme['td_class2'];
$template->assign_block_vars('postrow', array(
'ROW_COLOR' => '#' . $row_color,
'ROW_CLASS' => $row_class,
#REPLACE
# нет переменной $i, пост всего один
$template->assign_block_vars('postrow', array(
'ROW_COLOR' => '#' . $theme['td_color1'],
'ROW_CLASS' => $theme['td_class1'],
#FIND везде
CRITICAL_ERROR
#REPLACE
# см. коммент ниже
GENERAL_ERROR
#FIND
prepage_display(&$message, &$post_subject, $bbcode_uid, $postrow['enable_html'], $postrow['enable_smilies']);
#BEFORE ADD
//
// Editing information
//
if ( $postrow[$i]['post_edit_count'] )
{
$l_edit_time_total = ( $postrow[$i]['post_edit_count'] == 1 ) ? $lang['Edited_time_total'] : $lang['Edited_times_total'];
$l_edited_by = '<br /><br />' . sprintf($l_edit_time_total, $poster, create_date($board_config['default_dateformat'], $postrow[$i]['post_edit_time'], $board_config['board_timezone']), $postrow[$i]['post_edit_count']);
}
else
{
$l_edited_by = '';
}
#FIND
'QUOTE_IMG' => $quote_img,
'QUOTE' => $quote,
#REPLACE
# эти строки не нужны
# далее два фикса для занесения IP в БД (добавил в INSERT поле poster_ip)
#FIND
$sql = 'INSERT INTO ' . REPUTATION_TABLE . " (modification, user_id, voter_id, post_id, forum_id, date)
VALUES ('" . str_replace("\'", "''", $rep_mode)
#REPLACE
$sql = 'INSERT INTO ' . REPUTATION_TABLE . " (modification, user_id, voter_id, post_id, forum_id, poster_ip, date)
VALUES ('" . str_replace("\'", "''", $rep_mode) . "', '{$row['user_id']}', '{$userdata['user_id']}', '$post_id', '$forum_id', '$user_ip', " . time() . ")";
#FIND
$sql = 'INSERT INTO ' . REPUTATION_TABLE . " (modification, user_id, voter_id, post_id, forum_id, date, expire)
VALUES ('$modification', '" . $row['user_id']
#REPLACE
$sql = 'INSERT INTO ' . REPUTATION_TABLE . " (modification, user_id, voter_id, post_id, forum_id, poster_ip, date, expire)
VALUES ('$modification', '" . $row['user_id'] . "', '" . $userdata['user_id'] . "', '$sql_post_id', '$forum_id', '$user_ip', '$current_time', '$expire')";
Еще технические замечания:
1) Много
messages_die(CRITIACL_ERROR... - лучше исп. GENERAL_ERROR, поскольку CRITICAL_ERROR - это для редких фатальных случаев, облом sql запроса таковым не является (по крайней мере по мнению Paul S. Owen)
2) в usercp_reputation.php
Код: Выделить всё
$user_warnings = '<div style="margin:4px 1px 4px 1px"><a href="' . $temp_url . POST_USERS_URL . '=' . $postrow['user_id'] . '&m=0">';
<div style="margin:4px 1px 4px 1px"> лучше убрать из кода и перенести в шаблон, поскольку он вписывается не во все стили (например, в мой не вписался

).