как мне оформить тематические страницы корзины и оформления заказа в Drupal commerce? Я установил контент, учетную запись, выставление счетов и платежные части. Есть ли файл .tpl.php для создания?
как мне оформить тематические страницы корзины и оформления заказа в Drupal commerce? Я установил контент, учетную запись, выставление счетов и платежные части. Есть ли файл .tpl.php для создания?
Ответы:
Для 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
Единственные файлы шаблонов в 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.
На самом деле самый простой способ, который я думаю, это использовать 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 ...
}
Вы также можете использовать классы тела (в зависимости от того, какую базовую тему вы используете, они часто доступны). Это позволяет вам присвоить конкретные значения дочерним элементам тела, например, с помощью класса .checkout. Этого может быть достаточно, чтобы немного подогнать макет.
Вы уже пробовали модуль Theme Develper, который дает вам информацию о том, какие темы подключаются к инструментам и какие файлы шаблонов принимать.
Страница корзины - это просто вид, поэтому стилизуйте ее как любой другой вид:
Перейдите на страницу, когда вы вошли в систему как администратор, найдите и нажмите ссылку «Изменить вид».
На странице редактирования просмотра откройте «Дополнительные» настройки просмотра и нажмите «Информация о теме»
Там вы можете увидеть, как вы должны называть свои шаблоны (например, views-view - commerce-cart-summary - default.tpl.php), а также, если вы используете имя шаблона в начале строки (то есть сначала «Показать вывод» Вы можете увидеть шаблон по умолчанию, скопировать его, сохранить под другим именем в каталоге шаблонов вашей темы и изменить его по своему усмотрению).
Или вы можете создавать эти страницы (представления) самостоятельно. http://www.drupalcommerce.org/user-guide/modifying-shopping-cart-using-views
Вы можете создавать свои собственные файлы .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>
Или вы можете оставить все как есть и делать все вокруг.