Читаем Журнал PC Magazine/RE №09/2009 полностью

Теперь подберем функции, которые будут использоваться для выборки записей блогов с учетом прав доступа и связей пользователей внутри социальной сети. Сначала выясним, не заложены ли в системе уже готовые решения, на базе которых можно сформировать «Ленту друзей» или хотя бы нечто похожее. Первое, что приходит на ум – если есть компонент ведения журнала событий, то нет ли в нем подходящих функций? Изучаем список свойств и методов (или код компонента) и видим, что для получения списка событий в нем используется функция CSocNetLogEvents::GetUserLogEvents():

CSocNetLogEvents:: GetUserLogEvents(int userID, array arFilter = Array());

Функция возвращает структуру, содержащую список событий социальной сети по фильтру arFilter. Параметр userID – идентификатор пользователя, в массиве arFilter сохраняется набор параметров для выборки данных из БД. Он имеет структуру вида:

array(«фильтруемое поле»=>"значение фильтра" [, ...])

где фильтруемое поле может принимать специфичные значения: ENTITY_TYPE (тип сущности социальной сети, U – пользователь или G – группа), ENTITY_ID – идентификатор сущности социальной сети, EVENT_ID – идентификатор инициатора события (сигнатуры blog, photo, forum или system), LOG_DATE_DAYS – количество дней для выборки журнала. Фактически количество дней ограничено временем жизни журнала (неделя), очистка выполняется агентом CSocNetLog::ClearOldAgent().

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

Во-первых, функция CSocNetLogEvents::GetUserLogEvents() работает только в контексте пользователя, а нам нужны еще и данные групп. Во-вторых, не передаются типы записей, т. е. записи добавления комментариев и сообщений ничем не отличаются друг от друга, идентифицировать их «по-человечески» не получится. Не возвращаются ID блогов и сообщений, а они нам нужны, чтобы сформировать ссылки. Время жизни записи «Ленты друзей» принудительно ограничивается агентом модуля (это поправимо, но требует вмешательства в обработку соответствующего события, чего делать не хотелось бы). Возможно, в будущих версиях «Социальной сети» разработчики «Битрикс» предпримут какие-то меры, но сегодня ситуация такова.

Рис. 2. Формы настроек прав доступа объекта «группа»

Поиск других подходящих функций в модуле тоже не дал результата. Остается два пути. Первый – самостоятельно реализовать нужный нам метод. С точки зрения системного подхода, это более правильное решение, но... Здесь могут возникнуть проблемы обратной совместимости. Модуль довольно новый, мало ли что может измениться в недалеком будущем. Второй – получить необходимые данные, скомбинировав результаты нескольких стандартных методов, благо изучение исходных текстов модуля дает четкое представление, как это сделать. Вот и попробуем.

Общая идея выглядит так. Для объектов типа «пользователь» мы получаем списки идентификаторов пользователей-друзей и идентификаторов групп, для сущности «группа» – список идентификаторов пользователей-участников. Далее из списков идентификаторов пользователей исключаем тех, чьи записи не должны войти в «Ленту друзей». Аналогично обрабатываем список идентификаторов групп. Какие именно записи из блогов не должны включаться в ленты, мы выяснили при разборе свойств объектов «пользователь» и «группа». На основе созданных списков пользователей и групп составляем списки идентификаторов блогов, извлекаем необходимые записи и передаем их в шаблон для вывода на Web-странице, откуда был вызван компонент.

Для получения списка записей в блогах будем использовать функцию CBlogPost::GetList(). На первый взгляд, больше подходит функция CBlogUser::GetUserFriendsList(), которая специально предназначена для формирования списка сообщений друзей пользователя, но, к сожалению, она опирается на связи пользователей внутри модуля блогов, а не социальной сети, а это значит, что она нам не подходит. Функция же CBlogPost::GetList() возвращает список записей, соответствующих заданному фильтру, с возможностью сортировки и разбивки на страницы.

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

• $arParams['USER_ID'] – ID пользователя для построения ленты;

• $arParams['GROUP_ID'] – ID группы социальной сети для построения ленты;

• $arParams['BLOG_GROUP_ID'] – ID группы блогов, к которой принадлежат все блоги социальной сети;

Перейти на страницу:

Все книги серии PC Magazine/RE, 2009

Журнал PC Magazine/RE №08/2009
Журнал PC Magazine/RE №08/2009

Главный материал августовского номера, обзор «Офисные мониторы: антикризисные дюймы», представляет результаты сравнительных испытаний шести моделей широкоформатных ЖК-мониторов с диагональю 22 дюйма. «Поскольку в нынешних условиях все большую популярность приобретает сдельная и дистанционная работа, домашний компьютер превращается из игрушки в персональное средство производства. И в этом отношении крайне важно, чтобы работать с ним – точнее даже, им – было удобно. К счастью, как раз незадолго до кризиса рынок ЖК-панелей испытал серьезное потрясение. Цены на матрицы, выполненные по технологии TN, буквально обрушились, что сделало окончательно невыгодным выпуск панелей для мониторов с диагоналями 19 дюймов и менее.»Также в номере:«Цифровая школа 2009»«Зря это вы отдали ребенка в школу. Выучится грамоте и начнет дрянь всякую читать. Порнографию там или еще что похуже! Да и зрение от книг портится!..» – может быть, кто-нибудь так и думает в наши дни, но вслух не высказывается. Не принято. А вот очень похожие пошлости о компьютерах приходится слышать раз за разом. Между тем ваша задача как родителей – подготовить ребенка к жизни в реальном мире. В мире информационных технологий. Выбираем подарок к новому учебному году…«Антикризисный проект»Технологическая цивилизация теснит. И чем дальше мы отступаем от природы, тем больше появляется вещей, без которых никак невозможно обойтись. Вот теперь еще и компьютер. А денег очень многим катастрофически не хватает. Однако компьютер (пока!) – не автомобиль, можно, если деваться некуда, и самому собрать. Из готовых частей. И недурно на этом сэкономить. Как оказывается, не так уж это и сложно…«Linux для нетбука»Уже полтора года идет процесс покорения рынка нетбуками. Они стали популярны и у индивидуальных пользователей, и в сфере бизнеса (как малого, так и крупного), и в государственных ведомствах. Кризис даже подстегнул этот интерес, поскольку невысокая цена нетбуков в сложное время оказалась весьма кстати. Но не все так просто. Основная проблема заключается даже не в аппаратных средствах, а в программах…

PC Magazine/RE

Журналы, газеты / Прочая компьютерная литература / Книги по IT
Журнал PC Magazine/RE №09/2009
Журнал PC Magazine/RE №09/2009

Главный материал сентябрьского номера, обзор «Коммуникаторы: парад тенденций», адресован ценителям «подлинной мобильности».«Массовые опросы, фокус-группы, анализ пользовательских предпочтений… Однако сделать аппарат, на который с готовностью набросилось бы большинство потенциальных пользователей, невозможно в принципе. Точно так же никакая реклама и пропаганда не спровоцируют массовый спрос там, где его не было. Предсказывать, где находится точка компромисса, можно долго и безуспешно. А вот отслеживать, кто и на каком направлении ищет компромисс, мы умеем.»Также в номере:Игры по сети WiFi: настройка маршрутизатораВ вашем доме завелся маршрутизатор. Более того, он здесь нужен. В стандартном режиме все хорошо, но… Если спросить любого сисадмина, как настроить маршрутизатор, он наверняка скажет: «Очень просто!». И (если в настроении) закатит лекцию часа на полтора с лирическими отступлениями и историями из жизни. А вам всего-то нужно было выяснить… Вот для тех, кому «для полного счастья» требуется узнать о маршрутизаторе какую-то сущую ерунду, и предназначена эта статья…«Лента друзей»: разрабатываем компонент «1С-Битрикс»Со временем эта статья может занять вполне достойное место в рубрике «Истории из истории», в особенности если автор в будущем вспомнит, на каких ошибках он научился тому, чему научился. Хотя в ней описан пример вполне конкретной разработки, здесь можно найти много поучительного и полезного и для других ситуаций…В преддверии SaaSЕще года полтора назад термин SaaS достиг такой популярности, что его уже используют в выступлениях и публикациях без расшифровки и специального объяснения. Но как часто бывает в ИТ-отрасли, термин всем хорошо знаком, а суть его покрыта туманом. Четкого представления о том, что обозначается термином SaaS и чем это отличается от не-SaaS, нет. Потому разговор о SaaS придется начать с разбирательства: что же это такое и чем данная модель отличается от предыдущих…

PC Magazine/RE

Прочее / Журналы, газеты / Газеты и журналы
Журнал PC Magazine/RE №10/2009
Журнал PC Magazine/RE №10/2009

Главный материал октябрьского номера, обзор «Проекторы: мини-, микро-, пико-…», посвящен изучению возможностей современных портативных проекторов.Также в номере:Расцвет HDD, заря SSDДля тех, кто решил модернизировать свой компьютер, настали трудные времена: новейшие полупроводниковые накопители во всех отношениях превосходят старые добрые «винчестеры», кроме одного – цены. А уж если человек начал подсчитывать, что почем, не перестанет. Лаборатория PC Magazine/RE поможет вам понять, за что же берут деньги изготовители системных дисков…Mac OS X Snow Leopard – дружелюбный хищник«Когда речь заходит о продукции компании Apple, равнодушных нет!» – с этим не будут спорить обитатели обоих лагерей в «священной войне». На этот раз новую версию ОС описывает сторонник Apple, однако даже те, кто считает Windows или Linux последним и решающим словом в индустрии операционных систем, найдут в ней много интересного. Тем более, что переводной материал дополнен результатами неформальной проверки быстродействия ОС в редакции PC Magazine/RE…Идеальный компьютер для Adobe Creative SuiteПо своей требовательности к ресурсам программы для творческой работы с изображениями и звуком стоят на втором месте после игровых… Итак, представим себе непредставимое – художника, у которого «денег куры не клюют», и попытаемся собрать для него компьютерную систему, которая не раздражала бы его своей медлительностью или объемом памяти…

PC Magazine/RE

Прочее / Журналы, газеты / Газеты и журналы
Журнал PC Magazine/RE №11/2009
Журнал PC Magazine/RE №11/2009

Главный материал ноябрьского номера – «Неттопы: экономия не в ущерб эффективности» – представляет собой обзор восьми сверхкомпактных, но достаточно производительных настольных компьютеров. Статья адресована широкому кругу пользователей и демонстрирует, что малютки с ценой нетбуков способны окончательно вытеснить ПК в корпусах «башня» с конторских столов.Также в номере:Программы: урожай 2009Нельзя сказать, чтобы кризис никак не отозвался на индустрии программного обеспечения, но, если пользоваться двоичной системой медиков из «Буратино», пациент скорее жив. И отобранные экспертами PC Magazine/RE программы лучшее тому доказательство. В этом году мы решили обойтись без разбиения на категории (их оказалось бы слишком много) и даже без сортировки по алфавиту (а то слишком уж часто некоторые, заслуженно или нет, оказываются во главе списка)…Принтеры: 10 полезных советовВ очередной раз перефразируя старинную армейскую пословицу, можно сказать, что для современного офиса принтер – как воздух: о нем вспоминают только когда он портится… Как добиться того, чтобы воздух в комнате оставался свежим и чистым, каждый из нас знает с детства. Что делать с принтером, чтобы можно было не вспоминать о нем подольше, вы узнаете из этой статьи.В поисках идеальной ERPКому вы больше доверяете в вопросах учета – компьютеру или человеку? Ответ очевиден. Именно поэтому отчетность о состоянии бизнеса должна быть автоматизирована и не зависеть от настроения сотрудников или их присутствия на рабочем месте. В системе не должно быть промежуточных звеньев между вводом первичных данных и генерацией результирующей отчетности. Современная BI-система должна давать ответ на целый ряд важнейших вопросов, стоящих перед руководством компании…

PC Magazine/RE

Прочее / Журналы, газеты / Газеты и журналы

Похожие книги

Академик Императорской Академии Художеств Николай Васильевич Глоба и Строгановское училище
Академик Императорской Академии Художеств Николай Васильевич Глоба и Строгановское училище

Настоящее издание посвящено малоизученной теме – истории Строгановского Императорского художественно-промышленного училища в период с 1896 по 1917 г. и его последнему директору – академику Н.В. Глобе, эмигрировавшему из советской России в 1925 г. В сборник вошли статьи отечественных и зарубежных исследователей, рассматривающие личность Н. Глобы в широком контексте художественной жизни предреволюционной и послереволюционной России, а также русской эмиграции. Большинство материалов, архивных документов и фактов представлено и проанализировано впервые.Для искусствоведов, художников, преподавателей и историков отечественной культуры, для широкого круга читателей.

Георгий Фёдорович Коваленко , Коллектив авторов , Мария Терентьевна Майстровская , Протоиерей Николай Чернокрак , Сергей Николаевич Федунов , Татьяна Леонидовна Астраханцева , Юрий Ростиславович Савельев

Биографии и Мемуары / Прочее / Изобразительное искусство, фотография / Документальное