Не могу отредактировать модуль, что то с синтаксисом

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

Аватар пользователя Dope Skeeza Dope Skeeza 27 июня 2008 в 1:20

Скажите, что тут я натворил не так?

Оригинал кода в simplenews.module:

$form['subscribe'] =  array('#type' => 'submit',
      '#value' => t('Subscribe'),
      '#weight' => 20,
    );
    $form['unsubscribe'] = array('#type' => 'submit',
      '#value' => t('Unsubscribe'),
      '#weight' => 30,
    );
  }
  return $form;
}

Вот как я наредактировал: (пытался добавить DIV class "rightmove" что бы сдвинуть потом кнопень вправо")

$form['subscribe'] =  '<div class="rightmove">' array('#type' => 'submit',
      '#value' => t('Subscribe'),
      '#weight' => 20,
    );
    $form['unsubscribe'] = array('#type' => 'submit',
      '#value' => t('Unsubscribe'),
      '#weight' => 30,
    );
'</div>'
  }
  return $form;
}

Что не так? Дайте мне пример как нужно.

Комментарии

Аватар пользователя Vergilius Vergilius 27 июня 2008 в 5:31

Вообще, как я понял, это две кнопки. Вообще любой элемент и так изначально заключен по-умолчанию в div. Правда у меня друпал 6, может в пятом по другому.

Можно выставить свои div, используя prefix (что перед формой) и suffix (что после формы). Если те6е нужно «закавычить» в div первую кнопку, а затем вторую, то код такой:

         $form['subscribe'] =  array('#type' => 'submit',
              '#value' => t('Subscribe'),
              '#weight' => 20,
'#prefix' => '<div class="rightmove_1">',
  '#suffix' => '</div>',
            );
            $form['unsubscribe'] = array('#type' => 'submit',
              '#value' => t('Unsubscribe'),
              '#weight' => 30,
'#prefix' => '<div class="rightmove_2">',
  '#suffix' => '</div>',
            );
          }
          return $form;
}

А если нужно обе кнопки в один div, то можно попробывать так:

         $form['subscribe'] =  array('#type' => 'submit',
              '#value' => t('Subscribe'),
              '#weight' => 20,
'#prefix' => '<div class="rightmove">',
            );
            $form['unsubscribe'] = array('#type' => 'submit',
              '#value' => t('Unsubscribe'),
              '#weight' => 30,
  '#suffix' => '</div>',
            );
          }
          return $form;
}
Аватар пользователя Dope Skeeza Dope Skeeza 28 июня 2008 в 1:05

Вот что нужно : http://i052.radikal.ru/0806/02/b54755916bb2.jpg
Убрать вывод Имени пользователя и назначить класс на кнопку, что бы управлять ее внешним видом в CSS файле

а вот собственно и сам модуль: http://drupal.org/project/simplenews

Аватар пользователя paveLL paveLL 28 июня 2008 в 1:36

для конкретного элемента формы можно определить свойство ['#theme']=>'example_submit_theme' и написать функцию оформления theme_example_submit_theme , а в ней с дивами и оформить--может прокатит

Аватар пользователя paveLL paveLL 28 июня 2008 в 11:55

начал сам пробовать--ничего, сам раньше не пробовал. может че неправильно делал(кнопка исчезала, в то время как остальная форма оставалась), был бы рад, если бы кто помог разобраться, как правильно нужно использовать свойство элемента формы--#theme.

создаете модуль со след. кодом и все будет
function yourmodule_form_alter($form_id, &$form)
{
if (нужная форма)
{
$form['#theme'] = 'mytheme';
}
}
function theme_mytheme($form)
{
$output = '';
$output .= 'div class="XXX" ' . drupal_render($form['xxxxx']['submit']) . '/div';
$output .= drupal_render($form);
return $output;
}

попутно нашел интересный материал---http://drupal.org/node/144758