Ejemplo n.º 1
0
 public static function process_results($results)
 {
     $parameters = self::$state['parameters'];
     if (!is_array($results)) {
         $results = array($results);
     }
     $results = apply_filters('ccs_loop_all_results', $results);
     $result = apply_filters('ccs_loop_preprocess_combined_result', implode('', $results));
     /*---------------------------------------------
      *
      * Process the combined result
      *
      */
     /*---------------------------------------------
      *
      * Strip tags
      *
      */
     if (!empty($parameters['strip'])) {
         $strip_tags = $parameters['strip'];
         if ($strip_tags == 'true') {
             $result = wp_kses($result, array());
         } else {
             // Allow certain tags
             $result = strip_tags(html_entity_decode($result), $strip_tags);
         }
     }
     /*---------------------------------------------
      *
      * Trim
      *
      */
     if (!empty($parameters['trim'])) {
         $trim = $parameters['trim'];
         if (empty($parameters['columns']) && $parameters['list'] != 'true') {
             $result = CCS_Format::trim($result, $trim);
         } else {
             // Trim each item for columns or list
             $new_results = array();
             foreach ($results as $result) {
                 $new_results[] = CCS_Format::trim($result, $trim);
             }
             $results = $new_results;
         }
     }
     /*---------------------------------------------
      *
      * Escape/unescape HTML
      *
      */
     if ($parameters['escape'] == 'true') {
         $new_results = array();
         foreach ($results as $result) {
             $new_results[] = esc_html($result);
         }
         $results = $new_results;
     }
     if ($parameters['unescape'] == 'true') {
         $new_results = array();
         foreach ($results as $result) {
             $new_results[] = htmlspecialchars_decode($result);
         }
         $results = $new_results;
     }
     /*---------------------------------------------
      *
      * Finally, columns or list
      *
      */
     if (!empty($parameters['columns'])) {
         $result = self::render_columns($results, $parameters['columns'], $parameters['pad'], $parameters['between']);
     } elseif (!empty($parameters['list'])) {
         // Wrap each list item
         $new_results = null;
         $item_tag = !empty($parameters['item']) ? $parameters['item'] : 'li';
         $item_class = !empty($parameters['item_class']) ? ' class="' . $parameters['item_class'] . '"' : null;
         $item_style = !empty($parameters['item_style']) ? ' style="' . $parameters['item_style'] . '"' : null;
         $list_tag = $parameters['list'] == 'true' ? 'ul' : $parameters['list'];
         $list_class = !empty($parameters['list_class']) ? ' class="' . $parameters['list_class'] . '"' : null;
         $list_style = !empty($parameters['list_style']) ? ' style="' . $parameters['list_style'] . '"' : null;
         $parameters['item_count'] = count($results);
         foreach ($results as $result) {
             $item = '<' . $item_tag . $item_class . $item_style . '>' . $result . '</' . $item_tag . '>';
             if (!empty($parameters['paginate'])) {
                 $item = '<' . $list_tag . $list_class . $list_style . '>' . $item . '</' . $list_tag . '>';
             }
             $new_results .= apply_filters('ccs_loop_each_item', $item, $parameters);
         }
         if (empty($parameters['paginate'])) {
             $result = '<' . $list_tag . $list_class . $list_style . '>' . $new_results . '</' . $list_tag . '>';
         } else {
             $result = $new_results;
         }
     }
     /*---------------------------------------------
      *
      * Cache the final result
      *
      */
     if (self::$state['do_cache'] == 'true') {
         CCS_Cache::set_transient(self::$state['cache_name'], $result, $parameters['expire']);
     }
     return apply_filters('ccs_loop_final_result', $result, $parameters);
 }