a couple of comment block fixes
[civicrm-core.git] / CRM / Utils / Hook / DrupalBase.php
index 1561ff3dee839b70a962dc278ec1e751ee080294..9be37b1602ff63e4a1933a607a7f285e25e48968 100644 (file)
@@ -1,7 +1,7 @@
 <?php
 /*
  +--------------------------------------------------------------------+
- | CiviCRM version 4.5                                                |
+ | CiviCRM version 4.6                                                |
  +--------------------------------------------------------------------+
  | Copyright CiviCRM LLC (c) 2004-2014                                |
  +--------------------------------------------------------------------+
@@ -55,7 +55,6 @@ class CRM_Utils_Hook_DrupalBase extends CRM_Utils_Hook {
   private $drupalModules = NULL;
 
   /**
-   *
    * @see CRM_Utils_Hook::invoke()
    *
    * @param integer $numParams Number of parameters to pass to the hook
@@ -83,7 +82,7 @@ class CRM_Utils_Hook_DrupalBase extends CRM_Utils_Hook {
   /**
    * Build the list of modules to be processed for hooks.
    */
-  function buildModuleList() {
+  public function buildModuleList() {
     if ($this->isBuilt === FALSE) {
       if ($this->drupalModules === NULL) {
         if (function_exists('module_list')) {
@@ -97,7 +96,25 @@ class CRM_Utils_Hook_DrupalBase extends CRM_Utils_Hook {
         $this->requireCiviModules($this->civiModules);
       }
 
-      $this->allModules = array_merge((array)$this->drupalModules, (array)$this->civiModules);
+      // CRM-12370
+      // we should add civicrm's module's just after main civicrm drupal module
+      // Note: Assume that drupalModules and civiModules may each be array() or NULL
+      if ($this->drupalModules !== NULL) {
+        foreach ($this->drupalModules as $moduleName) {
+          $this->allModules[$moduleName] = $moduleName;
+          if ($moduleName == 'civicrm') {
+            if (!empty($this->civiModules)) {
+              foreach ($this->civiModules as $civiModuleName) {
+                $this->allModules[$civiModuleName] = $civiModuleName;
+              }
+            }
+          }
+        }
+      }
+      else {
+        $this->allModules = (array) $this->civiModules;
+      }
+
       if ($this->drupalModules !== NULL && $this->civiModules !== NULL) {
         // both CRM and CMS have bootstrapped, so this is the final list
         $this->isBuilt = TRUE;