Почему я должен использовать Drupal Form API и Ajax Framework для этого, а не просто реализовывать свое собственное решение с вызовом node_save ()? - PullRequest
0 голосов
/ 13 февраля 2012

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

Я потратил время на просмотр документации и примеров кода для API-интерфейсов форм Drupal 7 и инфраструктуры Ajax, но я нахожу это очень сложным. Поэтому я просто хочу создать свою собственную форму в HTML и использовать свой собственный код JavaScript для отправки ее через Ajax. Я также настрою конкретный URL для обработки этих запросов Ajax, который в конечном итоге будет вызывать node_save() или comment_save(), когда это будет необходимо.

Каковы недостатки этого, по сравнению с прохождением через API форм и Ajax? Я не создаю модули для вклада в сообщество. Все только для моего сайта.

Ответы [ 2 ]

5 голосов
/ 13 февраля 2012

Технически, да, вы можете сделать это без вредных последствий.Были времена, когда мне приходилось импортировать данные из фидов и вручную использовать node_save.

Что вам не хватает, так это гибкость, которую предлагает drupal.Например, хотите добавить в форму новый флажок для обозначения выбранного элемента?Теперь вам нужно вручную обновить форму, чтобы добавить поле, и обновить обработчик отправки, чтобы сохранить данные.Если бы вы использовали систему Drupal, она была бы автоматически заполнена для вас.

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

Система форм Drupals также позволяет добавлять более сложные элементы, такие как селекторы дат или даже управляемые загрузки файлов, что может сэкономить много времени, когда вы ознакомитесь с API.

Если вы ищете, чтобы закончить проект, а не тратить время на изучение чего-то нового, убедитесь, что вы можете сделать все это вручную.Я могу пообещать вам, что любой разработчик Drupal, который будет смотреть на ваш код в будущем, будет иметь очень низкое мнение о вашей работе.В зависимости от вашей ситуации это может или не может быть важным.Но на самом деле самое большое, чего вам не хватает, - это простота обслуживания и гибкость.

Итак, просто напомнить:

плюсы:

  • это будет работать
  • быстро и легко
  • удобно

минусы:

  • потеря гибкости
  • сложнее поддерживать
  • неспособность воспользоваться преимуществами друпалских форм виджетов / помощников
  • неспособность воспользоваться сторонними модулями
  • позор от других разработчиков
  • Недостаток сна от грязного чувства
  • вечное проклятие
4 голосов
/ 13 февраля 2012

Обычный аргумент будет о переносимости, я думаю, но если вы не собираетесь переносить эти модули на другой сайт Drupal, тогда, я думаю, это не работает.

То же самое можно сказать и о предложении другихМодули могут изменить вашу форму, основываясь на некоторых глобальных / унаследованных настройках, но опять же, если вы действительно не хотите / не нуждаетесь в этой функциональности, тогда она не может быть использована в качестве аргумента против.

Одна вещьВы потеряете на встроенной защите от подделки межсайтовых запросов.Пока вы используете свою собственную версию, все будет в порядке.

Если вы планируете много использовать Drupal, я бы порекомендовал привыкнуть к FAPI ... через некоторое времяНа самом деле использовать FAPI намного проще, чем писать собственный HTML.

...