/**
  * Checks whether data contains a serialized value, including if base64 encoded.
  *
  * @param string $data
  *
  * @return bool
  */
 public static function contains_serialized($data)
 {
     if (!empty($data) && in_array('S', Options_Pixie_Data_Format::get_data_types($data))) {
         return true;
     }
     return false;
 }
Ejemplo n.º 2
0
 /**
  * @depends test_get_data_types_exists
  */
 public function test_get_data_types_with_broken_serialized()
 {
     $input = 'a:1:{s:1:"two";s:2:"four";}';
     $result = Options_Pixie_Data_Format::get_data_types($input);
     $this->assertContains('S', $result, 'contains S');
     $this->assertContains('!!!', $result, 'contains !!!');
 }
 /**
  * Provides contents for each item's type column.
  *
  * @since 1.0
  *
  * @see   WP_List_Table::::single_row_columns()
  *
  * @param array $item A singular item (one full row's worth of data).
  *
  * @return string Text to be placed inside the column <td>.
  */
 public function column_type($item)
 {
     // This is a derived column based on the contents of the option_value.
     $value = Options_Pixie_Data_Format::get_data_types($item->option_value);
     $output = apply_filters('options_pixie_column_display', $value, $item, array('column' => 'type'));
     $row_actions = apply_filters('options_pixie_column_row_actions', array(), $item, array('column' => 'type'));
     $row_actions = apply_filters('options_pixie_format_row_actions', $row_actions);
     return $output . $row_actions;
 }
 /**
  * Handler for options_pixie_column_display filter.
  *
  * @since 1.0
  *
  * @param mixed  $value
  * @param object $item
  * @param array  $options
  *
  * @return string
  */
 public function column_display($value, $item, $options = array())
 {
     if (empty($item) || empty($options['column'])) {
         return $value;
     }
     switch ($options['column']) {
         case 'option_value':
             $value = $this->column_option_value($value, $item, $options);
             break;
         case 'type':
             $value = join(' / ', $value);
             if (false !== strpos($value, '!!!')) {
                 $value = Options_Pixie_Data_Format::wrap_with_error($value, __('Broken data', 'options-pixie'));
             }
             break;
     }
     // If the value to be displayed is the same as the raw data it must be escaped before display.
     if (isset($item->{$options['column']}) && !empty($item->{$options['column']}) && $value === $item->{$options['column']}) {
         $value = esc_html($value);
     }
     return $value;
 }