/** * This function is a wrapper for ajax group selector * * @param array $params associated array for params record id. * * @return array $groupList associated array of group list * @access public */ public function getGroupListSelector(&$params) { // format the params $params['offset'] = ($params['page'] - 1) * $params['rp']; $params['rowCount'] = $params['rp']; $params['sort'] = CRM_Utils_Array::value('sortBy', $params); // get groups $groups = CRM_Contact_BAO_Group::getGroupList($params); // add total $params['total'] = CRM_Contact_BAO_Group::getGroupCount($params); // format params and add links $groupList = array(); if (!empty($groups)) { foreach ($groups as $id => $value) { $groupList[$id]['group_id'] = $value['id']; $groupList[$id]['group_name'] = $value['title']; $groupList[$id]['group_description'] = CRM_Utils_Array::value('description', $value); $groupList[$id]['group_type'] = CRM_Utils_Array::value('group_type', $value); $groupList[$id]['visibility'] = $value['visibility']; $groupList[$id]['links'] = $value['action']; $groupList[$id]['org_info'] = $value['org_info']; $groupList[$id]['class'] = $value['class']; } return $groupList; } }
/** * wrapper for ajax group selector. * * @param array $params * Associated array for params record id. * * @return array * associated array of group list * -rp = rowcount * -page= offset * @todo there seems little reason for the small number of functions that call this to pass in * params that then need to be translated in this function since they are coding them when calling */ public static function getGroupListSelector(&$params) { // format the params $params['offset'] = ($params['page'] - 1) * $params['rp']; $params['rowCount'] = $params['rp']; $params['sort'] = CRM_Utils_Array::value('sortBy', $params); // get groups $groups = CRM_Contact_BAO_Group::getGroupList($params); //skip total if we are making call to show only children if (empty($params['parent_id'])) { // add total $params['total'] = CRM_Contact_BAO_Group::getGroupCount($params); // get all the groups $allGroups = CRM_Core_PseudoConstant::allGroup(); } // format params and add links $groupList = array(); if (!empty($groups)) { foreach ($groups as $id => $value) { $groupList[$id]['group_id'] = $value['id']; $groupList[$id]['count'] = $value['count']; $groupList[$id]['group_name'] = $value['title']; // append parent names if in search mode if (empty($params['parent_id']) && !empty($value['parents'])) { $groupIds = explode(',', $value['parents']); $title = array(); foreach ($groupIds as $gId) { $title[] = $allGroups[$gId]; } $groupList[$id]['group_name'] .= '<div class="crm-row-parent-name"><em>' . ts('Child of') . '</em>: ' . implode(', ', $title) . '</div>'; $value['class'] = array_diff($value['class'], array('crm-row-parent')); } $value['class'][] = 'crm-entity'; $groupList[$id]['class'] = $value['id'] . ',' . implode(' ', $value['class']); $groupList[$id]['group_description'] = CRM_Utils_Array::value('description', $value); if (!empty($value['group_type'])) { $groupList[$id]['group_type'] = $value['group_type']; } else { $groupList[$id]['group_type'] = ''; } $groupList[$id]['visibility'] = $value['visibility']; $groupList[$id]['links'] = $value['action']; $groupList[$id]['org_info'] = CRM_Utils_Array::value('org_info', $value); $groupList[$id]['created_by'] = CRM_Utils_Array::value('created_by', $value); $groupList[$id]['is_parent'] = $value['is_parent']; } return $groupList; } }
/** * Functions below this ship commented out. Uncomment as required. * /** * Implements hook_civicrm_preProcess(). * * @link http://wiki.civicrm.org/confluence/display/CRMDOC/hook_civicrm_preProcess * function metrics_civicrm_preProcess($formName, &$form) { } */ function metrics_metrics_collate(&$data) { /********[ Relationships ] ********/ $sql = "SELECT COUNT(*) FROM civicrm_relationship"; $total =& CRM_Core_DAO::singleValueQuery($sql); $data[] = array("type" => "relationships", "data" => $total); /********[ Activities ] ********/ $sql = "SELECT COUNT(*) FROM civicrm_activity"; $total =& CRM_Core_DAO::singleValueQuery($sql); $data[] = array("type" => "activities", "data" => $total); /********[ Tags ] ********/ $sql = "SELECT name,COUNT(*) as total FROM civicrm_entity_tag LEFT JOIN civicrm_tag on (civicrm_entity_tag.tag_id = civicrm_tag.id) WHERE civicrm_entity_tag.entity_table = 'civicrm_contact' GROUP BY tag_id"; $dao =& CRM_Core_DAO::executeQuery($sql); $totals = array(); while ($dao->fetch()) { $totals[$dao->name] = $dao->total; } $data[] = array("type" => "tags", "data" => $totals); /********[ Groups ] ********/ $params = array(); $groups = CRM_Contact_BAO_Group::getGroupList($params); $totals = array(); foreach ($groups as $group) { $totals[$group['title']] = $group['count']; } $data[] = array("type" => "groups", "data" => $totals); /********[ Mail ] ********/ $mail = array(); $sql = "SELECT COUNT(*) FROM civicrm_mailing_recipients"; $mail['total_messages'] =& CRM_Core_DAO::singleValueQuery($sql); $sql = "SELECT COUNT(*) FROM (SELECT contact_id FROM civicrm_mailing_recipients GROUP BY contact_id)a"; $mail['unique_recipients'] =& CRM_Core_DAO::singleValueQuery($sql); $sql = "SELECT COUNT(*) FROM civicrm_mailing_event_trackable_url_open"; $mail['click_throughs'] =& CRM_Core_DAO::singleValueQuery($sql); $sql = "SELECT COUNT(*) FROM civicrm_mailing_event_opened"; $mail['opens'] =& CRM_Core_DAO::singleValueQuery($sql); $sql = "SELECT COUNT(*) FROM civicrm_mailing_event_bounce"; $mail['bounces'] =& CRM_Core_DAO::singleValueQuery($sql); $data[] = array("type" => "mailings", "data" => $mail); /********[ Registered Visits ] ********/ /********[ Events ] ********/ $totals = array(); $sql = "SELECT COUNT(*) FROM civicrm_participant"; $totals["total_participants"] =& CRM_Core_DAO::singleValueQuery($sql); $sql = "SELECT COUNT(*) FROM (SELECT contact_id FROM civicrm_participant GROUP BY contact_id)a"; $totals["unique_participants"] =& CRM_Core_DAO::singleValueQuery($sql); $sql = "SELECT COUNT(*) FROM civicrm_event WHERE is_template = 0"; $totals["total"] =& CRM_Core_DAO::singleValueQuery($sql); $data[] = array("type" => "events", "data" => $totals); /********[ Cases ] ********/ $sql = "SELECT civicrm_option_value.name,civicrm_option_value.value\nFROM civicrm_option_value LEFT JOIN civicrm_option_group ON (option_group_id = civicrm_option_group.id)\nWHERE civicrm_option_group.name = 'case_status'"; $dao =& CRM_Core_DAO::executeQuery($sql); $status = array(); while ($dao->fetch()) { $status[$dao->value] = $dao->name; } $sql = "SELECT status_id,COUNT(*) as total FROM civicrm_case WHERE is_deleted <> 1 GROUP BY status_id"; $dao =& CRM_Core_DAO::executeQuery($sql); $totals = array(); while ($dao->fetch()) { $totals[$status[$dao->status_id]] = $dao->total; } $data[] = array("type" => "cases", "data" => $totals); /********[ Languages ] ********/ $total = 1; $domain = new CRM_Core_DAO_Domain(); $domain->find(TRUE); if ($domain->locales) { $total = substr_count($domain->locales, "_"); } $data[] = array("type" => "languages", "data" => $total); }