/**
  * Sanitize and expand Optional Upload MIME Type query arguments from request variables
  *
  * @since 1.40
  *
  * @param	array	query parameters from web page, usually found in $_REQUEST
  * @param	int		Optional number of rows (default 0) to skip over to reach desired page
  * @param	int		Optional number of rows on each page (0 = all rows, default)
  *
  * @return	array	revised arguments suitable for query
  */
 private static function _prepare_optional_upload_items_query($raw_request, $offset = 0, $count = 0)
 {
     /*
      * Go through the $raw_request, take only the arguments that are used in the query and
      * sanitize or validate them.
      */
     if (!is_array($raw_request)) {
         /* translators: 1: ERROR tag 2: function name 3: non-array value */
         error_log(sprintf(_x('%1$s: %2$s non-array "%3$s"', 'error_log', 'media-library-assistant'), __('ERROR', 'media-library-assistant'), 'MLAMime::_prepare_optional_upload_items_query', var_export($raw_request, true)), 0);
         return NULL;
     }
     $clean_request = array('orderby' => 'slug', 'order' => 'ASC', 's' => '');
     foreach ($raw_request as $key => $value) {
         switch ($key) {
             case 'orderby':
                 if ('none' == $value) {
                     $clean_request[$key] = $value;
                 } else {
                     $sortable_columns = MLA_Upload_Optional_List_Table::mla_get_sortable_columns();
                     foreach ($sortable_columns as $sort_key => $sort_value) {
                         if ($value == $sort_value[0]) {
                             $clean_request[$key] = $value;
                             break;
                         }
                     }
                     // foreach
                 }
                 break;
             case 'order':
                 switch ($value = strtoupper($value)) {
                     case 'ASC':
                     case 'DESC':
                         $clean_request[$key] = $value;
                         break;
                     default:
                         $clean_request[$key] = 'ASC';
                 }
                 break;
                 /*
                  * ['s'] - Search Media by one or more keywords
                  */
             /*
              * ['s'] - Search Media by one or more keywords
              */
             case 's':
                 $clean_request[$key] = stripslashes(trim($value));
                 break;
             default:
                 // ignore anything else in $_REQUEST
         }
         // switch $key
     }
     // foreach $raw_request
     /*
      * Ignore incoming paged value; use offset and count instead
      */
     if ((int) $count > 0) {
         $clean_request['offset'] = $offset;
         $clean_request['posts_per_page'] = $count;
     }
     return $clean_request;
 }