コード例 #1
0
 /**
  * Create the HTML output for the events column
  *
  * @param	obj		$item	The object array for the current item
  *
  * @return	str		The HTML output for the checkbox column
  */
 public function column_events($item)
 {
     $next_event = mdjm_get_employees_next_event($item->ID);
     $total_events = mdjm_count_employee_events($item->ID);
     printf(__('Next: %s', 'mobile-dj-manager'), !empty($next_event) ? '<a href="' . get_edit_post_link($next_event->ID) . '">' . mdjm_format_short_date(get_post_meta($next_event->ID, '_mdjm_event_date', true)) . '</a>' : __('None', 'mobile-dj-manager'));
     echo '<br />';
     printf(__('Total: %s', 'mobile-dj-manager'), !empty($total_events) ? '<a href="' . admin_url('edit.php?s&post_type=mdjm-event&post_status=all' . '&action=-1&mdjm_filter_date=0&mdjm_filter_type&mdjm_filter_employee=' . $item->ID . '&mdjm_filter_client=0&filter_action=Filter&paged=1&action2=-1') . '">' . $total_events . '</a>' : '0');
 }
コード例 #2
0
 /**
  * Retrieve an employee.
  *
  * @since	1.4
  * @return	void
  */
 public function get_employee()
 {
     global $wp_roles;
     if (!isset($this->request['employee_id']) && !isset($this->request['employee_email'])) {
         $this->missing_params('employee_id or employee_email');
     }
     do_action('mdjm_before_api_get_employee', $this);
     if (isset($this->request['employee_email']) && !isset($this->request['employee_id'])) {
         $field = 'email';
         $value = $this->request['employee_email'];
     } else {
         $field = 'id';
         $value = $this->request['employee_id'];
     }
     $employee = get_user_by($field, $value);
     if (!$employee) {
         $response['error'] = __('Employee could not be found.', 'mobile-dj-manager');
         $this->data = array_merge($response, $this->data);
         $this->output();
     }
     if (!mdjm_is_employee($employee->ID)) {
         $response['error'] = __('Error retrieving employee.', 'mobile-dj-manager');
         $this->data = array_merge($response, $this->data);
         $this->output();
     }
     $events = array();
     $roles = array();
     $mdjm_roles = MDJM()->roles->get_roles();
     $employee_events = mdjm_get_employee_events($employee->ID);
     $next_event = mdjm_get_employees_next_event($employee->ID);
     $i = 0;
     if ($employee_events) {
         foreach ($employee_events as $event) {
             $events[$event->ID] = get_post_meta($event->ID, '_mdjm_event_date', true);
             $i++;
         }
     }
     if (!empty($employee->roles)) {
         foreach ($employee->roles as $role) {
             if (array_key_exists($role, $mdjm_roles)) {
                 $roles[$role] = $mdjm_roles[$role];
             }
         }
     }
     $response['employee'] = array('ID' => $employee->ID, 'first_name' => $employee->first_name, 'last_name' => $employee->last_name, 'email' => $employee->user_email, 'roles' => $roles, 'last_login' => $employee->last_login, 'events' => $events, 'next_event' => array('id' => !empty($next_event) ? $next_event->ID : '', 'date' => !empty($next_event) ? get_post_meta($next_event->ID, '_mdjm_event_date', true) : ''), 'total_events' => $i);
     $this->data = array_merge($this->data, $response);
     do_action('mdjm_after_api_get_employee', $this);
     $this->output();
 }
コード例 #3
0
/**
 * Retrieve the next event.
 * If the current user is not an MDJM admin, only list their own event.
 *
 * @since	1.3
 * @param	int		$employee_id	User ID of employee. Leave empty to check for all employees.
 * @return	obj		Events WP_Post object.
 */
function mdjm_get_next_event($employee_id = '')
{
    if (!empty($employee_id) && !mdjm_employee_can('manage_all_events') && $employee_id != get_current_user_id()) {
        wp_die('<h1>' . __('Cheatin&#8217; uh?') . '</h1>' . '<p>' . sprintf(__('Your %s permissions do not permit you to search all %s!', 'mobile-dj-manager'), mdjm_get_label_singular(true), mdjm_get_label_plural(true)) . '</p>', 403);
    }
    if (!empty($employee_id) || !mdjm_employee_can('manage_all_events')) {
        $employee_id = !empty($employee_id) ? $employee_id : get_current_user_id();
        $event = mdjm_get_employees_next_event($employee_id);
    } else {
        $args = array('post_status' => mdjm_active_event_statuses(), 'posts_per_page' => 1, 'meta_key' => '_mdjm_event_date', 'orderby' => 'meta_value', 'order' => 'ASC');
        $event = mdjm_get_events($args);
        if (!empty($event)) {
            $event = $event[0];
        }
    }
    if (empty($event)) {
        return false;
    }
    return $event;
}