/** * Implementation of hook_civicrm_tabs */ function hrabsence_civicrm_tabs(&$tabs, $contactID) { $contactType = CRM_Core_DAO::getFieldValue('CRM_Contact_DAO_Contact', $contactID, 'contact_type', 'id'); if (!($contactType == 'Individual' && CRM_HRAbsence_Page_EmployeeAbsencePage::checkPermissions($contactID, 'viewWidget'))) { return; } $absence = civicrm_api3('Activity', 'getabsences', array('target_contact_id' => $contactID)); $absenceDuration = 0; foreach ($absence['values'] as $k => $v) { $absenceDuration += CRM_HRAbsence_BAO_HRAbsenceType::getAbsenceDuration($v['id']); } CRM_HRAbsence_Page_EmployeeAbsencePage::registerResources($contactID); $tabs[] = array('id' => 'absenceTab', 'url' => CRM_Utils_System::url('civicrm/absences', array('cid' => $contactID, 'snippet' => 1)), 'count' => $absenceDuration / (8 * 60), 'title' => ts('Absences'), 'weight' => 300); }