/** * Display shortcode links for an option panel. * @param string $type Options panel data type. */ protected static function display_panel_shortcodes($type = 'plugin') { $screen = get_current_screen(); foreach (AC()->shortcodes->get_shortcodes() as $load_shortcodes) { if (empty($load_shortcodes->shortcode['invisible'])) { if ($type === $load_shortcodes->shortcode['type']) { $title = $load_shortcodes->method_title; $tooltip = $load_shortcodes->method_description; $shortcode = $load_shortcodes->shortcode; $class_list = array(); // Shortcode class list. if (!empty($shortcode['class'])) { $class_list[] = $shortcode['class']; } if (!empty($shortcode['target'])) { $class_list[] = $shortcode['target']; } // Specific screen shortcode. if (isset($screen->id) && isset($shortcode['specific']['screen']) && !in_array($screen->id, $shortcode['specific']['screen'])) { $class_list[] = 'disabled-shortcode'; $tooltip = isset($shortcode['specific']['notice']) ? $shortcode['specific']['notice'] : __('Current screen doesn\'t support this shortcode element =/', 'axiscomposer'); } // Create a shortcode button link. echo '<a href="#' . strtolower($shortcode['name']) . '" class="insert-shortcode help_tip ' . esc_attr(implode(' ', $class_list)) . '" data-dragdrop-level="' . esc_attr($shortcode['drag-level']) . '" data-tip="' . ac_sanitize_tooltip($tooltip) . '"><i class="' . ac_format_icon($shortcode['icon']) . '"></i><span class="desc">' . wp_kses_post($title) . '</span></a>'; } } } }
/** * Test ac_sanitize_tooltip() - note this is a basic type test as WP core already * has coverage for wp_kses() * * @since 1.0.0 */ public function test_ac_sanitize_tooltip() { $this->assertEquals('alert();cleaned', ac_sanitize_tooltip('<script>alert();</script>cleaned')); }
/** * Display a AxisComposer help tip. * @param string $tip Help tip text * @param bool $allow_html Allow sanitized HTML if true or escape * @return string */ function ac_help_tip($tip, $allow_html = false) { if ($allow_html) { $tip = ac_sanitize_tooltip($tip); } else { $tip = esc_attr($tip); } return '<span class="axiscomposer-help-tip" data-tip="' . $tip . '"></span>'; }