Plugin Directory

Changeset 2741547


Ignore:
Timestamp:
06/13/2022 10:48:31 AM (4 years ago)
Author:
kuroit
Message:

Made security fixes

Location:
advanced-admin-search/trunk
Files:
7 edited

Legend:

Unmodified
Added
Removed
  • advanced-admin-search/trunk/README.md

    r2737296 r2741547  
    55Requires at least: 3.9
    66Tested up to: 6.0
    7 Stable tag: 1.1.3
     7Stable tag: 1.1.4
    88License: GPLv2 or later
    99License URI: http://www.gnu.org/licenses/gpl-2.0.html
     
    7979== Changelog ==
    8080
     81= 1.1.4 =
     82* Security issues fixed
    8183= 1.1.3 =
    8284* Bug fixes
  • advanced-admin-search/trunk/advanced-admin-search.php

    r2737296 r2741547  
    44 * Plugin URI:        https://www.kuroit.com/product/advanced-admin-search
    55 * Description:       Easily search everything in WordPress admin panel from one single search field.
    6  * Version:           1.1.3
     6 * Version:           1.1.4
    77 * Author:            Kuroit
    88 * Author URI:        https://www.kuroit.com
  • advanced-admin-search/trunk/css/style.css

    r2474185 r2741547  
    465465    height: 40px !important;
    466466}
    467 .search_rows1{
     467.search_result_rows{
    468468    text-align: center;
     469    cursor: pointer;
    469470}
    470471.list_title1 {
  • advanced-admin-search/trunk/menu.php

    r2737296 r2741547  
    22use Kuroit\AdvancedAdminSearch\AASKP_searchResults as searchclass;
    33
     4// Add menu item for the plugin
    45add_action('admin_menu', 'aaskp_menu_items');
    56function aaskp_menu_items(){
     
    78}
    89
     10// Pre search call to fetch user & roles
    911add_filter( 'aaskp_pre_search', 'aaskp_pre_search_callback');
    1012function aaskp_pre_search_callback($user) {
     
    3739function aaskp_search_page_callback() {
    3840
     41    // Pick all data from query string and sanitise it
    3942    $selectedKeyword = (isset($_GET['keyword'])) ? sanitize_text_field($_GET['keyword']) : '';
    4043    $selectedFilter = (isset($_GET['select'])) ? sanitize_text_field($_GET['select']) : '';
     
    4649    $selectedMatchType = (isset($_GET['matchType'])) ? sanitize_text_field($_GET['matchType']) : '';
    4750
     51    // Advance search form view - TODO: switch to separate template later on
    4852    ?>
    49     <html>
    5053    <div class="advanced-admin-wrapper">
    5154        <label for="post_search_box1"><h2 class="page_title_AASKP">Advanced Admin Search: Full Search</h2></label>
     
    98101        </form>
    99102    </div>
    100        
    101     </html>
    102103    <?php
    103     //get the keyword
     104
     105    // Get search data if keyword is available
    104106    if (isset($selectedKeyword)) {
    105107        $postSearch = sanitize_text_field($selectedKeyword);
    106108       
    107109        if (!empty($postSearch)) {
     110
     111            // Filter keys from search form
    108112            $keys=array('select','status','user','metaKey','metaValue','matchType');
     113           
     114            // Prep filters data from form
    109115            $filters=array_fill_keys($keys,"");
    110116            if (isset($selectedFilter) && $selectedFilter != ''){
     
    127133            }
    128134           
    129             //get all results
     135            // Get all results
    130136            $results = array();
    131137            $post_types = get_post_types(array('public' => true));
    132138            $post_types = array_values($post_types);
    133139
    134             // get pre search results from hook
     140            // Apply local pre-search hook
    135141            if(!empty($filters['user'])){
    136142                $user=$filters['user'];
     
    142148            }
    143149
     150            // Init search and get search based data
    144151            $object = searchclass::getInstance();
    145152            switch($filters['select']) {
     
    192199                        );
    193200            }
    194                
     201           
     202            // Apply local post-search hook
    195203            $post_filtered_result = apply_filters('aaskp_post_search', $postSearch);
    196204            if (is_array($post_filtered_result)) {
    197205                $results = array_merge($results, $post_filtered_result);   
    198206            }
     207
     208            // Start working on pagination
    199209            $numPerPage=10;
    200210            $numPages = ceil(count($results)/$numPerPage);
     
    212222            $start=($offset-1)*$numPerPage; 
    213223            $end=min(($offset*$numPerPage),count($results));
     224
     225            // Print total search count
    214226            if(count($results) > 1){
    215                 echo '<h2 class="search_result_count">Total <span>'.count($results).'</span> Search Results Found</h2>';
     227                // More than one result
     228                _e('<h2 class="search_result_count">Total <span>'.count($results).'</span> Search Results Found</h2>', 'advanced-admin-search');
    216229            }elseif(count($results) == 0){
    217                  echo '<h2 class="search_result_count">Total <span>'.count($results).'</span> Search Result Found.</h2>';
    218             }
    219             else{
    220                 echo '<h2 class="search_result_count">Total <span>'.count($results).'</span> Search Result Found</h2>';
    221             }
    222            
    223             echo "<table class='search_list2 table_fxd' cellpadding='10' border='1'>";
    224             if(count($results)==0){ //no results found
    225                 echo "<tr><td colspan='5' class='result_row'>Please refine your search</td></tr>";
    226             }else{  //display the found results
    227                 echo "<tr class='search_rows tb-heading'><th class='table_type'>Type</th><th class='table_type1'>Thumbnail</th><th class='table_type2'>Title</th><th class='table_type1'>Status</th><th class='table_type2'>Info</th></tr>";
     230                // No result found
     231                _e('<h2 class="search_result_count">No Search Result Found.</h2>', 'advanced-admin-search');
     232            }else{
     233                // Single result
     234                _e('<h2 class="search_result_count">Only <span>'.count($results).'</span> Search Result Found</h2>', 'advanced-admin-search');
     235            }
     236           
     237            // Start printing search results table
     238            echo "<table class=\"search_list2 table_fxd\" cellpadding=\"10\" border=\"1\">";
     239            if(count($results)==0){
     240                // No results found - refine it!
     241                echo "<tr><td colspan=\"5\" class=\"result_row\">Please refine your search</td></tr>";
     242            }else{ 
     243                // Display the found results
     244                echo "<tr class=\"search_rows tb-heading\"><th class=\"table_type\">Type</th><th class=\"table_type1\">Thumbnail</th><th class=\"table_type2\">Title</th><th class=\"table_type1\">Status</th><th class=\"table_type2\">Info</th></tr>";
     245
    228246                for($i=$start;$i<$end;$i++){
    229247                    $values=$results[$i];
     
    236254                    $title = $values['title'];
    237255                    $link = $values['link'];
    238                    
    239                     $link='"'.$link.'"';
    240256                   
    241257                    $info = $values['info'];
     
    245261                    if(array_key_exists("image",$values)){
    246262                        $image = $values['image'];
    247                         $images = "<img class='image_thumb1' src='".$image."'>";
     263                        $images = __("<img class='image_thumb1' src='".$image."'>", "advanced-admin-search");
    248264                    }else{
    249265                        $images="[NO IMAGE]";
     
    259275                    switch($types) {
    260276                        case "User":
    261                             $type = "<label class='color' style='background: #dc3545;'>".$types."</label>";
     277                            $type = __("<label class='color' style='background: #dc3545;'>".$types."</label>", "advanced-admin-search");
    262278                        break;
    263279                    case "Post":
    264                             $type = "<label class='color' style='background: #03254d;'>".$types."</label>";
     280                            $type = __("<label class='color' style='background: #03254d;'>".$types."</label>", "advanced-admin-search");
    265281                        break;
    266282                    case "Media":
    267                             $type = "<label class='color' style='background: #dec610;'>".$types."</label>";
     283                            $type = __("<label class='color' style='background: #dec610;'>".$types."</label>", "advanced-admin-search");
    268284                        break;
    269285                    case "Taxonomy":
    270                             $type = "<label class='color' style='background: #32a852;'>".$types."</label>";
     286                            $type = __("<label class='color' style='background: #32a852;'>".$types."</label>", "advanced-admin-search");
    271287                        break;
    272288                    case "PostMeta":
    273                             $type = "<label class='color' style='background: #c7550e;'>".$types."</label>";
     289                            $type = __("<label class='color' style='background: #c7550e;'>".$types."</label>", "advanced-admin-search");
    274290                        break;
    275291                    case "Comment":
    276                             $type = "<label class='color' style='background: #6c757d;'>".$types."</label>";
    277                         break;
    278                     }
    279                     echo "<tr class='search_rows search_rows1' onclick='clickLink(".$link.")'><td class='td_rows'>".$type."</td><td class='td_rows'>".$images."</td><td><p class='list_title1'>".$title."</p></td><td class='td_rows'><p class='list_status1'>".$status."</p></td><td><p class='list_type1'>".$info."</p></td></a></tr>";
    280                 }
     292                            $type = __("<label class='color' style='background: #6c757d;'>".$types."</label>", "advanced-admin-search");
     293                        break;
     294                    }
     295
     296                    // Print search row
     297                    _e("<tr class=\"search_rows search_result_rows\" onclick=\"clickLink('".$link."');\"><td class=\"td_rows\">".$type."</td><td class=\"td_rows\">".$images."</td><td><p class=\"list_title1\">".$title."</p></td><td class=\"td_rows\"><p class=\"list_status1\">".$status."</p></td><td><p class=\"list_type1\">".$info."</p></td></a></tr>", "advanced-admin-search");
     298                }
     299
     300                // End table
    281301                echo "</table>";
     302
     303                // Prep url for pagination
    282304                $adminUrl= get_admin_url();
    283                 $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'];
     305                $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");
    284306               
    285307                //pagination for results found
     
    296318    $secondLast=$numPages-1;
    297319    if($numPages>1) {
    298         echo "<div class='center'>
    299                 <div class='pagination'>";
     320
     321        echo "<div class=\"center\"><div class=\"pagination\">";
    300322        if($offset==1) {
    301             echo "<a class='isDisabled'>PREV</a>";
    302         }
    303         else {
    304             echo "<a href='".$url."&offset=".$previousPage."' class='btn-color'>PREV</a>";
    305         }
    306         //results less than 10
     323            echo "<a class=\"isDisabled\">PREV</a>";
     324        } else {
     325            _e("<a href='".$url."&offset=".$previousPage."' class=\"btn-color\">PREV</a>", "advanced-admin-search");
     326        }
     327
     328        // Results less than 10
    307329        if ($numPages <= 10){ 
    308330            for ($counter = 1; $counter <= $numPages; $counter++){
    309331                if ($counter == $offset) {
    310                     echo "<a href='".$url."&offset=".$counter."' class='active'>".$counter."</a>";
     332                    _e("<a href=\"".$url."&offset=".$counter."\" class=\"active\">".$counter."</a>", "advanced-admin-search");
    311333                 }else{
    312                     echo "<a href='".$url."&offset=".$counter."'>".$counter."</a>";
     334                    _e("<a href=\"".$url."&offset=".$counter."\">".$counter."</a>", "advanced-admin-search");
    313335                 }
    314336            }
    315337        }
    316         //results greater than 10
     338
     339        // Results greater than 10
    317340        elseif ($numPages > 10){
    318             if($offset <= 4) {
     341            if($offset <= 4){
     342
    319343                for ($counter = 1; $counter < 8; $counter++){
    320344                    if ($counter == $offset) {
    321                         echo "<a href='".$url."&offset=".$counter."' class='active'>".$counter."</a>";
     345                        _e("<a href=\"".$url."&offset=".$counter."\" class=\"active\">".$counter."</a>", "advanced-admin-search");
    322346                    }else{
    323                         echo "<a href='".$url."&offset=".$counter."'>".$counter."</a>";
    324                     }
    325                 }
    326                 echo "<a>...</a>";
    327                 echo "<a href='".$url."&offset=".$secondLast."'>".$secondLast."</a>";
    328                 echo "<a href='".$url."&offset=".$numPages."'>".$numPages."</a>";
    329             }
    330             elseif($offset > 4 && $offset < ($numPages - 4)) {
    331                 echo "<a href='".$url."&offset=1'>1</a>";
    332                 echo "<a href='".$url."&offset=2'>2</a>";
    333                 echo "<a>...</a>";
     347                        _e("<a href=\"".$url."&offset=".$counter."\">".$counter."</a>", "advanced-admin-search");
     348                    }
     349                }
     350                _e("<a>...</a>", "advanced-admin-search");
     351                _e("<a href=\"".$url."&offset=".$secondLast."\">".$secondLast."</a>", "advanced-admin-search");
     352                _e("<a href=\"".$url."&offset=".$numPages."\">".$numPages."</a>", "advanced-admin-search");
     353
     354            } elseif ($offset > 4 && $offset < ($numPages - 4)) {
     355
     356                _e("<a href=\"".$url."&offset=1\">1</a>", "advanced-admin-search");
     357                _e("<a href=\"".$url."&offset=2\">2</a>", "advanced-admin-search");
     358                _e("<a>...</a>", "advanced-admin-search");
    334359                for ($counter = ($offset - 2);$counter <= ($offset + 2);$counter++) {
    335360                    if ($counter == $offset) {
    336                         echo "<a href='".$url."&offset=".$counter."' class='active'>".$counter."</a>";
     361                        _e("<a href=\"".$url."&offset=".$counter."\" class=\"active\">".$counter."</a>", "advanced-admin-search");
    337362                    }else{
    338                         echo "<a href='".$url."&offset=".$counter."'>".$counter."</a>";
     363                        _e("<a href=\"".$url."&offset=".$counter."\">".$counter."</a>", "advanced-admin-search");
    339364                    }                 
    340365                }
    341                 echo "<a>...</a>";
    342                 echo "<a href='".$url."&offset=".$secondLast."'>".$secondLast."</a>";
    343                 echo "<a href='".$url."&offset=".$numPages."'>".$numPages."</a>";
    344             }
    345             else {
    346                 echo "<a href='".$url."&offset=1'>1</a>";
    347                 echo "<a href='".$url."&offset=2'>2</a>";
    348                 echo "<a>...</a>";
     366                _e("<a>...</a>", "advanced-admin-search");
     367                _e("<a href=\"".$url."&offset=".$secondLast."\">".$secondLast."</a>", "advanced-admin-search");
     368                _e("<a href=\"".$url."&offset=".$numPages."\">".$numPages."</a>", "advanced-admin-search");
     369
     370            } else {
     371                _e("<a href=\"".$url."&offset=1\">1</a>", "advanced-admin-search");
     372                _e("<a href=\"".$url."&offset=2\">2</a>", "advanced-admin-search");
     373                _e("<a>...</a>", "advanced-admin-search");
    349374                for ($counter=($numPages - 6);$counter <=$numPages;$counter++
    350375                     ) {
    351376                    if ($counter == $offset) {
    352                         echo "<a href='".$url."&offset=".$counter."' class='active'>".$counter."</a>"; 
     377                        _e("<a href=\"".$url."&offset=".$counter."\" class=\"active\">".$counter."</a>", "advanced-admin-search");
    353378                    }else{
    354                         echo "<a href='".$url."&offset=".$counter."'>".$counter."</a>";
     379                        _e("<a href=\"".$url."&offset=".$counter."\">".$counter."</a>", "advanced-admin-search");
    355380                    }                   
    356381                }
    357382            }
    358383        }
     384
    359385        if($offset==$numPages) {
    360             echo "<a class='isDisabled'>NEXT</a>";
     386            echo "<a class=\"isDisabled\">NEXT</a>";
    361387        }
    362388        else {
    363             echo "<a href='".$url."&offset=".$nextPage."' class='btn-color'>NEXT</a>";
    364         }
    365         echo "</div>
    366                 </div>";
     389            _e("<a href=\"".$url."&offset=".$nextPage."\" class=\"btn-color\">NEXT</a>", "advanced-admin-search");
     390        }
     391        echo "</div></div>";
    367392    }
    368393}
  • advanced-admin-search/trunk/scripts.php

    r2737296 r2741547  
    4141        wp_enqueue_script( 'advanced_admin_desktop_search_script' );
    4242        wp_enqueue_script( 'advanced_admin_mobile_search_script' );
    43        
    4443        wp_enqueue_script( 'advanced_admin_page_search_script' );
    4544    }
  • advanced-admin-search/trunk/searchbox.php

    r2474185 r2741547  
    1313    {
    1414        global $wp_admin_bar;
    15             $wp_admin_bar->add_menu(array('id' => 'search_form',
     15        $wp_admin_bar->add_menu(
     16            array(
     17                'id' => 'search_form',
    1618                'parent' => 'top-secondary',
    17                 'title' => '<ul class="post_search_box">
     19                'title' => __('<ul class="post_search_box">
    1820                <li class="advance_search_box"><span class="dashicons dashicons-search"
    1921                onclick="AASKP_displayInputBox()"></span><div class="sf-d"><input
     
    2628                (__FILE__).'image/loading.gif" class="img-responsive" /></div><ul
    2729                class="search_list"></ul></div></li>
    28                 </ul>'));
     30                </ul>', 'advanced-admin-search')
     31            )
     32        );
    2933    }
    3034    public function AASKP_displayInput()
    3135    {
    32             echo '<div class="sf-m"><div id="search_fields" style="display:none;">
    33             <input type="text" placeholder="Search Database" id="mobile_search_fields"
    34             autocomplete="off" style="line-height:1em;"/><label for="submit"><span
    35             class="dashicons dashicons-search"></span></label><input type="submit"
    36             id="submit" name="search" value="Search" style="display:none;"></div>
    37             <div class="ajax-loading"><img src="'.plugin_dir_url(__FILE__).'image/loading.gif"
    38             class="img-responsive" /></div><ul class="mobile_search_list">
    39             </ul></div>';
     36        _e('<div class="sf-m"><div id="search_fields" style="display:none;">
     37        <input type="text" placeholder="Search Database" id="mobile_search_fields"
     38        autocomplete="off" style="line-height:1em;"/><label for="submit"><span
     39        class="dashicons dashicons-search"></span></label><input type="submit"
     40        id="submit" name="search" value="Search" style="display:none;"></div>
     41        <div class="ajax-loading"><img src="'.plugin_dir_url(__FILE__).'image/loading.gif"
     42        class="img-responsive" /></div><ul class="mobile_search_list">
     43        </ul></div>', 'advanced-admin-search');
    4044    }
    4145}
  • advanced-admin-search/trunk/searchresults.php

    r2737296 r2741547  
    66{
    77    protected static $instance = false;
    8     public function __construct() // instantiation
    9     {
     8    public function __construct() {
     9        // Init the search results
    1010        add_action('wp_ajax_search_result', array($this, 'AASKP_searchAction'));
    1111    }
    12     public function AASKP_searchAction() //retrieve the results
    13     {
     12
     13    // Ajax search callback function
     14    public function AASKP_searchAction() {
     15
     16        // Start fetching the results
    1417        if (isset($_POST['post_search']) && isset($_POST['security'])) {
     18
     19            // Get POST data and sanitise it
    1520            $post_search = sanitize_text_field($_POST['post_search']);
    1621            $security_check = sanitize_text_field($_POST['security']);
     22
     23            // Check nonce first
    1724            $check = wp_create_nonce('advanced_search_submit');
    1825            if ($security_check == $check) {
    19                 $results = array(); // all results available for search
     26
     27                // Prep result array
     28                $results = array();
     29
    2030                if (!empty($post_search)) {
     31
     32                    // Prep filters array
    2133                    $filters=array();
     34
     35                    // Fetch post types available
    2236                    $post_types = get_post_types(array('public' => true));
    2337                    $post_types = array_values($post_types);
     38
    2439                    // get pre search results from hook
    2540                    $pre_filtered_result = apply_filters('aaskp_pre_search', $post_search);
    26                    
    2741                    if (is_array($pre_filtered_result)) {
    2842                        $results = array_merge($results, $pre_filtered_result);
    2943                    }
     44
    3045                    $results = array_merge(
    3146                        $results, // pre search
     
    3752                        $this->AASKP_getComments($post_search,$filters) // comments
    3853                    );
     54
    3955                    $post_filtered_result = apply_filters('aaskp_post_search', $post_search);
    4056                    if (is_array($post_filtered_result)) {
    4157                        $results = array_merge($results, $post_filtered_result);
    4258                    }
    43                     //results conversion to json
    44                     echo json_encode(array('result'=>'success', 'data'=>$results, 'count'=>count($results), 'search'=>$post_search));
     59
     60                    _e(json_encode(array('result'=>'success', 'data'=>$results, 'count'=>count($results), 'search'=>$post_search)), "advanced-admin-search");
    4561                }
    4662                else {
    47                     echo json_encode(array('result'=>'success', 'count'=> count($results)));
     63                    _e(json_encode(array('result'=>'success', 'count'=> count($results))), "advanced-admin-search");
    4864                }
    4965            } else {
    50                 echo json_encode(array('result'=>'error', 'message'=>'Invalid Request'));
     66                _e(json_encode(array('result'=>'error', 'message'=>'Invalid Request')), "advanced-admin-search");
    5167            }
    5268        } else {
    53             echo json_encode(array('result'=>'none', 'message'=>'Refine Your Search'));
     69            _e(json_encode(array('result'=>'none', 'message'=>'Refine Your Search')), "advanced-admin-search");
    5470        }
    5571        wp_die();
    5672    }
    57     public function AASKP_getUsers($post_search,$filters,$flag = false)
    58     {
    59                
     73
     74
     75    public function AASKP_getUsers($post_search,$filters,$flag = false) {
     76
    6077        $output = array();
    6178        if($flag) {
     
    83100        return $output;
    84101    }
    85     public function AASKP_getPostsAndPages($post_search,$filters,$flag = false)
    86     {
     102
     103    public function AASKP_getPostsAndPages($post_search,$filters,$flag = false) {
    87104        $output = array();
    88105        $args = array(
     
    90107            'post_type'         => 'any',
    91108            'post_status'       => array('publish', 'pending', 'draft',
    92             'auto-draft', 'future', 'private', 'trash'),
     109                'auto-draft', 'future', 'private', 'trash'),
    93110            'posts_per_page'    => -1
    94111        );
     
    98115            }
    99116            if(!empty($filters['user'])) {
    100                 if(is_numeric($filters['user'])) {
     117                if (is_numeric($filters['user'])) {
    101118                    $args['author'] = $filters['user'];
    102                 }
    103                 else {
    104                  $args['author_name'] = $filters['user'];
    105                 }
    106             }
    107          
     119                } else {
     120                    $args['author_name'] = $filters['user'];
     121                }
     122            }
     123
    108124            $metaQuery= array();
    109125            if (!empty($filters['metaKey'])) {
    110126                $metaQuery=array(
    111                         'key' => $filters['metaKey']
     127                    'key' => $filters['metaKey']
    112128                );             
    113129            }
     
    117133                switch($matchType) {
    118134                    case "starting":
    119                         $compare='REGEXP';
    120                         $value='^'.$value;
    121                         break;
     135                    $compare='REGEXP';
     136                    $value='^'.$value;
     137                    break;
    122138                    case "ending":
    123                         $compare='REGEXP';
    124                         $value=$value.'$';
    125                         break;
     139                    $compare='REGEXP';
     140                    $value=$value.'$';
     141                    break;
    126142                    case 0:
    127143                    case "exact":
    128                         $compare='=';
     144                    $compare='=';
    129145                }
    130146                $metaValueQuery=array(
    131                             'value' => $value,
    132                             'compare' => $compare                 
    133                         );
     147                    'value' => $value,
     148                    'compare' => $compare                 
     149                );
    134150                $metaQuery= array_merge($metaQuery,$metaValueQuery); 
    135151            }
    136152            if(!empty($metaQuery)) {
    137        
     153
    138154                $args['meta_query']=array($metaQuery);
    139155            }
    140156        }
    141157        $query = new \WP_Query($args);
    142                    
     158
    143159        $posts = $query->posts;
    144160        foreach ($posts as $post) {
    145                 $url = admin_url('post.php?post='.$post->ID.'&action=edit');
    146                 $post_type = $post->post_type;
    147                 $output[]=array(
    148                     'link'      => $url,
    149                     'title'     => $post->post_title,
    150                     'status'    => $post->post_status,
    151                     'info'      => 'Type: '.$post->post_type,
    152                     'type'    => 'Post'
    153                 );
    154         }
    155         return $output;
    156     }
    157     public function AASKP_getMedia($post_search,$filters,$flag = false)
    158     {
     161            $url = admin_url('post.php?post='.$post->ID.'&action=edit');
     162            $post_type = $post->post_type;
     163            $output[]=array(
     164                'link'      => $url,
     165                'title'     => $post->post_title,
     166                'status'    => $post->post_status,
     167                'info'      => 'Type: '.$post->post_type,
     168                'type'    => 'Post'
     169            );
     170        }
     171        return $output;
     172    }
     173
     174    public function AASKP_getMedia($post_search,$filters,$flag = false) {
    159175        $output = array();
    160176        $args=array(
     
    171187                $args['post_status']=$filters['status'];   
    172188            }
    173        
     189
    174190            if(!empty($filters['user'])) {
    175191                if(is_numeric($filters['user'])) {
     
    183199        $mediaPosts = get_posts($args);
    184200        foreach ($mediaPosts as $mediaPost) {
    185                 $url = admin_url('post.php?post='.$mediaPost->ID.'&action=edit');
    186                 $post_type = $mediaPost->post_type;
    187                 $image_url = wp_get_attachment_image_src($mediaPost->ID);
    188                 $image_url_main = $image_url[0];
    189                 if($image_url_main == false){
    190                     $image_url = '';
    191                 }
    192                 $output[]=array(
    193                     'link' => $url,
    194                     'title' => $mediaPost->post_title,
    195                     'info' => $mediaPost->post_date,
    196                     'image'=> $image_url_main,
    197                     'type' => 'Media'
    198                 );
    199         }
    200         return $output;
    201     }
    202     public function AASKP_getTaxonomies($post_search,$filters,$flag = false)
    203     {
    204             $output = array();
    205             if($flag) {
    206                 if(!empty($filters['status']) || !empty($filters['user']) || !empty($filters['metaKey']) || !empty($filters['metaValue'])) {
    207                     return $output;
    208                 }
    209             }
    210            
    211             $taxonomies = get_terms(
    212                 array('search' => $post_search)
     201            $url = admin_url('post.php?post='.$mediaPost->ID.'&action=edit');
     202            $post_type = $mediaPost->post_type;
     203            $image_url = wp_get_attachment_image_src($mediaPost->ID);
     204            $image_url_main = $image_url[0];
     205            if($image_url_main == false){
     206                $image_url = '';
     207            }
     208            $output[]=array(
     209                'link' => $url,
     210                'title' => $mediaPost->post_title,
     211                'info' => $mediaPost->post_date,
     212                'image'=> $image_url_main,
     213                'type' => 'Media'
    213214            );
     215        }
     216        return $output;
     217    }
     218
     219    public function AASKP_getTaxonomies($post_search,$filters,$flag = false) {
     220        $output = array();
     221        if($flag) {
     222            if(!empty($filters['status']) || !empty($filters['user']) || !empty($filters['metaKey']) || !empty($filters['metaValue'])) {
     223                return $output;
     224            }
     225        }
     226
     227        $taxonomies = get_terms(
     228            array('search' => $post_search)
     229        );
    214230        foreach ($taxonomies as $taxonomy) {
    215                 $url = admin_url('term.php?taxonomy='.$taxonomy->taxonomy.
     231            $url = admin_url('term.php?taxonomy='.$taxonomy->taxonomy.
    216232                '&tag_ID='.$taxonomy->term_id.'&post_type=post&wp_http_referer
    217233                =%2Fwp-admin%2Fedit-tags.php%3Ftaxonomy%3Dcategory');
    218                 $output[]=array(
    219                     'link' => $url,
    220                     'title' => $taxonomy->name,
    221                     'info' => 'Taxonomy: '.$taxonomy->taxonomy,
    222                     'type' => 'Taxonomy'
    223                 );
    224         }
    225         return $output;
    226     }
    227     public function AASKP_getPostMeta($post_search,$filters,$flag = false)
    228     {
     234            $output[]=array(
     235                'link' => $url,
     236                'title' => $taxonomy->name,
     237                'info' => 'Taxonomy: '.$taxonomy->taxonomy,
     238                'type' => 'Taxonomy'
     239            );
     240        }
     241        return $output;
     242    }
     243
     244    public function AASKP_getPostMeta($post_search,$filters,$flag = false) {
    229245        $output = array();
    230246        if($flag) {
     
    233249            }
    234250        }
     251
    235252        global $wpdb;
    236         $postMeta = $wpdb->get_results("SELECT * FROM ".$wpdb->prefix."postmeta WHERE meta_key LIKE '%".$post_search."%' OR meta_value LIKE '%".$post_search."%'");
     253        $metaTableName = $wpdb->prefix . "postmeta";
     254        $queryMeta = $wpdb->prepare(
     255            "SELECT * FROM {$metaTableName} WHERE meta_key LIKE %s OR meta_value LIKE %s;",
     256            array(
     257                '%' . $post_search . '%',
     258                '%' . $post_search . '%',
     259            )
     260        );
     261        $postMeta = $wpdb->get_results($queryMeta);
     262
    237263        foreach ($postMeta as $meta) {
    238264            $url = admin_url('post.php?post='.$meta->post_id.'&action=edit');
     
    250276                        );
    251277                    }
    252                 }
    253                 else {
     278                } else {
    254279                    if(empty($filters['status'])) {
    255280                        $output[]=array(
     
    260285                            'type' => 'PostMeta'
    261286                        );
    262                     }
    263                     else {
     287                    } else {
    264288                        if(strcmp($getPost->post_status, $filters['status']) == 0) {
    265289                            $output[]=array(
     
    273297                    }
    274298                }
    275             }
    276                
    277             else {
     299            } else {
    278300                if (strpos($meta->meta_key, $post_search) !== false) {
    279                    
    280                         $output[]=array(
    281                             'link' => $url,
    282                             'title' => $getPost->post_title,
    283                             'status' =>'PostMeta',
    284                             'info' =>  strip_tags($meta->meta_value),
    285                             'type' => 'PostMeta'
    286                         );
    287                 }
    288                 else {
    289                                
     301
     302                    $output[]=array(
     303                        'link' => $url,
     304                        'title' => $getPost->post_title,
     305                        'status' =>'PostMeta',
     306                        'info' =>  strip_tags($meta->meta_value),
     307                        'type' => 'PostMeta'
     308                    );
     309                } else {
     310
    290311                    $output[]=array(
    291312                        'link' => $url,
     
    300321        return $output;
    301322    }
    302     public function AASKP_getComments($post_search,$filters,$flag = false)
    303     {
     323
     324    public function AASKP_getComments($post_search,$filters,$flag = false) {
    304325        $output = array();
    305326        $args=array('search' => $post_search);
     
    312333                if(is_numeric($user)) {
    313334                    $args['user_id'] = $user;
    314                 }
    315                 else {
     335                } else {
    316336                    $userData=get_user_by('login', $user);
    317337                    $args['user_id'] = $userData->ID;
     
    331351        return $output;
    332352    }
    333     public static function getInstance(){
     353
     354    public static function getInstance() {
    334355        if(self::$instance == false){
    335356            self::$instance = new AASKP_searchResults();
Note: See TracChangeset for help on using the changeset viewer.