тематические страницы оформления заказа в Drupal commerce

16

как мне оформить тематические страницы корзины и оформления заказа в Drupal commerce? Я установил контент, учетную запись, выставление счетов и платежные части. Есть ли файл .tpl.php для создания?

Бадри
источник
Если бы вы могли более точно указать, какие аспекты корзины и оформления заказа вы хотите изменить, и каков будет ваш конечный результат, это поможет другим получить более полезный ответ.
sheena_d
Имея дело с подобной проблемой здесь! Я надеялся использовать hook_form_alter () для изменения разметки. В лучшем случае я получаю поле «data», которое уже отображается как таблица. Можно было бы надеяться, что можно будет воздействовать на элементы формы, прежде чем они будут визуализированы ... Все еще в поиске ...
PatrickS

Ответы:

14

Для page--cart.tpl.phpтематической страницы корзины добавьте в каталог шаблонов вашей темы.

Для оформления заказа добавьте страницу page--checkout.tpl.phpв каталог шаблонов вашей темы. Если вы хотите добавить page--checkout--review.tpl.phpв тему только страницу проверки оформления заказа, добавьте ее в каталог шаблонов.

После добавления файлов tpl не забудьте очистить кеш.

Если вы хотите узнать больше о хуках, сделайте dpm($variables)внутреннюю YOURTHEMENAME_preprocess_pageфункцию и посмотрите в theme_hook_suggestionsмассив.

Для получения дополнительной информации прочитайте этот комментарий http://drupal.org/node/1142800#comment-5365466

subhojit777
источник
Это мне очень помогло, но так как этот вопрос не мой, я могу дать только один большой палец :)
RajeevK
8

Единственные файлы шаблонов в Commerce, связанные с модулем оформления заказа, это commerce-checkout-errors-message.tpl.php и commerce-checkout-help.tpl.php. Они находятся в каталоге модулей Commerce в каталоге modules / checkout / theme.

Единственный файл шаблона, связанный с модулем Корзина, это commerce-cart-block.tpl.php, который находится в каталоге модуля Commerce в каталоге modules / cart / theme.

sheena_d
источник
5

На самом деле самый простой способ, который я думаю, это использовать hook_form_FORM_ID_alter () для изменения формы оформления заказа . Если все, что вам нужно, это только изменить часть внутри формы проверки.

Как я вижу, большая часть содержимого страницы проверки и оформления заказа находится внутри формы. Первый - это commerce_checkout_form_checkout , а второй - commerce_checkout_form_review . Если вы знаете, как использовать API формы и как изменить форму с помощью hook_form_FORM_ID_alter (). Это будет очень легко изменить содержание формы. Как переупорядочить их или вставить / удалить элементы.

Вот простой пример добавления уведомления на страницу оформления заказа:

function my_module_form_commerce_checkout_form_alter(&$form, &$form_state, $form_id) {

  //If you have Devel module, uncomment to see what is the original form data
  //kpr($form);

  //uncomment to see current form_id
  //echo $form_id;

  //check form id
  if($form_id == 'commerce_checkout_form'){
    $form['my_test_notice'] = array(
      '#markup' => '<h1>Hello, this is a checkout test!</h1>',
      '#weight' => -1,
    );
  }
  elseif($form_id == 'commerce_checkout_form_review'){
    $form['my_test_notice'] = array(
      '#markup' => '<h1>Hello, this is a checkout review test!</h1>',
      '#weight' => -1,
    );
  }
  //You can add more ...

}
Тим Яо
источник
3

Вы также можете использовать классы тела (в зависимости от того, какую базовую тему вы используете, они часто доступны). Это позволяет вам присвоить конкретные значения дочерним элементам тела, например, с помощью класса .checkout. Этого может быть достаточно, чтобы немного подогнать макет.

Алекс С
источник
2

Вы уже пробовали модуль Theme Develper, который дает вам информацию о том, какие темы подключаются к инструментам и какие файлы шаблонов принимать.

gilzero
источник
2

Страница корзины - это просто вид, поэтому стилизуйте ее как любой другой вид:

  1. Перейдите на страницу, когда вы вошли в систему как администратор, найдите и нажмите ссылку «Изменить вид».

  2. На странице редактирования просмотра откройте «Дополнительные» настройки просмотра и нажмите «Информация о теме»

  3. Там вы можете увидеть, как вы должны называть свои шаблоны (например, views-view - commerce-cart-summary - default.tpl.php), а также, если вы используете имя шаблона в начале строки (то есть сначала «Показать вывод» Вы можете увидеть шаблон по умолчанию, скопировать его, сохранить под другим именем в каталоге шаблонов вашей темы и изменить его по своему усмотрению).

  4. Или вы можете создавать эти страницы (представления) самостоятельно. http://www.drupalcommerce.org/user-guide/modifying-shopping-cart-using-views

user2870349
источник
2

Вы можете создавать свои собственные файлы .tpl и вызывать их с помощью функции hook_theme:

function yourtheme_theme(&$existing, $type, $theme, $path) {
  return array(
    'commerce_cart_add_to_cart_form'=> array(
    'render element' => 'form',
    'template' => 'path/to/template/commerce_cart_add_to_cart_form',
  ),
    'commerce_checkout_form_review'=> array(
    'render element' => 'form',
    'template' => 'path/to/template/commerce_checkout_form_review',
  ),
  ...
  ...(more templates)
}

так как это формы, вы можете скрыть форму, найти то, что вам нужно, и использовать собственную разметку в своем шаблоне.

<?php
  hide($form);
  dpm($form);
?>

<div>
  print render($form[...]);
</div>

Или вы можете оставить все как есть и делать все вокруг.

mlaroy
источник