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

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

Аватар пользователя argon argon 31 марта 2008 в 14:55

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

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

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

Комментарии

Аватар пользователя Stalker-g2 Stalker-g2 31 марта 2008 в 15:06

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

Аватар пользователя neochief neochief 31 марта 2008 в 16:05

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

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

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 argon 31 марта 2008 в 22:57

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

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

Аватар пользователя neochief neochief 31 марта 2008 в 23:37

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

Аватар пользователя argon argon 6 апреля 2008 в 16: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 пока тока начал изучать - не ругайтесь если детские ошибки