jak utworzyć motyw strony koszyka i kasy w sklepie Drupal? Mam ustawione części treści, konta, rozliczeń i płatności. Czy istnieje plik -. Tpl.php do utworzenia?
jak utworzyć motyw strony koszyka i kasy w sklepie Drupal? Mam ustawione części treści, konta, rozliczeń i płatności. Czy istnieje plik -. Tpl.php do utworzenia?
Odpowiedzi:
Dla strony koszyka tematycznego dodaj page--cart.tpl.php
do katalogu szablonów motywu.
Aby uzyskać tematyczną stronę kasy, dodaj page--checkout.tpl.php
do katalogu szablonów motywu. Jeśli chcesz motywować tylko stronę z recenzją kasy, dodaj page--checkout--review.tpl.php
do katalogu szablonów.
Po dodaniu plików tpl nie zapomnij wyczyścić pamięci podręcznej.
Jeśli chcesz wiedzieć o większej liczbie haków, wykonaj funkcję dpm($variables)
wewnętrzną YOURTHEMENAME_preprocess_page
i zajrzyj do theme_hook_suggestions
tablicy.
Aby uzyskać szczegółowe informacje, przeczytaj ten komentarz http://drupal.org/node/1142800#comment-5365466
Jedyne pliki szablonów w Commerce związane z modułem kasy to commerce-checkout-error-message.tpl.php i commerce-checkout-help.tpl.php. Znajdują się one w katalogu modułów Commerce w module / kasy / motyw.
Jedyny plik szablonu związany z modułem Cart to commerce-cart-block.tpl.php, który znajduje się w katalogu modułów Commerce w module / cart / theme.
Właściwie najłatwiejszym sposobem jest użycie hook_form_FORM_ID_alter () do zmiany formularza płatności . Jeśli potrzebujesz tylko zmienić część w formularzu zamówienia.
Jak widzę, większość zawartości strony z kasą i recenzją kasy znajduje się w formularzu. Pierwszy to „ commerce_checkout_form_checkout ”, a drugi to „ commerce_checkout_form_review ”. Jeśli wiesz, jak korzystać z interfejsu API formularza i jak go zmienić, używając hook_form_FORM_ID_alter (). Bardzo łatwo będzie zmienić treść formularza. Jak zmienić ich kolejność lub wstawić / usunąć elementy.
Oto prosty przykład dodania powiadomienia na stronie kasy:
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 ...
}
Czy wypróbowałeś już moduł Theme Develper , który zawiera informacje o tym, które zaczepy motywu mają zostać zaimplementowane, a które pliki szablonów do przyjęcia.
Strona koszyka jest tylko widokiem, więc nadaj jej styl jak każdy inny widok:
Po zalogowaniu się jako administrator przejdź do strony, znajdź i kliknij link „Edytuj widok”.
Na stronie edycji widoku otwórz ustawienia widoku „Zaawansowane” i kliknij „Informacje tematyczne”
Tam możesz zobaczyć, jak powinieneś nazwać swoje szablony (tj. Views-view - commerce-cart-summary - default.tpl.php), a także, jeśli masz nazwę szablonu na początku wiersza (tzn. Pierwszy to „Wyświetl dane wyjściowe” możesz zobaczyć domyślny szablon, skopiować go, zapisać z inną nazwą w katalogu szablonu motywu i zmodyfikować go, jak chcesz).
Możesz też samodzielnie zbudować te strony (wyświetlenia). http://www.drupalcommerce.org/user-guide/modifying-shopping-cart-using-views
Możesz tworzyć własne pliki .tpl i wywoływać je za pomocą funkcji 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)
}
ponieważ są to formularze, możesz ukryć formularz, znaleźć to, czego potrzebujesz, i użyć własnego znacznika w szablonie.
<?php
hide($form);
dpm($form);
?>
<div>
print render($form[...]);
</div>
Możesz też zostawić go takim, jakim jest, i robić wokół niego różne rzeczy.