Перейти к публикации
View in the app

A better way to browse. Learn more.

Дизайн и модификация Invision Community

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Получить ID группs пользователя через API

Опубликовано:

Здравствуйте.

Итак, сколько не гуглил, так и не нашел внятной документации по API.

IPB 3.3.1

 

Имеем профиль пользователя (допустим /user/1001/)

 

В профиле пользователей есть доп. поля, которые должны иметь разные атрибуты в зависимости от того, к какой группе пользователь принадлежит.

 

Например у группы id 7, ссылка на сайт из профиля должна быть индексируемая.

У остальных групп - ссылки не индексируемые.

 

Ковырял skin_profile, в частности "customFieldGroup__contact".

 

Попытка тупо вывести хотя бы id группы пользователя или id пользователя методом:

{$author['member_id']} или {$member['member_id']}, так же {$author['g_id']} или {$member['g_id']} и т.д. - не дают результата.

 

{$this->memberData['member_id']} - выводит ID пользователя, который просматривает страницу.

 

Вот как мне в "customFieldGroup__contact" получить ID группы пользователя, чтобы на основе этого построить затем условя отображения ссылок и т.д.?

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

Опубликовано:

Если не ошибаюсь, то вот Вам ID группы:

$this->memberData['member_group_id']

Опубликовано:
  • Автор

Если не ошибаюсь, то вот Вам ID группы:

$this->memberData['member_group_id']

 

Это ID группы того, кто смотрит страницу/профиль - т.е. собственный.

 

А нужен ID группы того, чей профиль мы смотрим - т.е. отдельного пользователя, чей профиль мы просматриваем.

Изменено пользователем rech

Опубликовано:

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

Опубликовано:
  • Автор

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

 

 

смотрел, но так и ничего не нашел.

 

У меня условие: это нужно встраивать в шаблон.

 

З.Ы. А как часто тут появляются профи?

Опубликовано:
  • Автор

Итак дополняю.

 

Есть шаблон profileModern, в нем есть код отвечающий за вывод "контактов":

 

<if test="member_contact_fields:|:is_array( $member['custom_fields']['contact'])">
 <foreach loop="cfields:$member['custom_fields']['contact'] as $field">
   {$field}
 </foreach>
</if>

 

этот код генерирует всё на основе "customFieldGroup__contact", там есть следующие строчки:

<if test="cf_website:|:$f->raw_data['pf_key'] == 'website'">
<a class='url uid' rel="me" href='{$f->parsed}'>{$f->parsed}</a>
<else />

 

 

мне нужно, чтобы у пользователей групп не ID 7 в профиле это выглядело так:

 

<if test="cf_website:|:$f->raw_data['pf_key'] == 'website'">
<a class='url uid' rel="me nofollow" href='{$f->parsed}'>{$f->parsed}</a>
<else />

 

т.е. мне бы тупо получить ID группы того пользователя, которого просматриваю.

Опубликовано:

Вот как мне в "customFieldGroup__contact" получить ID группы пользователя, чтобы на основе этого построить затем условя отображения ссылок и т.д.?

В customFieldGroup__contact нет ид группы пользователя, ни каких-либо других его данных. Получить можно только в шаблоне профиля profileModern - $member['member_group_id']

Опубликовано:
  • Автор

В customFieldGroup__contact нет ид группы пользователя, ни каких-либо других его данных. Получить можно только в шаблоне профиля profileModern - $member['member_group_id']

какой кошмар, эта ваша заливная рыба... брррр.. т.е. IPB.

 

Пришлось распарсить url, чтобы получить id пользователя и через IPSMember получить уже его группу.

Опубликовано:
  • Автор

Я вот тут подумал.

 

А может как то можно создать глобальную переменную в profileModern и ей присвоить ID группы пользователя, чтобы потом её извлечь в customFieldGroup__contact?

 

или как-то передать данные из profileModern в customFieldGroup__contact?

 

а то, ято всё сделал, всё работает, но ИМХО: душа требует использование "внутренних функций" IPB.

Опубликовано:

Дело в том, что customFieldGroup__contact собирается раньше чем profileModern, т.е. передать через глобальную переменную не получится. Можно конечно захукать или захоркодить метод где собирается customFieldGroup__contact - sources\classes\customfields\profileFields.php, parseToView. В нем доступна свойство $this->member_data.

Создайте там глоб. переменную $GLOBALS['member_data'], откуда можно будет получить данные в шаблонах семейство customFieldGroup__*

 

$GLOBALS['member_data'] = $this->member_data;

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

Сейчас на странице 0

  • Нет пользователей, просматривающих эту страницу.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.