'widget-simpletags', 'description' => esc_html__('[DEPRECATED] - Your most used tags in cloud format with dynamic color and many options', 'simple-tags') ) ); } /** * Check if taxonomy exist and return it, otherwise return default post tags. * * @param array $instance * * @return string * @author WebFactory Ltd */ public static function _get_current_taxonomy($instance) { if (! empty($instance['taxonomy']) && taxonomy_exists($instance['taxonomy'])) { return $instance['taxonomy']; } return 'post_tag'; } /** * Default settings for widget * * @return array * @author WebFactory Ltd */ public static function get_fields() { return array( 'taxonomy' => 'post_tag', 'title' => esc_html__('Tag cloud', 'simple-tags'), 'max' => 45, 'selectionby' => 'count', 'selection' => 'desc', 'orderby' => 'random', 'order' => 'asc', 'smini' => 8, 'smax' => 22, 'unit' => 'pt', 'format' => 'flat', 'color' => 1, 'cmini' => '#CCCCCC', 'cmax' => '#000000', 'xformat' => '', 'adv_usage' => '' ); } /** * Method for theme render * * @param array $args * @param array $instance * * @return void * @author WebFactory Ltd */ public function widget($args, $instance) { extract($args); $current_taxonomy = self::_get_current_taxonomy($instance); // Build or not the name of the widget if (! empty($instance['title'])) { $title = $instance['title']; } else { if ('post_tag' == $current_taxonomy) { $title = esc_html__('Tags', 'simple-tags'); } else { $tax = get_taxonomy($current_taxonomy); if (isset($tax->labels)) { $title = $tax->labels->name; } else { $title = $tax->name; } } } $title = apply_filters('widget_title', $title, $instance, $this->id_base); $title = esc_html($title); // Set values and clean it foreach ((array) self::get_fields() as $field => $field_value) { ${$field} = isset($instance[$field]) ? esc_html(trim($instance[$field])) : ''; } $param = ''; // Selection $param .= (! empty($selectionby)) ? '&selectionby=' . $selectionby : '&selectionby=count'; $param .= (! empty($selection)) ? '&selection=' . $selection : '&selection=desc'; // Order $param .= (! empty($orderby)) ? '&orderby=' . $orderby : '&orderby=random'; $param .= (! empty($order)) ? '&order=' . $order : '&order=asc'; // Max tags if ((int) $max != 0) { $param .= '&number=' . $max; } // Size Mini if ((int) $smini != 0) { $param .= '&smallest=' . $smini; } // Size Maxi if ((int) $smax != 0) { $param .= '&largest=' . $smax; } // Unit if (! empty($unit)) { $param .= '&unit=' . $unit; } // Format if (! empty($format)) { $param .= '&format=' . $format; } // Use color ? if ((int) $color == 0) { $param .= '&color=false'; } // Color mini if (! empty($cmini)) { $param .= '&mincolor=' . $cmini; } // Color Max if (! empty($cmax)) { $param .= '&maxcolor=' . $cmax; } // Xformat if (! empty($xformat)) { $param .= '&xformat=' . $xformat; } // Advanced usage if (! empty($adv_usage)) { if (substr($adv_usage, 0, 1) != '&') { $param .= '&'; } $param .= $adv_usage; } // Taxonomy $param .= '&taxonomy=' . $current_taxonomy; // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped echo $before_widget; if (! empty($title)) { // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped echo $before_title . $title . $after_title; } st_tag_cloud(apply_filters('simple-tags-widget', 'title=' . $param, $instance)); // Use Widgets title and no ST title !! // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped echo $after_widget; } /** * Update widget settings * * @param array $new_instance * @param array $old_instance * * @return array * @author WebFactory Ltd */ public function update($new_instance, $old_instance) { $instance = $old_instance; foreach ((array) self::get_fields() as $field => $field_value) { $instance[ $field ] = sanitize_text_field($new_instance[ $field ]); } return $instance; } /** * Admin form for widgets * * @param array $instance * * @return void * @author WebFactory Ltd */ public function form($instance) { //Defaults $instance = wp_parse_args((array) $instance, self::get_fields()); ?>