PencilBlue добавление нового поля в форму регистрации

Я пытаюсь добавить поле роли пользователя в форму регистрации на моем сайте PencilBlue. Создал свой собственный плагин, скопировал \controllers\actions\user\sign_up.js и установить getRoutes,

Теперь я получаю эту ошибку: Cannot set property 'position' of null. Я сделал все, что нужно для создания нового плагина. Все работает нормально когда ядро sign-up.js файл редактируется с

var user_type = post.admin['id'];
        if(user_type == 0){
            post.admin      = pb.SecurityService.ACCESS_USER;
        } else {
            post.admin      = pb.SecurityService.ACCESS_WRITER;
        }

Я получаю сообщение об ошибке при использовании его в моем плагине. Я установил getRoutes, как это

SignUp.getRoutes = function(cb) {
        var routes = [
            {
                method: 'post',
                path: '/actions/user/sign_up',
                auth_required: false,
                content_type: 'application/json'
            }
        ];
        cb(null, routes);
    };

Шаблон HTML Файл передает значения сообщения просто отлично. Структура моего каталога контроллеров плагинов плоская, поэтому нет подкаталогов, которые следуют за настройкой ядра, в точности так, как рекомендовано командой PB.

1 ответ

Решение

Следуя этой теме, пожалуйста, добавьте

request_body: ['application/json', 'application/x-www-form-urlencoded', 'multipart/form-data']

внутри getRoutes

это будет выглядеть так ниже:

SignUp.getRoutes = function(cb) {
        var routes = [
            {
                method: 'post',
                path: '/actions/user/sign_up',
                auth_required: false,
                content_type: 'application/json',
                request_body: ['application/json', 'application/x-www-form-urlencoded', 'multipart/form-data']
            }
        ];
        cb(null, routes);
    };
Другие вопросы по тегам