Beispiel #1
0
/**
 * Reset navigation.
 *
 * @param array $params
 *   Array of name/value pairs.
 *
 * @return array
 *   API result array.
 */
function civicrm_api3_navigation_reset($params)
{
    if ($params['for'] == 'report') {
        CRM_Core_BAO_Navigation::rebuildReportsNavigation($params['domain_id']);
    }
    CRM_Core_BAO_Navigation::resetNavigation();
    return civicrm_api3_create_success(1, $params, 'navigation', 'reset');
}
 /**
  * Run this page (figure out the action needed and perform it).
  */
 public function run()
 {
     $instanceId = CRM_Report_Utils_Report::getInstanceID();
     if (!$instanceId) {
         $instanceId = CRM_Report_Utils_Report::getInstanceIDForPath();
     }
     if (is_numeric($instanceId)) {
         $instanceURL = CRM_Utils_System::url("civicrm/report/instance/{$instanceId}", 'reset=1');
         CRM_Core_Session::singleton()->replaceUserContext($instanceURL);
     }
     $action = CRM_Utils_Request::retrieve('action', 'String', $this);
     $optionVal = CRM_Report_Utils_Report::getValueFromUrl($instanceId);
     $reportUrl = CRM_Utils_System::url('civicrm/report/list', "reset=1");
     if ($action & CRM_Core_Action::DELETE) {
         if (!CRM_Core_Permission::check('administer Reports')) {
             $statusMessage = ts('You do not have permission to Delete Report.');
             CRM_Core_Error::statusBounce($statusMessage, $reportUrl);
         }
         $navId = CRM_Core_DAO::getFieldValue('CRM_Report_DAO_ReportInstance', $instanceId, 'navigation_id', 'id');
         CRM_Report_BAO_ReportInstance::del($instanceId);
         //delete navigation if exists
         if ($navId) {
             CRM_Core_BAO_Navigation::processDelete($navId);
             CRM_Core_BAO_Navigation::resetNavigation();
         }
         CRM_Core_Session::setStatus(ts('Selected report has been deleted.'), ts('Deleted'), 'success');
     } else {
         $templateInfo = CRM_Core_OptionGroup::getRowValues('report_template', "{$optionVal}", 'value');
         if (empty($templateInfo)) {
             CRM_Core_Error::statusBounce('You have tried to access a report that does not exist.');
         }
         $extKey = strpos($templateInfo['name'], '.');
         $reportClass = NULL;
         if ($extKey !== FALSE) {
             $ext = CRM_Extension_System::singleton()->getMapper();
             $reportClass = $ext->keyToClass($templateInfo['name'], 'report');
             $templateInfo['name'] = $reportClass;
         }
         if (strstr($templateInfo['name'], '_Form') || !is_null($reportClass)) {
             $instanceInfo = array();
             CRM_Report_BAO_ReportInstance::retrieve(array('id' => $instanceId), $instanceInfo);
             if (!empty($instanceInfo['title'])) {
                 CRM_Utils_System::setTitle($instanceInfo['title']);
                 $this->assign('reportTitle', $instanceInfo['title']);
             } else {
                 CRM_Utils_System::setTitle($templateInfo['label']);
                 $this->assign('reportTitle', $templateInfo['label']);
             }
             $wrapper = new CRM_Utils_Wrapper();
             return $wrapper->run($templateInfo['name'], NULL, NULL);
         }
         CRM_Core_Session::setStatus(ts('Could not find template for the instance.'), ts('Template Not Found'), 'error');
     }
     return CRM_Utils_System::redirect($reportUrl);
 }
Beispiel #3
0
 /**
  * run this page (figure out the action needed and perform it).
  *
  * @return void
  */
 function run()
 {
     $instanceId = CRM_Report_Utils_Report::getInstanceID();
     if (!$instanceId) {
         $instanceId = CRM_Report_Utils_Report::getInstanceIDForPath();
     }
     $action = CRM_Utils_Request::retrieve('action', 'String', $this);
     $optionVal = CRM_Report_Utils_Report::getValueFromUrl($instanceId);
     $reportUrl = CRM_Utils_System::url('civicrm/report/list', "reset=1");
     if ($action & CRM_Core_Action::DELETE) {
         if (!CRM_Core_Permission::check('administer Reports')) {
             $statusMessage = ts('Your do not have permission to Delete Report.');
             CRM_Core_Error::statusBounce($statusMessage, $reportUrl);
         }
         $navId = CRM_Core_DAO::getFieldValue('CRM_Report_DAO_Instance', $instanceId, 'navigation_id', 'id');
         CRM_Report_BAO_Instance::delete($instanceId);
         //delete navigation if exists
         if ($navId) {
             require_once 'CRM/Core/BAO/Navigation.php';
             CRM_Core_BAO_Navigation::processDelete($navId);
             CRM_Core_BAO_Navigation::resetNavigation();
         }
         CRM_Core_Session::setStatus(ts('Selected Instance has been deleted.'));
     } else {
         require_once 'CRM/Core/OptionGroup.php';
         $templateInfo = CRM_Core_OptionGroup::getRowValues('report_template', "{$optionVal}", 'value');
         $extKey = strpos($templateInfo['name'], '.');
         $reportClass = null;
         if ($extKey !== FALSE) {
             require_once 'CRM/Core/Extensions.php';
             $ext = new CRM_Core_Extensions();
             $reportClass = $ext->keyToClass($templateInfo['name'], 'report');
             $templateInfo['name'] = $reportClass;
         }
         if (strstr($templateInfo['name'], '_Form') || !is_null($reportClass)) {
             $instanceInfo = array();
             CRM_Report_BAO_Instance::retrieve(array('id' => $instanceId), $instanceInfo);
             if (!empty($instanceInfo['title'])) {
                 CRM_Utils_System::setTitle($instanceInfo['title']);
                 $this->assign('reportTitle', $instanceInfo['title']);
             } else {
                 CRM_Utils_System::setTitle($templateInfo['label']);
                 $this->assign('reportTitle', $templateInfo['label']);
             }
             $wrapper = new CRM_Utils_Wrapper();
             return $wrapper->run($templateInfo['name'], null, null);
         }
         CRM_Core_Session::setStatus(ts('Could not find template for the instance.'));
     }
     return CRM_Utils_System::redirect($reportUrl);
 }
/**
 * Implementation of hook_civicrm_uninstall
 *
 * @link http://wiki.civicrm.org/confluence/display/CRMDOC/hook_civicrm_uninstall
 */
function maxadditionalparticipants_civicrm_uninstall()
{
    require_once "CRM/Core/DAO.php";
    $maxparticipantMenuItem = array('Participant_Settings');
    foreach ($maxparticipantMenuItem as $name) {
        $itemId = CRM_Core_DAO::getFieldValue('CRM_Core_DAO_Navigation', $name, 'id', 'name', TRUE);
        if ($itemId) {
            CRM_Core_BAO_Navigation::processDelete($itemId);
        }
    }
    CRM_Core_BAO_Navigation::resetNavigation();
    CRM_Core_DAO::executeQuery("DELETE FROM civicrm_setting WHERE group_name = 'Event Preferences' AND name = 'max_participants'");
    return _maxadditionalparticipants_civix_civicrm_uninstall();
}
Beispiel #5
0
/**
 * Implementation of hook_civicrm_disable
 */
function hrabsence_civicrm_disable()
{
    //Disable the Navigation menu and submenus
    $sql = "UPDATE civicrm_navigation SET is_active=0 WHERE name IN ('Absences','my_absences', 'calendar', 'new_absence', 'publicHolidays', 'absencePeriods', 'absenceTypes', 'absence_report','absenceReport')";
    CRM_Core_DAO::executeQuery($sql);
    CRM_Core_BAO_Navigation::resetNavigation();
    CRM_Core_DAO::executeQuery("UPDATE civicrm_msg_template SET is_active=0 WHERE msg_title = 'Absence Email'");
    _hrabsence_setActiveFields(0);
    return _hrabsence_civix_civicrm_disable();
}
 public function postProcess()
 {
     $params = $this->controller->exportValues($this->_name);
     $params['enableComponentIDs'] = array();
     foreach ($params['enableComponents'] as $name) {
         $params['enableComponentIDs'][] = $this->_components[$name]->componentID;
     }
     parent::commonProcess($params);
     // reset navigation when components are enabled / disabled
     require_once 'CRM/Core/BAO/Navigation.php';
     CRM_Core_BAO_Navigation::resetNavigation();
 }
 /**
  * Update the is_active flag in the db.
  *
  * @param int $id
  *   Id of the database record.
  * @param bool $is_active
  *   Value we want to set the is_active field.
  *
  * @return Object
  *   DAO object on success, null otherwise
  */
 public static function setIsActive($id, $is_active)
 {
     $params = array('id' => $id);
     self::retrieve($params, $contactinfo);
     $params = array('name' => "New {$contactinfo['name']}");
     $newParams = array('is_active' => $is_active);
     CRM_Core_BAO_Navigation::processUpdate($params, $newParams);
     CRM_Core_BAO_Navigation::resetNavigation();
     return CRM_Core_DAO::setFieldValue('CRM_Contact_DAO_ContactType', $id, 'is_active', $is_active);
 }
 static function rebuildMenuAndCaches($triggerRebuild = FALSE, $sessionReset = FALSE)
 {
     $config = CRM_Core_Config::singleton();
     $config->clearModuleList();
     CRM_Core_Menu::store();
     // also reset navigation
     CRM_Core_BAO_Navigation::resetNavigation();
     // also cleanup all caches
     $config->cleanupCaches($sessionReset || CRM_Utils_Request::retrieve('sessionReset', 'Boolean', CRM_Core_DAO::$_nullObject, FALSE, 0, 'GET'));
     // also rebuild triggers if requested explicitly
     if ($triggerRebuild || CRM_Utils_Request::retrieve('triggerRebuild', 'Boolean', CRM_Core_DAO::$_nullObject, FALSE, 0, 'GET')) {
         CRM_Core_DAO::triggerRebuild();
     }
     CRM_Core_ManagedEntities::singleton(TRUE)->reconcile();
 }
Beispiel #9
0
function _hrjob_setActiveFields($setActive)
{
    $sql = "UPDATE civicrm_navigation SET is_active= {$setActive} WHERE name IN ('jobs','jobImport','hoursType')";
    CRM_Core_DAO::executeQuery($sql);
    CRM_Core_BAO_Navigation::resetNavigation();
    //disable/enable customgroup and customvalue
    $sql = "UPDATE civicrm_custom_field JOIN civicrm_custom_group ON civicrm_custom_group.id = civicrm_custom_field.custom_group_id SET civicrm_custom_field.is_active = {$setActive} WHERE civicrm_custom_group.name = 'HRJob_Summary'";
    CRM_Core_DAO::executeQuery($sql);
    CRM_Core_DAO::executeQuery("UPDATE civicrm_custom_group SET is_active = {$setActive} WHERE name = 'HRJob_Summary'");
    //disable/enable optionGroup and optionValue
    $query = "UPDATE civicrm_option_value JOIN civicrm_option_group ON civicrm_option_group.id = civicrm_option_value.option_group_id SET civicrm_option_value.is_active = {$setActive} WHERE civicrm_option_group.name IN ('hrjob_contract_type', 'hrjob_level_type', 'hrjob_department', 'hrjob_hours_type', 'hrjob_pay_grade', 'hrjob_health_provider', 'hrjob_life_provider', 'hrjob_location', 'hrjob_pension_type', 'hrjob_region', 'hrjob_pay_scale')";
    CRM_Core_DAO::executeQuery($query);
    CRM_Core_DAO::executeQuery("UPDATE civicrm_option_group SET is_active = {$setActive} WHERE name IN ('hrjob_contract_type', 'hrjob_level_type', 'hrjob_department', 'hrjob_hours_type', 'hrjob_pay_grade', 'hrjob_health_provider', 'hrjob_life_provider', 'hrjob_location', 'hrjob_pension_type',  'hrjob_region', 'hrjob_pay_scale')");
}
Beispiel #10
0
 /**
  * @param bool $triggerRebuild
  * @param bool $sessionReset
  *
  * @throws Exception
  */
 public static function rebuildMenuAndCaches($triggerRebuild = FALSE, $sessionReset = FALSE)
 {
     $config = CRM_Core_Config::singleton();
     $config->clearModuleList();
     // also cleanup all caches
     $config->cleanupCaches($sessionReset || CRM_Utils_Request::retrieve('sessionReset', 'Boolean', CRM_Core_DAO::$_nullObject, FALSE, 0, 'GET'));
     CRM_Core_Menu::store();
     // also reset navigation
     CRM_Core_BAO_Navigation::resetNavigation();
     // also cleanup module permissions
     $config->cleanupPermissions();
     // rebuild word replacement cache - pass false to prevent operations redundant with this fn
     CRM_Core_BAO_WordReplacement::rebuild(FALSE);
     Civi::service('settings_manager')->flush();
     // Clear js caches
     CRM_Core_Resources::singleton()->flushStrings()->resetCacheCode();
     CRM_Case_XMLRepository::singleton(TRUE);
     // also rebuild triggers if requested explicitly
     if ($triggerRebuild || CRM_Utils_Request::retrieve('triggerRebuild', 'Boolean', CRM_Core_DAO::$_nullObject, FALSE, 0, 'GET')) {
         CRM_Core_DAO::triggerRebuild();
     }
     CRM_Core_DAO_AllCoreTables::reinitializeCache(TRUE);
     CRM_Core_ManagedEntities::singleton(TRUE)->reconcile();
     //CRM-16257 update Config.IDS.ini might be an old copy
     CRM_Core_IDS::createConfigFile(TRUE);
 }
 /**
  * Create instance.
  * takes an associative array and creates a instance object and does any related work like permissioning, adding to dashboard etc.
  *
  * This function is invoked from within the web form layer and also from the api layer
  *
  * @param array $params
  *   (reference ) an assoc array of name/value pairs.
  *
  * @return CRM_Report_BAO_ReportInstance
  */
 public static function &create(&$params)
 {
     if (isset($params['report_header'])) {
         $params['header'] = CRM_Utils_Array::value('report_header', $params);
     }
     if (isset($params['report_footer'])) {
         $params['footer'] = CRM_Utils_Array::value('report_footer', $params);
     }
     // build navigation parameters
     if (!empty($params['is_navigation'])) {
         if (!array_key_exists('navigation', $params)) {
             $params['navigation'] = array();
         }
         $navigationParams =& $params['navigation'];
         $navigationParams['permission'] = array();
         $navigationParams['label'] = $params['title'];
         $navigationParams['name'] = $params['title'];
         $navigationParams['current_parent_id'] = CRM_Utils_Array::value('parent_id', $navigationParams);
         $navigationParams['parent_id'] = CRM_Utils_Array::value('parent_id', $params);
         $navigationParams['is_active'] = 1;
         if ($permission = CRM_Utils_Array::value('permission', $params)) {
             $navigationParams['permission'][] = $permission;
         }
         // unset the navigation related elements, not used in report form values
         unset($params['parent_id']);
         unset($params['is_navigation']);
     }
     // add to dashboard
     $dashletParams = array();
     if (!empty($params['addToDashboard'])) {
         $dashletParams = array('label' => $params['title'], 'is_active' => 1);
         if ($permission = CRM_Utils_Array::value('permission', $params)) {
             $dashletParams['permission'][] = $permission;
         }
     }
     $transaction = new CRM_Core_Transaction();
     $instance = self::add($params);
     if (is_a($instance, 'CRM_Core_Error')) {
         $transaction->rollback();
         return $instance;
     }
     // add / update navigation as required
     if (!empty($navigationParams)) {
         if (empty($params['id']) && empty($params['instance_id']) && !empty($navigationParams['id'])) {
             unset($navigationParams['id']);
         }
         $navigationParams['url'] = "civicrm/report/instance/{$instance->id}?reset=1";
         $navigation = CRM_Core_BAO_Navigation::add($navigationParams);
         if (!empty($navigationParams['is_active'])) {
             //set the navigation id in report instance table
             CRM_Core_DAO::setFieldValue('CRM_Report_DAO_ReportInstance', $instance->id, 'navigation_id', $navigation->id);
         } else {
             // has been removed from the navigation bar
             CRM_Core_DAO::setFieldValue('CRM_Report_DAO_ReportInstance', $instance->id, 'navigation_id', 'NULL');
         }
         //reset navigation
         CRM_Core_BAO_Navigation::resetNavigation();
     }
     // add to dashlet
     if (!empty($dashletParams)) {
         $section = 2;
         $chart = '';
         if (!empty($params['charts'])) {
             $section = 1;
             $chart = "&charts=" . $params['charts'];
         }
         $limitResult = NULL;
         if (!empty($params['row_count'])) {
             $limitResult = '&rowCount=' . $params['row_count'];
         }
         $dashletParams['name'] = "report/{$instance->id}";
         $dashletParams['url'] = "civicrm/report/instance/{$instance->id}?reset=1&section={$section}&snippet=5{$chart}&context=dashlet" . $limitResult;
         $dashletParams['fullscreen_url'] = "civicrm/report/instance/{$instance->id}?reset=1&section={$section}&snippet=5{$chart}&context=dashletFullscreen" . $limitResult;
         $dashletParams['instanceURL'] = "civicrm/report/instance/{$instance->id}";
         CRM_Core_BAO_Dashboard::addDashlet($dashletParams);
     }
     $transaction->commit();
     return $instance;
 }
 static function postProcess(&$form)
 {
     $params = $form->getVar('_params');
     $config = CRM_Core_Config::singleton();
     $params['header'] = $params['report_header'];
     $params['footer'] = $params['report_footer'];
     $params['domain_id'] = CRM_Core_Config::domainID();
     $form->_navigation['permission'] = array();
     $form->_navigation['label'] = $params['title'];
     $form->_navigation['name'] = $params['title'];
     //navigation parameters
     if (CRM_Utils_Array::value('is_navigation', $params)) {
         $permission = CRM_Utils_Array::value('permission', $params);
         $form->_navigation['current_parent_id'] = CRM_Utils_Array::value('parent_id', $form->_navigation);
         $form->_navigation['parent_id'] = CRM_Utils_Array::value('parent_id', $params);
         $form->_navigation['is_active'] = 1;
         if ($permission) {
             $form->_navigation['permission'][] = $permission;
         }
         //unset the navigation related element,
         //not used in report form values
         unset($params['parent_id']);
         unset($params['is_navigation']);
     }
     // convert roles array to string
     if (isset($params['grouprole']) && is_array($params['grouprole'])) {
         $grouprole_array = array();
         foreach ($params['grouprole'] as $key => $value) {
             $grouprole_array[$value] = $value;
         }
         $params['grouprole'] = implode(CRM_Core_DAO::VALUE_SEPARATOR, array_keys($grouprole_array));
     }
     // add to dashboard
     $dashletParams = array();
     if (CRM_Utils_Array::value('addToDashboard', $params)) {
         $dashletParams = array('label' => $params['title'], 'is_active' => 1);
         $permission = CRM_Utils_Array::value('permission', $params);
         if ($permission) {
             $dashletParams['permission'][] = $permission;
         }
     }
     $params['is_reserved'] = CRM_Utils_Array::value('is_reserved', $params, FALSE);
     $dao = new CRM_Report_DAO_Instance();
     $dao->copyValues($params);
     if ($config->userFramework == 'Joomla') {
         $dao->permission = 'null';
     }
     // explicitly set to null if params value is empty
     if (empty($params['grouprole'])) {
         $dao->grouprole = 'null';
     }
     // unset all the params that we use
     $fields = array('title', 'to_emails', 'cc_emails', 'header', 'footer', 'qfKey', '_qf_default', 'report_header', 'report_footer', 'grouprole');
     foreach ($fields as $field) {
         unset($params[$field]);
     }
     $dao->form_values = serialize($params);
     $instanceID = $form->getVar('_id');
     $isNew = $form->getVar('_createNew');
     if ($instanceID && !$isNew) {
         $dao->id = $instanceID;
     }
     $dao->report_id = CRM_Report_Utils_Report::getValueFromUrl($instanceID);
     $dao->save();
     $form->set('id', $dao->id);
     $reloadTemplate = FALSE;
     if ($dao->id) {
         if (!empty($form->_navigation)) {
             if ($isNew && CRM_Utils_Array::value('id', $form->_navigation)) {
                 unset($form->_navigation['id']);
             }
             $form->_navigation['url'] = "civicrm/report/instance/{$dao->id}&reset=1";
             $navigation = CRM_Core_BAO_Navigation::add($form->_navigation);
             if (CRM_Utils_Array::value('is_active', $form->_navigation)) {
                 //set the navigation id in report instance table
                 CRM_Core_DAO::setFieldValue('CRM_Report_DAO_Instance', $dao->id, 'navigation_id', $navigation->id);
             } else {
                 // has been removed from the navigation bar
                 CRM_Core_DAO::setFieldValue('CRM_Report_DAO_Instance', $dao->id, 'navigation_id', 'NULL');
             }
             //reset navigation
             CRM_Core_BAO_Navigation::resetNavigation();
             // in order to reflect change in navigation, template needs to be reloaded
             $reloadTemplate = TRUE;
         }
         // add to dashlet
         if (!empty($dashletParams)) {
             $section = 2;
             $chart = '';
             if (CRM_Utils_Array::value('charts', $params)) {
                 $section = 1;
                 $chart = "&charts=" . $params['charts'];
             }
             $dashletParams['url'] = "civicrm/report/instance/{$dao->id}&reset=1&section={$section}&snippet=5{$chart}&context=dashlet";
             $dashletParams['fullscreen_url'] = "civicrm/report/instance/{$dao->id}&reset=1&section={$section}&snippet=5{$chart}&context=dashletFullscreen";
             $dashletParams['instanceURL'] = "civicrm/report/instance/{$dao->id}";
             CRM_Core_BAO_Dashboard::addDashlet($dashletParams);
         }
         $instanceParams = array('value' => $dao->report_id);
         $instanceDefaults = array();
         $cmpName = "Contact";
         $statusMsg = "null";
         CRM_Core_DAO::commonRetrieve('CRM_Core_DAO_OptionValue', $instanceParams, $instanceDefaults);
         if ($cmpID = CRM_Utils_Array::value('component_id', $instanceDefaults)) {
             $cmpName = CRM_Core_DAO::getFieldValue('CRM_Core_DAO_Component', $cmpID, 'name', 'id');
             $cmpName = substr($cmpName, 4);
         }
         // Url to view this report and others created FROM this template
         $instanceUrl = CRM_Utils_System::url('civicrm/report/list', "reset=1&ovid={$instanceDefaults['id']}");
         $statusMsg = ts('Report "%1" has been created and is now available in the <a href="%3">report listings under "%2" Reports</a>.', array(1 => $dao->title, 2 => $cmpName, 3 => $instanceUrl));
         if ($instanceID && !$isNew) {
             $statusMsg = ts('Report "%1" has been updated.', array(1 => $dao->title));
         }
         CRM_Core_Session::setStatus($statusMsg);
     }
     if ($reloadTemplate) {
         // as there's been change in navigation, reload the template
         return CRM_Utils_System::redirect(CRM_Utils_System::url(CRM_Utils_System::currentPath(), 'force=1'));
     }
 }
 public function postProcess()
 {
     $params = $this->controller->exportValues($this->_name);
     CRM_Case_Info::onToggleComponents($this->_defaults['enableComponents'], $params['enableComponents'], NULL);
     parent::commonProcess($params);
     // reset navigation when components are enabled / disabled
     CRM_Core_BAO_Navigation::resetNavigation();
 }
 /**
  * Rebuild
  */
 static function rebuild()
 {
     $id = CRM_Core_Config::domainID();
     $stringOverride = self::getAllAsConfigArray($id);
     $params = array('locale_custom_strings' => serialize($stringOverride));
     $wordReplacementSettings = CRM_Core_BAO_Domain::edit($params, $id);
     if ($wordReplacementSettings) {
         CRM_Core_Config::singleton()->localeCustomStrings = $stringOverride;
         // Reset navigation
         CRM_Core_BAO_Navigation::resetNavigation();
         // Clear js string cache
         CRM_Core_Resources::singleton()->flushStrings();
         // Clear dynamic js files which may contain localization
         CRM_Utils_File::flushDynamicResources();
         return TRUE;
     }
     return FALSE;
 }
Beispiel #15
0
/**
 * Enable/Disable example case type
 */
function hrcase_example_caseType($is_active)
{
    $isActive = $is_active ? 1 : 0;
    $sql = "Update civicrm_case_type SET is_active = {$isActive} where name IN ('AdultDayCareReferral', 'HousingSupport', 'adult_day_care_referral', 'housing_support')";
    CRM_Core_DAO::executeQuery($sql);
    CRM_Core_BAO_Navigation::resetNavigation();
}
Beispiel #16
0
 /**
  * This is the main function that is called on every click action and based on the argument
  * respective functions are called
  *
  * @param $args array this array contains the arguments of the url 
  * 
  * @static
  * @access public
  */
 static function invoke($args)
 {
     require_once 'CRM/Core/I18n.php';
     require_once 'CRM/Utils/Wrapper.php';
     require_once 'CRM/Core/Action.php';
     require_once 'CRM/Utils/Request.php';
     require_once 'CRM/Core/Menu.php';
     require_once 'CRM/Core/Component.php';
     require_once 'CRM/Core/Permission.php';
     if ($args[0] !== 'civicrm') {
         return;
     }
     if (isset($args[1]) and $args[1] == 'menu' and isset($args[2]) and $args[2] == 'rebuild') {
         CRM_Core_Menu::store();
         CRM_Core_Session::setStatus(ts('Menu has been rebuilt'));
         // also reset navigation
         require_once 'CRM/Core/BAO/Navigation.php';
         CRM_Core_BAO_Navigation::resetNavigation();
         return CRM_Utils_System::redirect();
     }
     // first fire up IDS and check for bad stuff
     require_once 'CRM/Core/IDS.php';
     $ids = new CRM_Core_IDS();
     $ids->check($args);
     $config =& CRM_Core_Config::singleton();
     // also initialize the i18n framework
     $i18n =& CRM_Core_I18n::singleton();
     if ($config->userFramework == 'Standalone') {
         require_once 'CRM/Core/Session.php';
         $session =& CRM_Core_Session::singleton();
         if ($session->get('new_install') !== true) {
             require_once 'CRM/Core/Standalone.php';
             CRM_Core_Standalone::sidebarLeft();
         } else {
             if ($args[1] == 'standalone' && $args[2] == 'register') {
                 CRM_Core_Menu::store();
             }
         }
     }
     // get the menu items
     $path = implode('/', $args);
     $item =& CRM_Core_Menu::get($path);
     // we should try to compute menus, if item is empty and stay on the same page,
     // rather than compute and redirect to dashboard.
     if (!$item) {
         CRM_Core_Menu::store(false);
         $item =& CRM_Core_Menu::get($path);
     }
     if ($config->userFramework == 'Joomla' && $item) {
         $config->userFrameworkURLVar = 'task';
         require_once 'CRM/Core/Joomla.php';
         // joomla 1.5RC1 seems to push this in the POST variable, which messes
         // QF and checkboxes
         unset($_POST['option']);
         CRM_Core_Joomla::sidebarLeft();
     }
     // set active Component
     $template =& CRM_Core_Smarty::singleton();
     $template->assign('activeComponent', 'CiviCRM');
     $template->assign('formTpl', 'default');
     if ($item) {
         if (!array_key_exists('page_callback', $item)) {
             CRM_Core_Error::debug('Bad item', $item);
             CRM_Core_Error::fatal(ts('Bad menu record in database'));
         }
         // check that we are permissioned to access this page
         if (!CRM_Core_Permission::checkMenuItem($item)) {
             CRM_Utils_System::permissionDenied();
             return;
         }
         // check if ssl is set
         if (CRM_Utils_Array::value('is_ssl', $item)) {
             CRM_Utils_System::redirectToSSL();
         }
         if (isset($item['title'])) {
             CRM_Utils_System::setTitle($item['title']);
         }
         if (isset($item['breadcrumb']) && !isset($item['is_public'])) {
             CRM_Utils_System::appendBreadCrumb($item['breadcrumb']);
         }
         $pageArgs = null;
         if (CRM_Utils_Array::value('page_arguments', $item)) {
             $pageArgs = CRM_Core_Menu::getArrayForPathArgs($item['page_arguments']);
         }
         $template =& CRM_Core_Smarty::singleton();
         if (isset($item['is_public']) && $item['is_public']) {
             $template->assign('urlIsPublic', true);
         } else {
             $template->assign('urlIsPublic', false);
         }
         if (isset($item['return_url'])) {
             $session =& CRM_Core_Session::singleton();
             $args = CRM_Utils_Array::value('return_url_args', $item, 'reset=1');
             $session->pushUserContext(CRM_Utils_System::url($item['return_url'], $args));
         }
         if (is_array($item['page_callback'])) {
             $newArgs = explode('/', $_GET[$config->userFrameworkURLVar]);
             require_once str_replace('_', DIRECTORY_SEPARATOR, $item['page_callback'][0]) . '.php';
             return call_user_func($item['page_callback'], $newArgs);
         } else {
             if (strstr($item['page_callback'], '_Form')) {
                 $wrapper =& new CRM_Utils_Wrapper();
                 return $wrapper->run(CRM_Utils_Array::value('page_callback', $item), CRM_Utils_Array::value('title', $item), isset($pageArgs) ? $pageArgs : null);
             } else {
                 $newArgs = explode('/', $_GET[$config->userFrameworkURLVar]);
                 require_once str_replace('_', DIRECTORY_SEPARATOR, $item['page_callback']) . '.php';
                 $mode = 'null';
                 if (isset($pageArgs['mode'])) {
                     $mode = $pageArgs['mode'];
                     unset($pageArgs['mode']);
                 }
                 $title = CRM_Utils_Array::value('title', $item);
                 if (strstr($item['page_callback'], '_Page')) {
                     eval('$object =& ' . "new {$item['page_callback']}( \$title, \$mode );");
                 } else {
                     if (strstr($item['page_callback'], '_Controller')) {
                         $addSequence = 'false';
                         if (isset($pageArgs['addSequence'])) {
                             $addSequence = $pageArgs['addSequence'];
                             $addSequence = $addSequence ? 'true' : 'false';
                             unset($pageArgs['addSequence']);
                         }
                         eval('$object =& ' . "new {$item['page_callback']} ( \$title, true, \$mode, null, \$addSequence );");
                     } else {
                         CRM_Core_Error::fatal();
                     }
                 }
                 return $object->run($newArgs, $pageArgs);
             }
         }
     }
     CRM_Core_Menu::store();
     CRM_Core_Session::setStatus(ts('Menu has been rebuilt'));
     return CRM_Utils_System::redirect();
 }
Beispiel #17
0
 public function upgrade_1300()
 {
     $this->ctx->log->info('Applying update 1300');
     $caseTypes = CRM_Case_PseudoConstant::caseType('name');
     if ($caseID = array_search('Hrdata', $caseTypes)) {
         $query = "UPDATE civicrm_managed\n      SET entity_id = {$caseID},\n      entity_type = 'caseType' WHERE name = 'Hrdata';";
         CRM_Core_DAO::executeQuery($query);
     }
     CRM_Core_BAO_Navigation::resetNavigation();
     return TRUE;
 }
Beispiel #18
0
 /**
  * Uninstall function which removes:
  *  - OptionValues and OptionGroup for 'appraisal_status'
  *  //- Files related to Appraisals entities
  *  - civicrm_navigation where name = 'appraisal_criteria'
  * 
  * @return boolean
  */
 public function uninstall()
 {
     // Delete all OptionGroups and OptionValues:
     $result = civicrm_api3('OptionGroup', 'getsingle', array('sequential' => 1, 'name' => "appraisal_status"));
     if (!empty($result['id'])) {
         CRM_Core_DAO::executeQuery("DELETE FROM civicrm_option_value WHERE option_group_id = %1", array(1 => array($result['id'], 'Integer')));
     }
     CRM_Core_DAO::executeQuery("DELETE FROM civicrm_option_group WHERE name IN ('appraisal_status')");
     ////delete Appraisal files to entities relations: TODO
     ////CRM_Core_DAO::executeQuery("DELETE FROM civicrm_entity_file WHERE entity_table LIKE 'civicrm_appraisal_%'");
     // Delete navigation items:
     CRM_Core_DAO::executeQuery("DELETE FROM `civicrm_navigation` WHERE name IN ('appraisals', 'appraisals_dashboard', 'search_appraisals', 'import_appraisals', 'appraisal_grade_labels')");
     CRM_Core_BAO_Navigation::resetNavigation();
     return TRUE;
 }
Beispiel #19
0
 /**
  * Function to process the form
  *
  * @access public
  * @return None
  */
 public function postProcess()
 {
     // get the submitted form values.
     $params = $this->controller->exportValues($this->_name);
     if (isset($this->_id)) {
         $params['id'] = $this->_id;
         $params['current_parent_id'] = $this->_currentParentID;
     }
     $navigation = CRM_Core_BAO_Navigation::add($params);
     // also reset navigation
     require_once 'CRM/Core/BAO/Navigation.php';
     CRM_Core_BAO_Navigation::resetNavigation();
     CRM_Core_Session::setStatus(ts('Menu \'%1\' has been saved.', array(1 => $navigation->label)));
 }
Beispiel #20
0
 public function upgrade_1300()
 {
     $this->ctx->log->info('Applying update 1300');
     $sql = "Update civicrm_case_type SET is_active = 0 where name IN ('AdultDayCareReferral', 'HousingSupport', 'adult_day_care_referral', 'housing_support')";
     CRM_Core_DAO::executeQuery($sql);
     $values = NULL;
     $caseTypes = CRM_Case_PseudoConstant::caseType('name', FALSE);
     foreach (array('Exiting', 'Joining', 'Probation', 'Hrdata') as $caseName) {
         if ($caseID = array_search($caseName, $caseTypes)) {
             $values .= " WHEN '{$caseName}' THEN '{$caseID}'";
         }
     }
     if ($values) {
         $query = "UPDATE civicrm_managed\n        SET entity_id = CASE name\n        {$values}\n        END, entity_type = 'caseType' WHERE name IN ('Exiting', 'Joining', 'Probation', 'Hrdata');";
         CRM_Core_DAO::executeQuery($query);
         CRM_Core_BAO_Navigation::resetNavigation();
     }
     return TRUE;
 }
Beispiel #21
0
function _hrstaffdir_setActiveFields($oParams, $nParams)
{
    $profileId = hrstaffdir_getUFGroupID();
    $path = array('url' => "civicrm/profile?reset=1&gid={$profileId}&force=1");
    $navigationPath = CRM_Core_BAO_Navigation::retrieve($path, $defaultpath);
    if ($navigationPath) {
        $params = array('label' => 'Directory', 'url' => "civicrm/profile?reset=1&gid={$profileId}&force=1", 'is_active' => $oParams);
        $newParams = array('is_active' => $nParams);
        $navigation = CRM_Core_BAO_Navigation::processUpdate($params, $newParams);
        CRM_Core_BAO_Navigation::resetNavigation();
    }
    //disable/enable ufgroup and uffield
    $sql = "UPDATE civicrm_uf_field JOIN civicrm_uf_group ON civicrm_uf_group.id = civicrm_uf_field.uf_group_id SET civicrm_uf_field.is_active = {$nParams} WHERE civicrm_uf_group.name = 'hrstaffdir_listing'";
    CRM_Core_DAO::executeQuery($sql);
    CRM_Core_DAO::executeQuery("UPDATE civicrm_uf_group SET is_active = {$nParams} WHERE name = 'hrstaffdir_listing'");
}
 /**
  * Rebuild.
  *
  * @param bool $clearCaches
  *
  * @return bool
  */
 public static function rebuild($clearCaches = TRUE)
 {
     $id = CRM_Core_Config::domainID();
     self::_setLocaleCustomStrings($id, self::getAllAsConfigArray($id));
     // Partially mitigate the inefficiency introduced in CRM-13187 by doing this conditionally
     if ($clearCaches) {
         // Reset navigation
         CRM_Core_BAO_Navigation::resetNavigation();
         // Clear js localization
         CRM_Core_Resources::singleton()->flushStrings()->resetCacheCode();
     }
     return TRUE;
 }
Beispiel #23
0
 /**
  * Post process function.
  *
  * @param CRM_Core_Form $form
  * @param bool $redirect
  */
 public static function postProcess(&$form, $redirect = TRUE)
 {
     $params = $form->getVar('_params');
     $instanceID = $form->getVar('_id');
     if ($isNew = $form->getVar('_createNew')) {
         // set the report_id since base template is going to be same, and we going to unset $instanceID
         // which will make it difficult later on, to compute report_id
         $params['report_id'] = CRM_Report_Utils_Report::getValueFromUrl($instanceID);
         // Unset $instanceID so a new copy would be created.
         $instanceID = NULL;
     }
     $params['instance_id'] = $instanceID;
     if (!empty($params['is_navigation'])) {
         $params['navigation'] = $form->_navigation;
     } elseif ($instanceID) {
         // Delete navigation if exists.
         $navId = CRM_Core_DAO::getFieldValue('CRM_Report_DAO_ReportInstance', $instanceID, 'navigation_id', 'id');
         if ($navId) {
             CRM_Core_BAO_Navigation::processDelete($navId);
             CRM_Core_BAO_Navigation::resetNavigation();
         }
     }
     // make a copy of params
     $formValues = $params;
     // unset params from $formValues that doesn't match with DB columns of instance tables, and also not required in form-values for sure
     $unsetFields = array('title', 'to_emails', 'cc_emails', 'header', 'footer', 'qfKey', 'id', '_qf_default', 'report_header', 'report_footer', 'grouprole');
     foreach ($unsetFields as $field) {
         unset($formValues[$field]);
     }
     $view_mode = $formValues['view_mode'];
     // pass form_values as string
     $params['form_values'] = serialize($formValues);
     $instance = CRM_Report_BAO_ReportInstance::create($params);
     $form->set('id', $instance->id);
     if ($instanceID && !$isNew) {
         // updating existing instance
         $statusMsg = ts('"%1" report has been updated.', array(1 => $instance->title));
     } elseif ($form->getVar('_id') && $isNew) {
         $statusMsg = ts('Your report has been successfully copied as "%1". You are currently viewing the new copy.', array(1 => $instance->title));
     } else {
         $statusMsg = ts('"%1" report has been successfully created. You are currently viewing the new report instance.', array(1 => $instance->title));
     }
     CRM_Core_Session::setStatus($statusMsg);
     if ($redirect) {
         $urlParams = array('reset' => 1);
         if ($view_mode == 'view') {
             $urlParams['force'] = 1;
         } else {
             $urlParams['output'] = 'criteria';
         }
         CRM_Utils_System::redirect(CRM_Utils_System::url("civicrm/report/instance/{$instance->id}", $urlParams));
     }
 }
 /**
  * Delete the instance of the Report.
  *
  * @param int $id
  *
  * @return mixed
  *   $results no of deleted Instance on success, false otherwise
  */
 public static function del($id = NULL)
 {
     $navId = CRM_Core_DAO::getFieldValue('CRM_Report_DAO_ReportInstance', $id, 'navigation_id', 'id');
     $dao = new CRM_Report_DAO_ReportInstance();
     $dao->id = $id;
     $result = $dao->delete();
     // Delete navigation if exists.
     if ($navId) {
         CRM_Core_BAO_Navigation::processDelete($navId);
         CRM_Core_BAO_Navigation::resetNavigation();
     }
     return $result;
 }
 /**
  * Rebuild.
  *
  * @param bool $clearCaches
  *
  * @return bool
  */
 public static function rebuild($clearCaches = TRUE)
 {
     $id = CRM_Core_Config::domainID();
     $stringOverride = self::getAllAsConfigArray($id);
     $params = array('locale_custom_strings' => serialize($stringOverride));
     $wordReplacementSettings = CRM_Core_BAO_Domain::edit($params, $id);
     if ($wordReplacementSettings) {
         CRM_Core_Config::singleton()->localeCustomStrings = $stringOverride;
         // Partially mitigate the inefficiency introduced in CRM-13187 by doing this conditionally
         if ($clearCaches) {
             // Reset navigation
             CRM_Core_BAO_Navigation::resetNavigation();
             // Clear js localization
             CRM_Core_Resources::singleton()->flushStrings()->resetCacheCode();
         }
         return TRUE;
     }
     return FALSE;
 }
Beispiel #26
0
 static function postProcess(&$form)
 {
     $params = $form->getVar('_params');
     $config = CRM_Core_Config::singleton();
     $params['header'] = $params['report_header'];
     $params['footer'] = $params['report_footer'];
     $params['domain_id'] = CRM_Core_Config::domainID();
     //navigation parameters
     if (CRM_Utils_Array::value('is_navigation', $params)) {
         $form->_navigation['permission'] = array();
         $permission = CRM_Utils_Array::value('permission', $params);
         $form->_navigation['current_parent_id'] = CRM_Utils_Array::value('parent_id', $form->_navigation);
         $form->_navigation['parent_id'] = CRM_Utils_Array::value('parent_id', $params);
         $form->_navigation['label'] = $params['title'];
         $form->_navigation['name'] = $params['title'];
         $form->_navigation['is_active'] = 1;
         if ($permission) {
             $form->_navigation['permission'][] = $permission;
         }
         //unset the navigation related element,
         //not used in report form values
         unset($params['parent_id']);
         unset($params['is_navigation']);
     }
     // add to dashboard
     $dashletParams = array();
     if (CRM_Utils_Array::value('addToDashboard', $params)) {
         $dashletParams = array('label' => $params['title'], 'is_active' => 1, 'content' => 'NULL');
         $permission = CRM_Utils_Array::value('permission', $params);
         if ($permission) {
             $dashletParams['permission'][] = $permission;
         }
         unset($params['addToDashboard']);
     }
     require_once 'CRM/Report/DAO/Instance.php';
     $dao = new CRM_Report_DAO_Instance();
     $dao->copyValues($params);
     if ($config->userFramework == 'Joomla') {
         $dao->permission = NULL;
     }
     // unset all the params that we use
     $fields = array('title', 'to_emails', 'cc_emails', 'header', 'footer', 'qfKey', '_qf_default', 'report_header', 'report_footer');
     foreach ($fields as $field) {
         unset($params[$field]);
     }
     $dao->form_values = serialize($params);
     $instanceID = $form->getVar('_id');
     if ($instanceID) {
         $dao->id = $instanceID;
     }
     require_once 'CRM/Report/Utils/Report.php';
     $dao->report_id = CRM_Report_Utils_Report::getValueFromUrl($instanceID);
     $dao->save();
     $form->set('id', $dao->id);
     $reloadTemplate = false;
     if ($dao->id) {
         if (!empty($form->_navigation)) {
             $form->_navigation['url'] = "civicrm/report/instance/{$dao->id}&reset=1";
             $navigation = CRM_Core_BAO_Navigation::add($form->_navigation);
             //set the navigation id in report instance table
             CRM_Core_DAO::setFieldValue('CRM_Report_DAO_Instance', $dao->id, 'navigation_id', $navigation->id);
             //reset navigation
             CRM_Core_BAO_Navigation::resetNavigation();
             // in order to reflect change in navigation, template needs to be reloaded
             $reloadTemplate = true;
         }
         // add to dashlet
         if (!empty($dashletParams)) {
             $section = 2;
             $chart = '';
             if (CRM_Utils_Array::value('charts', $params)) {
                 $section = 1;
                 $chart = "&charts=" . $params['charts'];
                 $dashletParams['is_fullscreen'] = 0;
             }
             $dashletParams['url'] = "civicrm/report/instance/{$dao->id}&reset=1&section={$section}&snippet=4{$chart}";
             $dashletParams['instanceURL'] = "civicrm/report/instance/{$dao->id}";
             require_once 'CRM/Core/BAO/Dashboard.php';
             CRM_Core_BAO_Dashboard::addDashlet($dashletParams);
         }
         $instanceParams = array('value' => $dao->report_id);
         $instanceDefaults = array();
         $cmpName = "Contact";
         $statusMsg = "null";
         CRM_Core_DAO::commonRetrieve('CRM_Core_DAO_OptionValue', $instanceParams, $instanceDefaults);
         if ($cmpID = CRM_Utils_Array::value('component_id', $instanceDefaults)) {
             $cmpName = CRM_Core_DAO::getFieldValue('CRM_Core_DAO_Component', $cmpID, 'name', 'id');
             $cmpName = substr($cmpName, 4);
         }
         // Url to view this report and others created FROM this template
         $instanceUrl = CRM_Utils_System::url('civicrm/report/list', "reset=1&ovid={$instanceDefaults['id']}");
         $statusMsg = ts('Report "%1" has been created and is now available in the <a href="%3">report listings under "%2" Reports</a>.', array(1 => $dao->title, 2 => $cmpName, 3 => $instanceUrl));
         if ($instanceID) {
             $statusMsg = ts('Report "%1" has been updated.', array(1 => $dao->title));
         }
         CRM_Core_Session::setStatus($statusMsg);
     }
     if ($reloadTemplate) {
         // as there's been change in navigation, reload the template
         return CRM_Utils_System::redirect(CRM_Utils_System::url(CRM_Utils_System::currentPath(), 'force=1'));
     }
 }
Beispiel #27
0
 public function postProcess()
 {
     $params = $this->controller->exportValues($this->_name);
     parent::commonProcess($params);
     // reset navigation when components are enabled / disabled
     CRM_Core_BAO_Navigation::resetNavigation();
 }
Beispiel #28
0
 /**
  * @param $rev
  */
 public function upgrade_4_1_alpha1($rev)
 {
     $config = CRM_Core_Config::singleton();
     if (in_array('CiviCase', $config->enableComponents)) {
         if (!CRM_Case_BAO_Case::createCaseViews()) {
             $template = CRM_Core_Smarty::singleton();
             $afterUpgradeMessage = '';
             if ($afterUpgradeMessage = $template->get_template_vars('afterUpgradeMessage')) {
                 $afterUpgradeMessage .= "<br/><br/>";
             }
             $afterUpgradeMessage .= '<div class="crm-upgrade-case-views-error" style="background-color: #E43D2B; padding: 10px;">' . ts("There was a problem creating CiviCase database views. Please create the following views manually before using CiviCase:");
             $afterUpgradeMessage .= '<div class="crm-upgrade-case-views-query"><div>' . CRM_Case_BAO_Case::createCaseViewsQuery('upcoming') . '</div><div>' . CRM_Case_BAO_Case::createCaseViewsQuery('recent') . '</div>' . '</div></div>';
             $template->assign('afterUpgradeMessage', $afterUpgradeMessage);
         }
     }
     $upgrade = new CRM_Upgrade_Form();
     $upgrade->processSQL($rev);
     $this->transferPreferencesToSettings();
     $this->createNewSettings();
     // now modify the config so that the directories are now stored in the settings table
     // CRM-8780
     $params = array();
     CRM_Core_BAO_ConfigSetting::add($params);
     // also reset navigation
     CRM_Core_BAO_Navigation::resetNavigation();
 }
 static function rebuildMenuAndCaches($triggerRebuild = FALSE, $sessionReset = FALSE)
 {
     $config = CRM_Core_Config::singleton();
     $config->clearModuleList();
     // also cleanup all caches
     $config->cleanupCaches($sessionReset || CRM_Utils_Request::retrieve('sessionReset', 'Boolean', CRM_Core_DAO::$_nullObject, FALSE, 0, 'GET'));
     CRM_Core_Menu::store();
     // also reset navigation
     CRM_Core_BAO_Navigation::resetNavigation();
     // also cleanup module permissions
     $config->cleanupPermissions();
     // also rebuild word replacement cache
     CRM_Core_BAO_WordReplacement::rebuild();
     CRM_Core_BAO_Setting::updateSettingsFromMetaData();
     CRM_Core_Resources::singleton()->resetCacheCode();
     // also rebuild triggers if requested explicitly
     if ($triggerRebuild || CRM_Utils_Request::retrieve('triggerRebuild', 'Boolean', CRM_Core_DAO::$_nullObject, FALSE, 0, 'GET')) {
         CRM_Core_DAO::triggerRebuild();
     }
     CRM_Core_DAO_AllCoreTables::reinitializeCache(TRUE);
     CRM_Core_ManagedEntities::singleton(TRUE)->reconcile();
 }
 /**
  * Function to process the form
  *
  * @access public
  *
  * @return None
  */
 public function postProcess()
 {
     $params = $this->controller->exportValues($this->_name);
     $this->_numStrings = sizeof($params['old']);
     $enabled['exactMatch'] = $enabled['wildcardMatch'] = $disabled['exactMatch'] = $disabled['wildcardMatch'] = array();
     for ($i = 1; $i <= $this->_numStrings; $i++) {
         if (CRM_Utils_Array::value($i, $params['new']) && CRM_Utils_Array::value($i, $params['old'])) {
             if (isset($params['enabled']) && CRM_Utils_Array::value($i, $params['enabled'])) {
                 if (CRM_Utils_Array::value('cb', $params) && CRM_Utils_Array::value($i, $params['cb'])) {
                     $enabled['exactMatch'] += array($params['old'][$i] => $params['new'][$i]);
                 } else {
                     $enabled['wildcardMatch'] += array($params['old'][$i] => $params['new'][$i]);
                 }
             } else {
                 if (isset($params['cb']) && is_array($params['cb']) && array_key_exists($i, $params['cb'])) {
                     $disabled['exactMatch'] += array($params['old'][$i] => $params['new'][$i]);
                 } else {
                     $disabled['wildcardMatch'] += array($params['old'][$i] => $params['new'][$i]);
                 }
             }
         }
     }
     $overrides = array('enabled' => $enabled, 'disabled' => $disabled);
     $config = CRM_Core_Config::singleton();
     $domain = new CRM_Core_DAO_Domain();
     $domain->find(TRUE);
     if ($domain->locales && $config->localeCustomStrings) {
         // for multilingual
         $addReplacements = $config->localeCustomStrings;
         $addReplacements[$config->lcMessages] = $overrides;
         $stringOverride = serialize($addReplacements);
     } else {
         // for single language
         $stringOverride = serialize(array($config->lcMessages => $overrides));
     }
     $params = array('locale_custom_strings' => $stringOverride);
     $id = CRM_Core_Config::domainID();
     $wordReplacementSettings = CRM_Core_BAO_Domain::edit($params, $id);
     if ($wordReplacementSettings) {
         //reset navigation
         CRM_Core_BAO_Navigation::resetNavigation();
         CRM_Core_Session::setStatus("Your Settings have been saved");
         CRM_Utils_System::redirect(CRM_Utils_System::url('civicrm/admin/options/wordreplacements', "reset=1"));
     }
 }