info navigation

phpbb-belk.ru

темы, связанные с форумом phpbb 3.0.x



Новая тема  [ Сообщений: 7 ]  Просмотры: 652

Автор Сообщение
Не в сети
(Sak)  

Стаж: 2 года 3 месяца 26 дней
Сообщения: 22


Стиль: subsilver2


Репутация: 0


Russia



тема самой доработки здесь: https://phpbb-belk.ru/rasshirenie-funkcij-who-is-online_t361.html

Проблема с модом 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]);


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

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


Вложения:
Topic_in_Who_is_online.zip [28.37 КБ]
Скачиваний: 16
Не в сети
(Андрей)  
2022-01-01 
Администратор
Аватара пользователя

Стаж: 8 лет 7 месяцев 3 дня
Сообщения: 1223
Откуда: здешние мы


Стиль: subsilver2


Репутация: 11


Russia

Тиц и PR

перейти на сайт пользователя
Найти темы пользователя


завтра попробую поставить на живой форум потестить что это такое и с чем едят. :?


трёхголовый белк семейства рептилоидов:
"три головы - хорошо, на как же трудно придти к согласию..."
Не в сети
(Sak)  
2022-01-02 

Стаж: 2 года 3 месяца 26 дней
Сообщения: 22


Стиль: subsilver2


Репутация: 0


Russia



Спасибо, буду ждать результата. ;)


Не в сети
(Андрей)  
2022-01-02 
Администратор
Аватара пользователя

Стаж: 8 лет 7 месяцев 3 дня
Сообщения: 1223
Откуда: здешние мы


Стиль: subsilver2


Репутация: 11


Russia

Тиц и PR

перейти на сайт пользователя
Найти темы пользователя


Поставил на рабочий форум. погонял при количестве пользователей 8-11-13-14 - всё работает, открывается. никаких ошибок нет. то есть я даже не знаю, что сказать. у меня трафик не такой большой. :)

вообще-то, как я написал в теме, там есть предупреждение при установке. :)

погоняю ещё, посмотрю.

Вложение:
Комментарий к файлу: 11 пользователей
11+.png
11+.png [ 101.13 КБ | Просмотров: 635 ] 11+.png



трёхголовый белк семейства рептилоидов:
"три головы - хорошо, на как же трудно придти к согласию..."
Не в сети
(Sak)  
2022-01-02 

Стаж: 2 года 3 месяца 26 дней
Сообщения: 22


Стиль: subsilver2


Репутация: 0


Russia



Вот и у меня работает, бывает, что и 10 гостей показывает, а бывает и на двух ошибку выдает.
Что делать не пойму.

Выложите, пожалуйста, вот этот код

Код: Выделить всё

            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;

Как он у вас выглядит?


Не в сети
(Андрей)  
2022-01-02 
Администратор
Аватара пользователя

Стаж: 8 лет 7 месяцев 3 дня
Сообщения: 1223
Откуда: здешние мы


Стиль: subsilver2


Репутация: 11


Russia

Тиц и PR

перейти на сайт пользователя
Найти темы пользователя


похоже так же.

Код: Выделить всё

               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;


там, на официальном сайте мода, было обсуждение по данному вопросу, но, к сожалению, сегодня сайт лежит... http://bb3x.ru/forum/topic-t52.html


трёхголовый белк семейства рептилоидов:
"три головы - хорошо, на как же трудно придти к согласию..."
Не в сети
(Андрей)  
2022-01-04 
Администратор
Аватара пользователя

Стаж: 8 лет 7 месяцев 3 дня
Сообщения: 1223
Откуда: здешние мы


Стиль: subsilver2


Репутация: 11


Russia

Тиц и PR

перейти на сайт пользователя
Найти темы пользователя


сайт заработал. почитал. там вроде нашли решение этой проблемы.
сейчас отредактировал файл viewonline.php и поставил на тестирование.

доработка от -Волк-:

код вывода между тэгами case 'viewtopic': и break; должен выглядеть так:

Код: Выделить всё

               case 'viewtopic':
                  preg_match('|t=([0-9]+)|', $row['session_page'], $on_page);
                  preg_match('|p=([0-9]+)|', $row['session_page'], $on_page_post);
                  if (!empty($on_page_post[1]))
                  {
                     $sql = 'SELECT topic_title FROM ' . TOPICS_TABLE . ' t, ' . POSTS_TABLE ." p WHERE t.topic_id = p.topic_id AND p.post_id = {$on_page_post[1]}";
                  }
                  if (!empty($on_page[1]))
                  {
                     $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 . ((!empty($on_page[1])) ? '&t=' . $on_page[1] : '&p=' . $on_page_post[1]));
               break;


трёхголовый белк семейства рептилоидов:
"три головы - хорошо, на как же трудно придти к согласию..."
Показать сообщения за:  Поле сортировки  
Ответить на тему  [ Сообщений: 7 ] 

Кто сейчас на сайте:

Всего посетителей: 0, из них зарегистрированных: 0, скрытых: 0 и гостей: 0 (основано на активности пользователей за последние 5 минут)
Больше всего посетителей (122) здесь было 19 дек 2023, 12:10

Сейчас этот раздел просматривают: нет зарегистрированных пользователей и гости: 0

Часовой пояс: UTC + 2 часа



Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения
Вы не можете защищать свои темы паролем

Найти:
Перейти:  




cron

Текущее время: 25 апр 2024, 16:06

Создано на основе phpBB® Forum Software © phpBB Group
Яндекс.Метрика

Полная версия Мобильный вид