полезных советов по организации профиля Facebook (Бритни Спирс, это для вас!) документ представляет собой почти пародию:
«Если вы звезда, спортсмен, политик или общественный деятель, то с помощью общедоступных профилей Facebook можете организовать подлинную связь с миллионами поклонников и доброжелателей, говоря своим настоящим голосом и участвуя в разговорах, которые уже ведутся о вас в Интернете».
Небольшое число людей следит за моими публикациями в прессе. Можно ли считать меня публичной фигурой? Скорее всего, нет. Между тем рекомендации Facebook составлены для людей, которые обычно плохо разбираются в технике. Большинство из них актеры, спортсмены или люди, которые знамениты тем... что просто знамениты. Они не читают обзоров PCMag и даже не имеют страниц в MySpace.
Справедливости ради необходимо признать, что в документации Facebook отлично даны начальные сведения о способах связи, обмена контентом и охвата глобальной аудитории через новостные рассылки. Объясняется, что такое «стена» Facebook и почему заметки похожи на публикации в блогах. Однако авторы документа отклоняются от верного пути и упоминают Static FBML (Facebook Markup Language – язык разметки Facebook), проигрыватель Flash и приложения сторонних разработчиков. В этом месте (если речь не идет об Эштоне Катчере или Шаке) знаменитости начинают испытывать недоумение. Вы думаете, Майли Сайрус или Кифер Сазерленд знают, что это такое? Похоже, авторы документации Facebook не совсем четко уяснили, для кого они пишут: Стива Карелла или тех, кто его раскручивает. Эти люди наймут Web-разработчика.
«Победный бросок сверху?» Неужели непонятно? Они обращаются именно к вам, мистер The_Real_Shaq.
Усилия, прилагаемые, чтобы заинтересовать знаменитостей, лишь подчеркивают, насколько Facebook сложнее, чем Twitter. Шакил зарегистрировался в Twitter не так давно, и после всего лишь 471 публикации он собрал 233 тыс. «фолловеров». Для работы с Facebook требуется гораздо больше усилий, а результат, скорее всего, не будет столь впечатляющим.
Я не хочу сказать, что мне не нравится Facebook. Но руководство Facebook должно понять, что знаменитости (и их менеджеры) теперь считают, что участвовать в Twitter важнее. И если вы сомневаетесь в том, что поводом для беспокойства FaceBook стал бешеный успех твиттера Шака, прочитайте один из примеров, содержащихся в рекомендациях Facebook: «Дискуссионные доски. Пользователи могут и по своей инициативе начать обсуждения (например, вашего последнего публичного выступления или победного броска сверху)».
«Победный бросок сверху?» Неужели непонятно? Они обращаются именно к вам, мистер The_Real_Shaq.
Разработка ПО
«Лента друзей»: разрабатываем компонент «1С-Битрикс»
Сергей Лещенко ([email protected])
Прошло время, когда социальные сети считались бесполезной для бизнеса игрушкой. Все больше компаний осознают ценность данного инструмента. Появился даже специальный термин – Enterprise 2.0, обозначающий комплекс методов и подходов, позволяющих применить технологии Web 2.0 для решения типичных корпоративных задач. Рынок Web-разработок не мог не отреагировать на такие тенденции, и сегодня сложно найти систему управления сайтом (CMS), которая не предоставляла бы возможность создавать социальные сети.
Компания «1С-Битрикс» в конце 2008 г. тоже выпустила модуль «Социальные сети» для своего пакета «1С-Битрикс: Управление сайтом» (БУС), который позволяет организовывать сообщества (группы), устанавливать «дружеские отношения», вести черные списки, распределять права доступа. Пользователь или группа получают развитый набор служб: блоги, фотогалереи с массовой загрузкой фотографий, рейтингами и обсуждениями, форумы, онлайновая переписка и др. Это весьма мощная разработка, более подробный обзор которой можно найти в PC Magazine/RE, 1/2009 (ознакомиться с продуктом «вживую» можно на www.pcmag.ru/club).

В этом же обзоре речь пойдет о том, чего недостает модулю «Социальная сеть» – о так называемой «ленте друзей». С точки зрения архитектуры и принципов организации данных социальный модуль БУС похож на популярную сеть FaceBook (в России более известен ее клон «ВКонтакте»). Однако в русскоязычном сегменте Сети не меньшей популярностью пользуется служба «Живой Журнал», интерфейс которой отличается от интерфейсов FaceBook и его клонов (порой радикально). Среди прочих различий в «Живом Журнале» имеется модуль «Лента друзей» (чаще «френдлента»).
Организация материала в виде «Ленты друзей» имеет ряд преимуществ. Она удобна для быстрого просмотра за чашкой утреннего кофе (или вечернего пива) новых поступлений в дружественные дневники. В БУС есть подсистема «лог обновлений», но это не совсем удачная замена. Слишком много несущественной информации и ссылок, по которым приходится лишний раз кликать. Вроде бы мелочи, но именно мелочи определяют впечатление пользователя от сайта. В общем недоработка налицо, и мы постараемся ее исправить.
Итак, постановка задачи: необходим компонент, имитирующий в БУС «Ленту друзей». «Лента друзей» конкретного пользователя как минимум должна аккумулировать новые записи из блогов друзей (полностью или в виде анонсов) и групп, в которых состоит владелец ленты. В «Ленте друзей» групп должны собираться новые записи из блогов ее участников. И, кстати, следует отметить существенное отличие блогов «Битрикс» от блогов «Живого журнала»: в «Битрикс» пользователь может публиковать сообщения не только в своем блоге и блогах групп, в которых он состоит, но и в других блогах, если владелец блога разрешил это делать.
Сначала разберемся с внутренними объектами (или сущностями) социальной сети «пользователь» и «группа»: какие свойства они имеют и как эти свойства влияют на результат. Заметим, что в обзоре будут затронуты только вопросы, касающиеся функциональности «Ленты друзей» для блогов; форумы, фотогалереи и т. д. мы во внимание не принимаем (принципы останутся теми же, а объем статьи увеличится существенно). Материал излагается в предположении, что читатель знаком с основами разработки на PHP и с API системы «1С-Битрикс: Управление сайтом».
Из свойств объекта пользователя нас интересуют настройки, которые можно задать на персональной странице социальной сети в формах настроек приватности и прав доступа к блогам. Среди настроек приватности для нашей задачи важны два поля: «кто может смотреть друзей» и «кто может смотреть мои группы». Эти поля влияют на включение в ленту записей из блогов друзей и из блогов групп, в которых состоит владелец. Причем записи из блогов друзей или групп должны включаться только, если право на просмотр имеют все пользователи. Иными словами, если Иван зайдет на страницу «Ленты друзей» Петра, а Петр разрешает просмотр своих групп только друзьям, то Иван не должен видеть записи из блогов групп Петра, даже если между ними установлены дружеские связи (в соответствующем интерфейсе модуля «Социальная сеть»).

В настройках блогов нас интересует параметр «кто может просматривать сообщения». От него зависит, войдут ли записи блога в ленту друзей пользователя и групп, в которых он состоит, причем они будут включаться только в случае, если права на просмотр разрешены всем пользователям. Например, если Петр разрешает читать записи своего блога только друзьям и друзьям друзей, то они не попадут ни в одну из лент.
Если блоги вообще отключены, следует автоматически исключить все записи, оставленные ранее в блоге пользователя, из всех лент всех друзей.
Аналогично из свойств групп нас интересуют настройки, которые будут заданы в формах редактирования группы и настроек блогов группы.
Параметр «группа видима всем посетителям» должен учитываться при включении записей блога группы в ленты ее участников. В настройках блогов нас интересует параметр «кто может просматривать сообщения». От него зависит, войдут ли записи блога в ленты участников группы, причем они будут включаться только, если просмотр будет разрешен всем пользователям.
Теперь подберем функции, которые будут использоваться для выборки записей блогов с учетом прав доступа и связей пользователей внутри социальной сети. Сначала