<?php
/*
+--------------------------------------------------------------------+
- | CiviCRM version 4.4 |
+ | CiviCRM version 4.5 |
+--------------------------------------------------------------------+
- | Copyright CiviCRM LLC (c) 2004-2013 |
+ | Copyright CiviCRM LLC (c) 2004-2014 |
+--------------------------------------------------------------------+
| This file is a part of CiviCRM. |
| |
/**
*
* @package CRM
- * @copyright CiviCRM LLC (c) 2004-2013
+ * @copyright CiviCRM LLC (c) 2004-2014
* $Id$
*
*/
* contact object. the params array could contain additional unused name/value
* pairs
*
- * @param array $params (reference) an assoc array of name/value pairs
+ * @param array $params an array of name/value pairs
*
* @return object CRM_Core_DAO_Mapper object on success, otherwise null
* @access public
* @static
*/
- static function add(&$params) {
+ static function add($params) {
$mapping = new CRM_Core_DAO_Mapping();
$mapping->copyValues($params);
$mapping->save();
*
* @params string $mappingTypeId mapping type id
*
+ * @param $mappingTypeId
+ *
* @return array $mapping array of mapping name
* @access public
* @static
*
* @params int $mappingId mapping id
*
+ * @param $mappingId
+ *
* @return array $mappingFields array of mapping fields
* @access public
* @static
- *
*/
static function getMappingFields($mappingId) {
//mapping is to be loaded from database
*
* @params $mapTypeId string mapping Type
*
- * @return boolean
+ * @param $nameField
+ * @param $mapTypeId
*
+ * @return boolean
*/
static function checkMapping($nameField, $mapTypeId) {
$mapping = new CRM_Core_DAO_Mapping();
*
* @params int $smartGroupId smart group id
*
- * @return $returnFields associated array of elements
+ * @param $smartGroupId
*
- * @static
+ * @return array $returnFields associated array of elements@static
* @public
*/
static function getFormattedFields($smartGroupId) {
* @params mixed $columnCount column count is int for and array for search builder
* @params int $blockCount block count (no of blocks shown)
*
+ * @param $form
+ * @param string $mappingType
+ * @param null $mappingId
+ * @param $columnNo
+ * @param int $blockCount
+ * @param null $exportMode
+ *
* @return void
* @access public
* @static
}
//Fix for Search Builder
if ($mappingType == 'Export') {
- if (!isset($mappingId)) {
+ if (!isset($mappingId) || $i >= count(reset($mappingName))) {
if (isset($formValues['mapper']) &&
isset($formValues['mapper'][$x][$i][1]) &&
array_key_exists($formValues['mapper'][$x][$i][1], $relationshipTypes)
* @relationshipTypeId related relationship type id
* @return $groupTitle all custom field titles
*/
+ /**
+ * @param $relationshipTypeId
+ *
+ * @return array
+ */
function getRelationTypeCustomGroupData($relationshipTypeId) {
$customFields = CRM_Core_BAO_CustomField::getFields('Relationship', NULL, NULL, $relationshipTypeId, NULL, NULL);
/**
* Function returns all Custom group Names
*
- * @param customfieldId related custom field id
- * @return $customGroupName all custom group names
- * @static
+ * @param related $customfieldId
+ *
+ * @internal param \related $customfieldId custom field id
+ * @return null|string $customGroupName all custom group names@static
*/
static function getCustomGroupName($customfieldId) {
if ($customFieldId = CRM_Core_BAO_CustomField::getKeyID($customfieldId)) {
* @params array $params associated array of submitted values
* @params boolean $row row no of the fields
*
- * @return $returnFields formatted associated array of elements
+ * @param $params
+ * @param bool $row
*
- * @static
+ * @return array $returnFields formatted associated array of elements@static
* @public
*/
- static function &formattedFields(&$params, $row = FALSE) {
+ static function formattedFields(&$params, $row = FALSE) {
$fields = array();
if (empty($params) || !isset($params['mapper'])) {
}
}
+ // CRM-14563: we store checkbox, multi-select and adv-multi select custom field using separator, hence it
+ // needs special handling.
+ if ($cfID = CRM_Core_BAO_CustomField::getKeyID($v[1])) {
+ $isCustomField = TRUE;
+ $customFieldType = CRM_Core_DAO::getFieldValue('CRM_Core_DAO_CustomField', $cfID, 'html_type');
+ $specialHTMLType = array(
+ 'CheckBox',
+ 'Multi-Select',
+ 'AdvMulti-Select',
+ 'Multi-Select State/Province',
+ 'Multi-Select Country'
+ );
+
+ // override the operator to handle separator ( note: this might have some performance issues )
+ if (in_array($customFieldType, $specialHTMLType)) {
+ // FIX ME: != and few other operators are not handled
+ $specialOperators = array('=', 'IN', 'LIKE');
+
+ if (in_array($params['operator'][$key][$k], $specialOperators)) {
+ $params['operator'][$key][$k] = 'RLIKE';
+ }
+ }
+ }
+
+ // CRM-14983: verify if values are comma separated convert to array
+ if (!is_array($value) && (strpos($value,',') !== false || strstr($value, '(')) && empty($isCustomField) && $params['operator'][$key][$k] == 'IN') {
+ preg_match('#\((.*?)\)#', $value, $match);
+ $tmpArray = explode(',', $match[1]);
+ $value = array_combine(array_values($tmpArray),array_values($tmpArray));
+ }
+
if ($row) {
$fields[] = array(
$fldName,
return $fields;
}
+ /**
+ * @param $params
+ *
+ * @return array
+ */
static function &returnProperties(&$params) {
$fields = array(
'contact_type' => 1,