[РЕШЕНО] Общие вопросы по drupal 7 от новичка

Главные вкладки

Аватар пользователя Luntik.u Luntik.u 1 ноября 2013 в 22:09

Всем доброго времени суток!
Начал изучение друпал 7, т.к. заказчики есть, а знаний нет! Уже 4 дня поглощаю много разной информации.
Сам в работе почти год активно использую фрейморк Yii (не реклама!), и настолько привык к нему, что многое в друпале сходу мне не совсем понятно или кажется не логичным.

Прошу ответить на несколько вопросов:

1. Своя форма это всегда модуль?
2. POST данные может получать только тот модуль(форма) в котором он выполняется? Всмысле, что передача данных между разными страницами возможна только через сессии?
3. Как я понял свои таблицы надо описывать через xxx.install, и опять же это всегда модуль?
4. Можно описывать сразу несколько таблиц в xxx.install одного модуля?
5. Свои таблицы можно связывать с таксономией и типами содержимого? Как реализуются связи?

Прошу ответить хотя бы коротко, а лучше по возможности ткнуть в источник информации. Все, что находил в основном одно и тоже, либо как этот форум имеет мнооооого информации, а поиск мало что дал, хотя я может плохо искал.
Заранее всем спасибо!

Комментарии

Аватар пользователя vitg vitg 1 ноября 2013 в 22:57

1. Можно также через webform.
2. Не понятен вопрос, нужна более точная формулировка задачи.
3. Да.
4. Да, описать несколько схем в hook_schema().
5. Можно, через дополнительные таблицы-связки.

Аватар пользователя Luntik.u Luntik.u 1 ноября 2013 в 23:19

vitg, Большое спасибо за отклик!

1. Webform уже попробовал, но мне нужна сложная форма с условиями отображения элементов\информации + сложная валидация формы. Информации как это делать с помощью Webform я не нашел.
2. Например есть 3 шага заполнения формы, пусть это будет объявление о продаже. Последний шаг должен показать само объявление (если я правильно понимаю это нода) + информацию от шага №1 этой формы.
5. Можете подсказать где почитать или привести маленький пример?

И ещё по пути возник вопрос:
template.php нужен только для перекрытия функций друпала в конкретной теме? Или можно(нужно?) в нем описывать свои функции, и вызывать из модулей? Вообще существует в друпале такое понятие как базовый модуль? Т.е. в нем описать функционал, и от него наследовать дальше?

Аватар пользователя Ch Ch 2 ноября 2013 в 10:33

"Luntik.u" wrote:
template.php нужен только для перекрытия функций друпала в конкретной теме?

Он нужен для темизации. Хотя очень часто его используют не по назначению.

"Luntik.u" wrote:
Например есть 3 шага заполнения формы
Field group вроде умеет делать многошаговые формы для нод
https://drupal.org/project/field_group

"Luntik.u" wrote:
Вообще существует в друпале такое понятие как базовый модуль?

Нет. Модули наследовать нельзя. Только темы.

Аватар пользователя Luntik.u Luntik.u 3 ноября 2013 в 11:01

Всем большое спасибо за ответы!

multpix, с FAPI уже знакомлюсь, мой первый вопрос был - Своя форма это всегда модуль? Без WebForm.

"Ch" wrote:
Field group вроде умеет делать многошаговые формы для нод
Мне важна была не шаговость, а получение POST данных в другом модуле\ноде.
Вопрос был "2. POST данные может получать только тот модуль(форма) в котором он выполняется? Всмысле, что передача данных между разными страницами возможна только через сессии?"

Аватар пользователя multpix multpix 3 ноября 2013 в 11:37

"Luntik.u" wrote:
Своя форма это всегда модуль?

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

на досуге:
http://graker.ru/drupal/20_api_za_20_dnei/hooks_api
так-же полезно:


https://api.drupal.org/api/drupal

Аватар пользователя user_deleted user_deleted 3 ноября 2013 в 23:46

"Luntik.u" wrote:
1. Webform уже попробовал, но мне нужна сложная форма с условиями отображения элементов\информации + сложная валидация формы. Информации как это делать с помощью Webform я не нашел.

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

Аватар пользователя vitg vitg 5 ноября 2013 в 14:09

"Luntik.u" wrote:
Мне важна была не шаговость, а получение POST данных в другом модуле\ноде.
Вопрос был "2. POST данные может получать только тот модуль(форма) в котором он выполняется? Всмысле, что передача данных между разными страницами возможна только через сессии?"

https://drupal.org/project/ctools

Посмотрите пункт
Form wizard -- an API to make multi-step forms much easier.
Вроде там работающим с примером в комплекте.

"DimDim" wrote:
Есть куча модулей с помощью которых это можно сделать, но сделать это будет в 3 раза сложней чем в YII.

Кстати да, с этим согласен.

Аватар пользователя Luntik.u Luntik.u 5 ноября 2013 в 20:27

"DimDim" wrote:
В YII валидация на стороне клиента из коробки, аякс валидация из коробки, подгрузка нужных полей формы - тоже можно сказать из коробки...
Руки у меня вроде как из нужного места растут) Yii я тоже стал изучать довольно поздно, и до этого разных плюшек из коробочки мало пользовал.
"vitg" wrote:
Посмотрите пункт
Form wizard -- an API to make multi-step forms much easier.

Спасибо за ссылку, её я находил, конечный результат не тот, но зато я понял что такое модули в Друпал )