--- system.module?rev=1.202 2005-03-25 23:48:35.000000000 +0100
+++ system.module 2005-03-26 00:15:25.000000000 +0100
@@ -499,11 +499,45 @@ function system_module_listing() {
return $output;
}
+function system_module_dependencies(&$edit) {
+ $more = FALSE;
+ foreach ($edit['status'] as $module => $status) {
+ if ($status) {
+ drupal_load('module', $module);
+ $requirements = module_invoke($module, 'install', 'depends');
+ if (is_array($requirements)) {
+ $on = array();
+ foreach ($requirements as $requirement) {
+ if (!$edit['status'][$requirement]) {
+ $edit['status'][$requirement] = 1;
+ $on[] = $requirement;
+ }
+ }
+ if (!empty($on)) {
+ $more = TRUE;
+ drupal_set_message(t("Because '%module' depends on functionality offered by '%requirements' these modules are also enabled to omit possible problems.", array ('%module' => ''. $module .'', '%requirements' => ''. implode("', '", $on) .'')));
+ }
+ }
+ elseif (!empty($requirements) && !$edit['status'][$requirements]) {
+ $edit['status'][$requirements] = 1;
+ $more = TRUE;
+ drupal_set_message(t("Because '%module' depends on functionality offered by '%requirements', this module is also enabled to omit possible problems.", array ('%module' => ''. $module .'', '%requirements' => ''. $requirements .'')));
+ }
+ }
+ }
+ if ($more) {
+ system_module_dependencies($edit);
+ }
+}
+
function system_listing_save($edit = array()) {
$op = $_POST['op'];
$edit = $_POST['edit'];
if ($op == t('Save configuration')) {
+ if ($edit['type'] == 'module') {
+ system_module_dependencies($edit);
+ }
db_query("UPDATE {system} SET status = 0 WHERE type = '%s'", $edit['type']);
foreach ($edit['status'] as $name => $status) {
// Make certain that the default theme is enabled to avoid user error
--- forum.module?rev=1.239 2005-03-25 23:49:49.000000000 +0100
+++ forum.module 2005-03-26 00:15:46.000000000 +0100
@@ -32,6 +32,14 @@ function forum_node_name($node) {
}
/**
+ * Implementation of hook_install().
+ */
+function forum_install($key) {
+ $info['depends'] = array('comment', 'node');
+ return $info[$key];
+}
+
+/**
* Implementation of hook_access().
*/
function forum_access($op, $node) {