/** * Process data before it is rendered. * @param array $data Input data * @param boolean $saving If the data is meant to be saved (otherwise we're in the preview window) * @param boolean $child Flag indicating if we're working recursively * @return [type] Formatted output data */ public function formatData($data, $saving = false, $child = false) { $element = $this->manager->get($data['_type']); $data = wp_parse_args($data, $element->get_defaults()); if (isset($data['_csmeta'])) { unset($data['_csmeta']); } // Recursively apply to child collections if (isset($data['elements']) && count($data['elements']) > 0) { $elements = array(); foreach ($data['elements'] as $key => $item) { $elements[] = $this->formatData($item, $saving, true); } $data['elements'] = $elements; } else { $data['elements'] = array(); } if (isset($data['custom_id'])) { $data['id'] = $data['custom_id']; unset($data['custom_id']); } // Format data before rendering foreach ($data as $key => $item) { if (is_array($item) && count($item) == 5 && ($item[4] == 'linked' || $item[4] == 'unlinked')) { $data[$key . '_linked'] = array_pop($item); $data[$key] = array_map('esc_html', array($item[0], $item[1], $item[2], $item[3])); continue; } // Convert boolean to string if ($item === true) { $data[$key] = 'true'; continue; } if ($item === false) { $data[$key] = 'false'; continue; } // Secure HTML from unworthy users if (is_string($item)) { $data[$key] = Cornerstone_Control::sanitize_html($item); continue; } } if (!isset($data['content'])) { $data['content'] = ''; } return $data; }
public function sanitize($data) { return Cornerstone_Control::sanitize_html($data); }