urisoft Опубликовано 13 Июля 2007 Жалоба Поделиться Опубликовано 13 Июля 2007 Дополнение для 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"); Вот и все. Теперь можно в Друзья/Враги добавлять не только тех у кого есть свои Дневники. Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
replicant Опубликовано 27 Августа 2007 Жалоба Поделиться Опубликовано 27 Августа 2007 Поначалу парочка лишних LEFT JOIN смущала, но вцелом все работает на весьма нагруженном сервере и ничего. Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
xRay Опубликовано 27 Августа 2007 Жалоба Поделиться Опубликовано 27 Августа 2007 Ну дык эта парочка LEFT JOIN и нужна для работы модификации.Или ты про избыточность SQL-запроса какого-то? Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
replicant Опубликовано 29 Августа 2007 Жалоба Поделиться Опубликовано 29 Августа 2007 Ну дык эта парочка LEFT JOIN и нужна для работы модификации.Или ты про избыточность SQL-запроса какого-то? Про избыточность. Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
xRay Опубликовано 29 Августа 2007 Жалоба Поделиться Опубликовано 29 Августа 2007 ДАвай более конкренто тогда что и где т.е. код укажи Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
replicant Опубликовано 31 Августа 2007 Жалоба Поделиться Опубликовано 31 Августа 2007 Да я все о том насколько один или два лишних LEFT JOIN могут нагрузить сервер при скажем 300 клиентах онлайн. Ничего особенно конкретного, просто рассуждения на тему. Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
replicant Опубликовано 12 Октября 2007 Жалоба Поделиться Опубликовано 12 Октября 2007 Странно, но у меня даже когда у пользователя нет дневника все прекрасно работает с друзьями и врагами, а запросы стандартные. Может быть имеет место быть инициализация дневника каким-то образом кроме как просто зарегистрироваться на ресурсе? Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
Иннокентий Опубликовано 23 Июня 2008 Жалоба Поделиться Опубликовано 23 Июня 2008 mJournal 2.1 b1 и форум 2.3.5 - кто нить ставил? а то вродь как неработает В 2.1 версии дневников... там же class_journal.php уже. некоторые строки отличаются. Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
hp) Опубликовано 22 Июля 2008 Жалоба Поделиться Опубликовано 22 Июля 2008 mJournal 2.1 b1 и форум 2.3.5 - кто нить ставил? а то вродь как неработает В 2.1 версии дневников... там же class_journal.php уже. некоторые строки отличаются.я ставил, вроде все нормал... незнаю как оно в работе, т.к. только устанавил и все... Знакомый один говорил шо поставил - нормально усе пашет в нагрузке Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
Torrie Опубликовано 6 Сентября 2009 Жалоба Поделиться Опубликовано 6 Сентября 2009 mJournal 2.1 b1 Форум 2.3.6Проблема с добавлением в список друзей юзеров, не имеющих дневников, решается аналогично, за исключением этапа редактирования файла /journal/journal.php (которого попросту нет в указанной директории). Редактируете только /journal/dosetup.php и /journal/setup.php. Все работает отлично. P.S.: прошу прощения у модераторов если каким-то образом нарушила правила. Надеюсь, данная информация сможет помочь таким же новичкам в этом деле как и я Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
Рекомендуемые сообщения
Присоединиться к обсуждению
Вы можете ответить сейчас, а зарегистрироваться позже. Если у вас уже есть аккаунт, войдите, чтобы ответить от своего имени.