Всем доброго времени суток!
Начал изучение друпал 7, т.к. заказчики есть, а знаний нет! Уже 4 дня поглощаю много разной информации.
Сам в работе почти год активно использую фрейморк Yii (не реклама!), и настолько привык к нему, что многое в друпале сходу мне не совсем понятно или кажется не логичным.
Прошу ответить на несколько вопросов:
1. Своя форма это всегда модуль?
2. POST данные может получать только тот модуль(форма) в котором он выполняется? Всмысле, что передача данных между разными страницами возможна только через сессии?
3. Как я понял свои таблицы надо описывать через xxx.install, и опять же это всегда модуль?
4. Можно описывать сразу несколько таблиц в xxx.install одного модуля?
5. Свои таблицы можно связывать с таксономией и типами содержимого? Как реализуются связи?
Прошу ответить хотя бы коротко, а лучше по возможности ткнуть в источник информации. Все, что находил в основном одно и тоже, либо как этот форум имеет мнооооого информации, а поиск мало что дал, хотя я может плохо искал.
Заранее всем спасибо!
Комментарии
1. Можно также через webform.
2. Не понятен вопрос, нужна более точная формулировка задачи.
3. Да.
4. Да, описать несколько схем в hook_schema().
5. Можно, через дополнительные таблицы-связки.
vitg, Большое спасибо за отклик!
1. Webform уже попробовал, но мне нужна сложная форма с условиями отображения элементов\информации + сложная валидация формы. Информации как это делать с помощью Webform я не нашел.
2. Например есть 3 шага заполнения формы, пусть это будет объявление о продаже. Последний шаг должен показать само объявление (если я правильно понимаю это нода) + информацию от шага №1 этой формы.
5. Можете подсказать где почитать или привести маленький пример?
И ещё по пути возник вопрос:
template.php нужен только для перекрытия функций друпала в конкретной теме? Или можно(нужно?) в нем описывать свои функции, и вызывать из модулей? Вообще существует в друпале такое понятие как базовый модуль? Т.е. в нем описать функционал, и от него наследовать дальше?
https://drupal.org/node/37775
Он нужен для темизации. Хотя очень часто его используют не по назначению. Field group вроде умеет делать многошаговые формы для нод
https://drupal.org/project/field_group
Нет. Модули наследовать нельзя. Только темы.
Всем большое спасибо за ответы!
multpix, с FAPI уже знакомлюсь, мой первый вопрос был - Своя форма это всегда модуль? Без WebForm.
Мне важна была не шаговость, а получение POST данных в другом модуле\ноде.Вопрос был "2. POST данные может получать только тот модуль(форма) в котором он выполняется? Всмысле, что передача данных между разными страницами возможна только через сессии?"
модуль - это принцип организации и упорядочивания кода.
свой дополнительный функционал - это, как правило, свой модуль.
своя вебформа - это fapi в своем модуле.
возможность зацепиться за свой модуль - это свой хук.
свой код в чужом модуле - это пиздец.
на досуге:
http://graker.ru/drupal/20_api_za_20_dnei/hooks_api
так-же полезно:
https://api.drupal.org/api/drupal
Верхняя книга - очень хорошая, как раз именно для программистов.
multpix, коротко и ясно ) Благодарю за ссылку, сейчас как раз пытаюсь вникнуть в "систему" хуков.
roman-yrv, обязательно найду и почитаю.
Есть куча модулей с помощью которых это можно сделать, но сделать это будет в 3 раза сложней чем в YII. Тем более не знакомому с друпал разработчику. В YII валидация на стороне клиента из коробки, аякс валидация из коробки, подгрузка нужных полей формы - тоже можно сказать из коробки...
https://drupal.org/project/ctools
Посмотрите пункт
Form wizard -- an API to make multi-step forms much easier.
Вроде там работающим с примером в комплекте.
Кстати да, с этим согласен.
Спасибо за ссылку, её я находил, конечный результат не тот, но зато я понял что такое модули в Друпал )