ID); $role = $userData->roles; foreach ($role as $value) { $output[] = array( 'link' => $url, 'title' => $userData->display_name, 'status' => $value, 'info' => $userData->user_registered, 'image' => esc_url(get_avatar_url($userData->ID)), 'type' => 'User' ); } return $output; } function aaskp_search_page_callback() { // Pick all data from query string and sanitise it $selectedKeyword = (isset($_GET['keyword'])) ? sanitize_text_field($_GET['keyword']) : ''; $selectedFilter = (isset($_GET['select'])) ? sanitize_text_field($_GET['select']) : ''; $selectedStatus = (isset($_GET['status'])) ? sanitize_text_field($_GET['status']) : ''; $selectedUser = (isset($_GET['user'])) ? sanitize_text_field($_GET['user']) : ''; $selectedMetaKey = (isset($_GET['metaKey'])) ? sanitize_text_field($_GET['metaKey']) : ''; $selectedMetaVal = (isset($_GET['metaValue'])) ? sanitize_text_field($_GET['metaValue']) : ''; $selectedMatchType = (isset($_GET['matchType'])) ? sanitize_text_field($_GET['matchType']) : ''; // Advance search form view - TODO: switch to separate template later on ?>

Search Filters:


true)); $post_types = array_values($post_types); // Apply local pre-search hook if(!empty($filters['user'])){ $user=$filters['user']; $pre_filtered_result = apply_filters('aaskp_pre_search', $user); if (is_array($pre_filtered_result)) { $results = array_merge($results, $pre_filtered_result); } } // Init search and get search based data $object = searchclass::getInstance(); switch($filters['select']) { case "Users": $results=array_merge( $results, $object->AASKP_getUsers($postSearch,$filters,true) ); break; case "PostsAndPages": $results=array_merge( $results, $object->AASKP_getPostsAndPages($postSearch,$filters,true) ); break; case "Media": $results=array_merge( $results, $object->AASKP_getMedia($postSearch,$filters,true) ); break; case "Taxonomies": $results=array_merge( $results, $object->AASKP_getTaxonomies($postSearch,$filters,true) ); break; case "PostMeta": $results=array_merge( $results, $object->AASKP_getPostMeta($postSearch,$filters,true) ); break; case "Comments": $results=array_merge( $results, $object->AASKP_getComments($postSearch,$filters,true) ); break; case "All": case 0: $results = array_merge( $results, // pre search $object->AASKP_getUsers($postSearch,$filters,true), // user results $object->AASKP_getPostsAndPages($postSearch,$filters,true), // post types $object->AASKP_getMedia($postSearch,$filters,true), // attachments $object->AASKP_getTaxonomies($postSearch,$filters,true), // taxonomies $object->AASKP_getPostMeta($postSearch,$filters,true), // post meta $object->AASKP_getComments($postSearch,$filters,true) // comments ); } // Apply local post-search hook $post_filtered_result = apply_filters('aaskp_post_search', $postSearch); if (is_array($post_filtered_result)) { $results = array_merge($results, $post_filtered_result); } // Start working on pagination $numPerPage=10; $numPages = ceil(count($results)/$numPerPage); if (isset($_GET['offset'])) { if(!empty($_GET['offset'])) { $offset=sanitize_text_field($_GET['offset']); } else { $offset=1; } } else { $offset=1; } $start=($offset-1)*$numPerPage; $end=min(($offset*$numPerPage),count($results)); // Print total search count if(count($results) > 1){ // More than one result _e('

Total '.count($results).' Search Results Found

', 'advanced-admin-search'); }elseif(count($results) == 0){ // No result found _e('

No Search Result Found.

', 'advanced-admin-search'); }else{ // Single result _e('

Only '.count($results).' Search Result Found

', 'advanced-admin-search'); } // Start printing search results table echo ""; if(count($results)==0){ // No results found - refine it! echo ""; // End table echo "
Please refine your search
"; }else{ // Display the found results echo "TypeThumbnailTitleStatusInfo"; for($i=$start;$i<$end;$i++){ $values=$results[$i]; if(array_key_exists("status",$values)){ $status = $values['status']; } else { $status="[NO STATUS]"; } $title = $values['title']; $link = $values['link']; $info = $values['info']; $types=$values['type']; $image = ''; if(array_key_exists("image",$values)){ $image = $values['image']; $images = __("", "advanced-admin-search"); }else{ $images="[NO IMAGE]"; } if($status=="administrator") { $status="admin"; } if($title ==''){ $title="No title"; } switch($types) { case "User": $type = __("", "advanced-admin-search"); break; case "Post": $type = __("", "advanced-admin-search"); break; case "Media": $type = __("", "advanced-admin-search"); break; case "Taxonomy": $type = __("", "advanced-admin-search"); break; case "PostMeta": $type = __("", "advanced-admin-search"); break; case "Comment": $type = __("", "advanced-admin-search"); break; } // Print search row _e("".$type."".$images."

".$title."

".$status."

".$info."

", "advanced-admin-search"); } // End table echo ""; // Prep url for pagination $adminUrl= get_admin_url(); $url= __($adminUrl."tools.php?page=advanced-admin-search&keyword=".$postSearch."&select=".$filters['select']."&status=".$filters['status']."&user=".$filters['user']."&metaKey=".$filters['metaKey']."&metaValue=".$filters['metaValue']."&matchType=".$filters['matchType'], "advanced-admin-search"); //pagination for results found createPagination($url,$offset,$numPages); } } } } function createPagination($url,$offset,$numPages) { $previousPage = $offset - 1; $nextPage = $offset + 1; $secondLast=$numPages-1; if($numPages>1) { echo "
"; if($offset==1) { echo "PREV"; } else { _e("PREV", "advanced-admin-search"); } // Results less than 10 if ($numPages <= 10){ for ($counter = 1; $counter <= $numPages; $counter++){ if ($counter == $offset) { _e("".$counter."", "advanced-admin-search"); }else{ _e("".$counter."", "advanced-admin-search"); } } } // Results greater than 10 elseif ($numPages > 10){ if($offset <= 4){ for ($counter = 1; $counter < 8; $counter++){ if ($counter == $offset) { _e("".$counter."", "advanced-admin-search"); }else{ _e("".$counter."", "advanced-admin-search"); } } _e("...", "advanced-admin-search"); _e("".$secondLast."", "advanced-admin-search"); _e("".$numPages."", "advanced-admin-search"); } elseif ($offset > 4 && $offset < ($numPages - 4)) { _e("1", "advanced-admin-search"); _e("2", "advanced-admin-search"); _e("...", "advanced-admin-search"); for ($counter = ($offset - 2);$counter <= ($offset + 2);$counter++) { if ($counter == $offset) { _e("".$counter."", "advanced-admin-search"); }else{ _e("".$counter."", "advanced-admin-search"); } } _e("...", "advanced-admin-search"); _e("".$secondLast."", "advanced-admin-search"); _e("".$numPages."", "advanced-admin-search"); } else { _e("1", "advanced-admin-search"); _e("2", "advanced-admin-search"); _e("...", "advanced-admin-search"); for ($counter=($numPages - 6);$counter <=$numPages;$counter++ ) { if ($counter == $offset) { _e("".$counter."", "advanced-admin-search"); }else{ _e("".$counter."", "advanced-admin-search"); } } } } if($offset==$numPages) { echo "NEXT"; } else { _e("NEXT", "advanced-admin-search"); } echo "
"; } } ?>