Issue status update for http://drupal.org/node/18447 Project: Drupal Version: cvs Component: system.module Category: feature requests Priority: normal Assigned to: chx Reported by: chx Updated by: javanaut Status: patch Ok, how about it taking a parameter? <?php function filestore2_depends($dep_type='required') { $deps = array('required'=>array('fscache'), 'optional'=>array('taxonomy','comments')); return $deps[$dep_type]; } ?> Then, for required dependencies, pass a 'required' argument, and optional ones could take an 'optional' argument. javanaut Previous comments: ------------------------------------------------------------------------ March 5, 2005 - 18:55 : chx Attachment: http://drupal.org/files/issues/depend.patch (3.22 KB) As discussed on the developer list. This was surprisingly easy. There is still an issue: t('The configuration options have been saved.') is displayed more than once if there is a dependency forced module switch on. I have tried something (you'll see) for some reason it does not work. Number of page reloads can be decreased if Drupal could be reinitialized after system_listing_save instead of redirecting but I doubt this would be feasible. Although I marked this is feature request, this is more a usability issue (for the forum-comment dependency) and as a side effect it is a useful feature, too (for any other module "bundles"). I want criticism! I'd like to get torn apart by wild animals. Heavy! Eaten by some squirrels. ------------------------------------------------------------------------ March 5, 2005 - 19:22 : clydefrog Forgive me if I'm mistaken, but shouldn't forum_depends return an array? ------------------------------------------------------------------------ March 5, 2005 - 19:26 : javanaut I think allowing for both required dependencies as well as optional ones would make it practical for a package management tool to be created. I like it, though, and I think being able to programatically enforce (or at least notify users about) dependencies would assist users who refuse to RTFM.
From my drupal-devel comment, here's how I would suggest formatting the hook_depends:
<?php function filestore2_depends() { return array('required'=>array('fscache'), 'optional'=>array('taxonomy','comments')); } ?> ------------------------------------------------------------------------ March 5, 2005 - 19:29 : chx If you take a look at module_invoke_all, you will see that a string is fine, 'cos if you return a string it does $result[] However, an associative array is not good with module_invoke_all 'cos for returned arrays there is an array_merge where "If the input arrays have the same string keys, then the later value for that key will overwrite the previous one."