Плагин для пользователей CakeDC — как добавить поле сведений (например, имя, компания) в регистрационную форму

Я установил плагин CakeDC Users и расширил/переопределил пользовательский контроллер и модель, как описано в файле Readme. Вроде все работает.

Но я хочу изменить регистрационную форму и плагин, чтобы добавить поля - first_name, company и т. д. и включить активацию учетной записи пользователя администратором.

Итак, мой вопрос, как мне

  • добавить настраиваемые поля в регистрационную форму
  • отключить проверку электронной почты
  • отключить активацию учетной записи пользователя по умолчанию

Я новичок в cakePHP, и документации для cakeDC тоже не так много.

Кто-нибудь может помочь, пожалуйста? Заранее спасибо!


person morshed    schedule 17.09.2013    source источник
comment
не лучше ли создать раздел «Профиль» для пользователя, который связан с подключаемым модулем CakeDC/User?   -  person cybercoder    schedule 17.09.2013


Ответы (1)


Я не собираюсь выполнять здесь вашу работу и писать весь код за вас, но позвольте мне дать вам несколько указаний:

1) Просто скопируйте представление регистрации в /app/View/Plugin/Users/register.ctp (или как называется файл представления) и добавьте туда поле, следуя тому же шаблону для полей UserDetail. Сведения о пользователе — это просто хранилище ключевых значений. И они также уже были удалены в ветке разработки, потому что люди обычно предпочитают выделенную таблицу профилей или что-то подобное, а не сложное хранилище с ключом-значением.

2) Вы хоть 5 минут смотрели на код? Расширьте UsersController и перегрузите метод и измените либо аргумент на false, либо перегрузите весь метод отправки электронной почты и просто не добавляйте в него никакого кода.

3) Снова простой ООП - расширить класс, перегрузить метод, изменить поведение кода.

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

В качестве альтернативы вы можете просто нанять CakeDC для его интеграции. ;)

person floriank    schedule 17.09.2013
comment
Спасибо за ваш комментарий. Я искал идеальное решение для точек 2 и 3 с использованием конфигурации, поскольку ей уже более 3 лет. Переопределение всего метода не является хорошим подходом для решения таких простых проблем. На самом деле нужно переопределить два метода только для точки № 2. Я внесу свой вклад в cakeDC, чтобы решить эту проблему, если у меня будет время и я продолжу работать с PHP :) - person morshed; 17.09.2013