Перейти к контенту
  • 0

Вопросик о том, как ИПБ обрабатывает вообще вывод сообщений


Spear

Вопрос

Добрый вечер,

я вот тутрешил обзавестись некоторыми модумами простенькими.

Начал ставить online\offline хак,

и при утсановке там в инструкци нужно вставить внуть цикла, который обрабатывает (как я понимаю) каждый пост отдельный запрос в БД.

Ну я-то и думаю - нифига себе, получается - если на странице 50 ответов то это +50 запросов в БД?

Ну решил проверить - и ничего подобного. Более того - мод работает корректно и он не добавил запрос в БД вообще..

короче говрря я вообще в растерянности :D Объясните, пожалуйста, как движок инвижена обрабатывает показ тем. Ведь если можно внутрь этого цикла (обрабатывающего посты) вставлять запросы в БД, которые судесным образом кешируются - то это супер.

 

Подробнее:

я говорил о изменениях в файле topics.php/

 

вот кусочек инструкции от мистического мода:

 

Find:
---------------------
	while ( $row = $DB->fetch_row() ) {

		$poster = array();
---------------------

Add below:
---------------------

			  $t_time = time() - 900;
			  $query = mysql_query("SELECT member_id FROM ibf_sessions WHERE member_id!='0' AND member_id='$row[author_id]' AND login_type <> 1 AND running_time>'$t_time'") or print mysql_error();
		$status = mysql_num_rows($query);

		if ($status > 0)
		{
			$row['status'] = "<div align='right' style='width:100%; font-size:8pt; color:white; filter:Glow(color=#006C00, strength=2)'><b>Online</b></div>";
		}
		else
		{
			$row['status'] = "<div align='right' style='width:100%; font-size:8pt; color:white; filter:Glow(color=#FF0000, strength=2)'><b>Offline</b></div>";
		}

Ссылка на комментарий
Поделиться на других сайтах

Рекомендуемые сообщения

  • 0

:D

 

Не устанавливай этот мод

Здесь действительно советуют добавить по запросу на пост

Ссылка на комментарий
Поделиться на других сайтах

  • 0
:)

 

Не устанавливай этот мод

Здесь действительно советуют добавить по запросу на пост

я в итоге сделал "свой мод" онлайн\оффлайн - проверяем

if((time()-$member['last_activity'])>300) {то оффлайн}

Это я где-то там добавл где идет обрадотка ющзеров - и не надо никаких запросов в БД новых :D

хотя мину с чем - нельзя узнать, желает ли пользователь оставаться невидимым или нет :)

 

вот и хотел спросить - правильно ли я сделал? ;)

Ссылка на комментарий
Поделиться на других сайтах

  • 0

ещё такой вопрос - мне хочется сделать так, что бы при наведнеии на полоску, показывающую рейтинг (тот, что предупреждения) юзера, показывалась инфа о том, за что добавлены предупреждениия.

Не подскаете как это лучше сделать?

То есть нужно делать селект из warn_logs.

Конечно в каждом после делать - это извращение.

Вот и проскочила идея - сначала узнать айди всех пользователей, чьи сообщения будут выведены на экран,

а потом (до цикла обработки постов) сделать

select from warn_logs where user_id in($_список пользовтателей_чьи_сообщения_выводятся)

и построить массив (айди_пользователя - его преды).

То есть всего-то два запроса добавится.

Вопрсо в чем:

1.может уже где-то формируется список всех юзеров, чьи посты нам покажут? Чтоб не делал двойную работу.

 

2. Как думаете, не сильно ли напряжно это будет для движка ИПБ?

 

 

если работает,то да =)

я имел ввиду - может есть уже более удобый мод, который не делает по 1му запросу в БД на пост, но учитывает то, что пользовтаель желает быть в инвизе?

Ссылка на комментарий
Поделиться на других сайтах

  • 0

>>может уже где-то формируется список всех юзеров, чьи посты нам покажут? Чтоб не делал двойную работу

 

если внимательно почитать комменты в Topics.php, то нетрудно наткнуться на такой:

 

// Get the member info. We parse the data and cache it.

// It's likely that the same member posts several times in

// one page, so it's not efficient to keep parsing the same

// data

 

 

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

Ссылка на комментарий
Поделиться на других сайтах

  • 0

>> я имел ввиду - может есть уже более удобый мод, который не делает по 1му запросу в БД на пост, но учитывает то, что пользовтаель желает быть в инвизе?

 

Мой где-то здесь валялся.

Не в виде архива, а где-то в топиках.

Он всё учитывает.

Ссылка на комментарий
Поделиться на других сайтах

  • 0
>> я имел ввиду - может есть уже более удобый мод, который не делает по 1му запросу в БД на пост, но учитывает то, что пользовтаель желает быть в инвизе?

 

Мой где-то здесь валялся.

Не в виде архива, а где-то в топиках.

Он всё учитывает.

спасибо большо, постараюсь найти :D

Ссылка на комментарий
Поделиться на других сайтах

  • 0
>> я имел ввиду - может есть уже более удобый мод, который не делает по 1му запросу в БД на пост, но учитывает то, что пользовтаель желает быть в инвизе?

 

Мой где-то здесь валялся.

Не в виде архива, а где-то в топиках.

Он всё учитывает.

чесслово - искал долго и нудно, но не нашел :D

Кто-нибудь знает где найти этот мод?

_______

опять перерыл форум - не нашел.. ;)

Изменено пользователем Spear
Ссылка на комментарий
Поделиться на других сайтах

Присоединиться к обсуждению

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

Гость
Ответить на вопрос...

×   Вы вставили отформатированный текст.   Удалить форматирование

  Допустимо не более 75 смайлов.

×   Ваша ссылка была автоматически заменена на медиа-контент.   Отображать как ссылку

×   Ваши публикации восстановлены.   Очистить редактор

×   Вы не можете вставить изображения напрямую. Загрузите или вставьте изображения по ссылке.

Зарузка...
×
×
  • Создать...

Важная информация

Находясь на нашем сайте, вы соглашаетесь на использование файлов cookie, а также с нашим положением о конфиденциальности Политика конфиденциальности и пользовательским соглашением Условия использования.