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

[+] 2.0pb7 - Друзья-Враги на основе всех участников форума


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

Дополнение для mJournal v2.0pb7: Друзья и Враги вашего Дневника на основе всех учасников форума

Автор: xRay

 

 

Модификации будут в трех файлах Дневников:

/journal/dosetup.php

/journal/journal.php

/journal/setup.php

 

Открываем: /journal/dosetup.php

Находим в функции add_friends

		$DB->query("SELECT name, id FROM ibf_jmembers WHERE ".$query);
	$memb = $DB->fetch_row();

Заменям на это

		$DB->query("SELECT name, id FROM ibf_members WHERE ".$query);
	$memb = $DB->fetch_row();

 

Находим в функции add_enemy

		$DB->query("SELECT name, id FROM ibf_jmembers WHERE ".$query);
	$memb = $DB->fetch_row();

Заменям на это

		$DB->query("SELECT name, id FROM ibf_members WHERE ".$query);
	$memb = $DB->fetch_row();

 

 

Открываем: /journal/journal.php

 

Находим в функции get_user_friends

			$DB->query("SELECT i.friend_id as id, i.is_super_friend, m.name
					FROM ibf_jfriends i
					LEFT JOIN ibf_jmembers m ON (m.id = i.friend_id)
					WHERE i.member_id='".$this->users['id']."' AND i.is_friend='1'");

Заменям на это

			$DB->query("SELECT i.friend_id as id, i.is_super_friend, m.name
					FROM ibf_jfriends i
					LEFT JOIN ibf_members m ON (m.id = i.friend_id)
					WHERE i.member_id='".$this->users['id']."' AND i.is_friend='1'");

Находим в функции get_user_ufriends

			$DB->query("SELECT i.member_id as id, m.name
					FROM ibf_jfriends i
					LEFT JOIN ibf_jmembers m ON (m.id=i.member_id)
					WHERE i.friend_id='".$this->users['id']."' AND i.is_friend='1'");

Заменям на это

			$DB->query("SELECT i.member_id as id, m.name
					FROM ibf_jfriends i
					LEFT JOIN ibf_members m ON (m.id=i.member_id)
					WHERE i.friend_id='".$this->users['id']."' AND i.is_friend='1'");

 

 

Открываем: /journal/setup.php

Находим в функции page_friends

			$DB->query("SELECT m.id as f_id, m.name as member_name, m.j_title, m.j_access, m.j_comments, m.j_posts FROM ibf_jmembers m WHERE m.id IN (".implode(', ',array_keys($journal->_cache['u_friends'])).") ORDER BY m.name ASC");

Заменям на это:

			$DB->query("SELECT m.id as f_id, m.name as member_name, z.j_title, z.j_access, z.j_comments, z.j_posts FROM ibf_members m LEFT JOIN ibf_jmembers z ON (m.id = z.id) WHERE m.id IN (".implode(', ',array_keys($journal->_cache['u_friends'])).") ORDER BY m.name ASC");

 

Находим в функции page_enemy

		$DB->query("SELECT j.friend_id as f_id, m.name as member_name, m.j_title, m.j_access, m.j_comments, m.j_posts
				FROM ibf_jfriends j
				LEFT JOIN ibf_jmembers m ON (m.id=j.friend_id)
				WHERE j.member_id='".$journal->users['id']."' AND j.is_friend='0' ORDER BY m.name ASC");

Заменям на это

		$DB->query("SELECT j.friend_id as f_id, m.name as member_name, z.j_title, z.j_access, z.j_comments, z.j_posts
				FROM ibf_jfriends j
				LEFT JOIN ibf_members m ON (m.id=j.friend_id) LEFT JOIN ibf_jmembers z ON (m.id = z.id)
				WHERE j.member_id='".$journal->users['id']."' AND j.is_friend='0' ORDER BY m.name ASC");

 

Вот и все. Теперь можно в Друзья/Враги добавлять не только тех у кого есть свои Дневники.

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

  • 1 месяц спустя...
Поначалу парочка лишних LEFT JOIN смущала, но вцелом все работает на весьма нагруженном сервере и ничего.
Ссылка на комментарий
Поделиться на других сайтах

Ну дык эта парочка LEFT JOIN и нужна для работы модификации.

Или ты про избыточность SQL-запроса какого-то?

 

Про избыточность.

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

Да я все о том насколько один или два лишних LEFT JOIN могут нагрузить сервер при скажем 300 клиентах онлайн.

 

Ничего особенно конкретного, просто рассуждения на тему.

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

  • 1 месяц спустя...

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

 

Может быть имеет место быть инициализация дневника каким-то образом кроме как просто зарегистрироваться на ресурсе?

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

  • 8 месяцев спустя...

mJournal 2.1 b1 и форум 2.3.5 - кто нить ставил? а то вродь как неработает :D

В 2.1 версии дневников... там же class_journal.php уже. некоторые строки отличаются.

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

  • 5 недель спустя...
mJournal 2.1 b1 и форум 2.3.5 - кто нить ставил? а то вродь как неработает :D

В 2.1 версии дневников... там же class_journal.php уже. некоторые строки отличаются.

я ставил, вроде все нормал... незнаю как оно в работе, т.к. только устанавил и все... Знакомый один говорил шо поставил - нормально усе пашет в нагрузке

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

  • 1 год спустя...

mJournal 2.1 b1 Форум 2.3.6

Проблема с добавлением в список друзей юзеров, не имеющих дневников, решается аналогично, за исключением этапа редактирования файла /journal/journal.php (которого попросту нет в указанной директории). Редактируете только /journal/dosetup.php и /journal/setup.php. Все работает отлично.

 

P.S.: прошу прощения у модераторов если каким-то образом нарушила правила. Надеюсь, данная информация сможет помочь таким же новичкам в этом деле как и я

 

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

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

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

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

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

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

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

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

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

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

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

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