Как сделать сложную страницу добавления материала?

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

Аватар пользователя lsdsigma lsdsigma 6 октября 2011 в 18:49

Нужно по сложной схеме организовать страницу с добавлением материала. Будут всплывающие окошки с чекбоксами, расположение полей по определенным блокам, разный хитрый js и т.д. Кое-как через css и jq поля поперемещал, но это какой-то уж слишком топорный метод, хотелось бы чистым html всё сделать.

Комментарии

Аватар пользователя hydra hydra 6 октября 2011 в 22:27

Если очень сложная кастомизация, то проще руками форму выводить. Т.е. темизировать форму самому.

Аватар пользователя lsdsigma lsdsigma 6 октября 2011 в 22:35

"hydra" wrote:
то проще руками форму выводить. Т.е. темизировать форму самому.

Да, хотелось бы именно самому полностью темизировать. Но как, в таком случае, выводить в tpl поля в определенных местах, они же в [content] все? Я так понимаю, надо какие-то переменные создать, но я пока не особо в php и drupal api разбираюсь, так что вот тут проблемка.

Аватар пользователя S_F S_F 7 октября 2011 в 1:13

Оберни все поля дивами (или еще лучьше посмотри какими уже обернуто) да вытягивай куда душе угодно. Ну а что бы всплывало... всерно скорее всего потребуется ява итп.

Аватар пользователя lsdsigma lsdsigma 7 октября 2011 в 5:37

"S_F" wrote:
Оберни все поля дивами

А где эти поля взять-то?

Мне бы хотелось, грубо говоря, сделать что-то вроде

<div><?php [field_title]?></div>
<div><?php [field_img]?></div>
<div><?php [field_text]?></div>
...

То есть некий tpl.php, и в него аккуратно запихнуть всё по блокам. В плане верстки нет проблем, но я не понимаю, где мне взять сами поля по отдельности.

Аватар пользователя hydra hydra 7 октября 2011 в 8:55

1. Берем айдишник формы
2. Создаем запись в hook_theme темы (в template.php) c ключом, равным айдишнику формы и одним параметром (форма). Вывод берем из шаблона.
3. Пишем препроцесс функцю для нашего темизационного обработчика, где рендерим нужные поля и делаем разную логику (это необязателно, но правильно)
4. создаем указанный нами шаблон и рисуем в нем форму. Переменные доступны те, которые мы определим в препроцессе + сама форма (по имени, указанному в аргументе в hook_theme).
5. не забудьте про hidden поля, они нужны форме