Понадобилось мне как-то сделать так, чтобы владелец закрытого клуба мог пригласить в клуб любого пользователя, без добавления его в друзья
(тут еще один момент есть — удобнее будет сделать еще так, чтобы в закрытом клубе была ссылка на отправку сообщения админу клуба — но это совсем просто сделать)
открываем
\www\components\clubs\frontend.php
со строки 612 делаем так
-------------------------------------------------------------------
так было
так стало
-------------------------------------------------------------------
в строке 625 убираем !$_SESSION['user']['friends'] || — даем доступ для приглашения
пользователей в группу даже если нет друзей
так стало
Теперь находим файл
\www\core\classes\usrclass.php
добавляем новую функцию со строки 620
пробуем, радуемся!
Забыл сказать, движок сайта версия 1.8, другие не проверял.
Также соотвественно при обновлении движка сайта — нужно проделать эти операции заново.
(тут еще один момент есть — удобнее будет сделать еще так, чтобы в закрытом клубе была ссылка на отправку сообщения админу клуба — но это совсем просто сделать)
открываем
\www\components\clubs\frontend.php
со строки 612 делаем так
-------------------------------------------------------------------
так было
if ( !$inCore->inRequest('join') ){ // Получаем список друзей $friends = cmsUser::getFriends($user_id);
if ( !$inCore->inRequest('join') ){ // Получаем список друзей $friends = cmsUser::getUsers(); // это наша новая функция
в строке 625 убираем !$_SESSION['user']['friends'] || — даем доступ для приглашения
пользователей в группу даже если нет друзей
// Если нет друзей или все друзья уже в этом клубе, то выводим ошибку и возвращаемся назад // так было if (!$_SESSION['user']['friends'] || !$friends) { $inCore->addSessionMessage($_LANG['SEND_INVITE_ERROR'], 'error'); $inCore->redirect($back); }
// Если нет друзей или все друзья уже в этом клубе, то выводим ошибку и возвращаемся назад if (!$friends) { $inCore->addSessionMessage($_LANG['SEND_INVITE_ERROR'], 'error'); $inCore->redirect($back); }
\www\core\classes\usrclass.php
добавляем новую функцию со строки 620
// ============================================================================ // /** * Возвращает массив списка пользователей * @return Array */ public static function getUsers(){ $inDB = cmsDatabase::getInstance(); $usrlist = ''; $sql = "SELECT id, nickname FROM cms_users WHERE is_locked = 0 AND is_deleted = 0 ORDER BY nickname"; $rs = $inDB->query($sql); if (!$inDB->num_rows($rs)){ return; } while($u = $inDB->fetch_assoc($rs)){ $usrlist[] = $u; } return $usrlist; } // ============================================================================ //
Забыл сказать, движок сайта версия 1.8, другие не проверял.
Также соотвественно при обновлении движка сайта — нужно проделать эти операции заново.
в закрытом клубе была ссылка на отправку сообщения админу клуба - но это совсем просто сделать) -
-вот с этого места поподробнее пожалуйста! Очень очень нужно!
Можно ли сделать, чтобы выбирались сразу несколько пользователей?
берем файл шаблона com_clubs_view_club.tpl (лежит либо в вашем шаблоне либо в default)
находим строки
2. Делаем отправку сообщения пользователю с закрытым профилем
аналогично в файле com_users_not_allow.tpl
находим
Хотя на самом деле я пока не знаю зачем все это нужно...
Только как сделать, чтобы возможность выбора из всего списка пользователей сайта была и в настройках клуба.
Вот здесь:
в файле \components\clubs\frontend.php
строка 365
Кстати в результате всех моих изысков нашел еще баг, теперь уже и в клубах. Баг не смертельный - просто некрасивый.
Об этом будет в следующем блоге...
После смены функции блок "мои друзья" стал пустым ... :(
вообщем надо еще в том же файле найти
проверьте пжл.
Спасибо.
И можно ли сделать так, чтобы человек после регистрации сразу становился членом определенного Клуба, чтобы не морочиться со вступлением потом?
проще клубы написать по новой