В чем BuddyPress прокололся?

Большинство из нас прекрасно знает о том, что представляет из себя бесплатный движок для социальной сети BuddyPress. Давайте кратко обобщим все его особенности, чтобы наглядно увидеть ширину замаха в сфере соц.сетей:

  • расширенные профили, с возможностью ввести и хранить о себе информацию любого вида и типа (вплоть до географических координат проживания с отображением на карте – тут же в профиле);
  • лента активности, где собирается активность, сгенерированная всеми подключенными к BuddyPress расширениями и плагинами;
  • группы (они же события – только в другой ипостаси), которые помогают собрать людей по определенному принципу и сформировать так называемое подсообщество;
  • блоги, что могут быть созданы каждым отдельным пользователем;
  • форумы, интегрированные в группы, но представляющие собой отдельную сферу жизни пользователей – со своими темами, тегами, ответами и прочими фишками;
  • личная переписка, которая позволяет связываться с нужным человеком не публично, а почти на уровне email, но внутри сообщества;
  • друзья, которые всегда рядом, и вы сможете легко следить за их – и только за их – активностью и с легкостью находить их на сайте;
  • расширяемость, что позволяет разработчикам добавлять функционал, дизайнерам создавать шаблоны, а админам – управлять всем этим.

Кое-что из указанного мной в возможностях идет не “из коробки”, а после подключения определенных плагинов, которые завязаны на BuddyPress. Так что в целом можно сказать, что они являются частью самого BP.

Согласитесь, достаточно много – а ведь это еще не предел возможностей движка. И я даже не упоминаю о том, что все это сделано на WordPress (который сам по себе чего стоит! – во всех смыслах).

Ну хватит с фанфарами, теперь я постараюсь объяснить, почему запись имеет именно такое название.

Итак, действительно, где же BuddyPress (под ним я сейчас понимаю его разработчиков) допустил ошибку?

Давайте разбираться. На данный момент независимые элементы активности сайта таковы:

  • комментирование записей блогов;
  • сами записи блогов;
  • появление новых пользователей;
  • появление новых групп;
  • дружеские связи между пользователями;
  • вступление пользователей в группы;
  • статусы пользователей;
  • обновления внутри групп;
  • новые темы внутри форумов групп;
  • ответы на темы внутри форумов групп;
  • комментарии ко всем предыдущим элементами, причем эти комментарии остаются здесь же в ленте и никуда больше не импортируются;
  • активность плагинов – новые события, созданные задачи, загруженные фото- видео- аудиоматериалы и прочее;
  • я что-то еще упустил?..

Как видим мы получаем широчайший спектр элементов, которые подключаются к ленте активности и отображают там свои обновления. А как же тогда информация о тестах (человек прошел такой-то тест), опросах (человек принял участие в таком-то опросе), магазинах (человек купил то-то и там-то за такую-то цену), подписках (человек подписался на то и это), лайках (от англ. like – нравиться; имею в виду понравился пост, запись, комментарий, любой другой контент)  и куче всего остального, что уже было создано и успешно крутится на сайтах?

Текущая организация сбора данных об активности (что является одним из основных особенностей движка BuddyPress) представляет из себя, мягко говоря, бардак. Мало того, что всего так много, так в основе лежит еще и неверный принцип работы самого ядра.

Сейчас активность генерируют не пользователи, которые кликнули там и сделали то, а компоненты/плагины/расширения к движку, которые подключаются (или не подключаются) к системе оповещения и вывода активности пользователей. Сколько сейчас плагинов в репозитории? 20962 (я серьезно, сам посчитал). И пусть часть устарела и не работает, другая часть – слишком специфические, но все равно, огромное количество взаимодействует с пользователем сайта так или иначе и что-то ему возвращает – а это не может быть сохранено в ленте активности, что приводит к потере данных о пользователе. И проблема не только в том, что физически невозможно переписать все эти плагины под требования одного BuddyPress, и не потому, что их авторов так много, и даже не по причине того, что это и не нужно (ведь много активности будет своеобразным шлаком). Проблема в другом – в подходе.

В подходе сбора данных не с точки зрения пользователя (что логично), а с точки зрения софта.

Все указанные источники настолько децентрализованы, что охватить их по мере роста сети – практически выполнимая задача. И я даже не говорю про необходимые для этого ресурсы. Как сказал Султан Салпагаров: “Полтора байта раскидано в десятке разных мест”.

Правильным, на мой взгляд, было бы решение привязать все к пользователю, то есть модель работы сайта будет такой:

пользователь кликнул, сайт (с единым кодом) отреагировал и сделал запись в ленту активности

а не такой:

плагин проверяет, что делает пользователь, далее идет обработка данных с помощью WordPress и BuddyPress и возврат результата, после чего может быть (а может и не быть!) публикация в ленту активности и уведомление других

Естественно, я понимаю, что данная логика BuddyPress привязана к WordPress и его уже давно существуюющему API. Но не лучше ли было бы BuddyPress отпочковаться от WordPress вообще? Еще в самом начале, до того, как он привязался к WPMU.

Вот мы и имеем единую систему неправильного учета активности на сайте, что приводит к потере информации и пользователей. И я даже не заикнулся о проблемах с расширяемостью (не функционала, а ресурсов и производительности).

И является ли все это критичным для вас или нет – решать придется вам самим и для себя лично.

Идея записи навеяна моим недавним разговором с Султаном Салпагаровым


А каковы ваши идеи по этому поводу? Видите ли вы только хорошее, или только плохое в перспективе?

комментариев 36

  1. Jettochkin:

    Перспектива.. постепенно заместить WP+BP своим кодом.. уже сейчас много из API BP идет лесом – сам пишу запросы в БД, конструирую функции – которые не дергают каждый раз пол-движка..
    лента активности – это да, она и формируется глупо.. дабы понять к какой записи какого блога принадлежит активность new_blog_post – нужно дернуть “десяток” функций…

    да и BP совершенно не дружелюбный движок.. стоит посмотреть на любую даже убогую соц-сеть – там такая ерунда уже реализована.. а ее и только ее хотят пользователи! Мне чтоб устроить блогрол на WP+BP – целое дело!

    Вообщем либо юзать то что есть и что будет (концептуально ничего они не переделают) или писать свою соц-сеть)

  2. Jettochkin:

    .. сделайте возможность выбора куда грузить js и css) если у вас есть форма контактов – то не надо грузить ее код на ВСЕ страницы)

    • add_action('init', 'my_script_func');
      function my_script_func(){
          wp_enqueue_script('my_script', SCRIPT_URL, array('jquery'));
      }
      
      if(is_page()){
      wp_print_scripts('my_script');
      

      Не?

      • Jettochkin:

        в своих да – уже давно проверяю нужно ли грузить… а вот еще бы все остальные или бы возможность в админке “пофиксить”)

        • Можно делать это. Внутри wp_print_scripts, который автоматом вешается на wp_head, есть фильтры, и ты соответственно имеешь возможность отфильтровать вывод. Но надо самому точно знать, где что нужно подгружать, чтобы правильно расставить условия.
          Вот такой вот геморойчик..

          • Jettochkin:

            это и делаю) вот бы все разрабы делали + WP имел бы какие то метки стандартные…

  3. Добрый день,

    я в первый раз настраиваю buddypress и вот не знаю как решить такую задачу:
    я создал у каждого пользователя несколько дополнительных полей и хотел бы выводить названия этих полей в виде облака тегов, или другой навигации, в общем использовать для группировки пользователей. Надеюсь, что объяснил понятно.
    Будут очень признателен за помощь!
    Кроме того, если кто либо из спецов скажет как решить вопрос приема денег от WebMoney, Yandex-деньги – буду готов монетизировать свою благодарность :)

    С уважением,
    Денис

    • Jettochkin:

      Монетизация – вам нужно будет подписывать договора.. используйте брокеров или как их там – onpay и тп

      Облако – пишите скрипт который будет создавать массив из уникальных значений (рыть в таблице bp_usermeta вроде)

      • Пишется за 10 минут, еще 10 минут на верстку и стили… Может, написать пост об этом?

        • Я был бы очень рад не только посту, но и непосредственно коду, который реализовал бы ЭТО.

          Ну что касается плагина на прием денег, то готов обсуждать цену работы, я не могу сделать это сам, но готов оплатить. надо принимать платежи от WeMoney, yandex-деньги … ну и еще от кого?

          Всем спасибо за участие и жду конкретных результатов!

        • Jettochkin:

          облако мета юзеров?) надо плагин оформить))))

          • было бы замечательно написать! в общем, еще раз повторюсь нужна возможность выводить все создаваемые в личном профиле buddypress поля, ну и как то их организовать на сайте … пусть облако меток, только вот тогда облако нужно для каждого поля, скажем поле: ГОРОД, ПОЛ, ГОД РОЖДЕНИЯ … вот.

    • Для приема вам надо будет рыть документацию WebMoney, Yandex-денег и объединять с BuddyPress. Не за бесплатно я мог бы сделать вам нечто подобное. Если интересно – есть страница Контакт.

      • Jettochkin:

        Там нужно сначала подписывать договор как юр-лицо.. в яндексе вроде только так

      • странно что для PayPal есть куча плагинов … причем и бесплатные тоже … но для России надо еще и другие варианты. Почему никто такие плагины раньше не сделал? напишите сколько будет стоить такая работа и как быстро ее надо сделать, что от меня кроме оплаты требуется?

        И зачем мне заранее заключать какие то договора с Яндекс, я точно не знаю, но если у меня есть Яндекс счет то что еще нужно?!

        • Jettochkin:

          Прием денег с сайта через шлюз – невозможен просто так! посмотрите условия на вебмани и на Яндексе, что касается пайпала – (для России) – НЕВОЗМОЖЕН прием средств с сайта) только оплата.. а вводить средства можно через банковские карты и.. все)

          в чем вам может помочь slaFFik – это прикрутить интерфейс оплаты (шлюз) – но после того как вы подключите к свои кошелькам мерчант (где то так)

          • kdis:

            странно насчет paypal … я не раз видел установленные системы … не знаю как там точно идет работа, но у людей на сайте они точно заявлены. Т.е. если я возьму западный шаблон для WP со встроенным плагином для приема PayPal то не смогу активировать его для приема платежей в России??? Скажем вот сайт, на котором есть прием платежей через PayPal – http://1popov.ru/disc6/

          • У вас не получится активировать нужный уровень, нужный для приёма платежей, в самом пэйпале.

          • Jettochkin:

            Вам же уже объяснили – в СНГ не получится принимать платежи! Решение: открывать счет заграницей!

  4. ну и еще вдогонку по поводу облака дополнительных полей профиля, как выводить в виде меток все (или некоторые) поля из профиля пользователя … типа: Иван Петров (питер, 34 года), все метки активные.
    Спасибо!

    • Jettochkin:

      смотрите в сторону xprofile… вообщем все это есть в базе и нужно по алгоритму оттуда тянуть и выводить..

      Вопрос номер один: много будет желающих кроме вас увидеть нечто подобное?

  5. kdis:

    кто хочет кроме меня не знаю, но странно,что никто такое не интересуется такой возможностью … ведь эти поля в профиле – основа социальной связки в сети!!

    • Jettochkin:

      ВЫ можете ОПЛАТИТЬ через пайпал его услуги! ответственно заявляю – paypal в России (СНГ думаю тоже) – не позволяет принимать платежи!

      • Jettochkin:

        зы: это можно понять полазив на сайте пайпала + официальный ответ на мой запрос в их суппорт (с 3-го раза они решили ответить)

          • У него может быть зарегистрированный подставный зарубежный аккаунт. У меня может быть друг иностранец, на счет которого приходят деньги, а он потом получает их обычным переводом. У него может быть открыт свой собственный настоящий счет в зарубежном банке.

          • kdis:

            а вот теперь понял … да, хреново, хотя счет за границей решает вопрос и тут никакой плагин и не нужен, такие и так есть.

            А что насчет WebMoney и Яндекс Деньги – с таким можете помочь?

          • Если вы утвердите все вопросы с этими конторами, я настрою вам продажу всего с вашего сайта. Но это будет стоить денег :)

  6. Kdis:

    Если вы утвердите все вопросы с этими конторами, я настрою вам продажу всего с вашего сайта. Но это будет стоить денег :)
    —-
    Ок, спасибо за помощь. Скажите порядок суммы за настройку приема платежей от webmoney, yandex, ну и я посмотрю какие еще системы в ходу. Может вы сами какие нибудь порекомендуете?

  7. Можно ли использовать BuddyPress под форум? Насколько сложна
    в освоении эта CMS? У меня WordPress на блоге.
    В такой ситуации исользуется одна база данных? Заранее благодарю.

  8. SocialWorker:

    Скажите пожалуйста, а можно создать взаимосвязанные поля? например: страна – город – улица

  9. Вадим:

    Создал социальную сеть на wordpress, а точнее buddy press. Все сообщения размещают через ленту. То есть не происходит создание записей и страниц как в стандартном wordpress. В результате гугл страницы индексирует и выводит в поиск, яндекс индексирует, но в поиск не выводит. Кто сталкивался с этой проблемой, имеет опыт работы с buddy press подскажите как решить эту проблему?

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *