本文整理汇总了PHP中CRM_Contact_BAO_SavedSearch::find方法的典型用法代码示例。如果您正苦于以下问题:PHP CRM_Contact_BAO_SavedSearch::find方法的具体用法?PHP CRM_Contact_BAO_SavedSearch::find怎么用?PHP CRM_Contact_BAO_SavedSearch::find使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类CRM_Contact_BAO_SavedSearch
的用法示例。
在下文中一共展示了CRM_Contact_BAO_SavedSearch::find方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: createHiddenSmartGroup
/**
* This function create the hidden smart group when user perform
* contact search and want to send mailing to search contacts.
*
* @param array $params
* ( reference ) an assoc array of name/value pairs.
*
* @return array
* ( smartGroupId, ssId ) smart group id and saved search id
*/
public static function createHiddenSmartGroup($params)
{
$ssId = CRM_Utils_Array::value('saved_search_id', $params);
//add mapping record only for search builder saved search
$mappingId = NULL;
if ($params['search_context'] == 'builder') {
//save the mapping for search builder
if (!$ssId) {
//save record in mapping table
$temp = array();
$mappingParams = array('mapping_type' => 'Search Builder');
$mapping = CRM_Core_BAO_Mapping::add($mappingParams, $temp);
$mappingId = $mapping->id;
} else {
//get the mapping id from saved search
$savedSearch = new CRM_Contact_BAO_SavedSearch();
$savedSearch->id = $ssId;
$savedSearch->find(TRUE);
$mappingId = $savedSearch->mapping_id;
}
//save mapping fields
CRM_Core_BAO_Mapping::saveMappingFields($params['form_values'], $mappingId);
}
//create/update saved search record.
$savedSearch = new CRM_Contact_BAO_SavedSearch();
$savedSearch->id = $ssId;
$savedSearch->form_values = serialize($params['form_values']);
$savedSearch->mapping_id = $mappingId;
$savedSearch->search_custom_id = CRM_Utils_Array::value('search_custom_id', $params);
$savedSearch->save();
$ssId = $savedSearch->id;
if (!$ssId) {
return NULL;
}
$smartGroupId = NULL;
if (!empty($params['saved_search_id'])) {
$smartGroupId = CRM_Core_DAO::getFieldValue('CRM_Contact_DAO_Group', $ssId, 'id', 'saved_search_id');
} else {
//create group only when new saved search.
$groupParams = array('title' => "Hidden Smart Group {$ssId}", 'is_active' => CRM_Utils_Array::value('is_active', $params, 1), 'is_hidden' => CRM_Utils_Array::value('is_hidden', $params, 1), 'group_type' => CRM_Utils_Array::value('group_type', $params), 'visibility' => CRM_Utils_Array::value('visibility', $params), 'saved_search_id' => $ssId);
$smartGroup = self::create($groupParams);
$smartGroupId = $smartGroup->id;
}
return array($smartGroupId, $ssId);
}
示例2: postProcess
/**
* Process the form after the input has been submitted and validated.
*/
public function postProcess()
{
// saved search form values
// get form values of all the forms in this controller
$formValues = $this->controller->exportValues();
$isAdvanced = $this->get('isAdvanced');
$isSearchBuilder = $this->get('isSearchBuilder');
// add mapping record only for search builder saved search
$mappingId = NULL;
if ($isAdvanced == '2' && $isSearchBuilder == '1') {
//save the mapping for search builder
if (!$this->_id) {
//save record in mapping table
$mappingParams = array('mapping_type' => 'Search Builder');
$temp = array();
$mapping = CRM_Core_BAO_Mapping::add($mappingParams, $temp);
$mappingId = $mapping->id;
} else {
//get the mapping id from saved search
$savedSearch = new CRM_Contact_BAO_SavedSearch();
$savedSearch->id = $this->_id;
$savedSearch->find(TRUE);
$mappingId = $savedSearch->mapping_id;
}
//save mapping fields
CRM_Core_BAO_Mapping::saveMappingFields($formValues, $mappingId);
}
//save the search
$savedSearch = new CRM_Contact_BAO_SavedSearch();
$savedSearch->id = $this->_id;
// Use the query parameters rather than the form values - these have already been assessed / converted
// with the extra knowledge that the form has.
// Note that we want to move towards a standardised way of saving the query that is not
// an exact match for the form requirements & task the form layer with converting backwards and forwards.
// Ideally per CRM-17075 we will use entity reference fields heavily in the form layer & convert to the
// sql operator syntax at the query layer.
$savedSearch->form_values = serialize($this->get('queryParams'));
$savedSearch->mapping_id = $mappingId;
$savedSearch->search_custom_id = $this->get('customSearchID');
$savedSearch->save();
$this->set('ssID', $savedSearch->id);
CRM_Core_Session::setStatus(ts("Your smart group has been saved as '%1'.", array(1 => $formValues['title'])), ts('Group Saved'), 'success');
// also create a group that is associated with this saved search only if new saved search
$params = array();
$params['title'] = $formValues['title'];
$params['description'] = $formValues['description'];
if (isset($formValues['group_type']) && is_array($formValues['group_type'])) {
$params['group_type'] = CRM_Core_DAO::VALUE_SEPARATOR . implode(CRM_Core_DAO::VALUE_SEPARATOR, array_keys($formValues['group_type'])) . CRM_Core_DAO::VALUE_SEPARATOR;
} else {
$params['group_type'] = '';
}
$params['visibility'] = 'User and User Admin Only';
$params['saved_search_id'] = $savedSearch->id;
$params['is_active'] = 1;
//CRM-14190
$params['parents'] = $formValues['parents'];
if ($this->_id) {
$params['id'] = CRM_Contact_BAO_SavedSearch::getName($this->_id, 'id');
}
$group = CRM_Contact_BAO_Group::create($params);
// CRM-9464
$this->_id = $savedSearch->id;
//CRM-14190
if (!empty($formValues['parents'])) {
CRM_Contact_BAO_GroupNestingCache::update();
}
}
示例3: postProcess
/**
* process the form after the input has been submitted and validated
*
* @access public
* @return void
*/
public function postProcess()
{
// saved search form values
// get form values of all the forms in this controller
$formValues = $this->controller->exportValues();
$isAdvanced = $this->get('isAdvanced');
$isSearchBuilder = $this->get('isSearchBuilder');
// add mapping record only for search builder saved search
$mappingId = null;
if ($isAdvanced == '2' && $isSearchBuilder == '1') {
//save the mapping for search builder
require_once "CRM/Core/BAO/Mapping.php";
if (!$this->_id) {
//save record in mapping table
$mappingParams = array('mapping_type' => 'Search Builder');
$temp = array();
$mapping = CRM_Core_BAO_Mapping::add($mappingParams, $temp);
$mappingId = $mapping->id;
} else {
//get the mapping id from saved search
require_once "CRM/Contact/BAO/SavedSearch.php";
$savedSearch = new CRM_Contact_BAO_SavedSearch();
$savedSearch->id = $this->_id;
$savedSearch->find(true);
$mappingId = $savedSearch->mapping_id;
}
//save mapping fields
CRM_Core_BAO_Mapping::saveMappingFields($formValues, $mappingId);
}
//save the search
$savedSearch = new CRM_Contact_BAO_SavedSearch();
$savedSearch->id = $this->_id;
$savedSearch->form_values = serialize($this->get('formValues'));
$savedSearch->mapping_id = $mappingId;
$savedSearch->search_custom_id = $this->get('customSearchID');
$savedSearch->save();
$this->set('ssID', $savedSearch->id);
CRM_Core_Session::setStatus(ts('Your smart group has been saved as \'%1\'.', array(1 => $formValues['title'])));
// also create a group that is associated with this saved search only if new saved search
$params = array();
$params['title'] = $formValues['title'];
$params['description'] = $formValues['description'];
if (is_array($formValues['group_type'])) {
$params['group_type'] = CRM_Core_DAO::VALUE_SEPARATOR . implode(CRM_Core_DAO::VALUE_SEPARATOR, array_keys($formValues['group_type'])) . CRM_Core_DAO::VALUE_SEPARATOR;
} else {
$params['group_type'] = '';
}
$params['visibility'] = 'User and User Admin Only';
$params['saved_search_id'] = $savedSearch->id;
$params['is_active'] = 1;
if ($this->_id) {
$params['id'] = CRM_Contact_BAO_SavedSearch::getName($this->_id, 'id');
}
require_once 'CRM/Contact/BAO/Group.php';
$group =& CRM_Contact_BAO_Group::create($params);
}