<?php
/*
+--------------------------------------------------------------------+
- | CiviCRM version 4.5 |
+ | CiviCRM version 4.6 |
+--------------------------------------------------------------------+
| Copyright CiviCRM LLC (c) 2004-2014 |
+--------------------------------------------------------------------+
private $drupalModules = NULL;
/**
- *
* @see CRM_Utils_Hook::invoke()
*
- * @param integer $numParams Number of parameters to pass to the hook
- * @param unknown $arg1 parameter to be passed to the hook
- * @param unknown $arg2 parameter to be passed to the hook
- * @param unknown $arg3 parameter to be passed to the hook
- * @param unknown $arg4 parameter to be passed to the hook
- * @param unknown $arg5 parameter to be passed to the hook
+ * @param int $numParams
+ * Number of parameters to pass to the hook.
+ * @param unknown $arg1
+ * Parameter to be passed to the hook.
+ * @param unknown $arg2
+ * Parameter to be passed to the hook.
+ * @param unknown $arg3
+ * Parameter to be passed to the hook.
+ * @param unknown $arg4
+ * Parameter to be passed to the hook.
+ * @param unknown $arg5
+ * Parameter to be passed to the hook.
* @param mixed $arg6
- * @param string $fnSuffix function suffix, this is effectively the hook name
+ * @param string $fnSuffix
+ * Function suffix, this is effectively the hook name.
*
- * @return Ambigous <boolean, multitype:>
+ * @return array|bool
*/
- function invoke($numParams,
+ function invoke(
+ $numParams,
&$arg1, &$arg2, &$arg3, &$arg4, &$arg5, &$arg6,
$fnSuffix) {
/**
* 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')) {
$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;