मैं MODX रेवोल्यूशन के साथ बहुत पहले से काम कर रहा हूं, लेकिन, फिर भी, फिलहाल, मेरे लिए यह एक सीएमएस मोती है। लचीलेपन, विस्तार और सहजता (यदि आप एक पल के लिए खराब हुए MODX प्रबंधक के बारे में भूल जाते हैं), तो वे उसमें सब कुछ उसी तरह आकर्षित करते हैं जैसे शुरुआत में।
नीचे पिछले साल में MODX क्रांति के साथ काम करते समय नोट किए गए हैं। ये सरल तरकीबें, अगर मुझे उनके बारे में पहले पता था, तो मुझे अविश्वसनीय समय बचाने में मदद मिलेगी। इन नोटों के लिए लक्षित दर्शक newbies हैं जिन्होंने हाल ही में पता लगाया है कि MODX क्या है। फ्रैंक "साइकिल", आपके लिए सम्मान से बाहर, नोटों में शामिल नहीं थे।
1. MODX प्रबंधक के साथ काम का सरलीकरण
परियोजना की मात्रा में वृद्धि के साथ, प्रबंधक को लोड करते समय संसाधन पेड़ की तैनाती में उतना समय लग सकता है जितना आपके मानस को हिलाने के लिए पर्याप्त है। उन श्रेणियों और संदर्भों को संक्षिप्त करें जिनमें आप वर्तमान में काम नहीं कर रहे हैं। जब आप एक नए पृष्ठ पर जाते हैं, तो संसाधन ट्री केवल वही दिखाएगा जो आपने छोड़ा था।
प्रदर्शन पर बहुत प्रतिकूल प्रभाव डालने वाली एक और बात है, आरएसएस प्रबंधक के होम पेज पर फीड करता है, नए संस्करणों और सुरक्षा सुधारों की रिपोर्ट करता है। वे निम्नानुसार अक्षम हैं:
सिस्टम -> सिस्टम सेटिंग्स -> MODX समाचार फ़ीड सक्षम / MODX सुरक्षा फ़ीड सक्षम -> नहीं।2. स्निपेट को पैरामीटर पास करना
मान लीजिए कि आपके पास एक स्निपेट है जिसे
बंदर कहते हैं जो पृष्ठ पर सबसे आम लाइन प्रदर्शित करता है:
echo $howMany. ' ' .'Monkeys';
आपको इस पृष्ठ को
$ howMany चर के विभिन्न मूल्यों के साथ कई पृष्ठों पर प्रदर्शित करने की आवश्यकता है। यह बहुत सरलता से किया जाता है:
[[Monkeys?&howMany=`12`]]
इस प्रकार, आप एक स्निपेट में स्थानांतरित कर सकते हैं, उदाहरण के लिए, यदि आपके पास इसके लिए आवश्यक तर्क है, तो वह भाषा जिसमें आप सामग्री प्रदर्शित करना चाहते हैं।
3. एक स्थिर PHP फ़ाइल में MODX को कॉल करें
इस घटना में कि आप स्निपेट का उपयोग केवल
शामिल / requ_once स्थिर फ़ाइल के लिए करते
हैं , पिछला तरीका अभी भी अपेक्षित रूप से काम करेगा। लेकिन, अगर आपको $ modx ऑब्जेक्ट का उपयोग करने की आवश्यकता हो तो क्या होगा? उदाहरण के लिए,
एक निश्चित संसाधन
का पेजेटेट चुनें? सब कुछ बहुत प्राथमिक है:
require_once '/var/www/config.core.php'; require_once MODX_CORE_PATH.'model/modx/modx.class.php'; $modx = new modX(); $modx->initialize('web');
अब, इस तरह, आप जितना चाहें उपयोग कर सकते हैं:
$resource = $modx->getObject('modResource', $modx->resourceIdentifier); $pagetitle = $resource->get('pagetitle');
3. डोमेन द्वारा संदर्भ स्विच करें
उपरोक्त रिसेप्शन में, एक पंक्ति भड़की:
$modx->initialize('web');
यह डिफ़ॉल्ट संदर्भ का प्रारंभ है, जिसमें, वास्तव में, उपरोक्त सभी काम करेंगे। लेकिन, क्या होगा यदि कई संदर्भ हैं, और प्रत्येक को अपने स्वयं के विशिष्ट डोमेन से प्रदर्शित किया जाना चाहिए? आराम से!
switch ($_SERVER['HTTP_HOST']) { case 'domainOne.com': $modx->initialize('web'); break; case 'domainTwo': $modx->initialize('two'); break; case 'domainThree': $modx->initialize('three'); break; default: $modx->initialize('web'); break; }
इस स्विच को या तो प्लगइन में चलाया जाना चाहिए,
ऑनहैंडल रीसेंट इवेंट पर, या थोड़ा "पहले", index.php के अंत में, जो, शायद, अब कोई भी जीवित रहने की सलाह नहीं देगा।
4. संदर्भ द्वारा स्विच करें
यदि आपको प्रत्येक संदर्भ के लिए अपने कोड को "विविधता" देने की आवश्यकता है, तो आप निम्नलिखित का उपयोग कर सकते हैं:
if($modx->context->get('key') != "mgr"){ switch ($modx->context->get('key')) { case 'web': $howMany = 3; break; case 'two': $howMany = 8; break; case 'three': $howMany = 12; break; default: $howMany = 12; break; } } echo $howMany. ' ' .'Monkeys';
यदि दशा
($ modx-> संदर्भ-> get ('key')! = "Mgr") , जैसा कि आपने अनुमान लगाया होगा, कोड को प्रबंधक के दाईं ओर चलाने से रोकता है।
5. संदर्भ सेटिंग्स
मौजूदा संदर्भों में सामग्री को बदलने का एक और तरीका है अपनी सेटिंग्स को अनुकूलित करना। आपके द्वारा आवश्यक संदर्भ खोलें और
संदर्भ सेटिंग टैब पर जाएं।
Create New पर क्लिक करके,
Key , और, तदनुसार,
मान निर्दिष्ट करें। आपके द्वारा बनाई गई कुंजी को दस्तावेज़ में कहा जाता है / निम्नानुसार है:
[[!++Key]]
6. हम उस संदर्भ में कॉल करते हैं, जिसे हमें अलग-अलग सेटिंग्स बनाने के बिना ज़रूरत है
पिछली विधि, निश्चित रूप से, अच्छी है, लेकिन क्या होगा यदि हमें केवल संदर्भ के आधार पर विभिन्न विखंडू की आवश्यकता हो?
[[* संदर्भ_की]] कुंजी, जो वर्तमान संदर्भ का नाम लौटाती है, इस संबंध में बहुत उपयोगी है। उदाहरण के लिए, दो विखंडू बनाएं:
Footer_Web और
Footer_One , जहां वेब और एक संदर्भ नाम हैं। अब, उन्हें पृष्ठ पर / टेम्पलेट में कॉल करें:
[[$Footer_[[*context_key]]]]
7. modMail
modMail एक वर्ग है जिसे modPHPMailer द्वारा एक्स्टेंसिबल किया जाता है। डिफ़ॉल्ट रूप से, यह MODX में बनाया गया है और निम्नानुसार उपयोग किया जाता है:
$message = $modx->getChunk('myEmailTemplate'); $modx->getService('mail', 'mail.modPHPMailer'); $modx->mail->set(modMail::MAIL_BODY,$message); $modx->mail->set(modMail::MAIL_FROM,'me@example.org'); $modx->mail->set(modMail::MAIL_FROM_NAME,'Johnny Tester'); $modx->mail->set(modMail::MAIL_SUBJECT,'Check out my new email template!'); $modx->mail->address('to','user@example.com'); $modx->mail->address('reply-to','me@xexample.org'); $modx->mail->setHTML(true); if (!$modx->mail->send()) { $modx->log(modX::LOG_LEVEL_ERROR,'An error occurred while trying to send the email: '.$modx->mail->mailer->ErrorInfo); } $modx->mail->reset();
* आधिकारिक
प्रलेखन से अंश।
8. स्निपेट से लेकर चंक तक
उपरोक्त उदाहरण हमारे ईमेल के टेम्पलेट के रूप में chunk
myEmailTemplate लेता है। यदि पत्र में आपको प्रदर्शित करने की आवश्यकता है, उदाहरण के लिए, फ़ॉर्म से प्राप्त
उपयोगकर्ता नाम , हम निम्नलिखित करते हैं:
$Username = $_POST['Username']; $message = $modx->getChunk('myEmailTemplate', array( 'username' => $Username, ));
इस प्रकार, हम अपने
myEmailTemplate chunk को यूजरनेम पास करते हैं। हम इसे इस तरह से जोड़ते हैं:
<p>Username: [[+username]]</p>
आज के लिए बस इतना ही। अगर किसी को भी ऐसे नोटों में दिलचस्पी होगी, तो मैं ख़ुशी से उन्हें जारी रखने के लिए तैयार हूँ। आपका ध्यान देने के लिए धन्यवाद।