/** * Localizes UI scripts with panels data, i18n stuff and style fields * @since 0.1.0 */ protected function localize_ui_scripts() { global $pootlepb_ui_i18n, $pootlepb_color_i18n; //User Interface i18n $preview_url = wp_nonce_url(add_query_arg('pootlepb_preview', 'true', get_home_url()), 'ppb-panels-preview'); wp_localize_script('pootlepb-ui-admin', 'panels', array('previewUrl' => $preview_url, 'i10n' => $pootlepb_ui_i18n)); //Panels Data $panels_data = $this->get_current_admin_panels_data(); if (count($panels_data) > 0) { wp_localize_script('pootlepb-ui-admin', 'panelsData', $panels_data); } // Row styles wp_localize_script('pootlepb-ui-admin', 'panelsStyleFields', pootlepb_row_settings_fields()); //Color picker i18n wp_localize_script('pp-pb-color-picker', 'wpColorPicker_i18n', $pootlepb_color_i18n); }
/** * Sanitize all the data that's come from post data * @param $panels_data * @since 0.1.0 */ function pootlepb_style_sanitize_data($panels_data) { $fields = pootlepb_row_settings_fields(); if (empty($fields)) { return $panels_data; } if (empty($panels_data['grids']) || !is_array($panels_data['grids'])) { return $panels_data; } $num_grids = count($panels_data['grids']); for ($i = 0; $i < $num_grids; $i++) { foreach ($fields as $name => $attr) { switch ($attr['type']) { case 'checkbox': // Convert the checkbox value to true or false. $panels_data['grids'][$i]['style'][$name] = !empty($panels_data['grids'][$i]['style'][$name]); break; case 'number': $panels_data['grids'][$i]['style'][$name] = intval($panels_data['grids'][$i]['style'][$name]); break; case 'url': $panels_data['grids'][$i]['style'][$name] = esc_url_raw($panels_data['grids'][$i]['style'][$name]); break; case 'select': // Make sure the value is in the options if (!in_array($panels_data['grids'][$i]['style'][$name], array_keys($attr['options']))) { $panels_data['grids'][$i]['style'][$name] = false; } break; } } } return $panels_data; }