ฉันจะจัดหน้ารถเข็นและชำระเงินใน Drupal commerce ได้อย่างไร ฉันได้ตั้งค่าเนื้อหาบัญชีการเรียกเก็บเงินและการชำระเงิน มีไฟล์ -. tpl.php ที่จะสร้างหรือไม่?
ฉันจะจัดหน้ารถเข็นและชำระเงินใน Drupal commerce ได้อย่างไร ฉันได้ตั้งค่าเนื้อหาบัญชีการเรียกเก็บเงินและการชำระเงิน มีไฟล์ -. tpl.php ที่จะสร้างหรือไม่?
คำตอบ:
สำหรับหน้ารถเข็นpage--cart.tpl.php
ธีมเพิ่มในไดเรกทอรีแม่แบบของชุดรูปแบบของคุณ
สำหรับหน้าเช็คเอาต์ชุดรูปแบบให้เพิ่มpage--checkout.tpl.php
ในไดเรกทอรีแม่แบบของธีมของคุณ หากคุณต้องการธีมเฉพาะหน้าตรวจสอบการชำระเงินเพิ่มpage--checkout--review.tpl.php
ในไดเรกทอรีแม่แบบ
หลังจากเพิ่มไฟล์ tpl อย่าลืมล้างแคช
หากคุณต้องการทราบเกี่ยวกับ hooks มากขึ้นให้ทำหน้าที่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 เหล่านี้จะอยู่ในไดเรกทอรีโมดูลพาณิชย์ภายใต้ modules / checkout / theme
ไฟล์เทมเพลตเดียวที่เกี่ยวข้องกับโมดูลรถเข็นคือ commerce-cart-block.tpl.php ซึ่งอยู่ในไดเรกทอรีโมดูลพาณิชย์ภายใต้โมดูล / รถเข็น / ธีม
จริง ๆ แล้ววิธีที่ง่ายที่สุดที่ฉันคิดคือใช้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ซึ่งให้ข้อมูลเกี่ยวกับการใช้ชุดรูปแบบที่จะนำไปใช้และไฟล์ใดที่จะใช้
หน้ารถเข็นเป็นเพียงมุมมองดังนั้นจัดสไตล์เป็นมุมมองอื่น:
ไปที่หน้าเมื่อคุณเข้าสู่ระบบในฐานะผู้ดูแลระบบค้นหาและคลิกลิงก์ "แก้ไขมุมมอง"
เมื่อดูหน้าแก้ไขเปิดการตั้งค่ามุมมอง "ขั้นสูง" และคลิกที่ "ข้อมูลชุดข้อมูล"
คุณสามารถดูว่าคุณควรตั้งชื่อเทมเพลตของคุณอย่างไร (เช่นมุมมอง - การค้า - รถเข็น - สรุป - 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>
หรือคุณสามารถทิ้งมันไว้และทำสิ่งรอบ ๆ มัน