Опубликовано: 17 декабря 201212 г Здравствуйте.Итак, сколько не гуглил, так и не нашел внятной документации по 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 группы пользователя, чтобы на основе этого построить затем условя отображения ссылок и т.д.?
Опубликовано: 17 декабря 201212 г Если не ошибаюсь, то вот Вам ID группы:$this->memberData['member_group_id']
Опубликовано: 17 декабря 201212 г Автор Если не ошибаюсь, то вот Вам ID группы:$this->memberData['member_group_id'] Это ID группы того, кто смотрит страницу/профиль - т.е. собственный. А нужен ID группы того, чей профиль мы смотрим - т.е. отдельного пользователя, чей профиль мы просматриваем. Изменено 17 декабря 201212 г пользователем rech
Опубликовано: 17 декабря 201212 г Я лично не подскажу, но пока ждете ответа от знающих людей, советую посмотреть все хуки, которые могут быть связаны с этим функционалом и найти правильный код в них.
Опубликовано: 17 декабря 201212 г Автор Я лично не подскажу, но пока ждете ответа от знающих людей, советую посмотреть все хуки, которые могут быть связаны с этим функционалом и найти правильный код в них. смотрел, но так и ничего не нашел. У меня условие: это нужно встраивать в шаблон. З.Ы. А как часто тут появляются профи?
Опубликовано: 18 декабря 201212 г Автор Итак дополняю. Есть шаблон 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 группы того пользователя, которого просматриваю.
Опубликовано: 19 декабря 201212 г Вот как мне в "customFieldGroup__contact" получить ID группы пользователя, чтобы на основе этого построить затем условя отображения ссылок и т.д.?В customFieldGroup__contact нет ид группы пользователя, ни каких-либо других его данных. Получить можно только в шаблоне профиля profileModern - $member['member_group_id']
Опубликовано: 20 декабря 201212 г Автор В customFieldGroup__contact нет ид группы пользователя, ни каких-либо других его данных. Получить можно только в шаблоне профиля profileModern - $member['member_group_id']какой кошмар, эта ваша заливная рыба... брррр.. т.е. IPB. Пришлось распарсить url, чтобы получить id пользователя и через IPSMember получить уже его группу.
Опубликовано: 24 декабря 201212 г Автор Я вот тут подумал. А может как то можно создать глобальную переменную в profileModern и ей присвоить ID группы пользователя, чтобы потом её извлечь в customFieldGroup__contact? или как-то передать данные из profileModern в customFieldGroup__contact? а то, ято всё сделал, всё работает, но ИМХО: душа требует использование "внутренних функций" IPB.
Опубликовано: 24 декабря 201212 г Дело в том, что customFieldGroup__contact собирается раньше чем profileModern, т.е. передать через глобальную переменную не получится. Можно конечно захукать или захоркодить метод где собирается customFieldGroup__contact - sources\classes\customfields\profileFields.php, parseToView. В нем доступна свойство $this->member_data. Создайте там глоб. переменную $GLOBALS['member_data'], откуда можно будет получить данные в шаблонах семейство customFieldGroup__* $GLOBALS['member_data'] = $this->member_data;
Здравствуйте.
Итак, сколько не гуглил, так и не нашел внятной документации по 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 группы пользователя, чтобы на основе этого построить затем условя отображения ссылок и т.д.?