Проблема с модом Topic in Who is online, по крайней мере я так думаю.
Мод работает нормально, но не всегда.
Дело в том, что когда на форуме больше, скажем, 10 гостей, но их расположение посмотреть невозможно, потому что
Код: Выделить всё
[phpBB Debug] PHP Notice: in file [ROOT]/viewonline.php on line 250: Undefined offset: 1
Полный код ошибки
Код: Выделить всё
SQL ERROR [ mysqli ]
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '' at line 1 [1064]
SQL
SELECT topic_title FROM phpbb_topics WHERE topic_id =
BACKTRACE
FILE: (not given by php)
LINE: (not given by php)
CALL: msg_handler()
FILE: [ROOT]/includes/db/dbal.php
LINE: 757
CALL: trigger_error()
FILE: [ROOT]/includes/db/mysqli.php
LINE: 189
CALL: dbal->sql_error()
FILE: [ROOT]/viewonline.php
LINE: 251
CALL: dbal_mysqli->sql_query()
Вот кусок кода из указанного дэбагге файла
Код: Выделить всё
case 'viewtopic':
preg_match('#t=([0-9]+)#', $row['session_page'], $on_page);
$sql = 'SELECT topic_title FROM ' . TOPICS_TABLE . " WHERE topic_id = {$on_page[1]}";
$topic_result = $db->sql_query($sql);
$topic_data = $db->sql_fetchrow($topic_result);
$location = sprintf($user->lang['READING_TOPIC'], $forum_data[$forum_id]['forum_name'], $topic_data['topic_title']);
$location_url = append_sid("{$phpbb_root_path}viewtopic.$phpEx", 'f=' . $forum_id . '&t=' . $on_page[1]);
break;
case 'viewforum':
$location = sprintf($user->lang['READING_FORUM'], $forum_data[$forum_id]['forum_name']);
break;
А вот так написано в инструкции
Open: viewonline.php
Find
Код: Выделить всё
$location = sprintf($user->lang['READING_TOPIC'], $forum_data[$forum_id]['forum_name']);
In-line Find
Код: Выделить всё
$forum_data[$forum_id]['forum_name']
In-line Add after
Код: Выделить всё
, $topic_data['topic_title']
Add before
Код: Выделить всё
preg_match('#t=([0-9]+)#', $row['session_page'], $on_page);
$sql = 'SELECT topic_title FROM ' . TOPICS_TABLE . " WHERE topic_id = {$on_page[1]}";
$topic_result = $db->sql_query($sql);
$topic_data = $db->sql_fetchrow($topic_result);
Add after
Код: Выделить всё
$location_url = append_sid("{$phpbb_root_path}viewtopic.$phpEx", 'f=' . $forum_id . '&t=' . $on_page[1]);
Самое странное, что просмотр онлайна работает не всегда... Но когда работает, то показывает тему в разделе, как и заявлено модом.
Где я накосячил и как конечный код должен выглядеть в окончательном работающем виде?
На всякий случай прикрепил архив мода.
Помогите, пожалуйста.