X-Git-Url: https://vcs.fsf.org/?a=blobdiff_plain;f=CRM%2FContact%2FSelector.php;h=857868fee313c3e8b075ec712882490c481a10a3;hb=bada0f6668a8f2b1dd3210b7ecfa81db50e9f76d;hp=aa040d8e9b2c24a2500058773b7f8d8092f279ed;hpb=53591aa924a0fb1163d51ce85c41c76fd0f5605a;p=civicrm-core.git diff --git a/CRM/Contact/Selector.php b/CRM/Contact/Selector.php index aa040d8e9b..857868fee3 100644 --- a/CRM/Contact/Selector.php +++ b/CRM/Contact/Selector.php @@ -1,9 +1,9 @@ array( 'name' => ts('View'), 'url' => 'civicrm/contact/view', + 'class' => 'no-popup', 'qs' => "reset=1&cid=%%id%%{$searchContext}{$extraParams}", 'title' => ts('View Contact Details'), 'ref' => 'view-contact', @@ -243,6 +251,7 @@ class CRM_Contact_Selector extends CRM_Core_Selector_Base implements CRM_Core_Se CRM_Core_Action::UPDATE => array( 'name' => ts('Edit'), 'url' => 'civicrm/contact/add', + 'class' => 'no-popup', 'qs' => "reset=1&action=update&cid=%%id%%{$searchContext}{$extraParams}", 'title' => ts('Edit Contact Details'), 'ref' => 'edit-contact', @@ -267,7 +276,6 @@ class CRM_Contact_Selector extends CRM_Core_Selector_Base implements CRM_Core_Se if ($value['key'] == 'delete') { $contextVal = $searchContext; } - $url = "civicrm/contact/view/{$value['key']}"; $qs = "reset=1&action=add&cid=%%id%%{$contextVal}{$extraParams}"; if ($value['key'] == 'activity') { @@ -284,6 +292,7 @@ class CRM_Contact_Selector extends CRM_Core_Selector_Base implements CRM_Core_Se 'qs' => $qs, 'title' => $value['title'], 'ref' => $value['ref'], + 'class' => CRM_Utils_Array::value('class', $value), ); } } @@ -295,7 +304,10 @@ class CRM_Contact_Selector extends CRM_Core_Selector_Base implements CRM_Core_Se /** * getter for array of the parameters required for creating pager. * - * @param + * @param $action + * @param $params + * + * @internal param $ * @access public */ function getPagerParams($action, &$params) { @@ -308,6 +320,12 @@ class CRM_Contact_Selector extends CRM_Core_Selector_Base implements CRM_Core_Se } //end of function + /** + * @param null $action + * @param null $output + * + * @return array + */ function &getColHeads($action = NULL, $output = NULL) { $colHeads = self::_getColumnHeaders(); $colHeads[] = array('desc' => ts('Actions'), 'name' => ts('Action')); @@ -378,7 +396,7 @@ class CRM_Contact_Selector extends CRM_Core_Selector_Base implements CRM_Core_Se $locationTypes = CRM_Core_PseudoConstant::get('CRM_Core_DAO_Address', 'location_type_id'); foreach ($this->_fields as $name => $field) { - if (CRM_Utils_Array::value('in_selector', $field) && + if (!empty($field['in_selector']) && !in_array($name, $skipFields) ) { if (strpos($name, '-') !== FALSE) { @@ -545,8 +563,7 @@ class CRM_Contact_Selector extends CRM_Core_Selector_Base implements CRM_Core_Se $names = array(); static $skipFields = array('group', 'tag'); foreach ($this->_fields as $key => $field) { - if ( - CRM_Utils_Array::value('in_selector', $field) && + if (!empty($field['in_selector']) && !in_array($key, $skipFields) ) { if (strpos($key, '-') !== FALSE) { @@ -713,14 +730,14 @@ class CRM_Contact_Selector extends CRM_Core_Selector_Base implements CRM_Core_Se if ($output != CRM_Core_Selector_Controller::EXPORT) { $row['checkbox'] = CRM_Core_Form::CB_PREFIX . $result->contact_id; - if (CRM_Utils_Array::value('deleted_contacts', $this->_formValues) - && CRM_Core_Permission::check('access deleted contacts') + if (!empty($this->_formValues['deleted_contacts']) && CRM_Core_Permission::check('access deleted contacts') ) { $links = array( array( 'name' => ts('View'), 'url' => 'civicrm/contact/view', 'qs' => 'reset=1&cid=%%id%%', + 'class' => 'no-popup', 'title' => ts('View Contact Details'), ), array( @@ -738,18 +755,44 @@ class CRM_Contact_Selector extends CRM_Core_Selector_Base implements CRM_Core_Se 'title' => ts('Permanently Delete Contact'), ); } - $row['action'] = CRM_Core_Action::formLink($links, NULL, array('id' => $result->contact_id)); + $row['action'] = CRM_Core_Action::formLink( + $links, + NULL, + array('id' => $result->contact_id), + ts('more'), + FALSE, + 'contact.selector.row', + 'Contact', + $result->contact_id + ); } elseif ((is_numeric(CRM_Utils_Array::value('geo_code_1', $row))) || - ($config->mapGeoCoding && - CRM_Utils_Array::value('city', $row) && + ($config->mapGeoCoding && !empty($row['city']) && CRM_Utils_Array::value('state_province', $row) ) ) { - $row['action'] = CRM_Core_Action::formLink($links, $mask, array('id' => $result->contact_id)); + $row['action'] = CRM_Core_Action::formLink( + $links, + $mask, + array('id' => $result->contact_id), + ts('more'), + FALSE, + 'contact.selector.row', + 'Contact', + $result->contact_id + ); } else { - $row['action'] = CRM_Core_Action::formLink($links, $mapMask, array('id' => $result->contact_id)); + $row['action'] = CRM_Core_Action::formLink( + $links, + $mapMask, + array('id' => $result->contact_id), + ts('more'), + FALSE, + 'contact.selector.row', + 'Contact', + $result->contact_id + ); } // allow components to add more actions @@ -781,6 +824,11 @@ class CRM_Contact_Selector extends CRM_Core_Selector_Base implements CRM_Core_Se return $rows; } + /** + * @param $sort + * + * @return string + */ function buildPrevNextCache($sort) { $cacheKey = 'civicrm search ' . $this->_key; @@ -812,6 +860,9 @@ class CRM_Contact_Selector extends CRM_Core_Selector_Base implements CRM_Core_Se return $cacheKey; } + /** + * @param $rows + */ function addActions(&$rows) { $config = CRM_Core_Config::singleton(); @@ -830,8 +881,7 @@ class CRM_Contact_Selector extends CRM_Core_Selector_Base implements CRM_Core_Se foreach ($rows as $id => & $row) { - if (CRM_Utils_Array::value('deleted_contacts', $this->_formValues) - && CRM_Core_Permission::check('access deleted contacts') + if (!empty($this->_formValues['deleted_contacts']) && CRM_Core_Permission::check('access deleted contacts') ) { $links = array( array( @@ -855,18 +905,44 @@ class CRM_Contact_Selector extends CRM_Core_Selector_Base implements CRM_Core_Se 'title' => ts('Permanently Delete Contact'), ); } - $row['action'] = CRM_Core_Action::formLink($links, NULL, array('id' => $row['contact_id'])); + $row['action'] = CRM_Core_Action::formLink( + $links, + null, + array('id' => $row['contact_id']), + ts('more'), + FALSE, + 'contact.selector.actions', + 'Contact', + $row['contact_id'] + ); } elseif ((is_numeric(CRM_Utils_Array::value('geo_code_1', $row))) || - ($config->mapGeoCoding && - CRM_Utils_Array::value('city', $row) && + ($config->mapGeoCoding && !empty($row['city']) && CRM_Utils_Array::value('state_province', $row) ) ) { - $row['action'] = CRM_Core_Action::formLink($links, $mask, array('id' => $row['contact_id'])); + $row['action'] = CRM_Core_Action::formLink( + $links, + $mask, + array('id' => $row['contact_id']), + ts('more'), + FALSE, + 'contact.selector.actions', + 'Contact', + $row['contact_id'] + ); } else { - $row['action'] = CRM_Core_Action::formLink($links, $mapMask, array('id' => $row['contact_id'])); + $row['action'] = CRM_Core_Action::formLink( + $links, + $mapMask, + array('id' => $row['contact_id']), + ts('more'), + FALSE, + 'contact.selector.actions', + 'Contact', + $row['contact_id'] + ); } // allow components to add more actions @@ -879,6 +955,9 @@ class CRM_Contact_Selector extends CRM_Core_Selector_Base implements CRM_Core_Se } } + /** + * @param $rows + */ function removeActions(&$rows) { foreach ($rows as $rid => & $rValue) { unset($rValue['contact_type']); @@ -923,9 +1002,9 @@ SELECT 'civicrm_contact', contact_a.id, contact_a.id, '$cacheKey', contact_a.dis $sql = str_replace($replaceSQL, $insertSQL, $sql); - CRM_Core_Error::ignoreException(); + $errorScope = CRM_Core_TemporaryErrorScope::ignoreException(); $result = CRM_Core_DAO::executeQuery($sql); - CRM_Core_Error::setCallback(); + unset($errorScope); if (is_a($result, 'DB_Error')) { // check if we get error during core search @@ -949,9 +1028,10 @@ SELECT 'civicrm_contact', contact_a.id, contact_a.id, '$cacheKey', contact_a.dis * * @param int $start start for limit clause * @param int $end end for limit clause - * @param $object $sort sort object + * @param $sort * @param string $cacheKey cache key * + * @internal param $object $sort sort object * @return void */ function rebuildPreNextCache($start, $end, $sort, $cacheKey) { @@ -964,7 +1044,7 @@ SELECT 'civicrm_contact', contact_a.id, contact_a.id, '$cacheKey', contact_a.dis // build insert query, note that currently we build cache for 500 contact records at a time, hence below approach $insertValues = array(); while($dao->fetch()) { - $insertValues[] = "('civicrm_contact', {$dao->contact_id}, {$dao->contact_id}, '{$cacheKey}', '{$dao->sort_name}')"; + $insertValues[] = "('civicrm_contact', {$dao->contact_id}, {$dao->contact_id}, '{$cacheKey}', '" . CRM_Core_DAO::escapeString($dao->sort_name) . "')"; } //update pre/next cache using single insert query @@ -1051,7 +1131,7 @@ SELECT 'civicrm_contact', contact_a.id, contact_a.id, '$cacheKey', contact_a.dis ); foreach ($defaultAddress as $columnName => $column) { - if (CRM_Utils_Array::value($columnName, $addressOptions)) { + if (!empty($addressOptions[$columnName])) { self::$_columnHeaders[$columnName] = $column; } } @@ -1067,14 +1147,29 @@ SELECT 'civicrm_contact', contact_a.id, contact_a.id, '$cacheKey', contact_a.dis return self::$_columnHeaders; } + /** + * @return CRM_Contact_BAO_Query + */ function &getQuery() { return $this->_query; } + /** + * @return CRM_Contact_DAO_Contact + */ function alphabetQuery() { return $this->_query->searchQuery(NULL, NULL, NULL, FALSE, FALSE, TRUE); } + /** + * @param $params + * @param $action + * @param $sortID + * @param null $displayRelationshipType + * @param string $queryOperator + * + * @return CRM_Contact_DAO_Contact + */ function contactIDQuery($params, $action, $sortID, $displayRelationshipType = NULL, $queryOperator = 'AND') { $sortOrder = &$this->getSortOrder($this->_action); $sort = new CRM_Utils_Sort($sortOrder, $sortID); @@ -1107,6 +1202,11 @@ SELECT 'civicrm_contact', contact_a.id, contact_a.id, '$cacheKey', contact_a.dis return $value; } + /** + * @param $returnProperties + * + * @return array + */ function &makeProperties(&$returnProperties) { $properties = array(); foreach ($returnProperties as $name => $value) {