Хак: делаем социальную сеть требующей регистрации
4 дня ничего нового не публиковал, потому что работал над менеджером задач для новой платформы, да и дома меня, собственно, тоже почти не было :)
Возвращаемся к BuddyPress. Сегодня нашел интересный хак (props Escamillaweb.com) для вашей социальной сети, которые еще на один шаг приблизит вас к Вконтакте. В чем особенность Вконтакте? Всю информацию видит лишь зарегистрированный и авторизованный пользовать. Если он не зарегистрирован и не зашел в свой аккаунт, то всей активности сайта, да и вообще всего сайта, он не видит. Если вы вставите вот этот код:
function hidden_network() {global $bp;if( bp_is_register_page() || bp_is_activation_page() )return;if( ! bp_is_blog_page() && ! is_user_logged_in() )bp_core_redirect( $bp->root_domain .'/'. BP_REGISTER_SLUG );}add_action( 'get_header', 'hidden_network' );
то при попытке перейти на любую страницу, созданную BuddyPress, пользователя будет перенаправлять на страницу регистрации. Но интересно то, что страницы, созданные WordPress (в том числе и блог основной) все равно будут видны не авторизованным – на них вы сможете рассказать, почему им все-таки стоит зарегистрироваться и что это им даст. Так и хочется сказать на английском: It’s so sweet :)
Но и это еще не все! Если же вы хотите стать абсолютно закрытым сообществом, чтобы никто не мог ничего просматривать, то вам надо вставить вот этот код:
function hidden_network() {global $bp;if( bp_is_register_page() || bp_is_activation_page() )return;if( ! is_user_logged_in() )bp_core_redirect( $bp->root_domain .'/'. BP_REGISTER_SLUG );}add_action( 'get_header', 'hidden_network' );
и тогда будет закрыта от неавторизованных даже главная страница (включая и все остальное).
В случае применения любого из этих хаков вся навигация будет видна (хоть и недоступна), шаблон не разламывается. И кстати, код надо вставлять в файл function.php вашего шаблона!
Спасибо!))) ждал такого но вот никак не получилось…т.е забывал спросить как такое сделать!
Да кстати если всю навигацию перевести в бадибар то она видна не будет…ну если установить Скрыть бадибар для неавторизованных! ну естественно ждем Славика!)
Так просто будет намного интереснее!
Отличный хак! теперь бы еще сделать его с настройками.. не показывать список “групп” и/или “пользователей” и/или “блогов” и тп
Отличная штука. То что искал!
Если будут еще и настройки вообще будет супер!
Если интересно.. через 3-4 дня будет плагин с хаками.. с настройками..
Скажите , появился таковой???
Боюсь, что нет :)
Немного офтоп, но можно ли сделать так. чтобы человек мог регистрироваться. Но блог не получал?
А еще лучше, чтобы можно было логинится чеез соцсети и иметь возможность настраивать своий профиль, вступать в открытые группы и т.д. Может знаете существующие решения?
Активируйте BP, отключите возможность создания блогов в админке – при регистрации люди не смогут создавать блоги.
Все остальное – функционал BP по умолчанию, кроме логина через соц.сети. Универсальное решение для логина – Loginza.
Огромное спасибо!
Кстати про логинзу. А есть ли готовые решения как загружать обычным пользователям обычные аватары, а вошедшим через логинзу из соц сетей?
убирайте логинзу!!! боже упаси это творение ставит туда же – где стоит BP!
копать надо в сторону bp-core-avatars ? я прав?
Да, фильтр на вывод аватара в зависимости от того, каким образом авторизовался пользователь.
ок!
все же задам тупой вопрос, попробовать пока нет возможности: Если я правильно понял аватарку по умолчанию выводит эти строки
if ( !defined( ‘BP_AVATAR_DEFAULT’ ) )
define( ‘BP_AVATAR_DEFAULT’, BP_PLUGIN_URL . ‘/bp-core/images/mystery-man.jpg’ );
if ( !defined( ‘BP_AVATAR_DEFAULT_THUMB’ ) )
define( ‘BP_AVATAR_DEFAULT_THUMB’, BP_PLUGIN_URL . ‘/bp-core/images/mystery-man-50.jpg’ );
}
если вместо mystery-man.jpg и mystery-man-50.jpg задать значение стандартного аватара ядра wp подменяться ли аватарки на loginza-вские и будет ли возможность загружать аватарку стандартным способом? Объясню почему не понравился вариант с фильтром- не придумал по какому признаку отличать юзеров зашедших с loginza? а так вроде по умолчанию будет loginza , а при желании загрузить свой
не что то не лучшая наверно затея слишком много всего.. get_avatar почему то возвращает не человека невидимку, а гаватар, логинза почему то его не подменяет, хотя в админке подменят, функции логинзы тоже возвращают не пойми как в итоге выводится только гаватар.. задачка не по мне..
Это всё классно!))) Но подскажите плиз как будет выглядеть хак, чтоб было доступна только главная страница, а блог вордпресса закрыт для неавторизованых пользователей? Спасибо)
Во втором куске кода поменяйте вот это:
на это
И используйте, соответственно, именно его.
Спасибо, но пишет Ссылка была перенаправлена на … . Щелкните ссылку, чтобы перейти.
Создано Opera.
И на главную не переходит.
Во всех браузерах пробовал, но ничего. На главную не попадает, а зависает на перенаправлении((((
В том же самом втором куске вот это:
на вот это:
Должно все заработать.
Блин, всё равно не перенаправляет! Сначало вообще выдал ошибку типа не понятная функция index. Я удалил индекс, а оно всё равно не перенаправляет. Не понятно(