मैं ड्रुपल कॉमर्स में कार्ट और चेकआउट पृष्ठों का विषय कैसे बनाऊं? मेरे पास सामग्री, खाता, बिलिंग और भुगतान भागों हैं। वहाँ किसी भी है? Tpl.php फ़ाइल बनाने के लिए?
मैं ड्रुपल कॉमर्स में कार्ट और चेकआउट पृष्ठों का विषय कैसे बनाऊं? मेरे पास सामग्री, खाता, बिलिंग और भुगतान भागों हैं। वहाँ किसी भी है? 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
चेकआउट मॉड्यूल से संबंधित कॉमर्स में एकमात्र टेम्प्लेट फाइलें कॉमर्स-चेकआउट-एरर-मैसेज .pl.php और कॉमर्स-चेकआउट-हेल्प.tpl.php हैं। ये मॉड्यूल / चेकआउट / थीम के तहत वाणिज्य मॉड्यूल निर्देशिका में स्थित हैं।
कार्ट मॉड्यूल से संबंधित एकमात्र टेम्प्लेट फ़ाइल कॉमर्स-कार्ट-ब्लॉक-ब्लॉक.प्लेफ़ है, जो मॉड्यूल / कार्ट / थीम के तहत कॉमर्स मॉड्यूल डायरेक्टरी में स्थित है।
वास्तव में सबसे आसान तरीका मुझे लगता है कि चेकआउट फॉर्म को बदलने के लिए हुक_फॉर्म_फॉर्म_आईडी_अल्टर () का उपयोग किया जा रहा है । यदि आप सभी की जरूरत है केवल चेकआउट फॉर्म के अंदर का हिस्सा बदलें।
जैसा कि मैं देख रहा हूं, अधिकांश चेकआउट और चेकआउट समीक्षा पृष्ठ सामग्री फ़ॉर्म के अंदर है। पहला है heck कॉमर्स_कैचआउट_फॉर्म_चेकआउट ’, और दूसरा है commerce कॉमर्स_कैचआउट_फॉर्म_रेव्यू ’। यदि आप जानते हैं कि फ़ॉर्म API का उपयोग कैसे किया जाए और हुक_फॉर्म_फॉर्म_आईडी_अल्टर () का उपयोग करके फ़ॉर्म को कैसे बदला जाए। फ़ॉर्म सामग्री को बदलना बहुत आसान होगा। जैसे उन्हें पुनः व्यवस्थित करें या तत्वों को डालें / निकालें।
चेकआउट पृष्ठ में एक नोटिस जोड़ने के लिए यहां एक सरल उदाहरण दिया गया है:
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 ...
}
क्या आपने थीम डेवेलपर मॉड्यूल की कोशिश की है जो आपको जानकारी देता है कि किस विषय को लागू करने के लिए हुक है और कौन सी फाइल को अपनाने के लिए हैप्लेट।
कार्ट पेज केवल एक दृश्य है, इसलिए इसे किसी अन्य दृश्य के रूप में शैली दें:
जब आप व्यवस्थापक के रूप में लॉग इन करते हैं, तो पृष्ठ पर जाएं और "दृश्य संपादित करें" लिंक पर क्लिक करें।
पृष्ठ संपादित करने पर "उन्नत" दृश्य सेटिंग खोलें और "सूचना की जानकारी" पर क्लिक करें
वहां आप देख सकते हैं कि आपको अपने टेम्प्लेट का नाम कैसे देना चाहिए (यानी दृश्य-दृश्य - वाणिज्य-कार्ट-सारांश- default.tpl.php) और यह भी कि यदि आप पंक्ति की शुरुआत में टेम्पलेट के नाम पर हैं (यानी पहला "डिस्प्ले आउटपुट" है) आप डिफ़ॉल्ट टेम्प्लेट देख सकते हैं, इसे कॉपी कर सकते हैं, अपने विषय के टेम्प्लेट में अन्य नाम के साथ सहेज सकते हैं और इसे अपनी इच्छानुसार संशोधित कर सकते हैं)।
या, आप अपने दम पर उन पृष्ठों (विचारों) का निर्माण कर सकते हैं। http://www.drupalcommerce.org/user-guide/modifying-shopping-cart-using-views
आप अपनी खुद की .tpl फाइलें बना सकते हैं और उन्हें एक हुक_थेम फ़ंक्शन के साथ कॉल कर सकते हैं:
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>
या, आप इसे वैसे ही छोड़ सकते हैं और इसके चारों ओर सामान कर सकते हैं।