web-dev-qa-db-ja.com

Drupal Commerceショッピングカートフォームの変更

テーマのtemplate.phpファイルでhook_form_FORM_ID_alter()を使用して、コマースの[カートに追加]フォームの[削除]ボタンを画像ボタンに変更しようとしています。これを行うには、次のコードを使用しています。

_function tempestra_form_views_form_commerce_cart_form_default_alter(&$form, &$form_state) {
  foreach($form['edit_delete'] as $item) {
    if($item['#type'] == 'submit') {
      $item['#type'] = 'image_button';
      $item['#src'] = base_path() . drupal_get_path('theme', 'tempestra') . '/images/search.png';
      unset($item['#name']);
      dpm($item);
    }
  }
}
_

dpm()によって印刷された配列を見ると、すべてが正しいはずですが、イメージボタンのHTMLが印刷されていません。

前もって感謝します。

4
splatio

単純な間違い、あなたは変更しません$form だけ $itemした場合

foreach($form['edit_delete'] as &$item) {

または

foreach($form['edit_delete'] as $key => $item) {
  ...
  $form['edit_delete'][$key] = $item;
}

うまくいくはずです。

3
googletorp
function MYMODULE_form_alter(&$form, &$form_state, $form_id) { 
  if (strpos($form_id, 'commerce_cart_add_to_cart_form') !== FALSE) {
    $form['submit'] = array(
      '#type' => 'submit',
      '#value' => t('Buy now'),
    );
  }
}
1
Stan79