0 / 0 / 0
Регистрация: 27.01.2023
Сообщений: 2
1

Получить значение пользовательского поля в Битриксе

27.01.2023, 15:09. Показов 379. Ответов 0
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Добрый день,
Нужна помощь для чайника))

Есть Битрикс24. В нем я создал пользовательское поле UF_DIRECTION_OF_STUDY типа "Список", привязал к объекту LEARNING_LESSONS.
Пытаюсь вывести значение этого поля в компонент "обучение". Для каждого курса необходимо вывести выбранное значение.
Вот код компонента(component.php):
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
<?
if (!defined("B_PROLOG_INCLUDED") || B_PROLOG_INCLUDED!==true)die();
 
if (!CModule::IncludeModule("learning"))
{
    ShowError(GetMessage("LEARNING_MODULE_NOT_FOUND"));
    return;
}
 
$arParams["SORBY"] = (isset($arParams["~SORBY"]) ? trim($arParams["~SORBY"]) : "SORT");
$arParams["SORORDER"] = (isset($arParams["~SORORDER"]) ? trim($arParams["~SORORDER"]) : "ASC");
$arParams["CHECK_PERMISSIONS"] = (isset($arParams["CHECK_PERMISSIONS"]) && $arParams["CHECK_PERMISSIONS"]=="N" ? "N" : "Y");
$arParams["COURSE_DETAIL_TEMPLATE"] = (isset($arParams["COURSE_DETAIL_TEMPLATE"]) ? htmlspecialcharsbx($arParams["COURSE_DETAIL_TEMPLATE"]) : "course/index.php?COURSE_ID=#COURSE_ID#");
$arParams["COURSES_PER_PAGE"] = (intval($arParams["COURSES_PER_PAGE"]) > 0 ? intval($arParams["COURSES_PER_PAGE"]) : 20);
 
 
 
 
//Set Title
$arParams["SET_TITLE"] = ($arParams["SET_TITLE"] == "N" ? "N" : "Y" );
if ($arParams["SET_TITLE"] == "Y")
    $APPLICATION->SetTitle(GetMessage("LEARNING_COURSE_LIST"));
 
//arResult
$arResult = Array(
    "COURSES" => Array(),
    "NAV_SRTING" => "",
    "NAV_RESULT" => null,
);
 
$arNavParams = array();
 
$arNavParams = array();
if ((int) $arParams["COURSES_PER_PAGE"] > 0)
{
    $arNavParams['nPageSize'] = (int) $arParams["COURSES_PER_PAGE"];
    $arNavParams['bDescPageNumbering'] = false;
}
 
 
$res = CCourse::GetList(
    array($arParams["SORBY"] => $arParams["SORORDER"]),
    array(
        "ACTIVE" => "Y",
        "ACTIVE_DATE" => "Y",
        "SITE_ID" => LANG,
        "CHECK_PERMISSIONS" => $arParams["CHECK_PERMISSIONS"]
    ),
    $arNavParams
);
 
 
$arResult["NAV_STRING"] = $res->GetPageNavString(GetMessage("LEARNING_COURSES_NAV"));
$arResult["NAV_RESULT"] = $res;
 
 
while ($arCourse = $res->GetNext())
{
 
    $arCourse["COURSE_DETAIL_URL"] = CComponentEngine::MakePathFromTemplate(
        $arParams["COURSE_DETAIL_TEMPLATE"],
        Array("COURSE_ID" => $arCourse["ID"])
    );
 
    $arCourse["PREVIEW_PICTURE_ARRAY"] = CFile::GetFileArray($arCourse["PREVIEW_PICTURE"]);
 
 
 
 
    // Resolve links "?COURSE_ID={SELF}". Don't relay on it, this behaviour 
    // can be changed in future without any notifications.
    if (isset($arCourse['DETAIL_TEXT']))
    {
        $arCourse['DETAIL_TEXT'] = CLearnHelper::PatchLessonContentLinks(
            $arCourse['DETAIL_TEXT'],
            $arCourse['ID']
        );
    }
 
    if (isset($arCourse['PREVIEW_TEXT']))
    {
        $arCourse['PREVIEW_TEXT'] = CLearnHelper::PatchLessonContentLinks(
            $arCourse['PREVIEW_TEXT'],
            $arCourse['ID']
        );
    }
 
    $arResult["COURSES"][] = $arCourse;
}
 
$res->arResult = Array();
unset($arCourse);
 
 
 
 
if (CLearnAccessMacroses::CanUserAddLessonWithoutParentLesson() || $USER->IsAdmin())
{
    $arAreaButtons = array(
        array(
            "TEXT" => GetMessage("LEARNING_COURSES_COURSE_ADD"),
            "TITLE" => GetMessage("LEARNING_COURSES_COURSE_ADD"),
            "URL" => 'javascript:'.$APPLICATION->GetPopupLink(
                array(
                    "URL" => "/bitrix/admin/learn_course_edit.php?lang=".LANGUAGE_ID."&bxpublic=Y&from_module=learning",
                    "PARAMS" => array(
                        "width" => 700, 'height' => 500, 'resize' => false,
                    ),
                )
            ),
            "ICON" => "bx-context-toolbar-create-icon",
            "ID" => "bx-context-toolbar-create-course",
        ),
    );
 
    $this->AddIncludeAreaIcons($arAreaButtons);
 
    if(CModule::IncludeModule("intranet") && is_object($GLOBALS['INTRANET_TOOLBAR']))
    {
        $GLOBALS['INTRANET_TOOLBAR']->AddButton(array(
            'TEXT' => GetMessage("comp_course_list_toolbar_add"),
            'TITLE' => GetMessage("comp_course_list_toolbar_add_title"),
            'ICON' => 'add',
            'HREF' => '/bitrix/admin/learn_course_edit.php?lang='.LANGUAGE_ID,
            'SORT' => '100',
        ));
        $GLOBALS['INTRANET_TOOLBAR']->AddButton(array(
            'TEXT' => GetMessage("comp_course_list_toolbar_list"),
            'TITLE' => GetMessage("comp_course_list_toolbar_list_title"),
            'ICON' => 'settings',
            'HREF' => '/bitrix/admin/learn_unilesson_admin.php?lang=' . LANGUAGE_ID . '&PARENT_LESSON_ID=-1',
            'SORT' => '200',
        ));
    }
}
 
$this->IncludeComponentTemplate();
 
 
?>
Так пытался вытянуть значение:
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
.........
while ($arCourse = $res->GetNext())
{
 
global $USER;
$arFilter = array("ID" => $USER->GetID());
$arParams["SELECT"] = array("UF_DIRECTION_OF_STUDY");
$arRes = CUser::GetList($by,$desc,$arFilter,$arParams);
     if ($res = $arRes->Fetch()) {
        foreach ($res["UF_DIRECTION_OF_STUDY"] as $id) {
            //echo $id;
                $rsRes= CUserFieldEnum::GetList(array(), array(
                    "ID" => $id,
                ));
                if($arGender = $rsRes->GetNext())
                    echo $arGender["VALUE"];
        } 
}............
Выдает ошибку, что массив пуст.
[Error]
Call to a member function GetNext() on array (0)
/home/bitrix/www/bitrix/components/bitrix/learning.course.list/component.php:57
#0: include
Если смотрю что там в $res
PHP
1
2
3
4
5
6
    global $USER;
$arFilter = array("ID" => $USER->GetID());
$arParams["SELECT"] = array("UF_DIRECTION_OF_STUDY");
$arRes = CUser::GetList($by,$desc,$arFilter,$arParams);
    $Arr = (array)$res;
    print_r ( $Arr );
выдает такое
Код
[UF_DIRECTION_OF_STUDY] => Array ( [ID] => 442 [ENTITY_ID] => LEARNING_LESSONS [FIELD_NAME] => UF_DIRECTION_OF_STUDY [USER_TYPE_ID] => enumeration [XML_ID] => UF_DIRECTION_OF_STUDY
Как вывести выбранное значение поля UF_DIRECTION_OF_STUDY?

Спасибо!
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
27.01.2023, 15:09
Ответы с готовыми решениями:

Получить значение пользовательского поля
Доброго времени суток! Не могу сообразить как мне получить значение пользовательского поля...

Получить значение поля БД
После записи в БД нужно получить значение id по логину. (в таблице три поля - id, login, pass) Не...

Получить значение поля
Пишу программу на java для поиска возможных обходов защиты проекта. На страничке есть одно поле,...

Получить значение поля бд
Как получить значение с определенного поля бд? У меня есть база данных вопросов к тесту. Мне нужно...

0
27.01.2023, 15:09
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
27.01.2023, 15:09
Помогаю со студенческими работами здесь

Не Могу Получить Значение Tv Поля
Здравствуйте! У меня есть одно TV поле я вношу в него значение и в вывожу его в шаблоне, но мне...

Не могу получить значение поля
register.html &lt;div class=&quot;form-group&quot;&gt; &lt;input type = &quot;file&quot; name =...

Не получается получить значение поля
Такая проблема. Пытаюсь получить val() и вместо числа у меня выводится &quot;0&quot;. В чем проблема может...

Получить значение поля из таблицы
Ламерский вопрос. Как получить значение поля из таблицы и записать его в переменную на php?

Получить значение поля на сайте
добрый вечер, не подскажите, как получить значение с поля на сайте ? дело в том, то выполняется js...

Получить значение поля из таблицы
есть таблица статьи (для примера), структура таблицы id, title нужно вытащить название всех...

Получить значение из текстового поля
Всем доброго времени суток. Хочу получить значение из текстового поля в php, как это можно сделать?...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru