Перейти к контенту
  • 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
Ссылка на комментарий
Поделиться на других сайтах

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

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

Гость
Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
Ответить на вопрос...

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

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

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

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

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

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

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

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