diff --git a/drush/provision_civicrm.inc b/drush/provision_civicrm.inc index 65b7f7f..156e53f 100644 --- a/drush/provision_civicrm.inc +++ b/drush/provision_civicrm.inc @@ -550,6 +550,46 @@ function provision_civicrm_regenerate_settings_file($dbuser, $dbpass, $dbhost, $ drush_log(dt("Settings file generated: !file", array('!file' => $configFile)), 'ok'); } +/** + * Implements hook_civicrm_settings_template_alter(). + * + * @see provision_civicrm_civicrm_settings_parameters_alter(). + */ +function provision_civicrm_civicrm_settings_template_alter(&$template) { + $replacements = array(); + $replacements['enable overrides to $civicrm_setting.'] = array( + 'search_regex' => '/^.*?global.*civicrm_setting.*\n?/m', + 'replace_line' => "global \$civicrm_setting;\n", + ); + $replacements['allow uploadDir to be overridden.'] = array( + 'search_regex' => '/^.*?civicrm_setting.*uploadDir.*\n?/m', + 'replace_line' => "\$civicrm_setting['Directory Preferences']['uploadDir'] = '%%uploadDir%%';\n", + ); + + foreach ($replacements as $desc => $line) { + // Throw a warning if any of our replacements cannot be found. + if (!preg_match($line['search_regex'], $template)) { + drush_log(dt('CiviCRM: Failed to ' . $desc), 'warning'); + } + else { + $count = 0; + $template = preg_replace($line['search_regex'], $line['replace_line'], $template, -1, $count); + if ($count > 0) { + drush_log(dt('CiviCRM: Succeeded to ' . $desc), 'success'); + } + } + } +} + +/** + * Implements hook_civicrm_settings_parameters_alter(). + * + * @see provision_civicrm_civicrm_settings_template_alter(). + */ +function provision_civicrm_civicrm_settings_parameters_alter(&$params) { + $params['uploadDir'] = 'upload'; +} + function provision_civicrm_verify_common() { drush_log(dt("CiviCRM: in provision_civicrm_verify_common()."));