Changeset 1435004
- Timestamp:
- 06/11/2016 05:01:47 PM (10 years ago)
- Location:
- easing-slider/trunk
- Files:
-
- 4 added
- 1 deleted
- 10 edited
-
bower.json (modified) (1 diff)
-
easing-slider.php (modified) (2 diffs)
-
languages/easingslider.pot (modified) (1 diff)
-
package.json (modified) (1 diff)
-
readme.txt (modified) (2 diffs)
-
src/Plugin/Admin/Actions/Settings.php (modified) (1 diff)
-
src/Plugin/Admin/Actions/Sliders.php (modified) (1 diff)
-
src/Plugin/Admin/Upgrades/SliderTransformers (added)
-
src/Plugin/Admin/Upgrades/SliderTransformers/v210.php (added)
-
src/Plugin/Admin/Upgrades/SliderTransformers/v220.php (added)
-
src/Plugin/Admin/Upgrades/UpgradeTo220.php (modified) (10 diffs)
-
src/Plugin/Admin/Upgrades/UpgradeTo300.php (modified) (9 diffs)
-
src/Plugin/Admin/Upgrades/UpgradeTo305.php (deleted)
-
src/Plugin/Admin/Upgrades/UpgradeTo306.php (added)
-
src/Plugin/Admin/Upgrades/Upgrader.php (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
-
easing-slider/trunk/bower.json
r1432934 r1435004 1 1 { 2 2 "name": "Easing Slider", 3 "version": "3.0. 5",3 "version": "3.0.6", 4 4 "homepage": "https://github.com/easingslider/easing-slider", 5 5 "authors": [ -
easing-slider/trunk/easing-slider.php
r1432934 r1435004 4 4 * Plugin URI: http://easingslider.com/ 5 5 * Description: A simple WordPress plugin for creating beautiful sliders. 6 * Version: 3.0. 56 * Version: 3.0.6 7 7 * Author: Matthew Ruddy 8 8 * Author URI: http://matthewruddy.com … … 26 26 * Define constants 27 27 */ 28 define('EASINGSLIDER_VERSION', '3.0. 5');28 define('EASINGSLIDER_VERSION', '3.0.6'); 29 29 define('EASINGSLIDER_NAME', 'Easing Slider'); 30 30 define('EASINGSLIDER_API_URL', 'http://easingslider.com/'); -
easing-slider/trunk/languages/easingslider.pot
r1432950 r1435004 3 3 msgid "" 4 4 msgstr "" 5 "Project-Id-Version: Easing Slider 3.0. 5\n"5 "Project-Id-Version: Easing Slider 3.0.6\n" 6 6 "Report-Msgid-Bugs-To: https://wordpress.org/support/plugin/easing-slider\n" 7 7 "POT-Creation-Date: 2016-06-08 01:05:08+00:00\n" -
easing-slider/trunk/package.json
r1432934 r1435004 2 2 "name": "easing-slider", 3 3 "title": "Easing Slider", 4 "version": "3.0. 5",4 "version": "3.0.6", 5 5 "devDependencies": { 6 6 "grunt": "0.4.5", -
easing-slider/trunk/readme.txt
r1432950 r1435004 5 5 Requires at least: 4.5 6 6 Tested up to: 4.6 7 Stable tag: 3.0. 57 Stable tag: 3.0.6 8 8 License: GPLv2 or later 9 9 License URI: http://www.gnu.org/licenses/gpl-2.0.html … … 89 89 90 90 == Changelog == 91 92 = 3.0.6 - June 11th, 2016 = 93 * Refactored & improved initial v3.0.0 upgrade, fixing issues with upgrade process between v3.0.4 & v3.0.5. 94 * Now using `admin_url` function to generate redirect URLs in admin. 91 95 92 96 = 3.0.5 - June 8th, 2016 = -
easing-slider/trunk/src/Plugin/Admin/Actions/Settings.php
r1429811 r1435004 81 81 $this->activator->activate(); 82 82 83 // Get the redirect URL 84 $redirectUrl = admin_url('admin.php?page=easingslider-settings&easingslider_notice=reset_plugin'); 85 83 86 // Redirect back to settings page to avoid resetting the plugin again if the user refreshes the page. 84 wp_safe_redirect( "admin.php?page=easingslider-settings&easingslider_notice=reset_plugin");87 wp_safe_redirect($redirectUrl); 85 88 exit(); 86 89 } -
easing-slider/trunk/src/Plugin/Admin/Actions/Sliders.php
r1429811 r1435004 64 64 protected function creationRedirect($id) 65 65 { 66 wp_safe_redirect("admin.php?page=easingslider&edit={$id}&easingslider_notice=publish_slider"); 66 $redirectUrl = admin_url(sprintf('admin.php?page=easingslider&edit=%d&easingslider_notice=publish_slider', $id)); 67 68 wp_safe_redirect($redirectUrl); 67 69 exit(); 68 70 } -
easing-slider/trunk/src/Plugin/Admin/Upgrades/UpgradeTo220.php
r1432934 r1435004 4 4 5 5 use EasingSlider\Foundation\Admin\Upgrades\Upgrade; 6 use EasingSlider\Plugin\Admin\Upgrades\SliderTransformers\v210 as SliderTransformer; 6 7 7 8 /** … … 29 30 30 31 /** 31 * Possible option prefixes through v2.1.* Easing Slider "Lite" lifespan32 *33 * @var array34 */35 protected $optionPrefixes = array('easingsliderlite', 'rivasliderlite');36 37 /**38 32 * Upgrade Flag 39 33 * … … 43 37 44 38 /** 45 * ReferenceID39 * Lite Slider ID 46 40 * 47 41 * @var string 48 42 */ 49 protected $ referenceId = 'easingslider_lite_slider_id';43 protected $liteSliderId = 'easingslider_lite_slider_id'; 50 44 51 45 /** … … 64 58 } 65 59 66 if ($this-> liteVersionIsEligible()) {60 if ($this->versionIsEligible()) { 67 61 return true; 68 62 } … … 76 70 * @return boolean 77 71 */ 78 protected function liteVersionIsEligible()72 protected function versionIsEligible() 79 73 { 80 74 // Hijack version with old version option 81 $version = $this->getLiteOption('version');75 $version = get_option('easingsliderlite_version'); 82 76 83 77 // Do the comparison and run the upgrade if version is eligible … … 90 84 91 85 /** 92 * Delets an Easing Slider "Lite" option86 * Creates the new upgraded "Lite" slider 93 87 * 94 * @param string $name95 * @return void96 */97 protected function deleteLiteOption($name)98 {99 foreach ($this->optionPrefixes as $prefix) {100 delete_option("{$prefix}_{$name}");101 }102 }103 104 /**105 * Gets an Easing Slider "Lite" option106 *107 * @param string $name108 * @return mixed|false109 */110 protected function getLiteOption($name)111 {112 foreach ($this->optionPrefixes as $prefix) {113 $value = get_option("{$prefix}_{$name}", false);114 115 if ($value) {116 return $value;117 }118 }119 120 return false;121 }122 123 /**124 * Gets the "Easing Slider 'Lite'" slider125 *126 * @return object|false127 */128 protected function getLiteSlider()129 {130 return $this->getLiteOption('slideshow');131 }132 133 /**134 * Creates the upgraded "Lite" slider135 *136 * @param object $liteSlider137 88 * @return int 138 89 */ 139 protected function create UpgradedSlider($liteSlider)90 protected function createNewSlider() 140 91 { 141 // Create the post 92 $transformer = new SliderTransformer(); 93 94 // Get the transformed data 95 $data = $transformer->transform(); 96 97 // Create the post (aka. slider) 142 98 $postId = wp_insert_post(array( 143 99 'post_type' => 'easingslider', … … 146 102 )); 147 103 148 // Add post meta 149 add_post_meta($postId, '_easingslider_slides', $this->transformLiteSlides($liteSlider->slides)); 150 add_post_meta($postId, '_easingslider_general', $liteSlider->general); 151 add_post_meta($postId, '_easingslider_dimensions', $liteSlider->dimensions); 152 add_post_meta($postId, '_easingslider_transitions', $liteSlider->transitions); 153 add_post_meta($postId, '_easingslider_navigation', $liteSlider->navigation); 154 add_post_meta($postId, '_easingslider_playback', $liteSlider->playback); 104 // Add post metadata 105 foreach ($data as $key => $value) { 106 add_post_meta($postId, "_easingslider_{$key}", $value); 107 } 155 108 156 109 return $postId; … … 158 111 159 112 /** 160 * Transforms our "Lite" slides into our new slide data structure113 * Sets the Lite Slider ID (used to enable our old shortcode) 161 114 * 162 * @param array $liteSlides 163 * @return array 164 */ 165 protected function transformLiteSlides($liteSlides) 166 { 167 global $wpdb; 168 169 $slides = array(); 170 171 // Transform each slide 172 foreach ($liteSlides as $liteSlide) { 173 174 // Query the guid 175 $attachmentQuery = $wpdb->prepare("SELECT ID FROM {$wpdb->posts} WHERE guid='%s'", $liteSlide->url); 176 177 // Attempt to get the attachment of this image 178 $attachmentId = $wpdb->get_var($attachmentQuery); 179 180 // Populate the slide 181 $slide = (object) array( 182 'type' => 'image', 183 'id' => absint($liteSlide->id), 184 'attachment_id' => absint($attachmentId), 185 'alt' => sanitize_text_field($liteSlide->alt), 186 'link' => ($liteSlide->link) ? 'custom' : 'none', 187 'linkUrl' => sanitize_text_field($liteSlide->link), 188 'linkTargetBlank' => ('_blank' == $liteSlide->linkTarget) ? true : false, 189 'title' => sanitize_text_field($liteSlide->title), 190 'url' => null 191 ); 192 193 // Add an image URL if we aren't using an attachment 194 if ( ! $attachmentId) { 195 $slide->url = sanitize_text_field($liteSlide->url); 196 } 197 198 // Add the slide 199 $slides[] = $slide; 200 201 } 202 203 return $slides; 204 } 205 206 /** 207 * Sets the reference ID 208 * 209 * @param int $id 115 * @param int $id 210 116 * @return void 211 117 */ 212 protected function set ReferenceId($id)118 protected function setLiteSliderId($id) 213 119 { 214 update_option($this-> referenceId, $id);120 update_option($this->liteSliderId, $id); 215 121 } 216 122 … … 236 142 237 143 /** 238 * Deletes all "Easing Slider 'Lite'" options that are no longer used239 *240 * @return void241 */242 protected function cleanupOptions()243 {244 $this->deleteLiteOption('customizations');245 $this->deleteLiteOption('disable_welcome_panel');246 $this->deleteLiteOption('major_upgrade');247 $this->deleteLiteOption('settings');248 $this->deleteLiteOption('slideshow');249 $this->deleteLiteOption('version');250 }251 252 /**253 144 * Upgrades the "Lite" slider 254 145 * … … 257 148 public function upgradeSlider() 258 149 { 259 $liteSlider = $this->getLiteSlider(); 150 // Create the new upgraded slider 151 $sliderId = $this->createNewSlider(); 260 152 261 if ($liteSlider) { 153 // Set the reference ID so we can continue to use the `[easingsliderlite]` shortcode 154 $this->setLiteSliderId($sliderId); 262 155 263 // Create the upgraded slider 264 $sliderId = $this->createUpgradedSlider($liteSlider); 265 266 // Set the reference ID so we can continue to use the `[easingsliderlite`] shortcode 267 $this->setReferenceId($sliderId); 268 269 // Mark the upgrade as complete so it doesn't occur again 270 $this->markAsUpgraded(); 271 272 // Cleanup "Lite" plugin options as they are now redundant 273 // $this->cleanupOptions(); // Temporarily disabling this to allow users time to revert. 274 275 } 156 // Mark the upgrade as complete so it doesn't occur again 157 $this->markAsUpgraded(); 276 158 } 277 159 -
easing-slider/trunk/src/Plugin/Admin/Upgrades/UpgradeTo300.php
r1432934 r1435004 6 6 use WP_Query; 7 7 use EasingSlider\Foundation\Admin\Upgrades\Upgrade; 8 use EasingSlider\Foundation\Contracts\Repositories\Repository; 9 use EasingSlider\Plugin\Contracts\Options\License; 10 use EasingSlider\Plugin\Contracts\Options\Settings; 11 8 use EasingSlider\Plugin\Admin\Upgrades\SliderTransformers\v220 as SliderTransformer; 12 9 13 10 /** … … 20 17 class UpgradeTo300 extends Upgrade 21 18 { 22 /**23 * Sliders24 *25 * @var \EasingSlider\Foundation\Contracts\Repositories\Repository26 */27 protected $sliders;28 29 /**30 * Settings31 *32 * @var \EasingSlider\Plugin\Contracts\Options\Settings33 */34 protected $settings;35 36 /**37 * License38 *39 * @var \EasingSlider\Plugin\Contracts\Options\License40 */41 protected $license;42 43 19 /** 44 20 * The version we're upgrading from (or greater) … … 56 32 57 33 /** 58 * Old Slider Meta Keys34 * Gets the sliders 59 35 * 60 * @ var array36 * @return array 61 37 */ 62 protected $oldSliderMetaKeys = array( 63 'slides' => '_easingslider_slides', 64 'general' => '_easingslider_general', 65 'dimensions' => '_easingslider_dimensions', 66 'transitions' => '_easingslider_transitions', 67 'navigation' => '_easingslider_navigation', 68 'playback' => '_easingslider_playback' 69 ); 70 71 /** 72 * Constructor 73 * 74 * @param \EasingSlider\Foundation\Contracts\Repositories\Repository $sliders 75 * @param \EasingSlider\Plugin\Contracts\Options\Settings $settings 76 * @param \EasingSlider\Plugin\Contracts\Options\License $license 77 * @return void 78 */ 79 public function __construct(Repository $sliders, Settings $settings, License $license) 38 protected function getSliders() 80 39 { 81 $this->sliders = $sliders; 82 $this->settings = $settings; 83 $this->license = $license; 40 return get_posts(array( 41 'post_type' => 'easingslider', 42 'post_status' => 'all', 43 'posts_per_page' => -1 44 )); 84 45 } 85 46 86 47 /** 87 * Sets a slider data attribute, only if the old slider value exists.48 * Upgrades a slider 88 49 * 89 * @param array $slider 90 * @param string $key 91 * @param object $oldSlider 92 * @param string $oldSection 93 * @param string $oldKey 94 * @return array 50 * @param int $id 51 * @return void 95 52 */ 96 protected function setAttributeIfExists($slider, $key, $oldSlider, $oldSection, $oldValue)53 protected function upgradeSlider($id) 97 54 { 98 if (isset($oldSlider->{$oldSection}->{$oldValue})) { 99 $slider[$key] = $oldSlider->{$oldSection}->{$oldValue}; 100 } 55 $transformer = new SliderTransformer($id); 101 56 102 return $slider;103 }57 // Get the transformed data 58 $data = $transformer->transform(); 104 59 105 /** 106 * Transforms the old slider data into our new data structure 107 * 108 * @param object $oldSlider 109 * @return array 110 */ 111 protected function transformOldSliderData($oldSlider) 112 { 113 $data = array(); 114 115 // Map linear values 116 $data['post_title'] = get_the_title($oldSlider->ID); 117 $data['type'] = 'media'; 118 $data['image_resizing'] = true; 119 $data['auto_height'] = false; 120 $data['lazy_loading'] = true; 121 122 // Map dynamic values 123 $data = $this->setAttributeIfExists($data, 'randomize', $oldSlider, 'general', 'randomize'); 124 $data = $this->setAttributeIfExists($data, 'width', $oldSlider, 'dimensions', 'width'); 125 $data = $this->setAttributeIfExists($data, 'height', $oldSlider, 'dimensions', 'height'); 126 $data = $this->setAttributeIfExists($data, 'full_width', $oldSlider, 'dimensions', 'full_width'); 127 $data = $this->setAttributeIfExists($data, 'background_images', $oldSlider, 'dimensions', 'background_images'); 128 $data = $this->setAttributeIfExists($data, 'transition_effect', $oldSlider, 'transitions', 'effect'); 129 $data = $this->setAttributeIfExists($data, 'transition_duration', $oldSlider, 'transitions', 'duration'); 130 $data = $this->setAttributeIfExists($data, 'arrows', $oldSlider, 'navigation', 'arrows'); 131 $data = $this->setAttributeIfExists($data, 'arrows_hover', $oldSlider, 'navigation', 'arrows_hover'); 132 $data = $this->setAttributeIfExists($data, 'arrows_position', $oldSlider, 'navigation', 'arrows_position'); 133 $data = $this->setAttributeIfExists($data, 'pagination', $oldSlider, 'navigation', 'pagination'); 134 $data = $this->setAttributeIfExists($data, 'pagination_hover', $oldSlider, 'navigation', 'pagination_hover'); 135 $data = $this->setAttributeIfExists($data, 'pagination_position', $oldSlider, 'navigation', 'pagination_position'); 136 $data = $this->setAttributeIfExists($data, 'pagination_location', $oldSlider, 'navigation', 'pagination_location'); 137 $data = $this->setAttributeIfExists($data, 'playback_enabled', $oldSlider, 'playback', 'enabled'); 138 $data = $this->setAttributeIfExists($data, 'playback_pause', $oldSlider, 'playback', 'pause'); 139 140 // Transform old slides 141 $data['slides'] = $this->transformOldSlides($oldSlider->slides); 142 143 return $data; 144 } 145 146 /** 147 * Transforms our old slides into our new slide data structure 148 * 149 * @param array $oldSlides 150 * @return array 151 */ 152 protected function transformOldSlides($oldSlides) 153 { 154 global $wpdb; 155 156 $slides = array(); 157 158 // Transform each slide 159 foreach ($oldSlides as $oldSlide) { 160 161 // Populate the slide 162 $slide = (object) array( 163 'type' => 'image', 164 'id' => absint($oldSlide->id), 165 'attachment_id' => absint($oldSlide->attachment_id), 166 'alt' => sanitize_text_field($oldSlide->alt), 167 'link' => sanitize_text_field($oldSlide->link), 168 'linkUrl' => sanitize_text_field($oldSlide->linkUrl), 169 'linkTargetBlank' => (true == $oldSlide->linkTargetBlank) ? true : false, 170 'title' => sanitize_text_field($oldSlide->title), 171 'url' => null 172 ); 173 174 // Add an image URL if we aren't using an attachment 175 if ( ! $oldSlide->attachment_id) { 176 $slide->url = $oldSlide->url; 177 } 178 179 // Add the slide 180 $slides[] = $slide; 181 182 } 183 184 return $slides; 185 } 186 187 /** 188 * Gets the old sliders 189 * 190 * @return array 191 */ 192 protected function getOldSliders() 193 { 194 // Get sliders 195 $sliders = array(); 196 197 // Query posts 198 $wpQuery = new WP_Query(array('post_type' => 'easingslider')); 199 200 // Loop through each post 201 if ($wpQuery->have_posts()) { 202 while($wpQuery->have_posts()) { 203 204 $wpQuery->the_post(); 205 206 // Get post ID 207 $id = get_the_ID(); 208 209 // Get slider 210 $slider = (object) array( 211 'ID' => $id 212 ); 213 214 // Add metadata 215 foreach ($this->oldSliderMetaKeys as $settingsKey => $metaKey) { 216 $slider->{$settingsKey} = get_post_meta($id, $metaKey, true); 217 } 218 219 // Add to sliders 220 $sliders[] = $slider; 221 222 } 223 } 224 225 return $sliders; 60 // Update the slider data 61 update_post_meta($id, '_easingslider', $data); 226 62 } 227 63 … … 235 71 { 236 72 add_option('easingslider_upgraded_from_v2', true); 237 }238 239 /**240 * Migrates the license key241 *242 * @return void243 */244 public function migrateLicense()245 {246 // Set the license key247 $this->license['key'] = get_option('easingslider_license_key');248 249 // Save it250 $this->license->save();251 252 // Delete old license key253 delete_option('easingslider_license_key');254 }255 256 /**257 * Upgrades the plugin settings258 *259 * @return void260 */261 public function upgradeSettings()262 {263 // Get new settings array of defaults264 $settings = $this->settings->getDefaults();265 266 // Get the old settings267 $oldSettings = (array) get_option('easingslider_settings');268 269 // Convert "Load in Footer" option270 if (isset($oldSettings['load_assets']) && 'footer' == $oldSettings['load_assets']) {271 $settings['load_in_footer'] = true;272 }273 274 // Convert "Remove Data" option275 $settings['remove_data'] = $oldSettings['remove_data'];276 277 // Set the new settings278 $this->settings->setValue($settings);279 280 // Update the settings281 $this->settings->save();282 73 } 283 74 … … 298 89 } 299 90 300 /** 301 * In this version (v2.3), we've also unprefixed the plugin capabilities. 302 * Let's reflect this. 303 */ 91 // If we have roles, map the capabilities 304 92 if (is_object($wp_roles) && ! empty($wp_roles->roles)) { 305 93 foreach ($wp_roles->roles as $role => $info) { 306 307 // Get the user role308 94 $userRole = get_role($role); 309 95 … … 324 110 $userRole->remove_cap('easingslider_discover_extensions'); 325 111 $userRole->remove_cap('easingslider_manage_extensions'); 326 327 112 } 328 113 } 114 } 115 116 /** 117 * Upgrades the plugin settings 118 * 119 * @return void 120 */ 121 public function upgradeSettings() 122 { 123 $settings = (object) get_option('easingslider_settings'); 124 125 // Only two settings option available in v3.0.0 126 update_option('easingslider_settings', array( 127 'load_in_footer' => ( ! empty($settings->load_assets) && 'footer' == $settings->load_assets) ? true : false, 128 'remove_data' => ( ! empty($settings->remove_data)) ? true : false 129 )); 329 130 } 330 131 … … 336 137 public function upgradeSliders() 337 138 { 338 // Get old sliders 339 $oldSliders = $this->getOldSliders(); 139 $sliders = $this->getSliders(); 340 140 341 141 /** … … 343 143 * so instead of creating entirely new sliders, we're upgrading the old ones to our new metadata format. 344 144 */ 345 foreach ($oldSliders as $oldSlider) { 346 347 // Transform data 348 $data = $this->transformOldSliderData($oldSlider); 349 350 // Update the slider with new data 351 $this->sliders->update($oldSlider->ID, $data); 352 353 // Delete old slider meta data 354 // foreach ($this->oldSliderMetaKeys as $metaKey) { 355 // delete_post_meta($oldSlider->ID, $metaKey, true); // Temporarily disable this to allow users to revert back if they have issues. 356 // } 357 145 foreach ($sliders as $slider) { 146 $this->upgradeSlider($slider->ID); 358 147 } 359 148 } … … 368 157 $this->setupUpgradeInfoNotice(); 369 158 370 $this->migrateLicense();371 372 159 $this->transferCapabilities(); 373 160 -
easing-slider/trunk/src/Plugin/Admin/Upgrades/Upgrader.php
r1432934 r1435004 23 23 $this->upgrades[] = $this->plugin->make('\EasingSlider\Plugin\Admin\Upgrades\UpgradeTo220'); 24 24 $this->upgrades[] = $this->plugin->make('\EasingSlider\Plugin\Admin\Upgrades\UpgradeTo300'); 25 $this->upgrades[] = $this->plugin->make('\EasingSlider\Plugin\Admin\Upgrades\UpgradeTo30 5');25 $this->upgrades[] = $this->plugin->make('\EasingSlider\Plugin\Admin\Upgrades\UpgradeTo306'); 26 26 } 27 27 }
Note: See TracChangeset
for help on using the changeset viewer.