отказано Соц. мод "Друзья"

Нужна ли данная фича движку?

  • Да, делись наработками:)

    Голосов: 11 55.0%
  • Нет, трекер - это трекер.

    Голосов: 9 45.0%

  • Всего проголосовало
    20

dredd

Пользователь
#1
Всем доброго времени суток! Я начал писать мод друзей, на подобии того, что Вы видите в соц. сетях ВКонтакте, Одноклассники и многих других.. Для разнообразия, предлагаю внедрить мод в движок (мод жутко не стабилен, очень много запросов при выводе списка друзей/подписчиков/заявок в друзья). Основу я написал, то есть, сам алгоритм уже сделан, осталось оптимизировать код(научить не использовать кучи запросов, ну и немного расширить функционал). Мод вполне работоспособен, но при активном использовании положит ваш сервер.. Могу выложить свои наработки на рассмотрение администрации и внедрения в движок (для внесения не всего моего мода, а хотя бы ради хоть какой-то помощи в написании стабильной версии). Многие начнут говорить, мол, трекер - это трекер, а не соц. сеть, но ребят, нужно ведь как-то разнообразить серый поиск нужной раздачи по форуму.. Люди начнут общаться, чаще посещать Ваш ресурс, заводить новых друзей. Мы всё-таки в 21-ом веке живём:)
Инфа по уже написанному моду: можно добавить в друзья любого пользователя обитающего на форуме, Вы будете оставаться в подписчиках до тех пор, пока Вашу заявку не примут, а если отклонят, то вы так и останетесь в подписчиках. Есть возможность просматривать своих друзей, Ваши поданные заявки и Ваших подписчиков. Вы так же можете посмотреть чужих друзей, чужие заявки в друзья (если вы администратор), чужих подписчиков (если вы администратор). Не кешируется список друзей/подписчиков. Для всех функций используется одна таблица в БД. На этом пока всё:)
 

Sprinx

Пользователь
#2
Чтоб много запросов небыло, можно сделать общий кеш. И из него, по надобности тянуть инфу.
 

DreamHD

Пользователь
#4
dredd, Как я понял тут просто список друзей, что не совсем правильно, должен быть толк от этих "друганов" - что-то вроде ленты раздач, сообщений, действий этих самых друзей, а просто список, это немного не то )

Личное мнение: В виде отдельного мода, если есть желание, выкладывай, в движке по умолчанию делать такому нечего, не в обиду ;)
 

dredd

Пользователь
#6
dredd, Как я понял тут просто список друзей, что не совсем правильно, должен быть толк от этих "друганов" - что-то вроде ленты раздач, сообщений, действий этих самых друзей, а просто список, это немного не то )

Личное мнение: В виде отдельного мода, если есть желание, выкладывай, в движке по умолчанию делать такому нечего, не в обиду ;)
Ну я же говорю, нужно расширить функционал:)
Выкладывай, общими усилиями допилим;)
Вечером выложу архив:)
 

RYT.

Пользователь
#8
трекер это не соц. сеть и этот мод, даже какую бы он не имел оптимизацию, он нах не нужен
 

Sprinx

Пользователь
#9
Лучше так.
Код:
function friends() {
 
    global $userdata;
 
    $mode = (string) $this->request['mode'];
    $user_id = (int) $this->request['user_id'];
 
    switch($mode)
        {       
            case 'accept':
                $sql = DB()->fetch_row("SELECT * FROM bb_friends WHERE user_id = ".$user_id." AND friends_id = ".$userdata['user_id']." AND accept = 0");
                if(!$sql) $this->ajax_die('Этот пользователь не является вашим подписчиком.');
                else
                {
                    DB()->query("UPDATE bb_friends SET accept = 1 WHERE user_id = ".$user_id." AND friends_id = ".$userdata['user_id']."");
                    $this->response['user_id'] = $user_id;
                }
            break;
       
            case 'add':
                $sql = DB()->fetch_row("SELECT * FROM bb_friends WHERE user_id = ".$userdata['user_id']." OR user_id = ".$user_id." AND friends_id = ".$user_id." OR friends_id = ".$userdata['user_id']." AND accept = 1");
                if($sql) $this->ajax_die('Этот пользователь уже есть в вашем списке друзей.');
                if($user_id == $userdata['user_id']) $this->ajax_die('Вы не можете добавить себя в список Ваших друзей.');
                DB()->query("INSERT INTO bb_friends (user_id, friends_id) VALUES (".$userdata['user_id'].", $user_id)");
                $this->response['user_id'] = $user_id;
            break;
       
            case 'del':
                $sql = DB()->fetch_row("SELECT * FROM bb_friends WHERE user_id = ".$userdata['user_id']." OR user_id = ".$user_id." AND friends_id = ".$user_id." OR friends_id = ".$userdata['user_id']." AND accept = 1");
                if(!$sql) $this->ajax_die('Этот пользователь уже удалён из списка ваших друзей или ещё там не находится.');
                if($user_id == $userdata['user_id']) $this->ajax_die('Вы не можете удалить себя из списка Ваших друзей.');
                $this->ajax_die('В дальнейшем заставим работать;)');
                /*DB()->query("DELETE FROM bb_friends WHERE user_id = ".$userdata['user_id']." OR user_id = ".$user_id." AND friends_id = $user_id OR friends_id = ".$userdata['user_id']."");*/
                $this->response['user_id'] = $user_id;
            break;   
        }
}
 

dredd

Пользователь
#10
трекер это не соц. сеть и этот мод, даже какую бы он не имел оптимизацию, он нах не нужен
Что не соц. сеть, это естественно, но вам не кажется, что было бы немножко интереснее если бы вы заходили на форум и помимо поисков новых раздач, находили бы ещё новых друзей? У каждого своё мнение на этот счёт, но лично мне кажется, что это был бы неплохой шаг к социализации движка. Можно, например придумать ленту, где будут выводиться действия ваших друзей и ещё какие-нибудь плюшки. Внедрять в движок или нет - это уже не мне решать, я лишь предложил идею
 
Сверху