Перейти к содержимому
Русский язык для Invision Community 5

buildDisplayData или свой запрос?

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

Если второй вариант, то в какой таблице лежат аватарки, а то в members их нету :)

Рекомендованные сообщения

Если вы, допустим, делаете не большой виджет и вам нужны только ники и аватарки юзеров, вы загружаете их с помощью buildDisplayData() или пишете свой запрос

Когда как. Если лень писать - использую стандартные методы, если получается чересчур много запросов в этом месте пишу свои запросы. Где находятся аватары вы уже наверняка сами нашли - profile_portal

buildDisplayData() возвращает огромный массив с кучей не нужной информации.

IPSMember::buildDisplayData в общем случае не создает новую информацию и не выполняет дополнительных запросов. Он лишь перерабатывает полученную ранее от IPSMember::load информацию в удобный для отображения вид. Он может выполнить дополнительные запросы, если вы передадите не полный массив данных, либо же вообще самостоятельно выполнить IPSMember::load, если передается только member_id, но в общем случае никакими запросами и лишними нагрузками вызов метода не череват, так что за избыточность данных можно не переживать - она обходится минимальной ценой.

 

Если вы, допустим, делаете не большой виджет и вам нужны только ники и аватарки юзеров

"Аватарки" можно получить отдельно с помощью метода IPSMember::buildProfilePhoto. Но, опять же, на практике всегда выгоднее передавать в шаблоны полный и де-факто стандартный набор данных пользователя, чтобы потом не сталкиваться с проблемой расширения функционала.

 

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

Создайте аккаунт или войдите в него для комментирования

Аккаунт

Навигация

Поиск

Поиск

Настроить push-уведомления браузера

Chrome (Android)
  1. Нажмите на иконку замка рядом с адресной строкой.
  2. Нажмите Права доступа -> Уведомления.
  3. Измените свои настройки.
Chrome (компьютер)
  1. Нажмите на иконку замка в адресной строке.
  2. Выберите Настройки сайта.
  3. Найдите Уведомления и измените свои настройки.