Topic in "Who is online"

Здесь авторы могут постить бета-версии своих модификаций для phpBB 3.0.x. Внимание! Не устанавливайте бета-версии модов на работающие форумы!
Правила форума
Местная Конституция | Шаблон запроса | Документация (phpBB3) | Переход на 3.0.6 и выше | FAQ-3 (phpbb3) | Как задавать вопросы | Как устанавливать моды

Ваш вопрос может быть удален без объяснения причин, если на него есть ответы по приведённым ссылкам (а вы рискуете получить предупреждение ;) ).
Аватара пользователя
angst66
phpBB 3.0.0 RC3
Сообщения: 1584
Стаж: 14 лет 8 месяцев
Благодарил (а): 90 раз
Поблагодарили: 165 раз

Re: Topic in "Who is online"

Сообщение angst66 »

Да, бот
Аватара пользователя
Sheer
Former team member
Сообщения: 12113
Стаж: 19 лет 7 месяцев
Откуда: Калининград не Кенигсберг
Благодарил (а): 54 раза
Поблагодарили: 2756 раз

Re: Topic in "Who is online"

Сообщение Sheer »

Ну по-хорошему все фиксить надо. Или из раздачи как-то удалить ссылки на несуществующие темы.
Изображение
Общие ошибки новичков (07.11.2005) & Как задавать вопросы
Мини FAQ
Если ничто другое не помогает, прочтите, наконец, инструкцию!
"Никакая инструкция не может перечислить всех обязанностей должностного лица, предусмотреть все отдельные случаи и дать вперёд соответствующие указания, а поэтому господа инженеры должны проявить инициативу и, руководствуясь знаниями своей специальности и пользой дела, принять все усилия для оправдания своего назначения".
Циркуляр Морского технического комитета №15 от 29.11.1910 г.
Аватара пользователя
angst66
phpBB 3.0.0 RC3
Сообщения: 1584
Стаж: 14 лет 8 месяцев
Благодарил (а): 90 раз
Поблагодарили: 165 раз

Re: Topic in "Who is online"

Сообщение angst66 »

Sheer писал(а):Это в логе ошибок?
На странице "Кто сейчас на форуме"
Аватара пользователя
Татьяна5
Поддержка
Поддержка
Сообщения: 13159
Стаж: 15 лет 1 месяц
Благодарил (а): 236 раз
Поблагодарили: 3750 раз

Re: Topic in "Who is online"

Сообщение Татьяна5 »

Навскидку:
viewonline.php

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

						$location = isset($topic_title[$topic_id]) ? (($topic_id && !$post_id) ? sprintf($user->lang['READING_THE_TOPIC'], $topic_title[$topic_id], $forum_data[$forum_id]['forum_name']) : (($post_id) ? sprintf($user->lang['READING_THE_POST'], $topic_title[$posts_topics_ids[$post_id]], $forum_data[$forum_id]['forum_name']) : sprintf($user->lang['READING_TOPIC'], $forum_data[$forum_id]['forum_name']))) : $user->lang['READING_THE_DELETED_TOPIC'];
language/ru/common.php
Найти

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

	'READING_THE_TOPIC'		=> 'Просмотр темы «%2$s» в форуме «%1$s»',
Добавить после

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

	'READING_THE_DELETED_TOPIC'		=> 'Просмотр удаленной темы',
Аватара пользователя
angst66
phpBB 3.0.0 RC3
Сообщения: 1584
Стаж: 14 лет 8 месяцев
Благодарил (а): 90 раз
Поблагодарили: 165 раз

Re: Topic in "Who is online"

Сообщение angst66 »

Работает, боты смотрят удаленные темы без ошибок)

Добавлено спустя 4 минуты 29 секунд:
Хотя при переходе кидает в реальную тему
Аватара пользователя
Татьяна5
Поддержка
Поддержка
Сообщения: 13159
Стаж: 15 лет 1 месяц
Благодарил (а): 236 раз
Поблагодарили: 3750 раз

Re: Topic in "Who is online"

Сообщение Татьяна5 »

Ссылка на определенный пост? Тогда так:
Строку в viewonline.php заменить на

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

						if ($topic_id && !$post_id)
						{
							$location = ($topic_title[$topic_id]) ?	sprintf($user->lang['READING_THE_TOPIC'], $topic_title[$topic_id], $forum_data[$forum_id]['forum_name']) :$location = $user->lang['READING_THE_DELETED_TOPIC'];
						}
						elseif ($post_id)
						{
							$location = ($topic_title[$posts_topics_ids[$post_id]]) ? sprintf($user->lang['READING_THE_POST'], $topic_title[$posts_topics_ids[$post_id]], $forum_data[$forum_id]['forum_name']) : $location = $user->lang['READING_THE_DELETED_POST'];
						}
						else
						{
							$location = sprintf($user->lang['READING_TOPIC'], $forum_data[$forum_id]['forum_name']);
						}
В language/ru/common.php еще добавить

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

	'READING_THE_DELETED_POST'		=> 'Просмотр удаленного поста',
Аватара пользователя
tchuew
phpBB 1.4.1
Сообщения: 48
Стаж: 13 лет 7 месяцев
Откуда: Москва
Благодарил (а): 4 раза

Re: Topic in "Who is online"

Сообщение tchuew »

После обновления куда-то исчезли данные с заглавной странички, мод похожий на "Кто онлайн". Не могу найти. Помогите плиз. О чем веду речь, можно посмотреть здесь внизу странички, заголовки: "Кто сейчас на конференции" и "Гости посетившие форум за последнее время" -> http://www.rsgmag.ru/forum/


Т.е. у меня весь этот кусок кода не обслуживается:

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

<!-- IF S_DISPLAY_ONLINE_LIST -->
	<br>
	<!-- IF U_VIEWONLINE --><h3><a href="{U_VIEWONLINE}">{L_WHO_IS_ONLINE}</a></h3><!-- ELSE --><h3>{L_WHO_IS_ONLINE}</h3><!-- ENDIF -->
	<p>{TOTAL_USERS_ONLINE} ({L_ONLINE_EXPLAIN})<br />{RECORD_USERS}<br /><br />
	<table align="center" cellspacing=0" cellpadding="0" border="0" width="100%">
		<tr>
		    <td valign="top" width="150" align="center">
				<!-- IF S_USER_LOGGED_IN -->{USER_AVATAR}<br />{USERNAME}<!-- ENDIF -->
			</td>
		    <td valign="top" align="justify">
				{LOGGED_IN_USER_LIST}<!-- IF LOGGED_IN_USER_LIST_BOTS --><br />{LOGGED_IN_USER_LIST_BOTS}<!-- ENDIF -->
				<!-- IF LEGEND --><br /><em>{L_LEGEND}: {LEGEND}</em><!-- ENDIF --><br /><br />{L_GUESTS_ONLINE}{GUESTS_ONLINE}
			</td>
		</tr>
	</table>
	<h3>{L_PAST_GUESTS}</h3>{ONLINE_GUESTS}</p>	
<!-- ENDIF -->
Спасибо.
Те, кто не готов воевать за самый дальний форт, кончит тем, что сдаст Столицу.

RSG iRADIO - http://www.rsgmag.ru/iradio/ Наша музыка - ваше настроение !
Аватара пользователя
владимир1983
phpBB 3.2.6
Сообщения: 5954
Стаж: 16 лет 4 месяца
Откуда: Сергиев Посад
Благодарил (а): 373 раза
Поблагодарили: 727 раз

Re: Topic in "Who is online"

Сообщение владимир1983 »

С какой на какую версию обновлялся?
За ваши деньги решу ваши проблемы. Стучи в ЛС.
Нет человека - нет проблемы. (c)
Аватара пользователя
tchuew
phpBB 1.4.1
Сообщения: 48
Стаж: 13 лет 7 месяцев
Откуда: Москва
Благодарил (а): 4 раза

Re: Topic in "Who is online"

Сообщение tchuew »

владимир1983

Всё... раскопал. Почему-то вырывает куски кода при переносе...

Ушло из index.php вот это:

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

// --- IP Country Flag Olympus start --------------------
//	Past guests based on session lenght (3600 = 1 hrs)
//
$online_guests = '';

$time = (time() - (intval($config['session_length']))); 

$sql = 'SELECT session_ip, session_time, session_user_id
	FROM ' . SESSIONS_TABLE . '
	WHERE session_user_id = ' . ANONYMOUS . '
		AND session_time >= ' . $time . '
	ORDER BY session_time DESC';
$result = $db->sql_query($sql);
while ($row = $db->sql_fetchrow($result))
{
	$flag = ip_country_to_flag($row['session_ip']);
	$country = strtoupper($flag);

	$online_guests .= ( $online_guests != '' ) ? ', ' . '<img src="images/flags/small/' .  $flag . '.png" width="14" height="9" alt="' . $user->lang['country'][$country] . '" title="' . $user->lang['country'][$country] . '" />' : '<img src="images/flags/small/' .  $flag . '.png" width="14" height="9" alt="' . $user->lang['country'][$country] . '" title="' . $user->lang['country'][$country] . '" />';
}
if (!$online_guests)
{
	$online_guests .= $user->lang['GUEST_ONLINE_NONE'];
}

$db->sql_freeresult($result);

//
//	Guests online thinghy
//
	
$time = (time() - (intval($config['load_online_time']) * 60));

$guests_online_ip = '';

// Get online guests
$sql = 'SELECT DISTINCT s.session_ip
	FROM ' . SESSIONS_TABLE . ' s
	WHERE s.session_user_id = ' . ANONYMOUS . '
		AND s.session_time >= ' . $time . '
	ORDER BY session_time DESC';
$result = $db->sql_query($sql);

while ($row = $db->sql_fetchrow($result))
{
	$flag = ip_country_to_flag($row['session_ip']);
	$country = strtoupper($flag);
	$guests_online_ip .= ( $guests_online_ip != '' ) ? ', ' . '<img src="images/flags/small/' .  $flag . '.png" width="14" height="9" alt="' . $user->lang['country'][$country] . '" title="' . $user->lang['country'][$country] . '" />' : '<img src="images/flags/small/' .  $flag . '.png" width="14" height="9" alt="' . $user->lang['country'][$country] . '" title="' . $user->lang['country'][$country] . '" />';
}
if (!$guests_online_ip)
{
	$guests_online_ip .= $user->lang['GUEST_ONLINE_NONE'];
}
$db->sql_freeresult($result);
//
// let's give the appropriate flag to the newest user
// 
$flag = ip_country_to_flag($config['newest_user_reg_ip']);
$country = strtoupper($flag);
// --- IP Country Flag Olympus end ----------------------
Спасибо.
Те, кто не готов воевать за самый дальний форт, кончит тем, что сдаст Столицу.

RSG iRADIO - http://www.rsgmag.ru/iradio/ Наша музыка - ваше настроение !
Аватара пользователя
apollion
phpBB 2.0.22
Сообщения: 1382
Стаж: 12 лет 6 месяцев
Откуда: Юг Руси
Благодарил (а): 50 раз
Поблагодарили: 99 раз

Re: Topic in "Who is online"

Сообщение apollion »

Время от времени появляется ошибка на странице "Кто сейчас на коныференции"

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

Общая ошибка
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: 246
CALL: dbal_mysqli->sql_query()
Версия phpbb3 - 3.0.12, стиль subsilver2. MySQL(i) 5.6.20. Версия мода: "who is online" 0.1.0. Качал отсюда.

Подскажите, пожалуйста, как ее исправить? Это: Topic in "Who is online" - этот же мод - более свежей версии?

Или может есть аналогичный мод получше.
Последний раз редактировалось Sheer 19.10.2014 19:46, всего редактировалось 1 раз.
Причина: bb-код
Аватара пользователя
Sheer
Former team member
Сообщения: 12113
Стаж: 19 лет 7 месяцев
Откуда: Калининград не Кенигсберг
Благодарил (а): 54 раза
Поблагодарили: 2756 раз

Re: Topic in "Who is online"

Сообщение Sheer »

apollion
Читать отсюда Topic in "Who is online"
и включить debug

Добавлено спустя 2 минуты 28 секунд:
... и пользуйтесь кнопочкой

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

 при оформлении фрагментов кода или бактрейса.[/off]
Изображение
Общие ошибки новичков (07.11.2005) & Как задавать вопросы
Мини FAQ
Если ничто другое не помогает, прочтите, наконец, инструкцию!
"Никакая инструкция не может перечислить всех обязанностей должностного лица, предусмотреть все отдельные случаи и дать вперёд соответствующие указания, а поэтому господа инженеры должны проявить инициативу и, руководствуясь знаниями своей специальности и пользой дела, принять все усилия для оправдания своего назначения".
Циркуляр Морского технического комитета №15 от 29.11.1910 г.
Аватара пользователя
apollion
phpBB 2.0.22
Сообщения: 1382
Стаж: 12 лет 6 месяцев
Откуда: Юг Руси
Благодарил (а): 50 раз
Поблагодарили: 99 раз

Re: Topic in "Who is online"

Сообщение apollion »

Sheer писал(а):и включить debug
Где он включается? Прочел, но решения не увидел. Продублируйте, пожалуйста, это решение.
Аватара пользователя
Sheer
Former team member
Сообщения: 12113
Стаж: 19 лет 7 месяцев
Откуда: Калининград не Кенигсберг
Благодарил (а): 54 раза
Поблагодарили: 2756 раз

Re: Topic in "Who is online"

Сообщение Sheer »

Поиск по конференции: включить debug

Ну ладно..
в viewonline.php заменить

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

                      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);
на

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

                      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_url = append_sid("{$phpbb_root_path}viewtopic.$phpEx", 'f=' . $forum_id . '&t=' . $on_page[1]);
на

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

    $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]));
Изображение
Общие ошибки новичков (07.11.2005) & Как задавать вопросы
Мини FAQ
Если ничто другое не помогает, прочтите, наконец, инструкцию!
"Никакая инструкция не может перечислить всех обязанностей должностного лица, предусмотреть все отдельные случаи и дать вперёд соответствующие указания, а поэтому господа инженеры должны проявить инициативу и, руководствуясь знаниями своей специальности и пользой дела, принять все усилия для оправдания своего назначения".
Циркуляр Морского технического комитета №15 от 29.11.1910 г.
Аватара пользователя
apollion
phpBB 2.0.22
Сообщения: 1382
Стаж: 12 лет 6 месяцев
Откуда: Юг Руси
Благодарил (а): 50 раз
Поблагодарили: 99 раз

Re: Topic in "Who is online"

Сообщение apollion »

Sheer писал(а):Поиск по конференции: включить debug
Ну ладно..
в viewonline.php заменить
Спасибо за помощь. Правки внес, "debug" включил.
Аватара пользователя
Пчелкин
phpBB 3.3.0
Сообщения: 11361
Стаж: 16 лет 8 месяцев
Благодарил (а): 1832 раза
Поблагодарили: 1358 раз

Re: Topic in "Who is online"

Сообщение Пчелкин »

Sheer писал(а):Ну ладно..
Ээээээ. На языке деревенского сарая это что на что делает - заменяет?
При тыканье в несуществующую тему что будет?
А есть ли такой код для тыканья удаленных дополнительных самопальных и ОТМОДОВБЫВШИХ станиц на форуме?
NIKON-D90, AF-S 18-105, AF-S 14-24, AF-S 24-70

Вернуться в «Бета-версии модов для phpBB 3.0.x»