¿Cómo tema el carrito y las páginas de pago en Drupal commerce? He configurado contenido, cuenta, facturación y partes de pago. ¿Hay algún archivo -. Tpl.php para crear?
¿Cómo tema el carrito y las páginas de pago en Drupal commerce? He configurado contenido, cuenta, facturación y partes de pago. ¿Hay algún archivo -. Tpl.php para crear?
Respuestas:
Para la página del carrito de temas, agregue page--cart.tpl.php
en el directorio de plantillas de su tema.
Para la página de pago, agregue page--checkout.tpl.php
en el directorio de plantillas de su tema. Si desea crear un tema solo en la página de revisión de pago, agregue el page--checkout--review.tpl.php
directorio de plantillas.
Después de agregar archivos tpl, no olvide borrar el caché.
Si desea conocer más ganchos, realice una función dpm($variables)
interna YOURTHEMENAME_preprocess_page
y mire dentro de la theme_hook_suggestions
matriz.
Para más detalles lea este comentario http://drupal.org/node/1142800#comment-5365466
Los únicos archivos de plantilla en Commerce relacionados con el módulo de pago son commerce-checkout-errors-message.tpl.php y commerce-checkout-help.tpl.php. Estos se encuentran en el directorio del módulo de Comercio en modules / checkout / theme.
El único archivo de plantilla relacionado con el módulo Cart es commerce-cart-block.tpl.php, que se encuentra en el directorio del módulo Commerce en modules / cart / theme.
En realidad, la forma más fácil que creo es usar hook_form_FORM_ID_alter () para alterar el formulario de pago. Si todo lo que necesita es cambiar la parte dentro del formulario de pago.
Como veo, la mayor parte del contenido de la página de pago y revisión de pago está dentro del formulario. Primero es ' commerce_checkout_form_checkout ', y segundo es ' commerce_checkout_form_review '. Si sabe cómo utilizar el formulario API y cómo modificar el formulario mediante hook_form_FORM_ID_alter (). Será muy fácil alterar el contenido del formulario. Como reordenarlos o insertar / eliminar elementos.
Aquí hay un ejemplo simple para agregar un aviso en la página de pago:
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 ...
}
¿Has probado el módulo Theme Develper que te da información sobre qué ganchos de tema implementar y qué archivos de plantilla adoptar?
La página del carrito es solo una vista, así que dale estilo como cualquier otra vista:
Vaya a la página cuando haya iniciado sesión como administrador, busque y haga clic en el enlace "Editar vista".
En la página de edición de vista, abra la configuración de vista "Avanzada" y haga clic en "Información temática"
Allí puede ver cómo debe nombrar sus plantillas (es decir, vistas-vista - commerce-cart-summary - default.tpl.php) y también si está en el nombre de la plantilla al comienzo de la fila (es decir, primero es "Mostrar salida" puede ver la plantilla predeterminada, copiarla, guardarla con otro nombre en el directorio de plantilla de su tema y modificarla como desee).
O bien, puede crear esas páginas (vistas) por su cuenta. http://www.drupalcommerce.org/user-guide/modifying-shopping-cart-using-views
Puede crear sus propios archivos .tpl y llamarlos con una función 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)
}
Como se trata de formularios, puede ocultar el formulario, encontrar lo que necesita y usar su propio marcado en su plantilla.
<?php
hide($form);
dpm($form);
?>
<div>
print render($form[...]);
</div>
O bien, puede dejarlo como está y hacer cosas a su alrededor.