मैं मॉड्यूल को प्रोग्रामेटिक रूप से कैसे स्थापित और सक्षम कर सकता हूं?


17

Drupal 6 में इसे करने के लिए बहुत से संसाधन हैं, लेकिन मुझे Drupal 7 का कोई समाधान नहीं मिला।

मैं चयनित मॉड्यूल को कैसे स्थापित और सक्षम कर सकता हूं?

जवाबों:


27

वहाँ सिर्फ एक कदम है, का उपयोग कर module_enable():

$modules = array('module1', 'module2'); // Array of module names
$enable_dependencies = TRUE; // Whether or not to enable dependant modules

module_enable($modules, $enable_dependencies);

क्या यह मॉड्यूल को उसी क्रम में सक्षम करता है जैसे वे सरणी में हैं?
ब्रेंट कॉनर

कोई @BrentConnor, निर्भरता नक्शा गणना की जाती है और वे किसी भी क्रम मेकअप अर्थ में स्थापित कर रहे हैं
क्लाइव

8

यहाँ है कि आप इसे hook_update_Nकिसी अन्य सक्षम मॉड्यूल की *.installफ़ाइल से डेटाबेस अपडेट के साथ कैसे करेंगे । फिर आप /update.phpब्राउज़र में विजिट कर सकते हैं या $ drush updbकमांड लाइन पर रन कर सकते हैं ताकि यह कोड निकाल दिया जा सके।

/**
 * Enable module1 and module2.
 */
function MYMODULE_update_7101() {

  // Array of module names.
  $modules = ['module1', 'module2'];

  // Whether or not to enable dependant modules.
  $enable_dependencies = TRUE;

  module_enable($modules, $enable_dependencies);
}

1

Drupal 7 में कोई अधिक Drupal_install_modules () नहीं है , इसलिए यदि आप मॉड्यूल स्थापना प्रक्रिया को प्रोग्रामेटिक रूप से लागू करना चाहते हैं (यदि यह पहले से सक्षम है), तो आप उपयोग कर सकते हैं:

module_invoke('module_name', 'install');

सक्षम करने के लिए, यह बस है:

module_enable(array('module_name'));

या drushपरिनियोजन प्रक्रिया के भाग के रूप में उपयोग करना :

drush -y en module_name

0

ड्रुपल 8 के लिए आप निम्नलिखित का उपयोग कर सकते हैं:

\Drupal::service("module_installer")->install(["my_custom_module"]);

नशे में:

drush php-eval '\Drupal::service("module_installer")->install(["my_custom_module"]);'

यदि आप IDE आत्मनिरीक्षण चाहते हैं, तो इसका उपयोग करें: `` `/ ** @var \ Drupal \ Core \ Extension \ ModuleInstallerInterface $ मॉड्यूलInstaller * / $ मॉड्यूलInstaller = \ Drupal :: सेवा (" मॉड्यूल_ इंस्टॉलर "); $ moduleInstaller-> स्थापित ([ 'readmehelp']); `` `
geek-merlin
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.