Участники BuddyPress улучшают новые и существующие API для предстоящего релиза 2.3. За последние несколько месяцев ведущий разработчик Мэтью Виет потратил массу сил, чтобы подготовить новый Attachments API к версии 2.3. Естественно, это не обошлось без помощи участников и обратной связи от рабочей группы.
Attachments API – это новая библиотека, которая позволяет разработчикам создавать компоненты с возможностью управления загрузками. Самый первый пример действия этого API – значительно улучшенный интерфейс для загрузки, обрезки и выбора фотографий профиля для пользователей и групп. Этот новый расширенный интерфейс аватаров не так давно появился в BP транке.
Как вы можете видеть ниже, новый интерфейс допускает традиционную загрузку изображений. Также он добавляет возможность доступа к камерам разных устройств для создания фотографий профиля, если браузер пользователей поддерживает getUserMedia.
Администраторы могут также легко отредактировать фотографию профиля участника через страницу профиля в консоли.
Те, кто предпочитает старый интерфейс, могут воспользоваться фильтром для отключения нового интерфейса. Он позволит вам сохранить ядро Buddypress обновленным, даже если вы не хотите добавлять новый интерфейс аватаров к вашему сообществу. Прочтите следующий пост @imath в блоге разработки BuddyPress, чтобы получить детальную информацию об использовании фильтра, а также о применимых шаблонах и совместимости с темами.
Одна из самых увлекательных особенностей нового интерфейса аватаров состоит в том, что разработчики плагинов могут легко расширить этот интерфейс в своих собственных целях.
«Относительно расширяемости: мы хотим, чтобы плагины могли добавлять свои собственные версии загрузчика, в идеале с минимальным объемом работ», говорит ведущий разработчик BP Бун Джорджс в обсуждениях тикета. «@imath уже продемонстрировал, что это не так сложно, и я предполагаю, что в будущем мы найдем способы, позволяющие еще сильнее это упростить».
Джорджс подчеркнул, что в данный момент основное внимание уделено созданию мощной замены системы загрузки аватаров в 2.3, после чего API будет постоянно улучшаться.
Изучите дорожную карту, чтобы отследить тикеты, которые находятся в прогрессе для релиза 2.3. Сам релиз должен выйти к концу мая.
Источник: wptavern.com
ещё бы узнать как после изменения аватара профиля он вместе с текстом «пользователь изменил картинку профиля» падал на стену активности соответственно ля дальнейшего его комментирования другими пользователями!
Скорее всего, только через подцепление дополнительного плагина, написанного уже вручную и использующего Attachments API.
Либо проверять работоспособность кода:
https://bp-tricks.com/snippets/adding-a-new-activity-stream-entry-when-a-user-changes-his-avatar/
Правда, этот код был написан еще для BP 1.3, может не работать.
Код не работает…
Вот оригинальный код из файла buddypress/bp-xprofile/bp-xprofile-activity.php
/**
* Adds an activity stream item when a user has uploaded a new avatar.
*
* @since BuddyPress (1.0.0)
*
* @package BuddyPress XProfile
* @uses bp_activity_add() Adds an entry to the activity component tables for a
* specific activity
*/
function bp_xprofile_new_avatar_activity() {
// Bail if activity component is not active
if ( ! bp_is_active( ‘activity’ ) ) {
return false;
}
/**
* Filters the user ID when a user has uploaded a new avatar.
*
* @since BuddyPress (1.5.0)
*
* @param int $value ID of the displayed user.
*/
$user_id = apply_filters( ‘bp_xprofile_new_avatar_user_id’, bp_displayed_user_id() );
// Add the activity
bp_activity_add( array(
‘user_id’ => $user_id,
‘component’ => ‘profile’,
‘type’ => ‘new_avatar’
) );
}
add_action( ‘xprofile_avatar_uploaded’, ‘bp_xprofile_new_avatar_activity’ );
А вот код из ссылки, написанной тобой выше:
/* Add a new activity stream item for when people change their Profile Picute */
function bp_xprofile_new_avatar_activity() {
global $bp;
if ( !function_exists( ‘bp_activity_add’ ) ){
return false;
}
$user_id = apply_filters( ‘xprofile_new_avatar_user_id’, $bp->displayed_user->id );
$userlink = bp_core_get_userlink( $user_id );
bp_activity_add( array(
‘user_id’ => $user_id,
‘action’ => apply_filters( ‘xprofile_new_avatar_action’, sprintf( __( ‘%s uploaded a new profile picture’, ‘buddypress’ ), $userlink ), $user_id ),
‘component’ => ‘profile’,
‘type’ => ‘new_avatar’
) );
}
add_action( ‘xprofile_avatar_uploaded’, ‘xprofile_new_avatar_activity’ );
Что здесь не так?
Может быть, ошибка в последней строке: xprofile_new_avatar_activity
а надо по идее
bp_xprofile_new_avatar_activity
сорри, префикс bp_ — это уже я забыл убрать после экспериментов… написал в англоязычную тему по ссылке, которую ты скинул, может ответят что…
И вот тут еще тоже: xprofile_new_avatar_action
А надо bp_xprofile_new_avatar_action
в общем, пока не работает, нужно разбираться с этим, удивляюсь что по этой теме отсутствует актуальная информация, неужели ни у кого не возникал этот очевидный вопрос…
Нашел еще такой код для вывода обращения в ленте активности в зависимости от пола пользователя. Правда, код тоже был оставлен год назад и может не работать.
Тема интересная, насколько я понимаю предварительно должны быть созданы и заполнены гендерные поля в соответствии с упомянутыми в коде.
Но… в ленте активности изменений пока не заметил.
Или к этому коду еще какие-нибудь действия нужно сделать!
Да, и в зависимости от них уже выводиться в ленте сообщение в женском или мужском роде. Для этого создаются дополнительные поля с полом в профиле.
Больше делать ничего не нужно, он должен выводить такие сообщения при смене аватара.
«такие сообщения» — это какие сообщения?) у меня например после добавления этого кода лента активности ничуть не изменилась! ни в варианте гендерных полей в английском формате (male, female), ни в русском (мужчина, женщина)…
Да, но там нужно еще вводить поля в профиль. Только тогда уже должно что-то выводиться.
а, кстати, при добавлении первоначального кода, который был упомянут по ссылке выше — сайт вообще отказывался загружаться…
ну это вполне возможно, коду года три.
Поля профиля естественно заполнены) Будем думать, искать и экспериментировать, если найду — поделюсь