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

[+] 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.: прошу прощения у модераторов если каким-то образом нарушила правила. Надеюсь, данная информация сможет помочь таким же новичкам в этом деле как и я

 

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

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

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

Гость
Ответить в этой теме...

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

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

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

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

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

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

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

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