PHP निष्पादन क्रम: हेडर, मुख्य पृष्ठ और फुटर
यह डेवलपर ट्यूटोरियल आपको bx_Header.html, index.html और bx_Footer.html के साथ एक मूल लेआउट के उदाहरण से दिखाता है, कि प्रत्येक PHP स्क्रिप्ट कब निष्पादित होती है। आपको यह पता चलेगा कि $LayoutHTML की सामग्री कैसे चरण दर चरण विस्तारित होती है और आप कहाँ पृष्ठ संबंधी या वैश्विक परिवर्तन कर सकते हैं।
आवश्यकताएँ और लक्ष्य
इस डेवलपर ट्यूटोरियल के लिए, आपको यह जानना चाहिए कि ब्लूट्रोनिक्स सीएमएस एक पृष्ठ को उसके लेआउट, हेडर, मुख्य पृष्ठ और फुटर से कैसे जोड़ता है। हम आपको दिखाएंगे, इन क्षेत्रों के पीएचपी स्क्रिप्ट्स को निष्पादित करने का क्रम और $LayoutHTML के किस भाग को पहले से लोड किया गया है।
उदाहरण में, आधार लेआउट CMS फ़ाइलों bx_Header.html, index.html और bx_Footer.html से बना है। मुख्य पृष्ठ index.html हर दिन पर कॉल की गई HTML पृष्ठ का प्रतिनिधित्व करता है।
मूल लेआउट: हेडर, मुख्य पृष्ठ और फुटर
आधार लेआउट निर्धारित करता है कि तीनों क्षेत्रों को किस क्रम में शामिल किया जाता है। दिखाए गए उदाहरण में आप लेआउट परिभाषा टेबल 00_layout में पाएंगे।
लेआउट का प्रासंगिक अंश इस प्रकार है:
__DB_Layout_/bx_Header.html__
<main>
__DB_Layout_Main__
</main>
__DB_Layout_/bx_Footer.html__
पहला प्लेसहोल्डर bx_Header.html को जोड़ता है। मुख्य तत्व के भीतर, __DB_Layout_Main__ के माध्यम से वर्तमान में देखी जा रही पृष्ठ को जोड़ा जाता है, हमारे उदाहरण में index.html। फिर bx_Footer.html आता है.
हालांकि लेआउट परिभाषा तीनों क्षेत्रों को शामिल करती है, लेकिन प्रत्येक क्षेत्र के पीएचपी कोड के लिए संबंधित HTML सामग्री को $LayoutHTML में क्रमशः लोड किया जाता है।
1. हेडर का PHP कोड पहले निष्पादित होता है
फाइल-प्रबंधक में bx_Header.html फ़ाइल खोलें। PHP कोड के माध्यम से आप इस क्षेत्र का पीएचपी कोड संपादित कर सकते हैं।
हेडर पहले लोड होने वाला पृष्ठ क्षेत्र है। जब इसका पीएचपी कोड निष्पादित होता है, तो $LayoutHTML में केवल bx_Header.html से HTML होता है।
PHP-Code: bx_Header.html
$LayoutHTML enthält:
bx_Header.html
आप यहाँ उदाहरण के लिए हेडर के प्लेसहोल्डर्स को बदल सकते हैं या नेविगेशन को तैयार कर सकते हैं। हेडर के भीतर index.html या bx_Footer.html की वास्तविक HTML सामग्री पर आप इस समय $LayoutHTML के माध्यम से पहुंच नहीं सकते।
2. उसके बाद मुख्य पृष्ठ का PHP कोड निष्पादित होता है
हेडर के बाद, सीएमएस कॉल की गई मुख्य पृष्ठ, यहाँ index.html, को लोड करता है और उसके पीएचपी कोड को निष्पादित करता है। इस समय $LayoutHTML में हेडर का HTML कोड और मुख्य पृष्ठ का HTML कोड दोनों होते हैं।
PHP-Code: index.html
$LayoutHTML enthält:
bx_Header.html
index.html
इससे मुख्य पृष्ठ का पीएचपी कोड न केवल अपने प्लेसहोल्डर्स को बदल सकता है, बल्कि हेडर के भीतर पहले से मौजूद प्लेसहोल्डर्स को भी बदल सकता है।
एक उदाहरण: यदि आपके हेडर में प्लेसहोल्डर __HeaderClass__ है, तो आप इसे मुख्य पृष्ठ से बदल सकते हैं:
$LayoutHTML = str_replace("__HeaderClass__","active",$LayoutHTML);
इस प्रकार एक विशेष मुख्य पृष्ठ अपने मेनू आइटम को पहले से लोड किए गए हेडर के भीतर सक्रिय रूप से चिह्नित कर सकता है।
इस समय फुटर अभी तक लोड नहीं हुआ है। इसलिए इसका HTML सामग्री अभी $LayoutHTML के माध्यम से विश्वसनीय रूप से नहीं बदला जा सकता।
3. फुटर का पीएचपी कोड आखिरी में निष्पादित होता है
अंत में, सीएमएस bx_Footer.html को लोड करता है और इसके पीएचपी कोड को निष्पादित करता है। अब $LayoutHTML में तीनों क्षेत्रों की HTML सामग्री होती है।
PHP-Code: bx_Footer.html
$LayoutHTML enthält:
bx_Header.html
index.html
bx_Footer.html
इसलिए फुटर पीएचपी कोड हेडर, मुख्य पृष्ठ या फुटर के भीतर प्लेसहोल्डर्स को बदल सकता है, बशर्ते कि वे इस समय पहले से मौजूद हों।
यदि पहले से लोड किया गया HTML उदाहरण के लिए प्लेसहोल्डर __MyTitle__ को शामिल करता है, तो आप उसे वहाँ बदल सकते हैं:
$LayoutHTML = str_replace("__MyTitle__","My Custom Title",$LayoutHTML);
इससे फुटर एक साथ किए गए समायोजनों के लिए भी उपयुक्त है, जो पूरी पृष्ठ संरचना लोड करने के बाद किए जाने चाहिए।
निष्पादन क्रम एक नज़र में
महत्वपूर्ण नियम यह है: PHP केवल उन HTML क्षेत्रों को $LayoutHTML के माध्यम से बदल सकता है जो इस समय पहले से लोड किए गए हैं।
1. bx_Header.html
PHP sieht: Header
↓
2. index.html
PHP sieht: Header + Hauptseite
↓
3. bx_Footer.html
PHP sieht: Header + Hauptseite + Footer
यदि आप किसी विशिष्ट पृष्ठ से हेडर प्लेसहोल्डर को नियंत्रित करना चाहते हैं, तो आप उस मुख्य पृष्ठ का पीएचपी कोड उपयोग करें। यदि एक प्लेसहोल्डर तीनों पहले से लोड किए गए क्षेत्रों में बदलना है, तो फुटर का आखिरी में निष्पादित पीएचपी कोड सबसे उपयुक्त है।
अपने पीएचपी फ़ंक्शंस में ध्यान देने योग्य बातें
यदि आप विभिन्न क्षेत्रों में अपने पीएचपी फ़ंक्शंस को परिभाषित करते हैं, तो ध्यान दें कि किसी एक पृष्ठ कॉल के दौरान एक ही फ़ंक्शन को एक से अधिक बार परिभाषित किया गया है। इसके लिए अद्वितीय फ़ंक्शन नामों का चयन करें या परिभाषा से पहले जांचें कि फ़ंक्शन पहले से मौजूद है या नहीं।
if(!function_exists("MyTemplateFunction")) {
function MyTemplateFunction() {
return true;
}
}
सारांश
हमारे आधार लेआउट में पहले bx_Header.html का पीएचपी कोड चलता है, फिर index.html का पीएचपी कोड और अंत में bx_Footer.html का पीएचपी कोड। हर चरण के साथ, HTML सामग्री का विस्तार होता है, जिसे आप $LayoutHTML के माध्यम से पहुंच सकते हैं।
अपने PHP कोड को इसलिए वहां रखें, जहां आवश्यक HTML क्षेत्र पहले से लोड हो चुके हैं: हेडर में हेडर-विशिष्ट संशोधनों के लिए, मुख्य पृष्ठ में अपने स्वयं के सामग्री और पहले से लोड किए गए हेडर के लिए, या फुटर में पहले से संकलित लेआउट में बदलाव के लिए।
बहुत पूछे जाने वाले प्रश्न
ग्राहक अक्सर हमसे क्या पूछते हैं
PHP स्क्रिप्ट का निष्पादन किस क्रम में होता है?
सबसे पहले bx_Header.html का PHP कोड निष्पादित होता है, उसके बाद मुख्य पृष्ठ का PHP कोड, उदाहरण के लिए index.html, और अंत में bx_Footer.html का PHP कोड।
$LayoutHTML में हेडर-PHP कोड के दौरान कौन से HTML क्षेत्र होते हैं?
हेडर-PHP कोड के निष्पादन के दौरान $LayoutHTML केवल पहले से लोड किए गए HTML सामग्री को ही रखता है bx_Header.html से।
क्या मुख्य पृष्ठ हेडर का HTML कोड बदल सकता है?
हाँ। जब मुख्य पृष्ठ का PHP कोड निष्पादित होता है, तो हेडर और मुख्य पृष्ठ पहले से $LayoutHTML में मौजूद होते हैं। इसलिए आप किसी पहले हेडर में बनाए गए प्लेसहोल्डर को बदल सकते हैं।
हेडर-PHP कोड फुटर को क्यों नहीं बदल सकता?
फुटर मुख्य पृष्ठ के बाद लोड होता है। इसलिए हेडर-PHP कोड के दौरान इसका HTML सामग्री $LayoutHTML में अभी तक मौजूद नहीं होता है।
फुटर-PHP कोड कौन से क्षेत्रों को बदल सकता है?
फुटर के निष्पादन के समय $LayoutHTML में पहले से हेडर, मुख्य पृष्ठ और फुटर शामिल होते हैं। इन क्षेत्रों में मौजूद प्लेसहोल्डर को वहाँ बदल दिया जा सकता है।
मैं मुख्य लेआउट की संरचना कहाँ देख सकता हूँ?
लेआउट परिभाषा उदाहरण में तालिका 00_layout में प्रदर्शित होती है। यह bx_Header.html, वर्तमान मुख्य पृष्ठ और bx_Footer.html को शामिल करती है।
मैं bx_Header.html का PHP कोड कहाँ संपादित कर सकता हूँ?
फाइल-मैनेजर में bx_Header.html को चुनें और PHP कोड खोलें।
मुझे हेडर और मुख्य पृष्ठ में अपनी PHP कार्यों पर क्या ध्यान देना चाहिए?
अपने कार्यों को किसी पृष्ठ कॉल के दौरान एक ही नाम से कई बार परिभाषित नहीं किया जा सकता। अद्वितीय नामों का प्रयोग करें या function_exists() से पहले परिभाषित करने से जांचें कि कार्य पहले से मौजूद है या नहीं।