Перейти к публикации
Дизайн и модификация IPS Community IPBSkinsBETA
Поиск в
  • Дополнительно...
Искать результаты, содержащие...
Искать результаты в...
rech

Получить 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']

Поделиться сообщением


Ссылка на сообщение
12/17/12 16:08 (изменено)

Если не ошибаюсь, то вот Вам 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 пользователей

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

×
×
  • Создать...