Система управления контентом SantaFox
Разработчикам => Функции ядра => Тема начата: Smile500 от 26 декабря 2011, 14:58:59
-
Дополнительные поля - это те поля, которые формируют модули.
А вот вопрос: а как их прочитать? как с ними работать-то вообще? Подскажите пож.
П.С. Ближе всех к ответу, как я думаю, является функция ядра pub_user_field_get. Но, в документации есть неточность: на самом деле она возвращает не массив, а строку. Но вот что-то у меня не получается никак справится с этим вопросом.
-
используй pub_users_info_get
ЗЫ в мануале pub_user_field_get * @return string
-
$curr_user = $kernel->pub_users_info_get($id);
где $id - ид пользователя.
Возвращаемое значение - массив.
Хорошо, раз массив, значит так: $curr_user['tel']
а в ответ: Undefined index: tel
не очень понятна структура возвращаемого массива.
-
По моему все предельно ясно....НЕТ у юзъверов поля tel.....
-
Основного нет. А дополнительное есть!
В таблице sf_user_fields описываем его. А в таблице sf_user_fields_value ставим значение.
-
Основного нет. А дополнительное есть!
В таблице sf_user_fields описываем его. А в таблице sf_user_fields_value ставим значение.
Ок, есть так есть, расскажи как ты массив $curr_user обходишь?
-
в классе 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!
-
а разве есть поле auth-tel????
где ты его взял-то? В БД есть такой столбец????
-
в бд нет такого поля!
но если подставить
$row['user'] = 1
$row['id_modul'] = 'auth'
$this->symbol_delimiter = '-' //выше в том же модуле
$row['id_field'] = 'tel'
то и получим то что я написал. может косяк тут какой?
в принципе я мог бы напрямую дернуть что мне нужно из бд, но хотелось бы средствами, предоставляемыми самим ядром
-
в бд нет такого поля!
что и тебовалось доказать....
но если подставить
$row['user'] = 1
$row['id_modul'] = 'auth'
$this->symbol_delimiter = '-' //выше в том же модуле
$row['id_field'] = 'tel'
то и получим то что я написал. может косяк тут какой?
если бы у бабушки были яйца....сам понимаешь....не надо думать, что несколько человек, которые писали ядро, глупее тебя одного.....
-
Уффф!!! :) Я все-таки сделал это!!! :D ура!
глупее тебя одного.....
напротив, я очень уважительно отношусь к чужому труду.
-
Спасибо