/**
  * 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>';
             }
         }
     }
 }
Example #2
0
 /**
  * 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>';
}