Как изменить порядок вывода форм на странице создания поста?

Прислано: argon

пн, 31/03/2008 - 10:55

Другие статьи по теме:

Подскажите, плиз. На странице создания поста в блог по дефолту последовательность вывода форм следующая:

- Название
- Тизер
- Сообщение
- Присоединенное изображение

А мне надо чтобы форма "Присоединенное изображение" было между "тизером" и "сообщением". Как это можно несложно сделать? И кстати, а как делать, чтобы форма (в моем случае - "присоединенное изображение") была по дефолту открыта?

Комментарии


Настройки просмотра комментариев

Выберите нужный метод показа комментариев и нажмите "Применить"
Опубликовано Stalker-g2 в пн, 31/03/2008 - 11:06.

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


Опубликовано argon в пн, 31/03/2008 - 11:44.

спасибо. а какой файл ядра за это отвечает?


Опубликовано neochief в пн, 31/03/2008 - 12:05.

просто, но ОЧЕНЬ неправильно :)

правильно так:
создаем новый модуль, в него впихиваем все одну(!) функцию

function yourmodule_form_alter($form_id, &$form) {
	//alterinп node creation/editing form
	if ($form['#id'] == 'node-form')
	{
		if (isset($form['taxonomy']))
			$form['taxonomy']['#weight'] = '4';
		if (isset($form['attachments']))
		{
			$form['attachments']['#weight'] = '3';
		}
	}
}

функцию меняем под свои нужды. поля смотрим через print_r($form)


Опубликовано argon в пн, 31/03/2008 - 18:57.

Видите, мне как непрограммеру технология создание модуля (равно хака) в принципе не известна.
( логически оно кроме создания папки-нэйма и видимо... name.php в ней (с вышеприведенным кодом) наверное чего-то еще требует ) - или нет?

И мне (как юзеру-дизайнеру) возможно проще (я понимаю что ядрокастом не приветствуется) поправить нумера (и collapsed - !! бы еще) в исходном файле (сделаю татуировку) - скажите имя файла - я бы там веса проставил - это не комм.заказ - для себя делаю. А... и код для collapsed нужен тоже. Вроде так.


Опубликовано neochief в пн, 31/03/2008 - 19:37.

там еще нужен файлик .info Возьмите любой модуль и гляньте что в нем внутри, там все элементарно. в моей функции вставьте вначале print_r($form); Оно выведет на странице формы очень большое нечто. В этом нечто найдите ваш fieldset по названию. Блин, там все интуитивно. У него будет поле collapsed. Выставьте его в true и будьте довольны.


Опубликовано Dimm в вт, 01/04/2008 - 05:09.

Так любую функцию можно перегрузить? Или нет?


Опубликовано neochief в вт, 01/04/2008 - 06:10.

не любую. в модулях можно перегружать все так называемые хуки (список). В темах можно перегружать темовые функции (список)


Опубликовано argon в вс, 06/04/2008 - 12:29.

Пока с модулем не до конца получилось - модуль заработал - но (print_r($form); - правильно вставить не могу - то ошибка - то ничего особенного не выводится) - соответственно как поймать нужные мне объекты пока не понял. А кстати - собственно в моем случае ведь вес формы нужно поменять у модуля "Image - Image Attach" - т.е. это вроде не хак ядра? Я так понимаю где-то в image.module надо поправить вес формы ввода адреса файла и проставить collapsed. Там правда файлик немаленький... по крайней мере для модуля Excerpt это вроде работает. Или я не прав?

<?php
// $Id: formweight.info,v 1.1.2.3 2007/06/15 08:25:22 snpower Exp $
 
       print_r($form);
 
       function formweight_form_alter($form_id, &$form) 
 
 
	  {
                 //alterinп node creation/editing form
                 if ($form['#id'] == 'node-form')
                {
                       if (isset($form['taxonomy']))
                               $form['taxonomy']['#weight'] = '4';
                       if (isset($form['attachments']))
                        {
                                $form['attachments']['#weight'] = '5';
                        }
                }
        }
php пока тока начал изучать - не ругайтесь если детские ошибки


Опубликовано KalanSPb в вс, 06/04/2008 - 12:17.

Минимальный модуль требует 2 файла .info (название, версия, зависимости и т. п.) и .module (php код)


Опубликовано andypost@drupal.org в вс, 06/04/2008 - 12:23.

Можно еще поменять вес модуля в таблице {system} :)


Опубликовано argon в вс, 06/04/2008 - 16:11.

А ... таблица {system} - это я не знаю как (.