function widget($args, $instance) { $icon = isset($instance['icon']) ? $instance['icon'] : ''; $icon_color = isset($instance['icon_color']) ? $instance['icon_color'] : ''; $label = isset($instance['label']) ? $instance['label'] : ''; $title = isset($instance['title']) ? $instance['title'] : ''; $description = isset($instance['description']) ? $instance['description'] : ''; $url = isset($instance['url']) ? $instance['url'] : ''; echo ts_essentials_escape($args['before_widget']); if (!empty($title)) { echo ts_essentials_escape($args['before_title'] . apply_filters('widget_title', $title) . $args['after_title']); } $infobox_class = $url ? 'has-url' : 'has-no-url'; $infobox_class .= $icon ? ' has-icon' : ' has-icon'; echo '<div class="infobox ' . esc_attr($infobox_class) . '">'; echo trim($url) ? '<a href="' . esc_url($url) . '" class="link">' : '<div class="link">'; echo trim($icon) ? '<i class="' . ts_essentials_fontawesome_class($icon) . '" style="background:' . esc_attr($icon_color) . '"></i>' : ''; echo trim($title) ? '<h4 class="sp1">' . esc_html($title) . '</h4>' : ''; echo trim($description) ? '<span class="sp2 small">' . esc_html($description) . '</span>' : ''; echo trim($url) ? '</a>' : '</div>'; echo '</div>'; echo ts_essentials_escape($args['after_widget']); }
function ts_toggles_shortcode($atts = null, $content = null) { $atts = shortcode_atts(array('open_icon' => 'minus', 'closed_icon' => 'plus'), $atts); global $open_icon, $closed_icon, $ts_toggles; $ts_toggles = array(); $open_icon = trim($atts['open_icon']) ? $atts['open_icon'] : 'chevron-down'; $open_icon = ts_essentials_fontawesome_class($open_icon); $closed_icon = trim($atts['closed_icon']) ? $atts['closed_icon'] : 'chevron-right'; $closed_icon = ts_essentials_fontawesome_class($closed_icon); $html = ''; $html .= '<div class="toggles-wrapper tog-acc-wrapper toggles ts-shortcode-block" data-open-icon="' . esc_attr($open_icon) . '" data-closed-icon="' . esc_attr($closed_icon) . '">'; $_html = do_shortcode($content); if (count($ts_toggles) > 0) { $count = count($ts_toggles); $i = 1; foreach ($ts_toggles as $toggle) { $position = $i == $count ? 'last' : ($i == 1 ? 'first' : 'not-first-or-last'); $html .= str_replace('<div class="accordion-block', '<div class="accordion-block ' . $position, $toggle); $i++; $i = $i > $count ? $count : $i; } } else { $html .= $_html; } $html .= '</div>'; $ts_toggles = array(); return $html; }