Система управления контентом SantaFox

Разработчикам => Функции ядра => Тема начата: Smile500 от 26 декабря 2011, 14:58:59

Название: Вопрос по дополнительным полям
Отправлено: Smile500 от 26 декабря 2011, 14:58:59
Дополнительные поля - это те поля, которые формируют модули.
А вот вопрос: а как их прочитать? как с ними работать-то вообще? Подскажите пож.

П.С. Ближе всех к ответу, как я думаю, является функция ядра pub_user_field_get. Но, в документации есть неточность: на самом деле она возвращает не массив, а строку. Но вот что-то у меня не получается никак справится с этим вопросом.
Название: Re: Вопрос по дополнительным полям
Отправлено: arteshuk от 26 декабря 2011, 16:24:26
используй pub_users_info_get

ЗЫ в мануале pub_user_field_get   * @return string
Название: Re: Вопрос по дополнительным полям
Отправлено: Smile500 от 26 декабря 2011, 16:48:00
$curr_user = $kernel->pub_users_info_get($id);
где $id - ид пользователя.
Возвращаемое значение - массив.

Хорошо, раз массив, значит так: $curr_user['tel']
а в ответ: Undefined index: tel

не очень понятна структура возвращаемого массива.
Название: Re: Вопрос по дополнительным полям
Отправлено: arteshuk от 26 декабря 2011, 17:13:56
По моему все предельно ясно....НЕТ у юзъверов поля tel.....
Название: Re: Вопрос по дополнительным полям
Отправлено: Smile500 от 26 декабря 2011, 19:04:43
Основного нет. А дополнительное есть! 
В таблице sf_user_fields описываем его. А в таблице sf_user_fields_value ставим значение.
Название: Re: Вопрос по дополнительным полям
Отправлено: arteshuk от 26 декабря 2011, 19:06:59
Основного нет. А дополнительное есть! 
В таблице sf_user_fields описываем его. А в таблице sf_user_fields_value ставим значение.

Ок, есть так есть, расскажи как ты массив $curr_user обходишь?
Название: Re: Вопрос по дополнительным полям
Отправлено: Smile500 от 26 декабря 2011, 19:30:39
в классе admin\manager_users.class.php есть функция users_info_get, которая по всей видимости и должна возвращать массив доп.полей.  В принципе, запрос там правильный. Но чета не понятно как массив с данными заполняется. Смотри строчки от 866 до 888. Там массив что-то страшный :) Типа
$res[$row['user']]['fields'][$row['id_modul'].$this->symbol_delimiter.$row['id_field']]['value'] = $row['value'];где $this->symbol_delimiter равен "-".
Подставляем значения получаем строчку вроде:
$res[1]['fields']['auth-tel']]['value']то есть к выходному массиву можно так и обратиться. Но блин он говорит что нет поля auth-tel!
Название: Re: Вопрос по дополнительным полям
Отправлено: arteshuk от 26 декабря 2011, 19:53:55
а разве есть поле auth-tel????

где ты его взял-то? В БД есть такой столбец????
Название: Re: Вопрос по дополнительным полям
Отправлено: Smile500 от 26 декабря 2011, 19:59:30
в бд нет такого поля!
но если подставить
$row['user'] = 1
$row['id_modul'] = 'auth'
$this->symbol_delimiter = '-' //выше в том же модуле
$row['id_field'] = 'tel'
то и получим то что я написал. может косяк тут какой?

в принципе я мог бы напрямую дернуть что мне нужно из бд, но хотелось бы средствами, предоставляемыми самим ядром
Название: Re: Вопрос по дополнительным полям
Отправлено: arteshuk от 26 декабря 2011, 21:55:49
в бд нет такого поля!
что и тебовалось доказать....

но если подставить
$row['user'] = 1
$row['id_modul'] = 'auth'
$this->symbol_delimiter = '-' //выше в том же модуле
$row['id_field'] = 'tel'
то и получим то что я написал. может косяк тут какой?

если бы у бабушки были яйца....сам понимаешь....не надо думать, что несколько человек, которые писали ядро, глупее тебя одного.....
Название: Re: Вопрос по дополнительным полям
Отправлено: Smile500 от 27 декабря 2011, 07:54:32
Уффф!!! :) Я все-таки сделал это!!!  :D ура!

глупее тебя одного.....
напротив, я очень уважительно отношусь к чужому труду.
Название: Re: Вопрос по дополнительным полям
Отправлено: barboskin от 14 ноября 2017, 06:03:57
Спасибо