2011-02-16 6 views
8

जब मैं Drupal के लिए चलाने के लिए एक अलग php फ़ाइल में नई स्क्रिप्ट बनाएं, मैं सभी Drupal API को एक्सेस करने के क्रम में शीर्ष पर निम्नलिखित लाइनों को जोड़ने की आवश्यकता:Drupal: एक स्टैंडअलोन PHP स्क्रिप्ट के साथ ड्रूपल के एपीआई तक कैसे पहुंचे?

require_once './includes/bootstrap.inc'; drupal_bootstrap (DRUPAL_BOOTSTRAP_FULL);

क्या यह सही है?

+0

इसे स्वयं परीक्षण करने के लिए पर्याप्त आसान है। क्या होता है जब आप ऐसा करते हैं? –

+0

@ मार्क ट्रैप आप जानते हैं, कभी-कभी आप आवश्यक से अधिक सामान लोड करते हैं, भले ही यह – aneuryzm

+0

काम करता है update.php पर एक नज़र डालें। मुझे लगता है कि यह पूर्ण बूटस्ट्रैप के बिना चलता है। आपको वहां कुछ संकेत मिल सकते हैं। – Rimian

उत्तर

12

हाँ, मैं इस का उपयोग करें:

/** bootstrap drupal **/ 
chdir("/path/to/drupal/site/htdocs"); 
require_once './includes/bootstrap.inc'; 
drupal_bootstrap(DRUPAL_BOOTSTRAP_FULL); 

और फिर बस जो कुछ भी Drupal-विशिष्ट कोड आपको लगता है कि नीचे की जरूरत है जोड़ें।

+0

इसके अलावा, आपको वास्तव में कौन से बूटस्ट्रैप स्तर की आवश्यकता है यह देखने के लिए drupal_bootstrap के दस्तावेज़ों की जांच करें। –

+0

प्रश्न "सभी ड्रूपल एपीआई" तक पहुंचने के बारे में था - क्या यह वास्तव में इतना आसान है, या निर्भरता उनके बदसूरत सिर को पीछे रखती है? उदाहरण: बाहरी PHP स्क्रिप्ट में ड्रूपल फॉर्म एपीआई का उपयोग करना (क्योंकि एफएपीआई कमाल है)। कोशिश करने की कमी के लिए नहीं, लेकिन मुझे ड्रूपल के बाहर ड्रूपल एपीआई उपयोग का प्रदर्शन करने वाली कोई भी ब्लॉग पोस्ट नहीं मिली है। अगर किसी के पास ऐसे लिंक हैं, तो यह विषय पर है और बहुत सराहना की है! :-) –

0

हाँ, यह ड्रूपल एपीआई दर्ज करने का एक तरीका है।
कभी-कभी chdir("dir to drupal dir"); आवश्यक है, यदि आप अन्य निर्देशिका से php स्क्रिप्ट कहते हैं।

4

इस पद्धति अभी भी Drupal 7 के साथ काम करता है, लेकिन chdir बिट के बजाय इससे पहले कि आप की आवश्यकता होती है और बूटस्ट्रैप कॉल निम्न पंक्ति जोड़ने की जरूरत हो सकता है:

define('DRUPAL_ROOT','/path/to/drupal'); 
+2

या परिभाषित करें ('DRUPAL_ROOT', getcwd()) –

1

यह दोनों Drupal 6 और Drupal 7 के लिए काम करना चाहिए :

define('DRUPAL_ROOT', 'path/to/drupal'); 
chdir(DRUPAL_ROOT); 
require './includes/bootstrap.inc'; 
drupal_bootstrap(DRUPAL_BOOTSTRAP_FULL); 

इससे कोई फर्क नहीं पड़ता कि आप इस कोड को रखने वाली स्क्रिप्ट कहां रखते हैं। बस सुनिश्चित करें कि आप अपने ड्रूपल सिस्टम के वास्तविक स्थापना पथ के साथ path/to/drupal को प्रतिस्थापित करें।

संबंधित मुद्दे