コード例 #1
0
 /**
  * Function to process the form
  *
  * @access public
  *
  * @return void
  */
 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 (!empty($params['new'][$i]) && !empty($params['old'][$i])) {
             if (isset($params['enabled']) && !empty($params['enabled'][$i])) {
                 if (!empty($params['cb']) && !empty($params['cb'][$i])) {
                     $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) {
         // This controller was originally written to CRUD $config->locale_custom_strings,
         // but that's no longer the canonical store. Sync changes to canonical store.
         // This is inefficient - at some point, we should rewrite this UI.
         CRM_Core_BAO_WordReplacement::rebuildWordReplacementTable();
         CRM_Core_Session::setStatus("", ts("Settings Saved"), "success");
         CRM_Utils_System::redirect(CRM_Utils_System::url('civicrm/admin/options/wordreplacements', "reset=1"));
     }
 }
コード例 #2
0
ファイル: Domain.php プロジェクト: bhirsch/voipdev
 /**
  * Process the form when submitted
  *
  * @return void
  * @access public
  */
 public function postProcess()
 {
     require_once 'CRM/Core/BAO/Domain.php';
     $params = array();
     $params = $this->exportValues();
     $params['entity_id'] = $this->_id;
     $params['entity_table'] = CRM_Core_BAO_Domain::getTableName();
     $domain = CRM_Core_BAO_Domain::edit($params, $this->_id);
     require_once 'CRM/Core/BAO/LocationType.php';
     $defaultLocationType =& CRM_Core_BAO_LocationType::getDefault();
     $location = array();
     $params['address'][1]['location_type_id'] = $defaultLocationType->id;
     $params['phone'][1]['location_type_id'] = $defaultLocationType->id;
     $params['email'][1]['location_type_id'] = $defaultLocationType->id;
     $location = CRM_Core_BAO_Location::create($params, true, 'domain');
     $params['loc_block_id'] = $location['id'];
     require_once 'CRM/Core/BAO/Domain.php';
     CRM_Core_BAO_Domain::edit($params, $this->_id);
     //set domain from email address, CRM-3552
     $emailName = '"' . $params['email_name'] . '"<' . $params['email_address'] . '>';
     $emailParams = array('label' => $emailName, 'description' => $params['description'], 'is_active' => 1, 'is_default' => 1);
     $groupParams = array('name' => 'from_email_address');
     //get the option value wt.
     if ($this->_fromEmailId) {
         $action = $this->_action;
         $emailParams['weight'] = CRM_Core_DAO::getFieldValue('CRM_Core_DAO_OptionValue', $this->_fromEmailId, 'weight');
     } else {
         //add from email address.
         $action = CRM_Core_Action::ADD;
         require_once 'CRM/Utils/Weight.php';
         $grpId = CRM_Core_DAO::getFieldValue('CRM_Core_DAO_OptionGroup', 'from_email_address', 'id', 'name');
         $fieldValues = array('option_group_id' => $grpId);
         $emailParams['weight'] = CRM_Utils_Weight::getDefaultWeight('CRM_Core_DAO_OptionValue', $fieldValues);
     }
     require_once 'CRM/Core/OptionValue.php';
     //reset default within domain.
     $emailParams['reset_default_for'] = array('domain_id' => CRM_Core_Config::domainID());
     CRM_Core_OptionValue::addOptionValue($emailParams, $groupParams, $action, $this->_fromEmailId);
     CRM_Core_Session::setStatus(ts('Domain information for \'%1\' has been saved.', array(1 => $domain->name)));
     $session =& CRM_Core_Session::singleton();
     $session->replaceUserContext(CRM_Utils_System::url('civicrm/admin', 'reset=1'));
 }
コード例 #3
0
    /**
     * @return array
     */
    public function createDomainContacts()
    {
        $domainParams = $context = array();
        $query = "\nALTER TABLE civicrm_domain ADD contact_id INT( 10 ) UNSIGNED NULL DEFAULT NULL COMMENT 'FK to Contact ID. This is specifically not an FK to avoid circular constraints',\n ADD CONSTRAINT FK_civicrm_domain_contact_id FOREIGN KEY (contact_id) REFERENCES civicrm_contact(id);";
        CRM_Core_DAO::executeQuery($query, CRM_Core_DAO::$_nullArray, TRUE, NULL, FALSE, FALSE);
        $query = '
SELECT cd.id, cd.name, ce.email FROM civicrm_domain cd
LEFT JOIN civicrm_loc_block clb ON clb.id = cd. loc_block_id
LEFT JOIN civicrm_email ce ON ce.id = clb.email_id ;
';
        $dao = CRM_Core_DAO::executeQuery($query);
        while ($dao->fetch()) {
            $query = "\nSELECT    cc.id FROM civicrm_contact cc\nLEFT JOIN civicrm_email ce ON ce.contact_id = cc.id\nWHERE     cc.contact_type = 'Organization' AND cc.organization_name = %1\n";
            $params = array(1 => array($dao->name, 'String'));
            if ($dao->email) {
                $query .= " AND ce.email = %2 ";
                $params[2] = array($dao->email, 'String');
            }
            $contactID = CRM_Core_DAO::singleValueQuery($query, $params);
            $context[1] = $dao->name;
            if (empty($contactID)) {
                $params = array('sort_name' => $dao->name, 'display_name' => $dao->name, 'legal_name' => $dao->name, 'organization_name' => $dao->name, 'contact_type' => 'Organization');
                $contact = CRM_Contact_BAO_Contact::add($params);
                $contactID = $contact->id;
                $context[0] = 'added';
            } else {
                $context[0] = 'merged';
            }
            $domainParams['contact_id'] = $contactID;
            CRM_Core_BAO_Domain::edit($domainParams, $dao->id);
        }
        return $context;
    }
コード例 #4
0
 /**
  * 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"));
     }
 }
コード例 #5
0
ファイル: Domain.php プロジェクト: rajeshrhino/civicrm-core
 /**
  * Process the form when submitted.
  *
  * @return void
  */
 public function postProcess()
 {
     $params = $this->exportValues();
     $params['entity_id'] = $this->_id;
     $params['entity_table'] = CRM_Core_BAO_Domain::getTableName();
     $domain = CRM_Core_BAO_Domain::edit($params, $this->_id);
     $defaultLocationType = CRM_Core_BAO_LocationType::getDefault();
     if (isset($this->_locationDefaults['address'][1]['location_type_id'])) {
         $params['address'][1]['location_type_id'] = $this->_locationDefaults['address'][1]['location_type_id'];
     } else {
         $params['address'][1]['location_type_id'] = $defaultLocationType->id;
     }
     if (isset($this->_locationDefaults['phone'][1]['location_type_id'])) {
         $params['phone'][1]['location_type_id'] = $this->_locationDefaults['phone'][1]['location_type_id'];
     } else {
         $params['phone'][1]['location_type_id'] = $defaultLocationType->id;
     }
     if (isset($this->_locationDefaults['email'][1]['location_type_id'])) {
         $params['email'][1]['location_type_id'] = $this->_locationDefaults['email'][1]['location_type_id'];
     } else {
         $params['email'][1]['location_type_id'] = $defaultLocationType->id;
     }
     $params += array('contact_id' => $this->_contactId);
     $contactParams = array('sort_name' => $domain->name, 'display_name' => $domain->name, 'legal_name' => $domain->name, 'organization_name' => $domain->name, 'contact_id' => $this->_contactId, 'contact_type' => 'Organization');
     if ($this->_contactId) {
         $contactParams['contact_sub_type'] = CRM_Contact_BAO_Contact::getContactSubType($this->_contactId);
     }
     CRM_Contact_BAO_Contact::add($contactParams);
     CRM_Core_BAO_Location::create($params, TRUE);
     CRM_Core_BAO_Domain::edit($params, $this->_id);
     //set domain from email address, CRM-3552
     $emailName = '"' . $params['email_name'] . '" <' . $params['email_address'] . '>';
     $emailParams = array('label' => $emailName, 'description' => $params['description'], 'is_active' => 1, 'is_default' => 1);
     $groupParams = array('name' => 'from_email_address');
     //get the option value wt.
     if ($this->_fromEmailId) {
         $action = $this->_action;
         $emailParams['weight'] = CRM_Core_DAO::getFieldValue('CRM_Core_DAO_OptionValue', $this->_fromEmailId, 'weight');
     } else {
         //add from email address.
         $action = CRM_Core_Action::ADD;
         $grpId = CRM_Core_DAO::getFieldValue('CRM_Core_DAO_OptionGroup', 'from_email_address', 'id', 'name');
         $fieldValues = array('option_group_id' => $grpId);
         $emailParams['weight'] = CRM_Utils_Weight::getDefaultWeight('CRM_Core_DAO_OptionValue', $fieldValues);
     }
     //reset default within domain.
     $emailParams['reset_default_for'] = array('domain_id' => CRM_Core_Config::domainID());
     CRM_Core_OptionValue::addOptionValue($emailParams, $groupParams, $action, $this->_fromEmailId);
     CRM_Core_Session::setStatus(ts("Domain information for '%1' has been saved.", array(1 => $domain->name)), ts('Saved'), 'success');
     $session = CRM_Core_Session::singleton();
     $session->replaceUserContext(CRM_Utils_System::url('civicrm/admin', 'reset=1'));
 }
コード例 #6
0
 /**
  * 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;
 }
コード例 #7
0
 /**
  * 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;
 }
コード例 #8
0
ファイル: Domain.php プロジェクト: bhirsch/voipdrupal-4.7-1.0
 /**
  * Process the form when submitted
  *
  * @return void
  * @access public
  */
 function postProcess()
 {
     require_once 'CRM/Core/BAO/Domain.php';
     $params = array();
     $params = $this->exportValues();
     $params['domain_id'] = $this->_id;
     $domain = CRM_Core_BAO_Domain::edit($params, $this->_id);
     $location = array();
     for ($locationId = 1; $locationId <= CRM_CONTACT_FORM_DOMAIN_LOCATION_BLOCKS; $locationId++) {
         // start of for loop for location
         $location[$locationId] = CRM_Core_BAO_Location::add($params, $this->_ids, $locationId);
     }
     CRM_Core_Session::setStatus(ts('The Domain "%1" has been saved.', array(1 => $domain->name)));
 }