Exemple #1
0
 public function get_search_items($group_id = false)
 {
     // Override group_id if its a search
     $group_id = \Input::get('user_group', $group_id);
     if ($group_id && \Sentry::group_exists((int) $group_id)) {
         // Get only group users
         \View::set_global('group', \Sentry::group((int) $group_id));
         $items = \Sentry::group((int) $group_id)->users();
     } else {
         $items = \Sentry::user()->all('admin');
     }
     // Reset to empty array if there are no result found by query
     if (is_null($items)) {
         $items = array();
     }
     // Get user objects
     if (!empty($items)) {
         foreach ($items as $key => $item) {
             $items[$key] = \Sentry::user((int) $item['id']);
         }
         // Get search filters
         foreach (\Input::get() as $key => $value) {
             if (!empty($value) || $value == '0') {
                 switch ($key) {
                     case 'title':
                         foreach ($items as $number => $item) {
                             if (empty($item['metadata'])) {
                                 unset($items[$number]);
                                 continue;
                             }
                             $full_name = $item->get('metadata.first_name') . ' ' . $item->get('metadata.last_name');
                             if (stripos($full_name, $value) === false) {
                                 unset($items[$number]);
                             }
                         }
                         break;
                     case 'email':
                         foreach ($items as $number => $item) {
                             if (stripos($item->email, $value) === false) {
                                 unset($items[$number]);
                             }
                         }
                         break;
                     case 'country':
                         if ($value && $value !== 'false') {
                             foreach ($items as $number => $item) {
                                 if (empty($item['metadata'])) {
                                     unset($items[$number]);
                                     continue;
                                 }
                                 if (stripos($item->get('metadata.country'), $value) === false) {
                                     unset($items[$number]);
                                 }
                             }
                         }
                         break;
                     case 'postcode_from':
                         foreach ($items as $number => $item) {
                             if (empty($item['metadata'])) {
                                 unset($items[$number]);
                                 continue;
                             }
                             if ($item->get('metadata.postcode') < $value) {
                                 unset($items[$number]);
                             }
                         }
                         break;
                     case 'postcode_to':
                         foreach ($items as $number => $item) {
                             if (empty($item['metadata'])) {
                                 unset($items[$number]);
                                 continue;
                             }
                             if ($item->get('metadata.postcode') > $value) {
                                 unset($items[$number]);
                             }
                         }
                         break;
                 }
             }
         }
     }
     // Reset to empty array if there are no result found by query
     if (is_null($items)) {
         $items = array();
     }
     // Initiate pagination
     $pagination = \Hybrid\Pagination::make(array('total_items' => count($items), 'per_page' => \Input::get('per_page', 10), 'uri_segment' => null));
     // Remove unwanted items, and show only required ones
     $items = array_slice($items, $pagination->offset, $pagination->per_page);
     return array('items' => $items, 'pagination' => $pagination);
 }
 public function get_search_customers($group_id = false)
 {
     // Override group_id if its a search
     $group_id = \Input::get('user_group', $group_id);
     $activated = \Input::get('activated', false);
     if (\Input::get()) {
         if ($group_id && \Sentry::group_exists((int) $group_id)) {
             // Get only group users
             \View::set_global('group', \Sentry::group((int) $group_id));
             $items = \Sentry::group((int) $group_id)->users();
         } else {
             // Get all users and remove admin users from array
             $items = \Sentry::user()->all('front');
         }
     }
     // Reset to empty array if there are no result found by query
     if (empty($items)) {
         $items = array();
     }
     // Get user objects
     if (!empty($items)) {
         foreach ($items as $key => $item) {
             $items[$key] = \Sentry::user((int) $item['id']);
         }
         // Get search filters
         foreach (\Input::get() as $key => $value) {
             if (!empty($value) || $value == '0') {
                 switch ($key) {
                     case 'title':
                         foreach ($items as $number => $item) {
                             if (empty($item['metadata'])) {
                                 unset($items[$number]);
                                 continue;
                             }
                             $full_name = $item->get('metadata.first_name') . ' ' . $item->get('metadata.last_name');
                             $customer_id = $item->get('metadata.user_id');
                             if (stripos($full_name, $value) === false && stripos($customer_id, $value) === false) {
                                 unset($items[$number]);
                             }
                         }
                         break;
                     case 'email':
                         foreach ($items as $number => $item) {
                             if (stripos($item->email, $value) === false) {
                                 unset($items[$number]);
                             }
                         }
                         break;
                     case 'country':
                         if ($value && $value !== 'false') {
                             foreach ($items as $number => $item) {
                                 if (empty($item['metadata'])) {
                                     unset($items[$number]);
                                     continue;
                                 }
                                 if (stripos($item->get('metadata.country'), $value) === false) {
                                     unset($items[$number]);
                                 }
                             }
                         }
                         break;
                     case 'postcode_from':
                         foreach ($items as $number => $item) {
                             if (empty($item['metadata'])) {
                                 unset($items[$number]);
                                 continue;
                             }
                             if ($item->get('metadata.postcode') < $value) {
                                 unset($items[$number]);
                             }
                         }
                         break;
                     case 'postcode_to':
                         foreach ($items as $number => $item) {
                             if (empty($item['metadata'])) {
                                 unset($items[$number]);
                                 continue;
                             }
                             if ($item->get('metadata.postcode') > $value) {
                                 unset($items[$number]);
                             }
                         }
                         break;
                     case 'activated':
                         if ($value !== 'false') {
                             foreach ($items as $number => $item) {
                                 if ($item->activated != $value) {
                                     unset($items[$number]);
                                 }
                             }
                         }
                         break;
                 }
             }
         }
     }
     // Reset to empty array if there are no result found by query
     if (empty($items)) {
         $items = array();
     }
     return array('items' => $items);
 }