Страница 1 из 3

Viewtopic Users Data Cache 1.0.0

Добавлено: 11.08.2006 8:50
Xpert
Мод кеширует информацию о пользователях во viewtopic.php, чтобы при генерации страницы если на странице несколько сообщений от одного пользователя, не генерировать его информацию заново.

ВНИМАНИЕ: мод рассчитан на стандартный форум. Если форум у вас модифицированный и если вы досконально не понимаете что он делает, ставить его не советую. Корректную работу на форуме с добавленными относительно чистого phpBB модами, влияющими на инфорумацию о пользователе (Birthday, Gender, etc...) не гарантирую.

Чуть позже планирую сделать еще кеширование подписи. Аддоны тоже будут, но когда - сложно сказать.

Добавлено: 11.08.2006 9:16
svk
Поставил себе. Не пофигачились ни гендер, ни карма, ни мой мод статы.
странно :)

Добавлено: 11.08.2006 10:43
Xpert
А вот и addon для подписей

Добавлено спустя 56 минут 7 секунд:

Для Gender

Добавлено спустя 6 минут 8 секунд:

Для Birthday

Добавлено спустя 2 минуты:

Аддоны для модов прошу ставить внимательно, возможны расхождения с инструкциями... там все довольно запутанно в результате получается :( В общем как и было сказано, мод требует понимания - что, где, к чему и почему...

Добавлено: 16.08.2006 20:17
Xpert
И тишина...

Добавлено: 16.08.2006 21:25
rxu
И тишина...
:) Xpert, наверное, напугал всех толстыми и черными варнингами :lol:

Добавлено: 16.08.2006 21:30
Siava
Xpert
Я всё забываю проверить этот мод :) Для меня очень актуально, как потестю обязательно отпишусь :)

Добавлено: 16.08.2006 21:44
Xpert
Варнинги вполне актуальны. Этот мод способен вызвать много вопросов у тех, кто не помнит что и когда он ставил на форум и что и как в нем работает. Но на самом деле в нем нет ничего сложного. Я постарался сделать изменения минимальными и кажется мне это удалось.

Добавлено: 20.08.2006 21:41
lusever
Пока не будет тестов, смысла для большинства нет. Кто его знает, стоит ли сбрасывать инфу в массив, а потом проверять вхождение. Это ведь может быть даже затранее того, чем sql запрос.
Кстати, sql запроса я и необнаружил. Тогда что мы оптимизировали?
Генерацию, может я и не понимаю (и ни в коем случае не хочу умилить чьто труды), но генерация того контента происходит достаточно быстро.
Исключение это подписи, т.к. там всё-таки регулярки.

Добавлено: 23.08.2006 8:36
Xpert
Вы полагаете что выполнение пары десятков строк кода будет быстрее чем выемка данных из массива? Я так не считаю, особенно если стоят моды, догружающие viewtopic. Кроме того, аналогично все реализовано в phpBB 3, я не думаю что разработчики написали подобный код от нечего делать.

Добавлено: 27.08.2006 14:43
Ulfr
Xpert писал(а):Варнинги вполне актуальны. Этот мод способен вызвать много вопросов у тех, кто не помнит что и когда он ставил на форум и что и как в нем работает.
Угумс. Вопрос возник.
Устанавливал тупо по инструкции.
После установки этого мода дата в заголовке постов сбрасывается на 3:00 01.01.1970 (т.е. насколько я понимаю - не получает ответа на запрос даты поста)
При этом дата на индексе отображается нормально.

Версия phpBB*: 2.0.21
Используемые шаблоны: subSilver
Используемые моды:
stop advertisement bots 2.0
Admin Userlist 2.0.6
Anti spam-bots.zip
File Attachment Mod 2.4.3
Simply Merge Threads 1.0.1 - устанавливал по инструкции Xpert'а
Split posts and merge in one step 1.0.3
Extended Quick Reply Form 3.0.3 - с удалением редиректа после отправки

Версия PHP: 4.4.2
Используемая СУБД и её версия: MySQL 4.1.16 (на локалхосте) и 4.1.21 (на хостинге)
Ссылка на конференцию: wanderers.ru
Использовался ли поиск для решения проблемы: нет, поскольку мод достаточно нов.

Вполне вероятно, я то это я накосячил при установке, потому прикладываю posting.php (сам разобраться я пока, к сожалению, не в состоянии).

Добавлено: 27.08.2006 17:11
Xpert
Спасибо, это глюк мода...

Одна из инструкций мода переписана в такой вид:

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

#
#-----[ FIND ]------------------------------------------
#
	$poster_id = $postrow[$i]['user_id'];
	$poster = ( $poster_id == ANONYMOUS ) ? $lang['Guest'] : $postrow[$i]['username'];

	$post_date = create_date($board_config['default_dateformat'], $postrow[$i]['post_time'], $board_config['board_timezone']);

	$poster_posts = ( $postrow[$i]['user_id'] != ANONYMOUS ) ? $lang['Posts'] . ': ' . $postrow[$i]['user_posts'] : '';

	$poster_from = ( $postrow[$i]['user_from'] && $postrow[$i]['user_id'] != ANONYMOUS ) ? $lang['Location'] . ': ' . $postrow[$i]['user_from'] : '';

	$poster_joined = ( $postrow[$i]['user_id'] != ANONYMOUS ) ? $lang['Joined'] . ': ' . create_date($lang['DATE_FORMAT'], $postrow[$i]['user_regdate'], $board_config['board_timezone']) : '';

	$poster_avatar = '';
	if ( $postrow[$i]['user_avatar_type'] && $poster_id != ANONYMOUS && $postrow[$i]['user_allowavatar'] )
	{
		switch( $postrow[$i]['user_avatar_type'] )
		{
			case USER_AVATAR_UPLOAD:
				$poster_avatar = ( $board_config['allow_avatar_upload'] ) ? '<img src="' . $board_config['avatar_path'] . '/' . $postrow[$i]['user_avatar'] . '" alt="" border="0" />' : '';
				break;
			case USER_AVATAR_REMOTE:
				$poster_avatar = ( $board_config['allow_avatar_remote'] ) ? '<img src="' . $postrow[$i]['user_avatar'] . '" alt="" border="0" />' : '';
				break;
			case USER_AVATAR_GALLERY:
				$poster_avatar = ( $board_config['allow_avatar_local'] ) ? '<img src="' . $board_config['avatar_gallery_path'] . '/' . $postrow[$i]['user_avatar'] . '" alt="" border="0" />' : '';
				break;
		}
	}

	//
	// Define the little post icon
	//
	if ( $userdata['session_logged_in'] && $postrow[$i]['post_time'] > $userdata['user_lastvisit'] && $postrow[$i]['post_time'] > $topic_last_read )
	{
		$mini_post_img = $images['icon_minipost_new'];
		$mini_post_alt = $lang['New_post'];
	}
	else
	{
		$mini_post_img = $images['icon_minipost'];
		$mini_post_alt = $lang['Post'];
	}

	$mini_post_url = append_sid("viewtopic.$phpEx?" . POST_POST_URL . '=' . $postrow[$i]['post_id']) . '#' . $postrow[$i]['post_id'];

#
#-----[ REPLACE WITH ]------------------------------------------
#
	// [begin] Viewtopic Users Data Cache 1.0.0 
	$poster_id = $postrow[$i]['user_id'];

	$post_date = create_date($board_config['default_dateformat'], $postrow[$i]['post_time'], $board_config['board_timezone']);

	//
	// Define the little post icon
	//
	if ( $userdata['session_logged_in'] && $postrow[$i]['post_time'] > $userdata['user_lastvisit'] && $postrow[$i]['post_time'] > $topic_last_read )
	{
		$mini_post_img = $images['icon_minipost_new'];
		$mini_post_alt = $lang['New_post'];
	}
	else
	{
		$mini_post_img = $images['icon_minipost'];
		$mini_post_alt = $lang['Post'];
	}

	$mini_post_url = append_sid("viewtopic.$phpEx?" . POST_POST_URL . '=' . $postrow[$i]['post_id']) . '#' . $postrow[$i]['post_id'];

	if (!isset($user_cache[$poster_id]))
	{
	$poster = $postrow[$i]['username'];

	$poster_posts = $lang['Posts'] . ': ' . $postrow[$i]['user_posts'];

	$poster_from = ( $postrow[$i]['user_from'] ) ? $lang['Location'] . ': ' . $postrow[$i]['user_from'] : '';

	$poster_joined = $lang['Joined'] . ': ' . create_date($lang['DATE_FORMAT'], $postrow[$i]['user_regdate'], $board_config['board_timezone']);

	$poster_avatar = '';
	if ( $postrow[$i]['user_avatar_type'] && $postrow[$i]['user_allowavatar'] )
	{
		switch( $postrow[$i]['user_avatar_type'] )
		{
			case USER_AVATAR_UPLOAD:
				$poster_avatar = ( $board_config['allow_avatar_upload'] ) ? '<img src="' . $board_config['avatar_path'] . '/' . $postrow[$i]['user_avatar'] . '" alt="" border="0" />' : '';
				break;
			case USER_AVATAR_REMOTE:
				$poster_avatar = ( $board_config['allow_avatar_remote'] ) ? '<img src="' . $postrow[$i]['user_avatar'] . '" alt="" border="0" />' : '';
				break;
			case USER_AVATAR_GALLERY:
				$poster_avatar = ( $board_config['allow_avatar_local'] ) ? '<img src="' . $board_config['avatar_gallery_path'] . '/' . $postrow[$i]['user_avatar'] . '" alt="" border="0" />' : '';
				break;
		}
	}
	// [end] Viewtopic Users Data Cache 1.0.0 

Добавлено: 28.08.2006 0:54
Ulfr
Спасибо большое. Теперь все в норме.

Добавлено: 06.09.2006 15:25
Nemo1987
Усе круто, только моно все сделать без "расхождений с инструкцией" и в одном архиве?? ;)

Re: Viewtopic Users Data Cache 1.0.0

Добавлено: 01.03.2007 21:17
aiw
Xpert писал(а):Чуть позже планирую сделать еще кеширование подписи
Мод супер, спасибо, но ждём обещаного продолжения... :roll:

Добавлено: 01.03.2007 22:13
Xpert
Оно через час после этой фразы было, читайте внимательнее :)