/** * @param array $new_instance * @param array $old_instance * * @return array */ function update($new_instance, $old_instance) { $instance = array(); $instance['title'] = !empty($new_instance['title']) ? strip_tags($new_instance['title']) : __('New title', 'wpctc_widget_domain'); $instance['exclude'] = !empty($new_instance['exclude']) ? strip_tags($new_instance['exclude']) : ''; $instance['font'] = !empty($new_instance['font']) ? strip_tags($new_instance['font']) : ''; $custom_taxonomies = get_taxonomies(array('public' => true, '_builtin' => false), 'objects', 'and'); if ($custom_taxonomies) { foreach ($custom_taxonomies as $custom_taxonomy) { $instance[$custom_taxonomy->name . '_id'] = isset($new_instance[$custom_taxonomy->name . '_id']) ? $new_instance[$custom_taxonomy->name . '_id'] : array(); } } $instance['post_type'] = isset($new_instance['post_type']) ? $new_instance['post_type'] : array(); $instance['author'] = isset($new_instance['author']) ? $new_instance['author'] : array(); $instance['category_id'] = isset($new_instance['category_id']) ? $new_instance['category_id'] : array(); $instance['child_categories'] = isset($new_instance['child_categories']) ? $new_instance['child_categories'] : "0"; $instance['opacity'] = isset($new_instance['opacity']) ? $new_instance['opacity'] : "0"; $instance['tilt'] = isset($new_instance['tilt']) ? $new_instance['tilt'] : "0"; $instance['colorize'] = isset($new_instance['colorize']) ? $new_instance['colorize'] : "0"; $instance['nofollow'] = isset($new_instance['nofollow']) ? $new_instance['nofollow'] : "0"; $instance['cache'] = isset($new_instance['cache']) ? $new_instance['cache'] : "0"; $instance['tag_id'] = isset($new_instance['tag_id']) ? $new_instance['tag_id'] : array(); $instance['order_by'] = isset($new_instance['order_by']) && strlen($new_instance['order_by']) > 0 ? $new_instance['order_by'] : 'name'; $instance['order'] = isset($new_instance['order']) && strlen($new_instance['order']) > 0 ? $new_instance['order'] : 'ASC'; $instance['format'] = isset($new_instance['format']) && strlen($new_instance['format']) > 0 ? $new_instance['format'] : 'flat'; $instance['number'] = isset($new_instance['number']) && (is_int($new_instance['number']) || ctype_digit($new_instance['number'])) ? $new_instance['number'] : 0; $instance['post_age'] = isset($new_instance['post_age']) && (is_int($new_instance['post_age']) || ctype_digit($new_instance['post_age'])) ? $new_instance['post_age'] : 0; $instance['post_count'] = isset($new_instance['post_count']) && (is_int($new_instance['post_count']) || ctype_digit($new_instance['post_count'])) ? $new_instance['post_count'] : 0; $instance['taxonomy'] = isset($new_instance['taxonomy']) && strlen($new_instance['taxonomy']) > 0 ? $new_instance['taxonomy'] : 'post_tag'; $instance['width'] = isset($new_instance['width']) && is_numeric($new_instance['width']) ? $new_instance['width'] : 0; $instance['height'] = isset($new_instance['height']) && is_numeric($new_instance['height']) ? $new_instance['height'] : 0; $instance['radiusx'] = isset($new_instance['radiusx']) ? $new_instance['radiusx'] : '1'; $instance['radiusy'] = isset($new_instance['radiusy']) ? $new_instance['radiusy'] : '1'; $instance['radiusz'] = isset($new_instance['radiusz']) ? $new_instance['radiusz'] : '1'; $instance['zoom'] = isset($new_instance['zoom']) && is_numeric($new_instance['zoom']) ? $new_instance['zoom'] : 1; $instance['timeout'] = isset($new_instance['timeout']) && is_numeric($new_instance['timeout']) ? $new_instance['timeout'] : 60; $instance['smallest'] = isset($new_instance['smallest']) && (is_int($new_instance['smallest']) || ctype_digit($new_instance['smallest'])) ? $new_instance['smallest'] : 75; $instance['largest'] = isset($new_instance['largest']) && (is_int($new_instance['largest']) || ctype_digit($new_instance['largest'])) ? $new_instance['largest'] : 200; $color = !empty($new_instance['color']) ? strip_tags($new_instance['color']) : ''; if (!preg_match('/^#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$/', $color)) { $color = ''; } $instance['color'] = $color; $background = !empty($new_instance['background']) ? strip_tags($new_instance['background']) : ''; if (!preg_match('/^#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$/', $background)) { $background = ''; } $instance['background'] = $background; $border = !empty($new_instance['border']) ? strip_tags($new_instance['border']) : ''; if (!preg_match('/^#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$/', $border)) { $border = ''; } $instance['border'] = $border; if (isset(WPCTC_Settings::get_instance()->settings) && isset(WPCTC_Settings::get_instance()->settings['general']) && isset(WPCTC_Settings::get_instance()->settings['general']['clear-cache-on-save']) && WPCTC_Settings::get_instance()->settings['general']['clear-cache-on-save'] == 1) { WordPress_Category_Tag_Cloud::clear_caching_plugins(); } return $instance; }
/** * Prints an error that the system requirements weren't met. */ function wpctc_requirements_error() { global $wp_version; require_once dirname(__FILE__) . '/views/requirements-error.php'; } /* * Check requirements and load main class * The main program needs to be in a separate file that only gets loaded if the plugin requirements are met. Otherwise older PHP installations could crash when trying to parse it. */ if (wpctc_requirements_met()) { require_once __DIR__ . '/classes/wpctc-module.php'; require_once __DIR__ . '/classes/wp-category-tag-cloud.php'; require_once __DIR__ . '/classes/wpctc-settings.php'; require_once __DIR__ . '/classes/wpctc-widget.php'; if (class_exists('WordPress_Category_Tag_Cloud')) { $GLOBALS['wpctc'] = WordPress_Category_Tag_Cloud::get_instance(); register_activation_hook(__FILE__, array($GLOBALS['wpctc'], 'activate')); register_deactivation_hook(__FILE__, array($GLOBALS['wpctc'], 'deactivate')); } } else { add_action('admin_notices', 'wpctc_requirements_error'); } if (class_exists('WordPress_Category_Tag_Cloud')) { function show_tag_cloud($options) { echo $GLOBALS['wpctc']->get_tag_cloud($options); } }
/** * Validates submitted setting values before they get saved to the database. Invalid data will be overwritten with defaults. * * @mvc Model * * @param array $new_settings * * @return array */ public function validate_settings($new_settings) { $new_settings = shortcode_atts($this->settings, $new_settings); if (!is_string($new_settings['db-version'])) { $new_settings['db-version'] = WordPress_Category_Tag_Cloud::VERSION; } /* * General Settings */ if (!isset($new_settings['general'])) { $new_settings['general'] = array(); } $this->setting_zero_if_not_set($new_settings, 'general', 'clear-cache-on-save'); $this->setting_zero_if_not_set($new_settings, 'general', 'do-not-load-scripts'); WordPress_Category_Tag_Cloud::clear_caching_plugins(); return $new_settings; }