/**
  * 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;
     }
 }
示例#2
0
 /**
  * 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);
}