XF 2.1 Создание доп.поля пользователя через плагин

Статус
В этой теме нельзя размещать новые ответы.

Digo

Проверенные
Сообщения
54
Реакции
42
Баллы
315
Дополнительное поле пользователя идеально подходит для моих целей, но вот вопрос можно ли его создать через плагин и каким образом это сделать?
 
Ну, допустим, есть плагин для которого необходимо, чтоб в форме регистрации было еще одно поле(Выпадающее меню с выбором одного варианта).
Решение данной проблемы нашел только через дополнительные поля пользователя.
 
Так а чем доп поля не подходят? Там же есть выпадающее меню

А я понял, ну вот простой пример:
Код:
$this->db()->insertBulk('xf_user_field', [
            [
                'field_id' => 'myfield',
                'display_group' => 'contact',
                'display_order' => 900,
                'field_type' => 'textbox',
                'field_choices' => '',
                'match_type' => 'none',
                'match_params' => '',
                'max_length' => 0,
                'viewable_profile' => 0,
                'viewable_message' => 0,
                'display_template' => ''
            ]
    ], 'field_id');
Можно дёргать Entity, но так рекомендую делать.
 
Последнее редактирование:
Так а чем доп поля не подходят?
.как минимум тем, что доп.поля не предназначены для аддонов, потому что юзер может в любой момент их удалить, а аддон будет пытаться его получить, если он с ним работает
 
.как минимум тем, что доп.поля не предназначены для аддонов, потому что юзер может в любой момент их удалить, а аддон будет пытаться его получить, если он с ним работает
Нее, ему в бд нужно занести выпадающее дополнительное поле. Я понял через минут 10 и точного ответа в лс.
100074
 
$this->db()->insertBulk('xf_user_field', [ [ 'field_id' => 'myfield', 'display_group' => 'contact', 'display_order' => 900, 'field_type' => 'textbox', 'field_choices' => '', 'match_type' => 'none', 'match_params' => '', 'max_length' => 0, 'viewable_profile' => 0, 'viewable_message' => 0, 'display_template' => '' ] ], 'field_id');
Вот я пытался делать похожее, но проблема была с типом Blob, не понимаю как вставить массив вариантов ответа, ну и подумал, может это глупо и решил спросить.
 
Вот я пытался делать похожее, но проблема была с типом Blob, не понимаю как вставить массив вариантов ответа, ну и подумал, может это глупо и решил спросить.
.'field_choices' => json_encode([['test'=>'test']])
 
Последнее редактирование модератором:
Код:
$this->db()->insertBulk('xf_user_field', [
            [
                'field_id' => 'myfield',
                'display_group' => 'contact',
                'display_order' => 900,
                'field_type' => 'multiselect',
                'field_choices' => json_encode([['key' => 'value'], ['key' => 'value']]),
                'match_type' => 'none',
                'match_params' => '',
                'max_length' => 0,
                'viewable_profile' => 0,
                'viewable_message' => 0,
                'display_template' => ''
            ]
    ], 'field_id');
 
Сейчас опробуем

'field_choices' => json_encode([['test'=>'test']])
Именно так не получилось, создавалось пустое значение с ключом 0
Вот так уже получилось
PHP:
$array = array("01a" => "s", "02a" => "d");
        $this->db()->insertBulk('xf_user_field', [
            [
                'field_id' => 'test',
                'display_group' => 'personal',
                'display_order' => 1,
                'field_type' => 'select',
                'field_choices' => json_encode($array),
                'match_type' => 'none',
                'match_params' => '',
                'max_length' => 0,
                'viewable_profile' => 0,
                'viewable_message' => 0,
                'display_template' => ''
            ]
    ], 'field_id');
 
Последнее редактирование:
Статус
В этой теме нельзя размещать новые ответы.
Современный облачный хостинг провайдер | Aéza
Назад
Сверху Снизу