Добавление поля в CCK группу

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

Аватар пользователя digital_sword digital_sword 27 января 2010 в 22:36

Само поле добавляю так:
$form['sell_price'] = array(
Добавляется в пустом месте хорошо. У меня есть группа group_cm. Я пишу:
$form['cm']['sell_price'] = array(, или $form['group_cm']['sell_price'] = array(
Никак. Можно поле туда впихнуть?

с помощью print_r() смотрел массив формы. Он огромный, как понять что чему подчинено? В общем, как стандартно засовывается?

Комментарии

Аватар пользователя Dan Dan 28 января 2010 в 11:11

"digital_sword" wrote:
с помощью print_r() смотрел массив формы.

Лучше krumo из devel'а.
"digital_sword" wrote:
или $form['group_cm']['sell_price'] = array(

Посмотри вывод внимательно. Скорее всего $form['group_cm']['group']['sell_price']

Аватар пользователя digital_sword digital_sword 28 января 2010 в 14:15

PVasili, я перекидываю уберкартовское поле цены, заданное фиксированно в uc_product.module в свою группу.

Dan, devel тяжелый, поэмому не хочу ставить. Админка и так вяло грузится.
$form['group_cm']['group']['sell_price'] - не работает. Массив формы огромный, куда смотреть внимательно?

Аватар пользователя digital_sword digital_sword 28 января 2010 в 17:09

А как его поставить?
Установил devel, там есть папка krumo, но это не модуль.
Зашел на страницу krumo. Там не пишут про установку, про использование что-то хз.

Разобрал только, что он заменяет print-r. Как его поставить то?

Нашел в папке krumo html доки. Но где про установку? И куда вводить тот код?

Аватар пользователя Dan Dan 28 января 2010 в 19:32

"digital_sword" wrote:
Нашел в папке krumo html доки. Но где про установку? И куда вводить тот код?

Просто вместо print_r пишешь krumo.

"RxB" wrote:
Злой, злой, Dan...

Жизнь такая. Я-то хороший Smile

Аватар пользователя digital_sword digital_sword 28 января 2010 в 22:06


это картинка при наведении krumo на поле field_cm1, рядом с которым я хочу вставить свое "sell_price"
$form['group_bbbbbbb']['sell_price']['0']['value']= array( (и вариации). Не проходит.

Аватар пользователя Dan Dan 28 января 2010 в 22:20

"digital_sword" wrote:
$form['group_bbbbbbb']['sell_price']['0']['value']=

Этого мало. Нужно полный массив элемента для FormAPI сделать, что-то типа:

$form['group_bbbbbbb']['sell_price'] = array(
  '#type' => 'textfield',
  '#default_value' => '123',
  '#title' => t('Price'),
  //.....и так далее
);
Аватар пользователя digital_sword digital_sword 29 января 2010 в 8:42

"Dan" wrote:
$form['group_bbbbbbb']['sell_price'] = array(

Вернулись к тому, с чего начали. В первом сообщении я писал, что это пробовал в первую очередь и это не работает.

Блин, вроде все перебрал...

Аватар пользователя Dan Dan 29 января 2010 в 10:56

Не знаю, как ты добавляешь, но у меня всё добавляется. Только что проверил. Делаю в альтере, для справки.

Аватар пользователя digital_sword digital_sword 29 января 2010 в 17:45

Как я добавляю. Открываю редактирование модуль uc_product. (Само поле - цена в уберкарте).
Там написано: $form['base']['prices']['sell_price'] = array( (то есть поле своит в стандартной группе).
Так вот, вместо этого я пишу $form['group_bbbbbbb']['sell_price'] = array( . Поле пропадает.

Если писать $form['sell_price'] = array( все есть, только без группы.

Аватар пользователя Dan Dan 29 января 2010 в 17:52

"digital_sword" wrote:
Как я добавляю. Открываю редактирование модуль uc_product.

Дальше можно не читать.
Александр, ну зачем лезть в другие модули, когда всё можно сделать через hook_form_alter в своём модуле.

Аватар пользователя digital_sword digital_sword 29 января 2010 в 22:26

function mymodule_form_alter(&$form, &$form_state, $form_id ) {
if ($form_id == 'product_node_form') {
?????????????????????????????????????????
}
}

Как параметры переопределить понятно. А как переместить уберкартовскую цену из группы ['base']['prices'] в мою?

Аватар пользователя Dan Dan 29 января 2010 в 22:32

А вы уверены, что после перемещения будет работать? Если #tree установленно, то переменные не найдутся, хотя сама форма должна будет рендериться.

Переместить просто.

$form['group_bbbbbbb']['sell_price'] = $form['base']['prices']['sell_price'];
unset($form['base']['prices']['sell_price']);