示例#1
0
 /**
  * The post processing of the form gets done here.
  *
  * Key things done during post processing are
  *      - check for reset or next request. if present, skip post procesing.
  *      - now check if user requested running a saved search, if so, then
  *        the form values associated with the saved search are used for searching.
  *      - if user has done a submit with new values the regular post submissing is
  *        done.
  * The processing consists of using a Selector / Controller framework for getting the
  * search results.
  *
  * @param
  *
  * @return void
  * @access public
  */
 function postProcess()
 {
     if ($this->_done) {
         return;
     }
     $this->_done = TRUE;
     $this->_formValues = $this->controller->exportValues($this->_name);
     $this->fixFormValues();
     // We don't show test records in summaries or dashboards
     if (empty($this->_formValues['member_test']) && $this->_force) {
         $this->_formValues["member_test"] = 0;
     }
     CRM_Core_BAO_CustomValue::fixFieldValueOfTypeMemo($this->_formValues);
     $this->_queryParams = CRM_Contact_BAO_Query::convertFormValues($this->_formValues);
     $this->set('formValues', $this->_formValues);
     $this->set('queryParams', $this->_queryParams);
     $buttonName = $this->controller->getButtonName();
     if ($buttonName == $this->_actionButtonName) {
         // check actionName and if next, then do not repeat a search, since we are going to the next page
         // hack, make sure we reset the task values
         $stateMachine = $this->controller->getStateMachine();
         $formName = $stateMachine->getTaskFormName();
         $this->controller->resetPage($formName);
         return;
     }
     $sortID = NULL;
     if ($this->get(CRM_Utils_Sort::SORT_ID)) {
         $sortID = CRM_Utils_Sort::sortIDValue($this->get(CRM_Utils_Sort::SORT_ID), $this->get(CRM_Utils_Sort::SORT_DIRECTION));
     }
     $this->_queryParams = CRM_Contact_BAO_Query::convertFormValues($this->_formValues);
     $selector = new CRM_Member_Selector_Search($this->_queryParams, $this->_action, NULL, $this->_single, $this->_limit, $this->_context);
     $selector->setKey($this->controller->_key);
     $prefix = NULL;
     if ($this->_context == 'basic') {
         $prefix = $this->_prefix;
     }
     $controller = new CRM_Core_Selector_Controller($selector, $this->get(CRM_Utils_Pager::PAGE_ID), $sortID, CRM_Core_Action::VIEW, $this, CRM_Core_Selector_Controller::SESSION, $prefix);
     $controller->setEmbedded(TRUE);
     $query =& $selector->getQuery();
     $controller->run();
 }
示例#2
0
文件: Search.php 项目: ksecor/civicrm
 /**
  * The post processing of the form gets done here.
  *
  * Key things done during post processing are
  *      - check for reset or next request. if present, skip post procesing.
  *      - now check if user requested running a saved search, if so, then
  *        the form values associated with the saved search are used for searching.
  *      - if user has done a submit with new values the regular post submissing is 
  *        done.
  * The processing consists of using a Selector / Controller framework for getting the
  * search results.
  *
  * @param
  *
  * @return void 
  * @access public
  */
 function postProcess()
 {
     if ($this->_done) {
         return;
     }
     $this->_done = true;
     $this->_formValues = $this->controller->exportValues($this->_name);
     $this->fixFormValues();
     if (isset($this->_ssID) && empty($_POST)) {
         // if we are editing / running a saved search and the form has not been posted
         $this->_formValues = CRM_Contact_BAO_SavedSearch::getFormValues($this->_ssID);
     }
     //search for civicase
     if (!$this->_force) {
         if (array_key_exists('case_owner', $this->_formValues) && !$this->_formValues['case_owner']) {
             $this->_formValues['case_owner'] = 0;
         } else {
             if (array_key_exists('case_owner', $this->_formValues)) {
                 $this->_formValues['case_owner'] = 1;
             }
         }
     }
     if (!CRM_Utils_Array::value('case_deleted', $this->_formValues)) {
         $this->_formValues['case_deleted'] = 0;
     }
     require_once 'CRM/Core/BAO/CustomValue.php';
     CRM_Core_BAO_CustomValue::fixFieldValueOfTypeMemo($this->_formValues);
     require_once 'CRM/Contact/BAO/Query.php';
     $this->_queryParams =& CRM_Contact_BAO_Query::convertFormValues($this->_formValues);
     $this->set('formValues', $this->_formValues);
     $this->set('queryParams', $this->_queryParams);
     $buttonName = $this->controller->getButtonName();
     if ($buttonName == $this->_actionButtonName || $buttonName == $this->_printButtonName) {
         // check actionName and if next, then do not repeat a search, since we are going to the next page
         // hack, make sure we reset the task values
         $stateMachine =& $this->controller->getStateMachine();
         $formName = $stateMachine->getTaskFormName();
         $this->controller->resetPage($formName);
         return;
     }
     $sortID = null;
     if ($this->get(CRM_Utils_Sort::SORT_ID)) {
         $sortID = CRM_Utils_Sort::sortIDValue($this->get(CRM_Utils_Sort::SORT_ID), $this->get(CRM_Utils_Sort::SORT_DIRECTION));
     }
     require_once 'CRM/Contact/BAO/Query.php';
     $this->_queryParams =& CRM_Contact_BAO_Query::convertFormValues($this->_formValues);
     $selector =& new CRM_Case_Selector_Search($this->_queryParams, $this->_action, null, $this->_single, $this->_limit, $this->_context);
     $prefix = null;
     if ($this->_context == 'user') {
         $prefix = $this->_prefix;
     }
     $this->assign("{$prefix}limit", $this->_limit);
     $this->assign("{$prefix}single", $this->_single);
     $controller =& new CRM_Core_Selector_Controller($selector, $this->get(CRM_Utils_Pager::PAGE_ID), $sortID, CRM_Core_Action::VIEW, $this, CRM_Core_Selector_Controller::SESSION, $prefix);
     $controller->setEmbedded(true);
     $query =& $selector->getQuery();
     if ($this->_context == 'user') {
         $query->setSkipPermission(true);
     }
     $controller->run();
 }
 public function testFixFieldValueOfTypeMemoWithEmptyParams()
 {
     $params = array();
     $result = CRM_Core_BAO_CustomValue::fixFieldValueOfTypeMemo($params);
     $this->assertEquals($result, NULL, 'Checking the returned value of type Memo.');
 }
示例#4
0
 /**
  * The post processing of the form gets done here.
  *
  * Key things done during post processing are
  *      - check for reset or next request. if present, skip post processing.
  *      - now check if user requested running a saved search, if so, then
  *        the form values associated with the saved search are used for searching.
  *      - if user has done a submit with new values the regular post submission is
  *        done.
  * The processing consists of using a Selector / Controller framework for getting the
  * search results.
  */
 public function postProcess()
 {
     if ($this->_done) {
         return;
     }
     $this->_done = TRUE;
     if (!empty($_POST)) {
         $this->_formValues = $this->controller->exportValues($this->_name);
     }
     $this->fixFormValues();
     // We don't show test records in summaries or dashboards
     if (empty($this->_formValues['contribution_test']) && $this->_force && !empty($this->_context) && $this->_context == 'dashboard') {
         $this->_formValues["contribution_test"] = 0;
     }
     foreach (array('contribution_amount_low', 'contribution_amount_high') as $f) {
         if (isset($this->_formValues[$f])) {
             $this->_formValues[$f] = CRM_Utils_Rule::cleanMoney($this->_formValues[$f]);
         }
     }
     $config = CRM_Core_Config::singleton();
     if (!empty($_POST)) {
         $specialParams = array('financial_type_id', 'contribution_soft_credit_type_id', 'contribution_status_id', 'contribution_source', 'contribution_trxn_id', 'contribution_page_id', 'contribution_product_id');
         foreach ($specialParams as $element) {
             $value = CRM_Utils_Array::value($element, $this->_formValues);
             if ($value) {
                 if (is_array($value)) {
                     $this->_formValues[$element] = array('IN' => $value);
                 } else {
                     $this->_formValues[$element] = array('LIKE' => "%{$value}%");
                 }
             }
         }
         $tags = CRM_Utils_Array::value('contact_tags', $this->_formValues);
         if ($tags && !is_array($tags)) {
             unset($this->_formValues['contact_tags']);
             $this->_formValues['contact_tags'][$tags] = 1;
         }
         if ($tags && is_array($tags)) {
             unset($this->_formValues['contact_tags']);
             foreach ($tags as $notImportant => $tagID) {
                 $this->_formValues['contact_tags'][$tagID] = 1;
             }
         }
         if (!$config->groupTree) {
             $group = CRM_Utils_Array::value('group', $this->_formValues);
             if ($group && !is_array($group)) {
                 unset($this->_formValues['group']);
                 $this->_formValues['group'][$group] = 1;
             }
             if ($group && is_array($group)) {
                 unset($this->_formValues['group']);
                 foreach ($group as $notImportant => $groupID) {
                     $this->_formValues['group'][$groupID] = 1;
                 }
             }
         }
     }
     CRM_Core_BAO_CustomValue::fixFieldValueOfTypeMemo($this->_formValues);
     $this->_queryParams = CRM_Contact_BAO_Query::convertFormValues($this->_formValues);
     $this->set('formValues', $this->_formValues);
     $this->set('queryParams', $this->_queryParams);
     $buttonName = $this->controller->getButtonName();
     if ($buttonName == $this->_actionButtonName) {
         // check actionName and if next, then do not repeat a search, since we are going to the next page
         // hack, make sure we reset the task values
         $stateMachine = $this->controller->getStateMachine();
         $formName = $stateMachine->getTaskFormName();
         $this->controller->resetPage($formName);
         return;
     }
     $sortID = NULL;
     if ($this->get(CRM_Utils_Sort::SORT_ID)) {
         $sortID = CRM_Utils_Sort::sortIDValue($this->get(CRM_Utils_Sort::SORT_ID), $this->get(CRM_Utils_Sort::SORT_DIRECTION));
     }
     $this->_queryParams = CRM_Contact_BAO_Query::convertFormValues($this->_formValues);
     $selector = new CRM_Contribute_Selector_Search($this->_queryParams, $this->_action, NULL, $this->_single, $this->_limit, $this->_context);
     $selector->setKey($this->controller->_key);
     $prefix = NULL;
     if ($this->_context == 'basic' || $this->_context == 'user') {
         $prefix = $this->_prefix;
     }
     $controller = new CRM_Core_Selector_Controller($selector, $this->get(CRM_Utils_Pager::PAGE_ID), $sortID, CRM_Core_Action::VIEW, $this, CRM_Core_Selector_Controller::SESSION, $prefix);
     $controller->setEmbedded(TRUE);
     $query =& $selector->getQuery();
     if ($this->_context == 'user') {
         $query->setSkipPermission(TRUE);
     }
     $summary =& $query->summaryContribution($this->_context);
     $this->set('summary', $summary);
     $this->assign('contributionSummary', $summary);
     $controller->run();
 }
示例#5
0
 /**
  * The post processing of the form gets done here.
  *
  * Key things done during post processing are
  *      - check for reset or next request. if present, skip post procesing.
  *      - now check if user requested running a saved search, if so, then
  *        the form values associated with the saved search are used for searching.
  *      - if user has done a submit with new values the regular post submissing is
  *        done.
  * The processing consists of using a Selector / Controller framework for getting the
  * search results.
  *
  * @param
  *
  * @return void
  * @access public
  */
 function postProcess()
 {
     $this->set('isAdvanced', '1');
     // get user submitted values
     // get it from controller only if form has been submitted, else preProcess has set this
     if (!empty($_POST)) {
         $this->_formValues = $this->controller->exportValues($this->_name);
         $this->normalizeFormValues();
         // FIXME: couldn't figure out a good place to do this,
         // FIXME: so leaving this as a dependency for now
         if (array_key_exists('contribution_amount_low', $this->_formValues)) {
             foreach (array('contribution_amount_low', 'contribution_amount_high') as $f) {
                 $this->_formValues[$f] = CRM_Utils_Rule::cleanMoney($this->_formValues[$f]);
             }
         }
         // set the group if group is submitted
         if (!empty($this->_formValues['uf_group_id'])) {
             $this->set('id', $this->_formValues['uf_group_id']);
         } else {
             $this->set('id', '');
         }
     }
     // retrieve ssID values only if formValues is null, i.e. form has never been posted
     if (empty($this->_formValues) && isset($this->_ssID)) {
         $this->_formValues = CRM_Contact_BAO_SavedSearch::getFormValues($this->_ssID);
     }
     if (isset($this->_groupID) && !CRM_Utils_Array::value('group', $this->_formValues)) {
         $this->_formValues['group'] = array($this->_groupID => 1);
     }
     //search for civicase
     if (is_array($this->_formValues)) {
         $allCases = FALSE;
         if (array_key_exists('case_owner', $this->_formValues) && !$this->_formValues['case_owner'] && !$this->_force) {
             foreach (array('case_type_id', 'case_status_id', 'case_deleted', 'case_tags') as $caseCriteria) {
                 if (CRM_Utils_Array::value($caseCriteria, $this->_formValues)) {
                     $allCases = TRUE;
                     $this->_formValues['case_owner'] = 1;
                     continue;
                 }
             }
             if ($allCases) {
                 if (CRM_Core_Permission::check('access all cases and activities')) {
                     $this->_formValues['case_owner'] = 1;
                 } else {
                     $this->_formValues['case_owner'] = 2;
                 }
             } else {
                 $this->_formValues['case_owner'] = 0;
             }
         }
     }
     // we dont want to store the sortByCharacter in the formValue, it is more like
     // a filter on the result set
     // this filter is reset if we click on the search button
     if ($this->_sortByCharacter !== NULL && empty($_POST)) {
         if (strtolower($this->_sortByCharacter) == 'all') {
             $this->_formValues['sortByCharacter'] = NULL;
         } else {
             $this->_formValues['sortByCharacter'] = $this->_sortByCharacter;
         }
     } else {
         $this->_sortByCharacter = NULL;
     }
     CRM_Core_BAO_CustomValue::fixFieldValueOfTypeMemo($this->_formValues);
     $this->_params = CRM_Contact_BAO_Query::convertFormValues($this->_formValues);
     $this->_returnProperties =& $this->returnProperties();
     parent::postProcess();
 }
示例#6
0
 /**
  * The post processing of the form gets done here.
  *
  * Key things done during post processing are
  *      - check for reset or next request. if present, skip post procesing.
  *      - now check if user requested running a saved search, if so, then
  *        the form values associated with the saved search are used for searching.
  *      - if user has done a submit with new values the regular post submissing is 
  *        done.
  * The processing consists of using a Selector / Controller framework for getting the
  * search results.
  *
  * @param
  *
  * @return void 
  * @access public
  */
 function postProcess()
 {
     if ($this->_done) {
         return;
     }
     $this->_done = true;
     if (!empty($_POST)) {
         $this->_formValues = $this->controller->exportValues($this->_name);
     }
     $this->fixFormValues();
     // we don't show test contributions in Contact Summary / User Dashboard
     // in Search mode by default we hide test contributions
     if (!CRM_Utils_Array::value('contribution_test', $this->_formValues)) {
         $this->_formValues["contribution_test"] = 0;
     }
     foreach (array('contribution_amount_low', 'contribution_amount_high') as $f) {
         if (isset($this->_formValues[$f])) {
             $this->_formValues[$f] = CRM_Utils_Rule::cleanMoney($this->_formValues[$f]);
         }
     }
     require_once 'CRM/Core/BAO/CustomValue.php';
     CRM_Core_BAO_CustomValue::fixFieldValueOfTypeMemo($this->_formValues);
     require_once 'CRM/Contact/BAO/Query.php';
     $this->_queryParams =& CRM_Contact_BAO_Query::convertFormValues($this->_formValues);
     $this->set('formValues', $this->_formValues);
     $this->set('queryParams', $this->_queryParams);
     $buttonName = $this->controller->getButtonName();
     if ($buttonName == $this->_actionButtonName || $buttonName == $this->_printButtonName) {
         // check actionName and if next, then do not repeat a search, since we are going to the next page
         // hack, make sure we reset the task values
         $stateMachine =& $this->controller->getStateMachine();
         $formName = $stateMachine->getTaskFormName();
         $this->controller->resetPage($formName);
         return;
     }
     $sortID = null;
     if ($this->get(CRM_Utils_Sort::SORT_ID)) {
         $sortID = CRM_Utils_Sort::sortIDValue($this->get(CRM_Utils_Sort::SORT_ID), $this->get(CRM_Utils_Sort::SORT_DIRECTION));
     }
     require_once 'CRM/Contact/BAO/Query.php';
     $this->_queryParams =& CRM_Contact_BAO_Query::convertFormValues($this->_formValues);
     $selector =& new CRM_Contribute_Selector_Search($this->_queryParams, $this->_action, null, $this->_single, $this->_limit, $this->_context);
     $prefix = null;
     if ($this->_context == 'basic' || $this->_context == 'user') {
         $prefix = $this->_prefix;
     }
     $controller =& new CRM_Core_Selector_Controller($selector, $this->get(CRM_Utils_Pager::PAGE_ID), $sortID, CRM_Core_Action::VIEW, $this, CRM_Core_Selector_Controller::SESSION, $prefix);
     $controller->setEmbedded(true);
     $query =& $selector->getQuery();
     if ($this->_context == 'user') {
         $query->setSkipPermission(true);
     }
     $summary =& $query->summaryContribution();
     $this->set('summary', $summary);
     $this->assign('contributionSummary', $summary);
     $controller->run();
 }
示例#7
0
文件: Search.php 项目: hguru/224Civi
 /**
  * The post processing of the form gets done here.
  *
  * Key things done during post processing are
  *      - check for reset or next request. if present, skip post procesing.
  *      - now check if user requested running a saved search, if so, then
  *        the form values associated with the saved search are used for searching.
  *      - if user has done a submit with new values the regular post submissing is
  *        done.
  * The processing consists of using a Selector / Controller framework for getting the
  * search results.
  *
  * @param
  *
  * @return void
  * @access public
  */
 function postProcess()
 {
     if ($this->_done) {
         return;
     }
     $this->_done = TRUE;
     if (!empty($_POST)) {
         $this->_formValues = $this->controller->exportValues($this->_name);
     }
     if (empty($this->_formValues)) {
         $this->_formValues = $this->controller->exportValues($this->_name);
     }
     $this->fixFormValues();
     if (isset($this->_ssID) && empty($_POST)) {
         // if we are editing / running a saved search and the form has not been posted
         $this->_formValues = CRM_Contact_BAO_SavedSearch::getFormValues($this->_ssID);
     }
     // We don't show test records in summaries or dashboards
     if (empty($this->_formValues['participant_test']) && $this->_force) {
         $this->_formValues["participant_test"] = 0;
     }
     CRM_Core_BAO_CustomValue::fixFieldValueOfTypeMemo($this->_formValues);
     $this->_queryParams = CRM_Contact_BAO_Query::convertFormValues($this->_formValues);
     $this->set('formValues', $this->_formValues);
     $this->set('queryParams', $this->_queryParams);
     $buttonName = $this->controller->getButtonName();
     if ($buttonName == $this->_actionButtonName || $buttonName == $this->_printButtonName) {
         // check actionName and if next, then do not repeat a search, since we are going to the next page
         // hack, make sure we reset the task values
         $stateMachine = $this->controller->getStateMachine();
         $formName = $stateMachine->getTaskFormName();
         $this->controller->resetPage($formName);
         return;
     }
     $sortID = NULL;
     if ($this->get(CRM_Utils_Sort::SORT_ID)) {
         $sortID = CRM_Utils_Sort::sortIDValue($this->get(CRM_Utils_Sort::SORT_ID), $this->get(CRM_Utils_Sort::SORT_DIRECTION));
     }
     $this->_queryParams = CRM_Contact_BAO_Query::convertFormValues($this->_formValues);
     $selector = new CRM_Event_Selector_Search($this->_queryParams, $this->_action, NULL, $this->_single, $this->_limit, $this->_context);
     $selector->setKey($this->controller->_key);
     $prefix = NULL;
     if ($this->_context == 'user') {
         $prefix = $this->_prefix;
     }
     $this->assign("{$prefix}limit", $this->_limit);
     $this->assign("{$prefix}single", $this->_single);
     $controller = new CRM_Core_Selector_Controller($selector, $this->get(CRM_Utils_Pager::PAGE_ID), $sortID, CRM_Core_Action::VIEW, $this, CRM_Core_Selector_Controller::SESSION, $prefix);
     $controller->setEmbedded(TRUE);
     $query = $selector->getQuery();
     if ($this->_context == 'user') {
         $query->setSkipPermission(TRUE);
     }
     $controller->run();
 }
示例#8
0
 /**
  * The post processing of the form gets done here.
  *
  * Key things done during post processing are
  *      - check for reset or next request. if present, skip post procesing.
  *      - now check if user requested running a saved search, if so, then
  *        the form values associated with the saved search are used for searching.
  *      - if user has done a submit with new values the regular post submissing is 
  *        done.
  * The processing consists of using a Selector / Controller framework for getting the
  * search results.
  *
  * @param
  *
  * @return void 
  * @access public
  */
 function postProcess()
 {
     if ($this->_done) {
         return;
     }
     $this->_done = true;
     $this->_formValues = $this->controller->exportValues($this->_name);
     $this->fixFormValues();
     // we don't show test memberships in Contact Summary / User Dashboard
     // in Search mode by default we hide test memberships
     if (!CRM_Utils_Array::value('member_test', $this->_formValues)) {
         $this->_formValues["member_test"] = 0;
     }
     require_once 'CRM/Core/BAO/CustomValue.php';
     CRM_Core_BAO_CustomValue::fixFieldValueOfTypeMemo($this->_formValues);
     require_once 'CRM/Contact/BAO/Query.php';
     $this->_queryParams =& CRM_Contact_BAO_Query::convertFormValues($this->_formValues);
     $this->set('formValues', $this->_formValues);
     $this->set('queryParams', $this->_queryParams);
     $buttonName = $this->controller->getButtonName();
     if ($buttonName == $this->_actionButtonName || $buttonName == $this->_printButtonName) {
         // check actionName and if next, then do not repeat a search, since we are going to the next page
         // hack, make sure we reset the task values
         $stateMachine =& $this->controller->getStateMachine();
         $formName = $stateMachine->getTaskFormName();
         $this->controller->resetPage($formName);
         return;
     }
     $sortID = null;
     if ($this->get(CRM_Utils_Sort::SORT_ID)) {
         $sortID = CRM_Utils_Sort::sortIDValue($this->get(CRM_Utils_Sort::SORT_ID), $this->get(CRM_Utils_Sort::SORT_DIRECTION));
     }
     require_once 'CRM/Contact/BAO/Query.php';
     $this->_queryParams =& CRM_Contact_BAO_Query::convertFormValues($this->_formValues);
     require_once "CRM/Member/Selector/Search.php";
     $selector = new CRM_Member_Selector_Search($this->_queryParams, $this->_action, null, $this->_single, $this->_limit, $this->_context);
     $selector->setKey($this->controller->_key);
     $prefix = null;
     if ($this->_context == 'basic') {
         $prefix = $this->_prefix;
     }
     $controller = new CRM_Core_Selector_Controller($selector, $this->get(CRM_Utils_Pager::PAGE_ID), $sortID, CRM_Core_Action::VIEW, $this, CRM_Core_Selector_Controller::SESSION, $prefix);
     $controller->setEmbedded(true);
     $query =& $selector->getQuery();
     $controller->run();
 }
示例#9
0
 /**
  * The post processing of the form gets done here.
  *
  * Key things done during post processing are
  *      - check for reset or next request. if present, skip post procesing.
  *      - now check if user requested running a saved search, if so, then
  *        the form values associated with the saved search are used for searching.
  *      - if user has done a submit with new values the regular post submissing is 
  *        done.
  * The processing consists of using a Selector / Controller framework for getting the
  * search results.
  *
  * @param
  *
  * @return void 
  * @access public
  */
 function postProcess()
 {
     $session =& CRM_Core_Session::singleton();
     $session->set('isAdvanced', '1');
     // get user submitted values
     // get it from controller only if form has been submitted, else preProcess has set this
     if (!empty($_POST)) {
         $this->_formValues = $this->controller->exportValues($this->_name);
         // FIXME: couldn't figure out a good place to do this,
         // FIXME: so leaving this as a dependency for now
         if (array_key_exists('contribution_amount_low', $this->_formValues)) {
             foreach (array('contribution_amount_low', 'contribution_amount_high') as $f) {
                 $this->_formValues[$f] = CRM_Utils_Rule::cleanMoney($this->_formValues[$f]);
             }
         }
         //assigning event values for autocomplete event selection
         $eventSearchIds = array('event_id' => 'event_name_id', 'event_type' => 'event_type_id', 'participant_fee_level' => 'participant_fee_id');
         foreach ($eventSearchIds as $key => $value) {
             $this->_formValues[$key] = empty($this->_formValues[$key]) ? '' : $this->_formValues[$value];
             $this->_formValues[$value] = '';
         }
         // set the group if group is submitted
         if ($this->_formValues['uf_group_id']) {
             $this->set('id', $this->_formValues['uf_group_id']);
         } else {
             $this->set('id', '');
         }
     }
     // retrieve ssID values only if formValues is null, i.e. form has never been posted
     if (empty($this->_formValues) && isset($this->_ssID)) {
         $this->_formValues = CRM_Contact_BAO_SavedSearch::getFormValues($this->_ssID);
     }
     if (isset($this->_groupID) && !CRM_Utils_Array::value('group', $this->_formValues)) {
         $this->_formValues['group'] = array($this->_groupID => 1);
     }
     //search for civicase
     if (is_array($this->_formValues)) {
         if (array_key_exists('case_owner', $this->_formValues) && !$this->_formValues['case_owner'] && !$this->_force) {
             $this->_formValues['case_owner'] = 0;
         } else {
             if (array_key_exists('case_owner', $this->_formValues)) {
                 $this->_formValues['case_owner'] = 1;
             }
         }
     }
     // we dont want to store the sortByCharacter in the formValue, it is more like
     // a filter on the result set
     // this filter is reset if we click on the search button
     if ($this->_sortByCharacter && empty($_POST)) {
         if ($this->_sortByCharacter == 1) {
             $this->_formValues['sortByCharacter'] = null;
         } else {
             $this->_formValues['sortByCharacter'] = $this->_sortByCharacter;
         }
     }
     require_once 'CRM/Core/BAO/CustomValue.php';
     CRM_Core_BAO_CustomValue::fixFieldValueOfTypeMemo($this->_formValues);
     require_once 'CRM/Contact/BAO/Query.php';
     $this->_params =& CRM_Contact_BAO_Query::convertFormValues($this->_formValues);
     $this->_returnProperties =& $this->returnProperties();
     parent::postProcess();
 }
示例#10
0
 /**
  * The post processing of the form gets done here.
  *
  * Key things done during post processing are
  *      - check for reset or next request. if present, skip post procesing.
  *      - now check if user requested running a saved search, if so, then
  *        the form values associated with the saved search are used for searching.
  *      - if user has done a submit with new values the regular post submissing is
  *        done.
  *
  * The processing consists of using a Selector / Controller framework for getting the
  * search results.
  */
 public function postProcess()
 {
     if ($this->_done) {
         return;
     }
     $this->_done = TRUE;
     if (!empty($_POST)) {
         $this->_formValues = $this->controller->exportValues($this->_name);
         foreach (array('activity_type_id', 'status_id', 'activity_subject') as $element) {
             $value = CRM_Utils_Array::value($element, $this->_formValues);
             if ($value) {
                 if (is_array($value)) {
                     if ($element == 'status_id') {
                         unset($this->_formValues[$element]);
                         $element = 'activity_' . $element;
                     }
                     $this->_formValues[$element] = array('IN' => $value);
                 } else {
                     $this->_formValues[$element] = array('LIKE' => "%{$value}%");
                 }
             }
         }
     }
     $this->fixFormValues();
     if (isset($this->_ssID) && empty($_POST)) {
         // if we are editing / running a saved search and the form has not been posted
         $this->_formValues = CRM_Contact_BAO_SavedSearch::getFormValues($this->_ssID);
     }
     // We don't show test records in summaries or dashboards
     if (empty($this->_formValues['activity_test']) && $this->_force) {
         $this->_formValues["activity_test"] = 0;
     }
     CRM_Core_BAO_CustomValue::fixFieldValueOfTypeMemo($this->_formValues);
     $this->_queryParams = CRM_Contact_BAO_Query::convertFormValues($this->_formValues);
     $this->set('formValues', $this->_formValues);
     $this->set('queryParams', $this->_queryParams);
     $buttonName = $this->controller->getButtonName();
     if ($buttonName == $this->_actionButtonName) {
         // check actionName and if next, then do not repeat a search, since we are going to the next page
         // hack, make sure we reset the task values
         $stateMachine = $this->controller->getStateMachine();
         $formName = $stateMachine->getTaskFormName();
         $this->controller->resetPage($formName);
         return;
     }
     $sortID = NULL;
     if ($this->get(CRM_Utils_Sort::SORT_ID)) {
         $sortID = CRM_Utils_Sort::sortIDValue($this->get(CRM_Utils_Sort::SORT_ID), $this->get(CRM_Utils_Sort::SORT_DIRECTION));
     }
     $this->_queryParams = CRM_Contact_BAO_Query::convertFormValues($this->_formValues);
     $selector = new CRM_Activity_Selector_Search($this->_queryParams, $this->_action, NULL, $this->_single, $this->_limit, $this->_context);
     $selector->setKey($this->controller->_key);
     $prefix = NULL;
     if ($this->_context == 'basic' || $this->_context == 'user') {
         $prefix = $this->_prefix;
     }
     $controller = new CRM_Core_Selector_Controller($selector, $this->get(CRM_Utils_Pager::PAGE_ID), $sortID, CRM_Core_Action::VIEW, $this, CRM_Core_Selector_Controller::SESSION, $prefix);
     $controller->setEmbedded(TRUE);
     $query =& $selector->getQuery();
     if ($this->_context == 'user') {
         $query->setSkipPermission(TRUE);
     }
     $controller->run();
 }
示例#11
0
 function testFixFieldValueOfTypeMemoWithEmptyParams()
 {
     $params = array();
     require_once 'CRM/Core/BAO/CustomValue.php';
     $result = CRM_Core_BAO_CustomValue::fixFieldValueOfTypeMemo($params);
     $this->assertEquals($result, null, 'Checking the returned value of type Memo.');
 }
 /**
  * The post processing of the form gets done here.
  *
  * Key things done during post processing are
  *      - check for reset or next request. if present, skip post procesing.
  *      - now check if user requested running a saved search, if so, then
  *        the form values associated with the saved search are used for searching.
  *      - if user has done a submit with new values the regular post submissing is
  *        done.
  * The processing consists of using a Selector / Controller framework for getting the
  * search results.
  *
  * @param
  *
  * @return void
  * @access public
  */
 function postProcess()
 {
     if ($this->_done) {
         return;
     }
     $this->_done = TRUE;
     if (!empty($_POST)) {
         $this->_formValues = $this->controller->exportValues($this->_name);
     }
     $this->fixFormValues();
     if (isset($this->_ssID) && empty($_POST)) {
         // if we are editing / running a saved search and the form has not been posted
         $this->_formValues = CRM_Contact_BAO_SavedSearch::getFormValues($this->_ssID);
     }
     if (CRM_Utils_Array::value('activity_survey_id', $this->_formValues)) {
         // if the user has choosen a survey but not any activity type, we force the activity type
         $sid = CRM_Utils_Array::value('activity_survey_id', $this->_formValues);
         $activity_type_id = CRM_Core_DAO::getFieldValue('CRM_Campaign_DAO_Survey', $sid, 'activity_type_id');
         $this->_formValues['activity_type_id'][$activity_type_id] = 1;
     }
     if (!CRM_Utils_Array::value('activity_test', $this->_formValues)) {
         $this->_formValues["activity_test"] = 0;
     }
     if (!CRM_Utils_Array::value('activity_contact_name', $this->_formValues) && !CRM_Utils_Array::value('contact_id', $this->_formValues)) {
         $this->_formValues['activity_role'] = NULL;
     }
     CRM_Core_BAO_CustomValue::fixFieldValueOfTypeMemo($this->_formValues);
     $this->_queryParams = CRM_Contact_BAO_Query::convertFormValues($this->_formValues);
     $this->set('formValues', $this->_formValues);
     $this->set('queryParams', $this->_queryParams);
     $buttonName = $this->controller->getButtonName();
     if ($buttonName == $this->_actionButtonName || $buttonName == $this->_printButtonName) {
         // check actionName and if next, then do not repeat a search, since we are going to the next page
         // hack, make sure we reset the task values
         $stateMachine =& $this->controller->getStateMachine();
         $formName = $stateMachine->getTaskFormName();
         $this->controller->resetPage($formName);
         return;
     }
     $sortID = NULL;
     if ($this->get(CRM_Utils_Sort::SORT_ID)) {
         $sortID = CRM_Utils_Sort::sortIDValue($this->get(CRM_Utils_Sort::SORT_ID), $this->get(CRM_Utils_Sort::SORT_DIRECTION));
     }
     $this->_queryParams = CRM_Contact_BAO_Query::convertFormValues($this->_formValues);
     $selector = new CRM_Activity_Selector_Search($this->_queryParams, $this->_action, NULL, $this->_single, $this->_limit, $this->_context);
     $selector->setKey($this->controller->_key);
     $prefix = NULL;
     if ($this->_context == 'basic' || $this->_context == 'user') {
         $prefix = $this->_prefix;
     }
     $controller = new CRM_Core_Selector_Controller($selector, $this->get(CRM_Utils_Pager::PAGE_ID), $sortID, CRM_Core_Action::VIEW, $this, CRM_Core_Selector_Controller::SESSION, $prefix);
     $controller->setEmbedded(TRUE);
     $query =& $selector->getQuery();
     if ($this->_context == 'user') {
         $query->setSkipPermission(TRUE);
     }
     $controller->run();
 }