Plugin Directory

Changeset 1690000


Ignore:
Timestamp:
07/03/2017 06:51:53 PM (9 years ago)
Author:
kosinix
Message:

To trunk 3.2.0

Location:
cyclone-slider-2/trunk
Files:
89 added
19 deleted
48 edited

Legend:

Unmodified
Added
Removed
  • cyclone-slider-2/trunk/README.txt

    r1670988 r1690000  
    1 === Cyclone Slider 2 ===
     1=== Cyclone Slider ===
    22Contributors: kosinix
    33Donate link: http://www.codefleet.net/donate/
    44Tags: slider, slideshow, drag-and-drop, wordpress-slider, wordpress-slideshow, cycle 2, jquery, responsive, translation-ready, custom-post, cyclone-slider
    55Requires at least: 3.5
    6 Tested up to: 4.7.3
     6Tested up to: 4.8
    77Stable tag: trunk
    88License: GPLv3
     
    1313== Description ==
    1414
    15 Cyclone Slider 2 is an easy-to-use slideshow plugin with an intuitive user interface. It's simple yet extensible.
     15Cyclone Slider is an easy-to-use slideshow plugin with an intuitive user interface. It's simple yet extensible.
    1616
    1717= Why Use It? =
     
    2020* Translation ready and RTL support. Ideal for languages other than English.
    2121* Comes with 4 core templates: Dark, Default, Standard and Thumbnails.
    22 * Advance template system. Not happy with the core templates? The template system allows developers to customize the slideshow appearance and behavior. Perfect for every client projects. [More info on templating here](http://docs.codefleet.net/cyclone-slider-2/templating/).
     22* Advance template system. Not happy with the core templates? The template system allows developers to customize the slideshow appearance and behavior. Perfect for every client projects. [More info on templating here](http://docs.codefleet.net/cyclone-slider/templating/).
    2323* Selective loading. Load only the scripts and styles that you need.
    2424* Import/export selected slideshows. Moving your slideshow to a different website? No problemo.
    25 * It's FREE!
     25* It's FREE! Cyclone Slider does not impose the pro version to free users.
    2626
    2727= More Features =
     
    4949* 6 resize options: Fit, Fill, Crop, Exact, Exact Width, Exact Height
    5050* Ability to change the image quality: Low, Medium, High, Very High, Max
    51 * And two additional templates: Text and Galleria
     51* And additional templates: Text, Galleria, Yelp and Twitter
    5252
    5353
    5454= Demos =
    55 * View some [screenshots](http://wordpress.org/plugins/cyclone-slider-2/screenshots/).
    56 * Checkout the [Cyclone Slider 2 homepage](https://www.codefleet.net/cyclone-slider-2/) for a live demo.
     55* View some [screenshots](http://wordpress.org/plugins/cyclone-slider/screenshots/).
     56* Checkout the [Cyclone Slider homepage](https://www.codefleet.net/cyclone-slider/) for a live demo.
    5757
    5858= Credits =
    59 * Cyclone Slider 2 was based on [Cycle 2](http://jquery.malsup.com/cycle2/) by [Mike Alsup](http://jquery.malsup.com/).
     59* Cyclone Slider was based on [Cycle 2](http://jquery.malsup.com/cycle2/) by [Mike Alsup](http://jquery.malsup.com/).
    6060
    6161= Translation Credits =
     
    6767* [Gabriel Gil](http://gabrielgil.es/) and [Digital03](http://digital03.net/) for the Spanish translation.
    6868
    69 Do you want to translate Cyclone Slider 2 manually into your language? Check this [tutorial](http://docs.codefleet.net/cyclone-slider-2/translation/).
     69Do you want to translate Cyclone Slider manually into your language? Check this [tutorial](http://docs.codefleet.net/cyclone-slider/translation/).
    7070
    7171= License =
     
    85851. Upload the unzipped plugin here
    86861. Once finished login into your WP Admin and go to Admin > Plugins
    87 1. Look for Cyclone Slider 2 and activate it
     871. Look for Cyclone Slider and activate it
    8888
    8989= Usage =
     
    107107
    108108= Where do I add my own templates? =
    109 See: [http://docs.codefleet.net/cyclone-slider-2/creating-your-own-template/](http://docs.codefleet.net/cyclone-slider-2/creating-your-own-template/)
     109See: [http://docs.codefleet.net/cyclone-slider/creating-your-own-template/](http://docs.codefleet.net/cyclone-slider/creating-your-own-template/)
    110110
    111111== Screenshots ==
     
    119119== Changelog ==
    120120
    121 = 2.14.0 - 2017-05-23 =
    122 * Fix fatal error with updater.
    123 * Simplified update message to be less confusing.
    124 
    125 = 2.13.0 - 2017-04-19 =
    126 * Codebase merge with Cyclone Slider. See [detailed post](https://www.codefleet.net/cyclone-slider-reborn/).
    127 * Add Merge Screen and merge notice.
    128 
    129 = 2.12.4 - 2016-08-10 =
    130 * Fix for worst image quality bug.
    131 * Merged with Grafika 1.4.0.
    132 
    133 = 2.12.3 - 2016-07-19 =
    134 * Fix for require_once not finding relative paths and fatal error when saving non image slides.
    135 
    136 = 2.12.2 - 2016-07-18 =
    137 * Fix for parsing error in PHP versions 5.2 due to missing namespace support.
    138 
    139 = 2.12.1 - 2016-07-09 =
    140 * Fix autoloader not finding namespaced classes.
    141 * Updated Grafika from source.
    142 
    143 = 2.12.0 - 2016-07-06 =
    144 * Now uses [Grafika](http://kosinix.github.io/grafika/) for image editing.
    145 * Added link in slide preview image that opens in new tab when clicked.
    146 
    147 = 2.11.0 - 2016-03-30 =
    148 * New. Templates can now be added using a sub-plugin. See [docs](http://docs.codefleet.net/cyclone-slider-2/creating-your-own-template/).
    149 * New filter cycloneslider_view_vars. See [docs for a full list of filters](http://docs.codefleet.net/cyclone-slider-2/filters/).
    150 * Change overall textdomain handling to be compatible with wordpress.org translation.
    151 * Improved message and warnings for template locations.
    152 * Change the Hide checkbox to Hidden to better convey the action.
    153 * Added Upgrade to Pro link in publish metabox.
    154 * Move cycloneslider_image_sizes filter out of plugins_loaded to fire at a later time.
    155 * Fix. Author will now show up even without a link for testimonials.
    156 * Updated license to GPLv3
    157 
    158 = 2.10.7 - 2015-03-03 =
    159 * Fix Width Management and Resize Images not working.
    160 
    161 = 2.10.6 - 2015-03-01 =
    162 * New. Added security checks to export zip.
    163 
    164 = 2.10.5 =
    165 * Fix. Multi-language not working.
    166 * Change. Updated main .pot language file.
    167 * Change. Modified plugin header to match the current WordPress requirements.
    168 
    169 = 2.10.4 =
    170 * Fix. Escaped all echo of dynamic variables inside view files for security.
    171 * Change. Move screenshots to svn assets. Results to lesser plugin file size.
    172 * Change. Added classes for improved updater for Pro.
    173 
    174 = 2.10.3 =
    175 * Fix. Fixed fatal error when ZipArchive is missing from PHP.
    176 * New. Added 'cyclone_slider_services' filter.
    177 
    178 = 2.10.2 =
    179 * Fix. Fixed error opening zip file in exporter.
    180 
    181 = 2.10.1 =
    182 * Fix. Fixed Strict Standards error in PHP 5.4 and above
    183 
    184 = 2.10.0 =
    185 * New. Added ability to enable/disable slide.
    186 * New. Added ability to import and export sliders.
    187 * Change. Major refactoring. Code now using service definitions.
    188 
    189 = 2.9.7 - 2015-01-30 =
    190 * Fix nextgen gallery integration
    191 
    192 = 2.9.6 - 2015-01-12 =
    193 * Fix template Thumbnail thumb images not working when resize is false.
    194 * Fix missing alt attribute in slide images for Standard template.
    195 * Added error check for scandir in template locations.
    196 * Repositioned settings fields. Resize Images and Force Resize are now together.
    197 * Updated cycloneslider.pot
    198 
    199 = 2.9.5 - 2015-01-03 =
    200 * Fix. Thumbnail template thumb images now working.
    201 * New. Added support for custom image sizes.
    202 * Change. Removed cyclone_slide_image_url function from Thumbnail template and used $slide['image_thumbnails']['40_40_crop'] instead.
    203 * Change. Refactored Data and ImageResizer class.
    204 * Fix. Wrong class name Image_Resizer changed to CycloneSlider_ImageResizer.
    205 
    206 = 2.9.4 - 2015-01-02 =
    207 * Fix. Improved safety checks for POST data when saving sliders.
    208 * Fix. Deleting a single slide now works. This was a regression bug due to previous POST data safety check code.
    209 * Fix. Safety check for array keys when displaying a slider.
    210 * Fix. Restored $cyclone_slider_saved_done global variable.
    211 
    212 = 2.9.3 - 2014-12-19 =
    213 * Fix. Templates config now use json instead of ini format. Solves the problem with hosting that has parse_ini_file disabled for security reasons.
    214 * Change. Code cleanup. Removed commented and unused codes.
    215 * Change. Improved view class. Change codes related to view rendering.
    216 * Change. Moved template location declaration to main plugin file.
    217 * Change. Moved global function responsibility in templates to Data class.
    218 * Change. Use DI container for image editor class
    219 * Change. Change autoloader and hook names.
    220 * Change. Updated language files.
    221 * Change. Updated screen icon code.
    222 
    223 = 2.9.1 - 2014-12-10 =
    224 * Fix. Restored missing widget code.
    225 
    226 = 2.9.0 - 2014-12-09 =
    227 * Change. Major code refactoring for future features to be easily added
    228 
    229 = 2.8.4 - 2014-09-04 =
    230 * Updated spanish language files
    231 * Added compatibility with WP 4.0
    232 
    233 = 2.8.3 - 2014-08-20 =
    234 * Fix. Admin menu icon for WP 3.9+.
    235 * Fix. Language files load path.
    236 
    237 = 2.8.2 - 2014-01-10 =
    238 * New. Added testimonial slide type. Now you can create testimonial sliders.
    239 * New. Added support for testimonial slides in Dark and Standard templates.
    240 * New. Added Spanish translation by Gabriel Gil.
    241 * New. Added Serbo-Croation translation by Borisa Djuraskovic.
    242 * Change. Added a few responsive tweaks in admin.css for the template selection area.
    243 * Change. Removed unused codes.
    244 
    245 = 2.8.1 - 2014-01-02 =
    246 * New. Added ability to disable related videos in YouTube slide.
    247 * New. Slide title now appends the slide caption of there is one.
    248 * New. MP6 color schemes. Added subtle cosmetic changes to UI depending on what admin color scheme was selected.
    249 * Change. Made hide_non_active false only if using dynamic height and YouTube/Vimeo slides. For backwards compatibility with older templates.
    250 * Change. Removed old problematic video slide.
    251 * Fix. Fixed Vimeo error when URL fails to load.
    252 * Fix. Fix for very long slide titles.
    253 * Fix. Bug fix for PHP warning in template selection when template is unchecked in settings page.
    254 
    255 = 2.8.0 - 2013-12-29 - This is a major release =
    256 * New. Added support for YouTube, Vimeo and Custom slide types in Text template.
    257 * New. Added support for YouTube and Vimeo slide types in Dark template.
    258 * New. Added "Location" column in template selection panel.
    259 * New. Added warning when a template is located in the currently active theme directory. It warns the user of potential deletion of the template when a theme is updated.
    260 * New. Added template directory in wp-content/cycloneslider/. This is now the recommended directory to store custom or modified templates to survive update nukes.
    261 * New. Added width_management to shortcode attributes.
    262 * Change. hide_non_active is now always set to false for getBoundingClientRect to not return zero.
    263 * Fix. Minor change for directory separator on active theme location.
    264 * Fix. Fixed inacurate next slide height reading by using getBoundingClientRect() instead of outerHeight().
    265 * Fix. Added check to fix PHP warning when Vimeo URL is blank.
    266 
    267 = 2.7.7 - 2013-11-26 =
    268 * New. Added ability to select multiple images to add as slides
    269 * Change. Refactor code for template javascripts. Moved similar code into client.js
    270 
    271 = 2.7.6 - 2013-10-13 =
    272 * New. Added support for YouTube and Vimeo slide types in thumbnails template.
    273 * New. Added ability to fetch thumbnails of videos from youtube.com and vimeo.com. The thumbnails template will use this to display the thumbnails in its pager.
    274 
    275 = 2.7.5 - 2013-10-10 =
    276 * Fix. Fix critical error with slider not working caused by easing plugin.
    277 * New. Added ability to add a title to slider widget.
    278 * Change. Modified easing plugin to v1.3.1.
    279 * Change. Added minified version of easing plugin.
    280 
    281 = 2.7.4 - 2013-10-01 =
    282 * Fix. Fix dynamic height for templates.
    283 * Change. Added RTL support and sanitize output in templates.
    284 
    285 = 2.7.3 - 2013-09-28 =
    286 * Fix. Fix issue on Default template where caption is not visible on images that are taller than the slider.
    287 * Change. Returned slider auto height from sentinel to ratio for wider support and backward compatibility.
    288 * Change. Updated screenshots for wordpress.org.
    289 
    290 = 2.7.2 - 2013-09-27 =
    291 * New! Added ability in Settings page to enable/disable templates.
    292 * Change. Move settings page form to its own view file.
    293 
    294 = 2.7.1 - 2013-09-23 =
    295 * Added Width Management option. Three options available: Responsive (default), Full width, and Fixed width. Templates that support this feature are Dark, Default, Standard and Thumbnails.
    296 * Added [Dark template](http://www.codefleet.net/cyclone-slider-2/templates/dark/) with RTL support.
    297 * Standard template is now the selected template when creating new sliders.
    298 * Moved Title and Description to Caption accordion in slide edit screen.
    299 * Returned other shortcode options removed in 2.7.0. All shortcode options restored except template. Template can only be changed in admin.
    300 * Fix caption text-align:left for templates standard, default and thumbnails along with RTL support.
    301 * Updated language files
    302 
    303 = 2.7.0 - 2013-09-19 - This is a major release =
    304 * Slider preview!
    305 * Added YouTube and Vimeo slide types. Deprecated Video slide type.
    306 * Added Standard template as de-facto template which has support for Image, YouTube, Vimeo, and Custom HTML slide types.
    307 * Standard template supports RTL and uses pure CSS for buttons.
    308 * YouTube and Vimeo videos will now pause when changing to a different slide when using the Standard template.
    309 * Admin UI is now retina and [MP6](http://wordpress.org/plugins/mp6/) ready.
    310 * Compacted template selection UI. Removed template thumbnail preview as a slider preview is now available in admin.
    311 * Updated language files.
    312 * Lots of new slider variables added for use in templates. Will update documentation soon.
    313 * Removed other shortcode options except id. Example: [cycloneslider id="default"]
    314 * [Pro version now available with many more features](http://www.codefleet.net/cyclone-slider-pro/).
    315 
    316 = 2.6.4 - 2013-08-14 =
    317 * Bug fix for 2.6.3 where settings page stopped working.
    318 * Minor fix for RTL.
    319 * Added Persian translation by Javad.
    320 
    321 = 2.6.3 - 2013-08-13 =
    322 * Made non-translatable texts translatable.
    323 * Added RTL support for the admininistration screen.
    324 * Change pin icon to media in the admin menu.
    325 * Added Arabic translation. Special thanks to Hassan for this and the items above.
    326 * Added function `cyclone_slider` for displaying slider in template files instead of using `do_shortcode`.
    327 * Added button that links to a tutorial on how to [create your own template](http://www.codefleet.net/introduction-to-templates/).
    328 
    329 = 2.6.2 - 2013-08-08 =
    330 * Reverted red screen options to default color.
    331 * Fix bug with ugly old media gallery (pre 3.5).
    332 * Added Italian translation from maxgx.
    333 * Change greater-than to its character entity for `data-cycle-slides`.
    334 
    335 = 2.6.1 - 2013-08-05 =
    336 * Fixed issue with Shortcodes Ultimate.
    337 * Updated screenshots.
    338 
    339 = 2.6.0 - 2013-08-04 =
    340 * Warning: Old templates will break in this version! You can either use the new templates or migrate the older templates. [Check this post](http://www.codefleet.net/pre-2-6-0-templates-migration/).
    341 * Load scripts and styles normally as separate requests for better compatibility with other plugins and server setup. Removed template-assets.php which consolidates assets into a single request.
    342 * Added cyclone slider settings page.
    343 * Language files now loaded when using WPML.
    344 * Added Get Codes metabox to easily grab the slider codes.
    345 * Added Slideshow ID metabox to easily change the slider ID.
    346 
    347 = 2.5.6 - 2013-07-30 =
    348 * Fix broken nextgen importer from last update.
    349 * Refactor code for better template management in admin.
    350 
    351 = 2.5.5 - 2013-07-25 =
    352 * Removed templates Black, Blue, and Myrtle from plugin's folder for better performance.
    353 * Used get_posts instead of WP_Query when getting a slider to avoid filters that might cause conflict.
    354 
    355 = 2.5.4 - 2013-07-20 =
    356 * Added Youtube template that pauses the video when slider is transitioning.
    357 
    358 = 2.5.3 - 2013-05-10 =
    359 * Bug fix for child themes where slider is not working
    360 
    361 = 2.5.2 - 2013-04-26 =
    362 * Added template asset loader to get rid of the compiled css and js that are rewritten on the file system on every save
    363 * Move template handling logic to its own class to be used by the template asset loader independently
    364 * Removed upgrade notice
    365 
    366 = 2.5.1 - 2013-03-29 =
    367 * Bug fix to allow small images to be inserted.
    368 * Improved cyclone_settings.
    369 * Improved slider not found message.
    370 * Updated cycle 2 js files.
    371 * Added plugin version to fix caching problem on JS and CSS.
    372 * Added upgrade notice.
    373 
    374 = 2.5.0 - 2013-03-21 - This is a major release =
    375 * More slide types to choose from: image, video (youtube and vimeo) and custom HTML.
    376 * Added icons to the UI to indicate different slide types.
    377 * Replaced cookies with localstorage to store UI status.
    378 * Updated the templates to support the various slide types.
    379 * Added resize and random options.
    380 * Bug fix for fatal error when no GD library. Added gd_info check.
    381 * Bug fix for js error on WP below 3.5 caused by the 3.5 media library object being undefined.
    382 * Deprecated cycloneslider_thumb use cyclone_slide_image_url instead.
    383 * Deprecated cycloneslider_settings use cyclone_settings instead.
    384 * Deprecated cycloneslider_slide_settings use cyclone_slide_settings instead.
    385 * Various UI fixes and code refactoring.
    386 
    387 = 2.2.5 - 2013-02-23 =
    388 * Bug fix for 2.2.4
    389 
    390 = 2.2.4 - 2013-02-22 =
    391 * Now compiles the template CSS and JS files instead of using template_redirect hook. This is to fix problems with some users reporting broken css and js.
    392 * Minified CSS and JS for templates.
    393 * Compiles needed CSS and JS only instead of loading all CSS and JS from all templates.
    394 * Added template column to all slider screen.
    395 * Updated language files
    396 
    397 = 2.2.3 - 2013-02-14 =
    398 * Added option for random slide order on every page visit.
    399 * Refactored some code.
    400 * Added image count to all slider screen.
    401 
    402 = 2.2.2 - 2013-02-05 =
    403 * Updated language files.
    404 * Bug Fix. Post Type Switcher fix via jquery.
    405 * UI Enhancement. Removed overflow for templates.
    406 * Ignore image resize if slider dimension is equal to the image dimension.
    407 * UI Enhancement. Decrease drag delay for slide sortables in editor.
    408 
    409 = 2.2.1 - 2012-12-25 =
    410 * Added Cyclone Slider 2 widget.
    411 
    412 = 2.2.0 - 2012-12-24 =
    413 * Updated cycle 2 to latest version.
    414 * Updated template selection interface to be more visual. A screenshot of each slider template is now shown.
    415 * Added Tile Count and Tile Position for both slider and per-slide settings.
    416 * Cleanup Quick Edit screen to hide unused user interface.
    417 * Slide box titles can now be clicked to open and close the slide box.
    418 * Removed drag icon from slide box title. Slide box can now be dragged by click-holding the slide title area.
    419 * Updated template API functions.
    420 * Updated plugin screenshot.
    421 * Refactored various code parts.
    422 * Added ability to add script.js in templates
    423 * Added ability to add screenshot.jpg in templates.
    424 * Updated templates.
    425 * Added fix to preserved PNG transparency.
    426 * Fix save routine to allow saving empty slides and to preserve order of slides after drag and/or deletion of slide.
    427 
    428 = 2.1.1 - 2012-11-16 =
    429 * Fix for a code typo error
    430 
    431 = 2.1.0 - 2012-11-16 =
    432 * Fix for slider not working when NextGEN 1.9.7 is active
    433 * You can now import images from NextGEN
    434 
    435 = 2.0.1 - 2012-11-09 =
    436 * Bug fix for hover pause
    437 
    438 = 2.0.0 - 2012-10-28 =
    439 * Initial
    440 
    441 
    442 
    443 
     121= 3.2.0 - 2017-07-04 =
     122* Fix issue with font awesome not loading when used by other plugins.
     123* Used SVG for icons.
     124
     125= 3.1.3 - 2017-06-12 =
     126* Fix language files not loaded.
     127* Updated Japanese language files.
     128
     129= 3.1.2 - 2017-05-04 =
     130* Fix "Slideshow not found" error when using numeric slideshow slugs. Eg. "011".
     131
     132= 3.1.1 - 2017-04-29 =
     133* Fix slide type image edit area not showing when adding slide for the first time.
     134
     135= 3.1.0 - 2017-04-28 =
     136* Add image to testimonial slide type. Make it work on Dark and Standard template.
     137* Fix dark template.
     138* Fix standard template.
     139* Fix vimeo slide type.
     140* Use the new vimeo player js library.
     141* Add templates Twitter and Yelp reviews to [Pro](https://www.codefleet.net/cyclone-slider/templates/).
     142
     143= 3.0.0 - 2017-04-12 =
     144* Codebase merge with Cyclone Slider 2. See [detailed post](https://www.codefleet.net/cyclone-slider-reborn/).
     145* Add "Legacy Mode" to restore full Cyclone Slider 1 functionality if needed.
     146* Add Slider Properties pane. You can now set per-slide settings on all slide types. Before it was only available for Image slides.
     147* Move Hidden option to Slider Properties pane.
     148* Sorting can now be toggled to prevent accidentally dragging slides.
     149* Add minimized/maximized button for it to be more obvious vs just toggling with the slide header.
     150* Slicker slide types dropdown.
     151* Cosmetic changes to Templates and Slide boxes.
     152* Update Cycle2 scripts to latest version.
     153
     154= 1.3.4 - 2013-09-20 =
     155* Can now use WP 3.5 media gallery when using WP 3.5 or greater. Older WP versions will use the old media gallery.
     156* Clicking slide box title will now expand/collapse the box.
     157* Slide box can now be drag anywhere in the title area.
     158
     159= 1.3.3 - 2012-12-18 =
     160* Bug fix. Preserve PNG transparency on resize.
     161
     162= 1.3.2 - 2012-12-11 =
     163* Added gettext calls for qtranslate to work in title and description fields. You can now place [:en]English Text[:de]German Text in these fields.
     164
     165= 1.3.1 - 2012-12-03 =
     166* Removed width and height attributes from slide images in responsive template
     167
     168= 1.3.0 - 2012-11-28 =
     169Code now based from Cyclone Slider 2 codebase. The improvements are:
     170
     171* Cleaner and faster user interface that works well even in IE7
     172* Ability to import images from NextGEN
     173* Option to pause slide on hover
     174* Option to open slide links in new tab
     175* Improved function cycloneslider_thumb
     176* Improved codes in templates. Please check your custom templates to match the changes in the template system. Old templates will still work but may not benefit from the newly added options
     177* Renamed jquery.cookie.js to jquery-cookie.js to prevent the bug in some servers where a file named jquery.cookie.js is blocked and not loaded
     178
     179= 1.2.2 - 2012-10-05 =
     180* Fix error for CSS not loading for WPMU when there is already GET var in the url. Eg. http://www.url.com?lang=en
     181
     182= 1.2.1 - 2012-09-25 =
     183* Added check for undefined jquery cookie plugin
     184
     185= 1.2.0 - 2012-09-05 =
     186* Template selection via admin
     187* Child theme support. You can now add the `cycloneslider` templates folder inside a child theme. tnx Geoff
     188* Bug fix for template url/path missing a slash. tnx Chris
     189* German translation
     190* Remove unwanted whitespaces on templates at runtime to remove unwanted `<p>` tags from being added by wp
     191
     192= 1.1.1 - 2012-09-02 =
     193* Fix bug on function cycloneslider_thumb
     194* Added improved thumbnails template
     195
     196= 1.1.0 - 2012-08-31 =
     197* New templates
     198* New and improved template system
     199
     200= 1.0.6 - 2012-08-26 =
     201* Bug fix for titles and descriptions out of sync after deleting a slide
     202
     203= 1.0.5 - 2012-08-24 =
     204* Caching for thumbnails
     205* Autodetect "cycloneslider" folder inside current active theme
     206
     207= 1.0.4 - 2012-08-18 =
     208* Added default values when adding a new slideshow to help users.
     209* Added visual cues when adding new slides.
     210* Hide preview in admin img when its src is blank to hide the img not found on IE and other browsers. Show only when src is given.
     211
     212= 1.0.3 =
     213* Bug fix if shortcode attributes are set to zero eg. timeout="0". Change use of empty() to === to differentiate null from integer zero or blank string
     214
     215= 1.0.2 =
     216* Prefixed meta keys with underscore _ to hide from wp custom field metabox. Existing slider data will be silently migrated into this new meta keys.
     217* Thumbnail function added.
    444218
    445219== Upgrade Notice ==
  • cyclone-slider-2/trunk/css/admin.css

    r1451766 r1690000  
    22    clear:both;
    33    display: block;
     4}
     5.clearfix:after,
     6.cs-slide-image:after,
     7.cs-slide-youtube:after,
     8.cs-slide-actions:after,
     9.cs-slide-testimonial:after {
     10  content: "";
     11  display: block;
     12  height: 0;
     13  clear: both;
     14  visibility: hidden;
    415}
    516
     
    2435
    2536/*** Slides Metabox ***/
    26 #cyclone-slides-metabox .inside{
    27     margin:20px;
     37#cyclone-slides-metabox .inside,
     38#cyclone-slider-templates-metabox .inside {
     39    margin:0;
    2840    padding:0;
    29 }
    30 .cycloneslider-sortable{
    31     margin-bottom:20px;
    32 }
    33 .cs-slide{
     41    box-sizing: border-box;
     42}
     43#cyclone-slides-metabox .inside *,
     44#cyclone-slides-templates-metabox .inside * {
     45    box-sizing: inherit;
     46}
     47.cs-slide-actions {
     48    padding: 20px;
     49    border-bottom: 1px solid #eee;
     50}
     51.cs-slide-actions button {
     52    float: left;
     53    border: 1px solid #d3d3d3;
     54    padding: 5px 10px;
     55    margin: 0;
     56    color: #444;
     57    line-height: 1.5;
     58    cursor:pointer;
     59    outline: 0;
     60    margin-left: -1px;
     61    background-color: #f1f1f1; /* Fallback */
     62    background-image: -ms-linear-gradient(top, #f9f9f9, #ececec); /* IE10 */
     63    background-image: -moz-linear-gradient(top, #f9f9f9, #ececec); /* Firefox */
     64    background-image: -o-linear-gradient(top, #f9f9f9, #ececec); /* Opera */
     65    background-image: -webkit-gradient(linear, left top, left bottom, from(#f9f9f9), to(#ececec)); /* old Webkit */
     66    background-image: -webkit-linear-gradient(top, #f9f9f9, #ececec); /* new Webkit */
     67    background-image: linear-gradient(top, #f9f9f9, #ececec); /* proposed W3C Markup */
     68}
     69.cs-slide-actions button:hover,
     70.cs-slide-actions button:focus {
     71    border-color: #999;
     72    position: relative;
     73    z-index: 1;
     74}
     75.cs-slide-actions button.active {
     76    -webkit-box-shadow: inset 0 0 15px #006799;
     77    -moz-box-shadow: inset 0 0 15px #006799;
     78    box-shadow: inset 0 0 15px #006799;
     79    background: #0085ba;
     80    color: #fff;
     81    border-color: #0085b9;
     82}
     83.cs-slide-actions button:first-child {
     84    border-top-left-radius: 3px;
     85    border-bottom-left-radius: 3px;
     86    margin-left: 0;
     87}
     88.cs-slide-actions button:last-child {
     89    border-top-right-radius: 3px;
     90    border-bottom-right-radius: 3px;
     91}
     92.cs-sortables {
     93    padding: 0;
     94    margin: 20px;
     95}
     96.cs-sortables.active {
     97    padding: 10px;
     98    border: 1px dashed #d3d3d3;
     99}
     100.cs-sortables.active .cs-header {
     101    cursor: move;
     102}
     103.cs-slide {
    34104    margin-bottom:10px;
    35105}
     106.cs-slide:last-child,
     107.cs-slide-placeholder:last-child {
     108    margin-bottom: 0;
     109}
    36110.cs-header{
     111    position: relative;
    37112    border:1px solid #D3D3D3;
    38     cursor:move;
    39113    background-color: #f1f1f1; /* Fallback */
    40114    background-image: -ms-linear-gradient(top, #f9f9f9, #ececec); /* IE10 */
     
    50124    color: #A2A2A2;
    51125}
     126
     127.cs-slide-settings svg {
     128    margin: 3px;
     129    vertical-align: middle;
     130}
     131.cs-slide-settings .expandable-header span{
     132    display: inline-block;
     133    vertical-align: middle;
     134}
     135.cs-slide-settings .expandable-header {
     136    border: 0;
     137    text-align: right;
     138}
     139.rtl .cs-slide-settings .expandable-header {
     140    text-align: left;
     141}
     142.cs-slide-settings .expandable-body {
     143    border-left: 0;
     144    border-right: 0;
     145}
     146
    52147.admin-color-light .cs-header {
    53148    background-color: #F9F9F9;
     
    57152/* Admin - Blue */
    58153.admin-color-blue .cs-title,
    59 .admin-color-blue .cs-header .cs-icon,
    60154.admin-color-blue .cs-templates,
    61155.admin-color-blue .cs-templates .body.active,
     
    72166/* Admin - Ocean */
    73167.admin-color-ocean .cs-title,
    74 .admin-color-ocean .cs-header .cs-icon,
    75168.admin-color-ocean .cs-templates,
    76169.admin-color-ocean .cs-templates .body.active,
     
    87180/* Admin - Coffee */
    88181.admin-color-coffee .cs-title,
    89 .admin-color-coffee .cs-header .cs-icon,
    90182.admin-color-coffee .cs-templates,
    91183.admin-color-coffee .cs-templates a,
     
    104196.admin-color-coffee .cs-header,
    105197.admin-color-coffee .cs-body,
    106 .admin-color-coffee .cs-header .cs-icon,
    107198.admin-color-coffee .cs-slide-type-bar {
    108199    border-color: #D8CCC2;
     
    115206/* Admin - Ectoplasm */
    116207.admin-color-ectoplasm .cs-title,
    117 .admin-color-ectoplasm .cs-header .cs-icon,
    118208.admin-color-ectoplasm .cs-templates,
    119209.admin-color-ectoplasm .cs-templates a,
     
    131221.admin-color-ectoplasm .cs-header,
    132222.admin-color-ectoplasm .cs-body,
    133 .admin-color-ectoplasm .cs-header .cs-icon,
    134223.admin-color-ectoplasm .cs-slide-type-bar {
    135224    border-color: #D8CAEC;
     
    142231/* Admin - Sunrise */
    143232.admin-color-sunrise .cs-title,
    144 .admin-color-sunrise .cs-header .cs-icon,
    145233.admin-color-sunrise .cs-templates,
    146234.admin-color-sunrise .cs-templates .body.active,
     
    155243}
    156244
    157 .cs-header .cs-icon{
    158     float:left;
    159     padding:6px;
    160     border-right:1px solid #D3D3D3;
    161 }
    162 .rtl .cs-header .cs-icon{
    163     float:right;
    164     border-left:1px solid #D3D3D3;
    165     border-right:0;
    166 }
    167 .cs-icon i{
    168     font-size: 14px;
    169     width:14px;
    170     height:14px;
    171     display:none;
    172 }
    173 .cs-slide[data-slide-type="image"] i.icon-picture,
    174 .cs-slide[data-slide-type="video"] i.icon-film,
    175 .cs-slide[data-slide-type="custom"] i.icon-code,
    176 .cs-slide[data-slide-type="youtube"] i.icon-youtube-play,
    177 .cs-slide[data-slide-type="vimeo"] i.icon-play,
    178 .cs-slide[data-slide-type="testimonial"] i.icon-quote-left{
    179     display: block;
    180 }
     245
    181246.cs-title{
    182247    float:left;
    183248    padding:4px 6px;
    184     max-width: 60%;
     249    max-width: 50%;
    185250    white-space: nowrap;
    186251    overflow: hidden;
     252    -ms-text-overflow: ellipsis;
     253    text-overflow: ellipsis;
    187254}
    188255.rtl .cs-title{
     
    191258.cs-controls{
    192259    float:right;
    193     padding:3px;
     260    padding:2px 5px;
    194261}
    195262.rtl .cs-controls{
    196263    float:left;
    197 }
    198 .cs-delete{
    199     margin:0 5px;
    200     display:block;
    201     float:left;
    202     width:14px;
    203     height:14px;
    204     font-size: 14px;
    205     text-align: center;
    206     cursor:pointer;
    207 }
    208 .rtl .cs-delete{
    209     float:right;
    210 }
    211 .cs-delete{
     264    text-align: right;
     265}
     266.cs-controls button {
    212267    font-size: 16px;
    213     color: #CC0A0C;
     268    background: none;
     269    border: 0;
     270    outline:0;
     271    cursor: pointer;
     272}
     273.cs-controls .cs-delete svg{
     274    fill: #CC0A0C;
     275}
     276.cs-controls .cs-minimize svg{
     277    fill: #444;
    214278}
    215279.cs-slide:hover .cs-header,
     
    217281    border-color:#c0c0c0;
    218282}
    219 .cs-header .cs-delete:hover{
    220     color:#ff0000;
     283.cs-header .cs-delete:hover svg{
     284    fill:#ff0000;
    221285}
    222286.cs-body{
     
    238302    margin-top: 6px;
    239303}
    240 .cs-image-preview{
    241     padding:15px 2%;
    242     float:left;
    243     width:40%;
    244 }
    245 .rtl .cs-image-preview{
    246     float:right;
    247 }
    248 .cs-image-settings{
    249     float:left;
    250     width:50%;
    251     padding:15px 2%;
    252 }
    253 .rtl .cs-image-settings{
    254     float:right;
    255 }
    256304.cs-image-thumb img{
    257305    display:block;
     
    274322}
    275323
     324/* Image slide */
     325.cs-image-preview,
     326.cs-image-edit {
     327    float: left;
     328    width: 50%;
     329    padding: 15px;
     330}
     331.cs-image-edit {
     332    padding-left: 0;
     333}
     334.rtl .cs-image-preview,
     335.rtl .cs-image-edit {
     336    float: right;
     337}
     338.rtl .cs-image-edit {
     339    padding-left: 15px;
     340    padding-right: 0;
     341}
     342
     343/* Select */
     344.cs-slide-type {
     345    float: left;
     346    position: relative;
     347}
     348.switcher {
     349    cursor: pointer;
     350}
     351
     352.switcher .display {
     353    display: block;
     354    min-width: 115px;
     355    border-right: 1px solid #d3d3d3;
     356    padding: 5px 25px 5px 10px;
     357}
     358.cycloneslider .meta-box-sortables svg {
     359    width: 16px;
     360    height: 16px;
     361    fill: #444;
     362}
     363.switcher .display svg,
     364.switcher li svg {
     365    float: left;
     366    margin-top: 1px;
     367}
     368.cycloneslider .meta-box-sortables .switcher > svg {
     369    position: absolute;
     370    right: 0;
     371    top: 50%;
     372    transform: translateY(-50%);
     373    width: 24px;
     374    height: 24px;
     375}
     376
     377.switcher .display span,
     378.switcher li span {
     379    margin-left: 5px;
     380    padding-left: 6px;
     381    border-left: 1px solid #d3d3d3;
     382}
     383.switcher ul {
     384    display: none;
     385    padding: 0;
     386    margin: 0;
     387    list-style: none inside;
     388    position: absolute;
     389    left: 0;
     390    top: 100%;
     391    width: 100%;
     392    background: rgba(255,255,255,0.9);
     393    border-left:1px solid #d3d3d3;
     394    border-right:1px solid #d3d3d3;
     395    border-top:1px solid #d3d3d3;
     396    z-index: 100;
     397}
     398.switcher.open ul {
     399    display: block;
     400}
     401.switcher li {
     402    padding: 5px 10px;
     403    margin: 0;
     404    border-bottom:1px solid #d3d3d3;
     405}
     406.switcher li:hover {
     407    background: #d54e21;
     408    color: #fff;
     409}
     410.switcher li:hover svg {
     411    fill: #fff;
     412}
     413
    276414/*** Video ***/
    277415.cs-video-preview{
     
    335473
    336474/*** Testimonial ***/
    337 .cs-slide-testimonial{
    338    
    339 }
    340 .cs-testimonial-quote{
     475.cs-testimonial-quote,
     476.cs-quote-properties {
    341477    float:left;
    342     padding:15px 2%;
    343     width:40%;
    344 }
    345 .cs-quote-properties {
    346     float: left;
    347     width: 50%;
    348     padding: 15px 2%;
     478    padding:15px;
     479    width:50%;
     480}
     481.rtl .cs-testimonial-quote,
     482.rtl .cs-quote-properties {
     483    float:right;
    349484}
    350485
     
    384519    border:1px dashed #ccc;
    385520    margin-bottom:10px;
     521    min-height: 30px;
    386522}
    387523
     
    513649
    514650/*** Templates ***/
    515 #cyclone-slider-templates-metabox .inside{
    516     padding: 0;
    517     margin: 0;
    518 }
    519 .cs-templates{
    520     padding: 0;
    521     margin: 0;
    522 }
    523 .cs-templates .header > span,
    524 .cs-templates .body > span{
    525     float: left;
    526     overflow: hidden;
    527 }
    528 .rtl .cs-templates .body > span{
    529     float: right;
    530 }
    531 .cs-templates span.clear,
    532 .rtl .cs-templates span.clear{
    533     float: none;
    534 }
    535 .cs-templates input[type="radio"]{
    536     position: absolute;
    537     left: 50px;
    538     top: 40%;
    539     z-index: -1;
    540 }
    541 .cs-templates > li{
    542     position: relative;
    543     border-top: 1px solid #fff;
    544     border-left: 1px solid #fff;
    545     border-right: 1px solid #fff;
    546     border-bottom: 1px solid #cfcfcf;
    547     margin-bottom: 0;
    548 }
    549 .cs-templates .header {
     651.cs-templates {
     652    width: 100%;
     653    border-spacing: 0;
     654   
     655}
     656.cs-templates th {
     657    padding: 5px;
     658    border-bottom:1px solid #ececec;
     659}
     660
     661.cs-templates td {
     662    padding: 10px;
     663}
     664.cs-templates td a {
     665    text-decoration: none;
     666}
     667.cs-templates td:nth-child(1),
     668.cs-templates td:nth-child(2) {
     669    text-align: left;
     670}
     671.rtl .cs-templates td:nth-child(1),
     672.rtl .cs-templates td:nth-child(2) {
     673    text-align: right;
     674}
     675.cs-templates td:nth-child(3),
     676.cs-templates td:nth-child(4) {
     677    text-align: center;
     678}
     679.cs-templates td:nth-child(2) a {
     680    color:#444;
     681}
     682.cs-templates .active td {
    550683    background: #ececec;
    551     padding: 5px 0;
    552 }
    553 .cs-templates .body {
    554     padding: 10px 0;
    555 }
    556 .cs-templates .body:hover{
    557     background: #ececec;
    558 }
    559 .cs-templates .body.active{
    560     background-color:#ececec;
    561     color: #21759B;
    562 }
    563 .cs-templates .body .icon-ok{
    564     display: none;
    565     font-size: 14px;
    566 }
    567 .cs-templates .body.active .icon-ok{
    568     display: inline-block;
    569 }
    570 .cs-templates .template-name{
    571     width: 13%;
    572     margin-left: 1%;
    573     margin-right: 1%;
    574 }
    575 #side-sortables .template-name{
    576     width: 33%;
    577     font-size: 12px;
    578 }
    579 .cs-templates .supported-slide-types{
    580     width: 15%;
    581     margin-right: 1%;
    582 }
    583 .cs-templates .supported-slide-types i{
    584     font-size: 14px;
    585     margin: 0 3px;
    586 }
    587 #side-sortables .supported-slide-types{
    588     width: 39%;
    589     font-size: 12px;
    590 }
    591 .cs-templates .template-description{
    592     width: 44%;
    593     margin-right: 1%;
    594 }
    595 .cs-templates .cs-location{
    596     width: 15%;
    597 }
    598 .cs-templates .body .cs-location{
    599     white-space: nowrap;
    600     overflow: visible;
    601 }
    602 .cs-templates .body .cs-location i {
    603     color: #D54E21;
     684}
     685.cs-templates .active label,
     686.cs-templates .active td:nth-child(2) a {
     687    color: #0085ba;
    604688}
    605689.cs-boxy{
     
    614698    border-radius: 5px;
    615699}
    616 .cs-templates .selected{
    617     width: 13%;
    618     text-align: center;
    619 }
    620 .cs-templates .header .selected,
    621 .cs-templates .body .selected{
    622     float: right;
    623     margin-left: 1px;
    624     margin-right: 1%;
    625 }
    626 .rtl .cs-templates .header .selected,
    627 .rtl .cs-templates .body .selected{
    628     float: left;
    629 }
    630 #side-sortables .selected{
    631     width: 23%;
    632 }
    633 .cs-get-more{
    634     padding:20px 10px 10px 10px;
    635     float:right;
    636 }
    637 .rtl .cs-get-more{
    638     float:left;
    639 }
    640 #side-sortables .cs-get-more{
    641     float: none;
    642     text-align: center;
    643 }
    644 #side-sortables .cs-get-more > * {
    645     margin-bottom: 5px;
    646 }
    647700.cs-templates-buttons {
    648     clear: both;
    649     padding: 5px 8px;
     701    border-top: 1px solid #ececec;
     702    padding: 10px;
    650703}
    651704
     
    720773    padding:1px 2px;
    721774}
     775
  • cyclone-slider-2/trunk/cyclone-slider.php

    r1670988 r1690000  
    11<?php
    22/*
    3 Plugin Name: Cyclone Slider 2
    4 Plugin URI: http://www.codefleet.net/cyclone-slider-2/
     3Plugin Name: Cyclone Slider
     4Plugin URI: http://www.codefleet.net/cyclone-slider/
    55Description: Create and manage sliders with ease. Built for both casual users and developers.
    6 Version: 2.14.0
     6Version: 3.2.0
    77Author: Nico Amarilla
    88Author URI: http://www.codefleet.net/
     
    1010License URI: https://www.gnu.org/licenses/gpl-3.0.html
    1111Domain Path: /languages
    12 Text Domain: cyclone-slider-2
     12Text Domain: cycloneslider
    1313*/
    1414
    15 require_once 'src/autoloader.php';
     15// Legacy mode or not
     16$option = get_option('cyclone_option_name');
    1617
    17 function child_plugin_notice(){
    18     global $post;
    19     $get = $_GET;
    20     $page = '';
    21     $post_type = '';
    22     if( isset($post->post_type)){
    23         $post_type = $post->post_type;
    24     } else if (isset($get['post_type'])){
    25         $post_type = $get['post_type'];
    26     }
    27 
    28     if (isset($get['page'])){
    29         $page = $get['page'];
    30     }
    31 
    32     if( $page != 'cycloneslider-merge'):
    33     ?><div class="notice notice-info">
    34     <p><?php echo __('Click update to finish upgrading Cyclone Slider.', 'cycloneslider');?></p>
    35     <p><a href="<?php echo get_admin_url(NULL, 'edit.php?post_type=cycloneslider&page=cycloneslider-merge' ); ?>" class="button-secondary"><?php _e('Update', 'cycloneslider');?></a></p>
    36     </div><?php
    37     endif;
     18$get = $_GET;
     19if(isset($get['cs_legacy_mode']) and $get['cs_legacy_mode']='off'){
     20    $option['legacy'] = 0;
     21    update_option('cyclone_option_name', $option);
    3822}
    39 
    40 $cyclone_slider_plugin_instance = null;
    41 $cyclone_slider_saved_done = false;
    42 
    43 // Hook the plugin
    44 add_action('plugins_loaded', 'cycloneslider_init');
    45 function cycloneslider_init() {
    46     global $cyclone_slider_plugin_instance;
    47 
    48    
    49     add_action( 'admin_notices', 'child_plugin_notice' );
    50     $plugin = new CycloneSlider_Plugin();
    51    
    52     $plugin['path'] = realpath(plugin_dir_path(__FILE__)) . DIRECTORY_SEPARATOR;
    53     $plugin['url'] = plugin_dir_url(__FILE__);
    54     $plugin['plugin_headers'] = 'cycloneslider_service_plugin_headers';
    55     $plugin['version'] = 'cycloneslider_service_plugin_version';
    56     $plugin['debug'] = false;
    57     $plugin['textdomain'] = 'cycloneslider_service_plugin_text_domain';
    58     $plugin['slug'] = 'cycloneslider_service_plugin_slug';
    59     $plugin['nonce_name'] = 'cyclone_slider_builder_nonce';
    60     $plugin['nonce_action'] = 'cyclone-slider-save';
    61     $plugin['wp_upload_location'] = 'cycloneslider_wp_upload_location';
    62     $plugin['wp_content_dir'] = 'cycloneslider_service_wp_content_dir';
    63     $plugin['wp_content_url'] = content_url();
    64     $plugin['cyclone_slider_dir'] = 'cycloneslider_service_cyclone_slider_dir'; // Folder where plugin related functions are performed
    65     $plugin['view_folder'] = $plugin['path'].'views';
    66     $plugin['view'] = 'cycloneslider_service_view';
    67 
    68     $plugin['image_resizer'] = 'cycloneslider_service_image_resizer';
    69     $plugin['image_editor'] = 'CycloneSlider_ImageEditor';
    70     $plugin['image_sizes'] = array(
    71         '40_40_crop' => array( // Used by thumbnail template
    72             'width' => 40,
    73             'height' => 40,
    74             'resize_option' => 'crop'
    75         ),
    76         '60_60_crop' => array( // Used by Galleria template
    77             'width' => 60,
    78             'height' => 60,
    79             'resize_option' => 'crop'
    80         )
    81     );
    82 
    83     $plugin['data'] = 'cycloneslider_service_data';
    84 
    85     $plugin['nextgen_integration'] = 'cycloneslider_service_nextgen';
    86 
    87     $plugin['exporter'] = 'cycloneslider_service_exporter';
    88     $plugin['exports_dir'] = $plugin['cyclone_slider_dir'].'/exports';
    89     $plugin['export_json_file'] = 'export.json';
    90 
    91     $plugin['importer'] = 'cycloneslider_service_importer';
    92     $plugin['imports_dir'] = $plugin['cyclone_slider_dir'].'/imports';
    93     $plugin['imports_extracts_dir'] = $plugin['imports_dir'].'/extracts';
    94     $plugin['import_zip_name'] = 'import.zip';
    95 
    96     // Order is important. core is overridden by active-theme which in turn is overridden by wp-content.
    97     $plugin['template_locations'] = array(
    98         array(
    99             'path' => $plugin['path'].'templates'.DIRECTORY_SEPARATOR, // This resides in the plugin
    100             'url' => $plugin['url'].'templates/',
    101             'location_name' => 'core'
    102         ),
    103         array(
    104             'path' => realpath(get_stylesheet_directory()).DIRECTORY_SEPARATOR.'cycloneslider'.DIRECTORY_SEPARATOR, // This resides in the current theme or child theme. Gets deleted when theme is deleted.
    105             'url' => get_stylesheet_directory_uri()."/cycloneslider/",
    106             'location_name' => 'active-theme'
    107         ),
    108         array(
    109             'path' => $plugin['wp_content_dir'].DIRECTORY_SEPARATOR.'cycloneslider'.DIRECTORY_SEPARATOR, // This resides in the wp-content folder to prevent deleting when upgrading themes. Recommended location
    110             'url' => $plugin['wp_content_url']."/cycloneslider/",
    111             'location_name' => 'wp-content'
    112         )
    113     );
    114 
    115     $plugin['settings_page'] = 'cycloneslider_service_settings_page';
    116     $plugin['settings_page_properties'] = array(
    117         'parent_slug' => 'edit.php?post_type=cycloneslider',
    118         'page_title' =>  __('Cyclone Slider Settings', 'cyclone-slider-2'),
    119         'menu_title' =>  __('Settings', 'cyclone-slider-2'),
    120         'capability' => 'manage_options',
    121         'menu_slug' => 'cycloneslider-settings',
    122         'option_group' => 'cyclone_option_group',
    123         'option_name' => 'cyclone_option_name'
    124     );
    125 
    126     $plugin['export_page'] = 'cycloneslider_service_export_page';
    127     $plugin['export_page_properties'] = array(
    128         'parent_slug' => 'edit.php?post_type=cycloneslider',
    129         'page_title' => __('Cyclone Slider Export', 'cyclone-slider-2'),
    130         'menu_title' => __('Export/Import', 'cyclone-slider-2'),
    131         'capability' => 'manage_options',
    132         'menu_slug' => 'cycloneslider-export',
    133         'transient_name' => 'cycloneslider_export_transient',
    134         'nonce_name' => 'cycloneslider_export_nonce',
    135         'nonce_action' => 'cycloneslider_export',
    136         'url' => get_admin_url( get_current_blog_id(), 'edit.php?post_type=cycloneslider&page=cycloneslider-export' )
    137     );
    138 
    139     //$plugin['export_page_nextgen'] = 'cycloneslider_service_export_page_nextgen';
    140     $plugin['export_page_nextgen_properties'] = array(
    141         'parent_slug' => '',
    142         'page_title' => __('Cyclone Slider Nextgen Export', 'cyclone-slider-2'),
    143         'menu_title' => __('Export Nextgen', 'cyclone-slider-2'),
    144         'capability' => 'manage_options',
    145         'menu_slug' => 'cycloneslider-export-nextgen',
    146         'transient_name' => 'cycloneslider_export_nextgen_transient',
    147         'nonce_name' => 'cycloneslider_export_nextgen_nonce',
    148         'nonce_action' => 'cycloneslider_export_nextgen',
    149         'url' => get_admin_url( get_current_blog_id(), 'edit.php?post_type=cycloneslider&page=cycloneslider-export-nextgen' )
    150     );
    151 
    152     $plugin['import_page'] = 'cycloneslider_service_import_page';
    153     $plugin['import_page_properties'] = array(
    154         'parent_slug' => '',
    155         'page_title' => __('Cyclone Slider Import', 'cyclone-slider-2'),
    156         'menu_title' => __('Import', 'cyclone-slider-2'),
    157         'capability' => 'manage_options',
    158         'menu_slug' => 'cycloneslider-import',
    159         'nonce_name' => 'cycloneslider_import_nonce',
    160         'nonce_action' => 'cycloneslider_import',
    161         'url' => get_admin_url( get_current_blog_id(), 'edit.php?post_type=cycloneslider&page=cycloneslider-import' )
    162     );
    163 
    164     $plugin['merge_page'] = 'cycloneslider_service_merge_page';
    165    
    166 
    167     $plugin['zip_archive'] = 'cycloneslider_service_zip_archive';
    168     $plugin['youtube'] = new CycloneSlider_Youtube();
    169     $plugin['vimeo'] = new CycloneSlider_Vimeo();
    170     $plugin['asset_loader'] = 'cycloneslider_service_asset_loader';
    171     $plugin['admin'] = 'cycloneslider_service_admin';
    172     $plugin['frontend'] = 'cycloneslider_service_frontend';
    173     $plugin['updater'] = '';
    174     $plugin['widgets'] = new CycloneSlider_Widgets();
    175 
    176     // Disable to prevent redeclare error on update
    177     //require_once($plugin['path'].'src/functions.php'); // Function not autoloaded from the old days. Deprecated
    178 
    179     load_plugin_textdomain( $plugin['textdomain'], false, basename(dirname(__FILE__)).'/languages/' ); // Load language files
    180 
    181     $plugin->run();
    182 
    183     $cyclone_slider_plugin_instance = $plugin;
     23if ( isset($option['legacy']) and $option['legacy'] ) {
     24    require_once 'src/legacy/cyclone-slider.php';
     25} else {
     26    require_once 'src/autoloader.php';
     27    require_once 'src/plugin.php';
    18428}
    185 
    186 // Service Definitions
    187 function cycloneslider_service_plugin_headers( $plugin ){
    188     static $object;
    189 
    190     if (null !== $object) {
    191         return $object;
    192     }
    193 
    194     $default_headers = array(
    195         'name' => 'Plugin Name',
    196         'plugin_uri' => 'Plugin URI',
    197         'version' => 'Version',
    198         'author' => 'Author',
    199         'author_uri' => 'Author URI',
    200         'license' => 'License',
    201         'license_uri' => 'License URI',
    202         'domain_path' => 'Domain Path',
    203         'text_domain' => 'Text Domain'
    204     );
    205     $object = get_file_data( __FILE__, $default_headers, 'plugin' ); // WP Func
    206 
    207     return $object;
    208 }
    209 
    210 function cycloneslider_service_plugin_version( $plugin ) {
    211     static $object;
    212 
    213     if (null !== $object) {
    214         return $object;
    215     }
    216 
    217     $object = $plugin['plugin_headers']['version'];
    218     return $object;
    219 }
    220 
    221 function cycloneslider_service_plugin_text_domain( $plugin ) {
    222     static $object;
    223 
    224     if (null !== $object) {
    225         return $object;
    226     }
    227 
    228     $object = $plugin['plugin_headers']['text_domain'];
    229     return $object;
    230 }
    231 
    232 function cycloneslider_service_plugin_slug( $plugin ) {
    233     static $object;
    234 
    235     if (null !== $object) {
    236         return $object;
    237     }
    238 
    239     $parts = pathinfo(__FILE__);
    240     $object = basename($parts['dirname']).'/'.$parts['basename'];
    241     return $object;
    242 }
    243 
    244 function cycloneslider_wp_upload_location( $plugin ) {
    245     static $object;
    246 
    247     if (null !== $object) {
    248         return $object;
    249     }
    250     $wp_locations = wp_upload_dir();
    251     $object = $wp_locations;
    252     return $object;
    253 }
    254 
    255 function cycloneslider_service_wp_content_dir( $plugin ) {
    256     static $object;
    257 
    258     if (null !== $object) {
    259         return $object;
    260     }
    261 
    262     $wp_upload_dir = $plugin['wp_upload_location'];
    263 
    264     $object = dirname( $wp_upload_dir['basedir'] );
    265     return $object;
    266 }
    267 
    268 function cycloneslider_service_cyclone_slider_dir( $plugin ) {
    269     static $object;
    270 
    271     if (null !== $object) {
    272         return $object;
    273     }
    274 
    275     $object = $plugin['wp_content_dir'].'/cyclone-slider';
    276     return $object;
    277 }
    278 
    279 function cycloneslider_service_image_resizer( $plugin ) {
    280     static $object;
    281 
    282     if (null !== $object) {
    283         return $object;
    284     }
    285 
    286     $object = new CycloneSlider_ImageResizer( $plugin['image_sizes'], $plugin['image_editor'], $plugin['path'] );
    287     return $object;
    288 }
    289 
    290 function cycloneslider_service_data( $plugin ) {
    291     static $object;
    292 
    293     if (null !== $object) {
    294         return $object;
    295     }
    296 
    297     $object = new CycloneSlider_Data(
    298         $plugin['nonce_name'],
    299         $plugin['nonce_action'],
    300         $plugin['image_resizer'],
    301         $plugin['template_locations'],
    302         $plugin['settings_page_properties']
    303     );
    304     return $object;
    305 }
    306 
    307 function cycloneslider_service_nextgen( $plugin ) {
    308     static $object;
    309 
    310     if (null !== $object) {
    311         return $object;
    312     }
    313 
    314     $object = new CycloneSlider_NextgenIntegration( $plugin['data'] );
    315     return $object;
    316 }
    317 
    318 function cycloneslider_service_exporter( $plugin ){
    319     static $object;
    320 
    321     if (null !== $object) {
    322         return $object;
    323     }
    324 
    325     $object = new CycloneSlider_Exporter(
    326         $plugin['data'],
    327         $plugin['zip_archive'],
    328         $plugin['export_json_file']
    329     );
    330     return $object;
    331 }
    332 function cycloneslider_service_importer( $plugin ) {
    333     static $object;
    334 
    335     if (null !== $object) {
    336         return $object;
    337     }
    338 
    339     $wp_upload_location = $plugin['wp_upload_location'];
    340     $object = new CycloneSlider_Importer(
    341         $plugin['data'],
    342         $plugin['imports_dir'],
    343         $wp_upload_location['path'],
    344         $plugin['zip_archive'],
    345         $plugin['import_zip_name'],
    346         $plugin['imports_extracts_dir'],
    347         $plugin['export_json_file']);
    348     return $object;
    349 }
    350 
    351 function cycloneslider_service_view( $plugin ) {
    352     static $object;
    353 
    354     if (null !== $object) {
    355         return $object;
    356     }
    357 
    358     $object = new CycloneSlider_View( $plugin['view_folder'] );
    359     return $object;
    360 }
    361 
    362 function cycloneslider_service_settings_page( $plugin ) {
    363     static $object;
    364 
    365     if (null !== $object) {
    366         return $object;
    367     }
    368 
    369     $object = new CycloneSlider_SettingsPage(
    370         $plugin['settings_page_properties'],
    371         $plugin['data'],
    372         $plugin['debug'],
    373         $plugin['view'] );
    374     return $object;
    375 }
    376 
    377 function cycloneslider_service_export_page( $plugin ) {
    378     static $object;
    379 
    380     if (null !== $object) {
    381         return $object;
    382     }
    383 
    384     $object = new CycloneSlider_ExportPage(
    385         $plugin['export_page_properties']['parent_slug'],
    386         $plugin['export_page_properties']['page_title'],
    387         $plugin['export_page_properties']['menu_title'],
    388         $plugin['export_page_properties']['capability'],
    389         $plugin['export_page_properties']['menu_slug'],
    390         $plugin['data']->get_sliders(),
    391         $plugin['view'],
    392         $plugin['exporter'],
    393         $plugin['wp_content_dir'],
    394         $plugin['wp_content_url'],
    395         $plugin['export_page_properties']['transient_name'],
    396         $plugin['export_page_properties']['nonce_name'],
    397         $plugin['export_page_properties']['nonce_action'],
    398         $plugin['export_page_properties']['url'],
    399         $plugin['import_page_properties']['url'],
    400         $plugin['export_page_nextgen_properties']['url']
    401     );
    402     return $object;
    403 }
    404 
    405 function cycloneslider_service_import_page( $plugin ){
    406     static $object;
    407 
    408     if (null !== $object) {
    409         return $object;
    410     }
    411 
    412     $object = new CycloneSlider_ImportPage(
    413         $plugin['import_page_properties']['parent_slug'],
    414         $plugin['import_page_properties']['page_title'],
    415         $plugin['import_page_properties']['menu_title'],
    416         $plugin['import_page_properties']['capability'],
    417         $plugin['import_page_properties']['menu_slug'],
    418         $plugin['data'],
    419         $plugin['view'],
    420         $plugin['import_page_properties']['nonce_name'],
    421         $plugin['import_page_properties']['nonce_action'],
    422         $plugin['importer'],
    423         $plugin['cyclone_slider_dir'],
    424         $plugin['wp_content_dir'],
    425         $plugin['wp_content_url'],
    426         $plugin['export_page_properties']['url'],
    427         $plugin['import_page_properties']['url'],
    428         $plugin['export_page_nextgen_properties']['url']
    429     );
    430     return $object;
    431 }
    432 
    433 function cycloneslider_service_export_page_nextgen( $plugin ) {
    434     static $object;
    435 
    436     if (null !== $object) {
    437         return $object;
    438     }
    439 
    440     $object = new CycloneSlider_ExportPageNextgen(
    441         $plugin['export_page_nextgen_properties']['parent_slug'],
    442         $plugin['export_page_nextgen_properties']['page_title'],
    443         $plugin['export_page_nextgen_properties']['menu_title'],
    444         $plugin['export_page_nextgen_properties']['capability'],
    445         $plugin['export_page_nextgen_properties']['menu_slug'],
    446         $plugin['view'],
    447         $plugin['exporter'],
    448         $plugin['wp_content_dir'],
    449         $plugin['wp_content_url'],
    450         $plugin['export_page_nextgen_properties']['transient_name'],
    451         $plugin['export_page_nextgen_properties']['nonce_name'],
    452         $plugin['export_page_nextgen_properties']['nonce_action'],
    453         $plugin['export_page_properties']['url'],
    454         $plugin['import_page_properties']['url'],
    455         $plugin['export_page_nextgen_properties']['url']
    456     );
    457     return $object;
    458 }
    459 
    460 function cycloneslider_service_merge_page( $plugin ){
    461     static $object;
    462 
    463     if (null !== $object) {
    464         return $object;
    465     }
    466 
    467     $object = new CycloneSlider_Merge($plugin['view'], $plugin);
    468     return $object;
    469 }
    470 
    471 function cycloneslider_service_zip_archive( $plugin ){
    472     return 'ZipArchive';
    473 }
    474 
    475 function cycloneslider_service_asset_loader( $plugin ) {
    476     static $object;
    477 
    478     if (null !== $object) {
    479         return $object;
    480     }
    481 
    482     $object = new CycloneSlider_AssetLoader( $plugin['data']->get_settings_page_data(), $plugin['url'], $plugin['version'], $plugin['data'] );
    483     return $object;
    484 }
    485 
    486 function cycloneslider_service_admin( $plugin ) {
    487     static $object;
    488 
    489     if (null !== $object) {
    490         return $object;
    491     }
    492 
    493     $object = new CycloneSlider_Admin(
    494         $plugin['asset_loader'],
    495         $plugin['data'],
    496         $plugin['debug'],
    497         $plugin['view'],
    498         $plugin['nonce_name'],
    499         $plugin['nonce_action'],
    500         $plugin['url']
    501     );
    502     return $object;
    503 }
    504 
    505 function cycloneslider_service_frontend( $plugin ) {
    506     static $object;
    507 
    508     if (null !== $object) {
    509         return $object;
    510     }
    511 
    512     $object = new CycloneSlider_Frontend( $plugin['data'], $plugin['image_sizes'], $plugin['youtube'], $plugin['vimeo'], $plugin['view'] );
    513     return $object;
    514 }
    515 
    516 function cycloneslider_service_updater( $plugin ) {
    517     static $object;
    518 
    519     if (null !== $object) {
    520         return $object;
    521     }
    522 
    523     $settings_data = $plugin['data']->get_settings_page_data();
    524 
    525     $object = new CycloneSlider_Updater(
    526         'http://www.codefleet.net/plugin-endpoint/',
    527         $settings_data['license_id'],
    528         $settings_data['license_key'],
    529         $plugin['slug'],
    530         $plugin['version']
    531     );
    532     return $object;
    533 }
    534 
  • cyclone-slider-2/trunk/js/admin.js

    r1450024 r1690000  
    3131        data = {};
    3232    }
    33     this.expandables = data;/*** data format should be object[slideshow_id][element_index] ***/
     33    this.expandables = data;/*** data format should be object[slideshowId][element_index] ***/
    3434}
    3535CsUiOpen.prototype.get = function(slideshow, key){
     
    7777    /*** SLIDE BOXES ***/
    7878    (function() {
    79         var slideshow_id, cs_ui_open;
    80        
    81         slideshow_id = $('#cyclone-slides-metabox .cs-sortables').data('post-id');
     79        var $slidesMetabox = $('#cyclone-slides-metabox'),
     80            $sortables = $('#cs-sortables'),
     81            slideshowId = $sortables.data('post-id'),
     82            cs_ui_open;
    8283       
    8384        cs_ui_open = new CsUiOpen(cs_local_storage.get('cs_slide_toggles'));/*** Handle persistent slide data ***/
    8485       
    8586        /*** Init - Sortable slides ***/
    86         $('.cs-sortables').sortable({
     87        $sortables.sortable({
    8788            handle:'.cs-header',
    8889            placeholder: "cs-slide-placeholder",
    8990            forcePlaceholderSize:true,
    90             delay:100,
     91            disabled: true,
    9192            /*** Update form field indexes when slide order changes ***/
    9293            update: function(event, ui) {
    93                 $('.cs-sortables .cs-slide').each(function(boxIndex, box){ /*** Loop thru each box ***/
     94                $sortables.find('.cs-slide').each(function(boxIndex, box){ /*** Loop thru each box ***/
    9495                    $(box).find('input, select, textarea').each(function(i, field){ /*** Loop thru relevant form fields ***/
    9596                        var name = $(field).attr('name');
     
    114115            }
    115116        });
    116        
     117        $('#cs-sort').on('click', function(){
     118            var $sort = $(this),
     119                isDisabled = $( "#cs-sortables" ).sortable( "option", "disabled" );
     120
     121            $sort.toggleClass('active');
     122            if(isDisabled){
     123                $('#cs-sortables').sortable('enable').addClass('active');
     124            } else {
     125                $('#cs-sortables').sortable('disable').removeClass('active');
     126            }
     127        });
    117128        /*** Init - Slide ID and title ***/
    118         $('.cs-sortables .cs-slide').each(function(i){
    119             var body;
    120            
    121             body = $(this).find('.cs-body');
    122 
    123             $(this).data('cs_id',i);
    124            
    125             if(cs_ui_open.get(slideshow_id ,i)=='open'){
    126                 body.slideDown(0);
    127             } else {
    128                 body.slideUp(0);
     129        $sortables.find('.cs-slide').each(function(i){
     130            var $slide = $(this),
     131                $body = $slide.find('.cs-body');
     132
     133            $slide.data('cs_id', i);
     134           
     135            if(cs_ui_open.get(slideshowId ,i)=='open'){
     136                $body.slideDown(0);
     137            } else {
     138                $body.slideUp(0);
    129139            }
    130140        });
    131141       
    132142        /*** Add - Slide box from a hidden html template ***/
    133         $('#cyclone-slides-metabox').on('click', '.cs-add-slide', function(e){
    134             var id = $('.cs-sortables .cs-slide').length;
    135             var html = $('.cs-slide-skeleton').html();
     143        $slidesMetabox.on('click', '#cs-add-slide', function(e){
     144            var id = $sortables.find('.cs-slide').length;
     145            var html = $('#cs-slide-skeleton').html();
    136146            html = html.replace(/{id}/g, id);/*** replace all occurences of {id} to real id ***/
    137147           
    138             $('.cs-sortables').append(html);
    139             $('.cs-sortables .cs-slide:last').find('.cs-thumbnail').hide().end().find('.cs-body').show();
    140 
    141             $('.cs-sortables .cs-slide').each(function(i){
     148            $sortables.append(html);
     149            $sortables.find('.cs-slide:last').find('.cs-thumbnail').hide().end().find('.cs-body').show();
     150
     151            $sortables.find('.cs-slide').each(function(i){
    142152                $(this).data('cs_id',i);
    143153            });
     154
    144155            $('.expandable-body').each(function(i){
    145156                $(this).data('cs_id',i);
     
    149160           
    150161            e.preventDefault();
    151         });
    152        
    153         /*** Add image to slide ***/
    154         $('#cyclone-slides-metabox').on('wpAddImage', '.cs-media-gallery-show', function(e, image_url, attachment_id, media_attachment){
    155             var current_slide_box, slide_thumb, slide_attachment_id;
    156 
    157             current_slide_box = $(this).parents('.cs-slide');/*** Get current box ***/
    158             slide_thumb = current_slide_box.find('.cs-image-thumb');/*** Find the thumb ***/
    159             slide_attachment_id = current_slide_box.find('.cs-image-id ');/*** Find the hidden field that will hold the attachment id ***/
    160            
    161             slide_thumb.html('<a target="_blank" href="'+media_attachment.url+'"><img src="'+image_url+'" alt="thumb"></a>').show();
    162             slide_attachment_id.val(attachment_id);
     162        })
     163        .on('wpAddImage', '.cs-media-gallery-show', function(e, image_url, attachment_id, media_attachment){
     164           
     165            /*** Add image to slide ***/
     166
     167            var $button = $(this),
     168                $imageField = $button.closest('.cs-image-field'), // Current image field
     169                $thumb = $imageField.find('.cs-image-thumb'), // Find the thumb
     170                $hiddenField = $imageField.find('.cs-image-id '); // Find the hidden field that will hold the attachment id
     171
     172            $thumb.html('<img src="'+image_url+'" alt="Thumbnail" />').show();
     173            $hiddenField.val(attachment_id);
    163174 
    164         });
    165        
    166         /*** Add multiple images as slide ***/
    167         $('#cyclone-slides-metabox').on('wpAddImages', '.cs-multiple-slides', function(e, media_attachments){
    168             var cur_slide_count = $('.cs-sortables .cs-slide').length;
     175        })
     176        .on('wpAddImages', '.cs-multiple-slides', function(e, media_attachments){
     177
     178            /*** Add multiple images as slide ***/
     179
     180            var $sortables = $('#cs-sortables'),
     181                slideCount = $sortables.find('.cs-slide').length,
     182                i;
    169183
    170184            for(i=0; i<media_attachments.length; ++i){
    171185               
    172                 $('#cyclone-slides-metabox .cs-add-slide').trigger('click');
    173                
    174                 $('.cs-sortables .cs-slide').eq(cur_slide_count+i).find('.cs-media-gallery-show').trigger('wpAddImage', [media_attachments[i].url, media_attachments[i].id, media_attachments[i]]);
    175             }
    176            
    177         });
    178        
    179         /*** Toggle - slide body visiblity ***/
    180         $('#cyclone-slides-metabox').on('click',  '.cs-header', function(e) {
    181             var id, box, body, cs_slide_toggles;
    182            
    183             box = $(this).parents('.cs-slide');
    184             body = box.find('.cs-body');
    185            
    186             id = box.data('cs_id');
    187            
    188             if(body.is(':visible')){
    189                 body.slideUp(100);
    190                 cs_ui_open.remove(slideshow_id , id);
    191             } else {
    192                 body.slideDown(100);
    193                 cs_ui_open.set(slideshow_id , id, 'open');/*** remember open section ***/
     186                $('#cs-add-slide').trigger('click');
     187               
     188                $sortables.find('.cs-slide').eq(slideCount+i).find('.cs-media-gallery-show').trigger('wpAddImage', [media_attachments[i].url, media_attachments[i].id, media_attachments[i]]);
     189            }
     190           
     191        })
     192        .on('click',  '.cs-minimize', function(e) {
     193
     194            /*** Toggle - slide body visiblity ***/
     195
     196            var $button = $(this),
     197                $box = $button.closest('.cs-slide'),
     198                $body = $box.find('.cs-body'),
     199                id = $box.data('cs_id');
     200           
     201            if($body.is(':visible')){
     202                $body.slideUp(100);
     203                cs_ui_open.remove(slideshowId , id);
     204            } else {
     205                $body.slideDown(100);
     206                cs_ui_open.set(slideshowId , id, 'open');/*** remember open section ***/
    194207            }
    195208           
    196209            cs_local_storage.set('cs_slide_toggles', cs_ui_open.getAll());
    197         });
    198        
    199         /*** Delete - Remove slide box ***/
    200         $('#cyclone-slides-metabox').on('click',  '.cs-delete', function(e) {
     210            e.preventDefault();
     211
     212        }).on('click', '.cs-slide-type .switcher', function(e){
     213
     214            /* Switcher - switch between slide types */
     215
     216            var $switcher = $(this);
     217
     218            $switcher.toggleClass('open');
     219            $('.cs-slide-type .switcher').not($switcher).removeClass('open');
     220            e.stopPropagation();
     221
     222        }).on('click', '.cs-slide-type .switcher li', function(e){
     223
     224            var $list = $(this),
     225                $box = $list.closest('.cs-slide'),
     226                $switcher = $list.closest('.switcher'),
     227                $hidden = $list.closest('.cs-slide-type').find('input'),
     228                $display = $switcher.find('.display');
     229           
     230            $display.html($list.html());
     231            $switcher.removeClass('open');
     232            $hidden.val($list.attr('data-value'));
     233            $box.attr('data-slide-type', $hidden.val());
     234
     235            e.stopPropagation();
     236        })
     237        .on('click',  '.cs-delete', function(e) {
     238           
     239            /*** Delete - Remove slide box ***/
    201240
    202241            var box = $(this).parents('.cs-slide');
     
    205244            e.preventDefault();
    206245            e.stopPropagation();
    207         });
    208        
    209         /*** Switcher - switch between slide types ***/
    210         $('#cyclone-slides-metabox').on('change', '.cs-slide-type-switcher', function(e){
    211             var box, body, image_box, video_box, custom_box, icon;
    212            
    213             box = $(this).parents('.cs-slide');
    214             box.attr('data-slide-type', $(this).val());
    215            
    216         });
    217         $('.cs-slide-type-switcher').trigger('change');
    218        
    219         /*** Enable/Disable Link URL if lightbox is selected ***/
    220         $('#cyclone-slides-metabox').on('change', '.cycloneslider_metas_link_target', function(e){
     246        })
     247        .on('change', '.cycloneslider_metas_link_target', function(e){
     248
     249            /*** Enable/Disable Link URL if lightbox is selected ***/
     250           
    221251            var box, link_url;
    222252           
     
    230260                link_url.removeAttr('disabled');
    231261            }
    232         });
     262        })
     263        .find('.cs-slide').each(function(){
     264            var $slide = $(this),
     265                slideType = $slide.attr('data-slide-type');
     266            $slide.find('.cs-slide-type').find('li[data-value="'+slideType+'"]').trigger('click');
     267        });
     268
     269        $(document).click(function(){
     270
     271            /* Handle closing of dropdown on lost focus */
     272
     273            $('.cs-slide-type .switcher').removeClass('open');
     274        });
     275
    233276        $('.cycloneslider_metas_link_target').trigger('change');
    234277       
     
    237280    /*** EXPANDABLES ***/
    238281    (function() {
    239         var slideshow_id, cs_ui_open;
     282        var slideshowId, cs_ui_open;
    240283       
    241284        /*** Init ***/
    242         slideshow_id = $('#cyclone-slides-metabox .cs-sortables').data('post-id');
     285        slideshowId = $('#cyclone-slides-metabox .cs-sortables').data('post-id');
    243286       
    244287        cs_ui_open = new CsUiOpen(cs_local_storage.get('cs_expandables'));
     
    247290            $(this).data('cs_id', i);
    248291           
    249             if(cs_ui_open.get(slideshow_id ,i)=='open'){
     292            if(cs_ui_open.get(slideshowId ,i)=='open'){
    250293                $(this).slideDown(0);
    251294            } else {
     
    263306            if(body.is(':visible')){
    264307                body.slideUp(100);
    265                 cs_ui_open.remove(slideshow_id , id);
     308                cs_ui_open.remove(slideshowId , id);
    266309               
    267310            } else {
    268311                body.slideDown(100);
    269                 cs_ui_open.set(slideshow_id , id, 'open');
     312                cs_ui_open.set(slideshowId , id, 'open');
    270313               
    271314            }
     
    277320    /*** VIDEO SLIDE ***/
    278321    (function() {
    279         var slideshow_id;
    280        
    281         slideshow_id = $('#cyclone-slides-metabox .cs-sortables').data('post-id');
     322        var slideshowId;
     323       
     324        slideshowId = $('#cyclone-slides-metabox .cs-sortables').data('post-id');
    282325       
    283326        /*** Get Video ***/
     
    332375       
    333376        /*** Template Chooser ***/
    334         $('#cyclone-slider-templates-metabox').on('click', '.cs-templates li', function(e){
    335             $('.cs-templates li').removeClass('active');
    336             $('.cs-templates li input').removeAttr('checked');
    337             $(this).addClass('active').find('input').attr('checked','checked');
    338         });
    339         $('#cyclone-slider-templates-metabox').on('click', '.body .cs-location a', function(e){
     377        $('#cyclone-slider-templates-metabox').on('click', '.boxxy', function(e){
    340378            e.preventDefault();
    341379            e.stopPropagation();
     
    367405                'top': y+'px'
    368406            });
     407        }).on('change', '.cs-templates input[type="radio"]', function(e){
     408            var $radio = $(this),
     409                $tr = $(this).closest('tr'),
     410                $table = $tr.closest('table');
     411
     412            $table.find('tr').removeClass('active');
     413            $tr.addClass('active');
    369414        });
    370415        $(document).on('click', '#cs-boxy', function(e){
     
    391436        /*** Show/hide Tile Properties for slides ***/
    392437        $('#cyclone-slides-metabox').on('change', '.cycloneslider_metas_fx', function(){
    393             if($(this).val()=='tileBlind' || $(this).val()=='tileSlide'){
    394                 $(this).siblings('.cycloneslider-slide-tile-properties').slideDown('fast');
    395             } else {
    396                 $(this).siblings('.cycloneslider-slide-tile-properties').slideUp('fast');
     438            var $select  = $(this),
     439                $field = $select.closest('.field');
     440
     441            if($select.val()=='tileBlind' || $select.val()=='tileSlide'){
     442                $field.siblings('.cycloneslider-slide-tile-properties').slideDown('fast');
     443            } else {
     444                $field.siblings('.cycloneslider-slide-tile-properties').slideUp('fast');
    397445            }
    398446        });
    399447        $(".cycloneslider_metas_fx").trigger('change');
    400        
    401         /*** enable/disable form fields and labels ***/
    402         $('#cyclone-slides-metabox').on('change', '.cycloneslider_metas_enable_slide_effects', function(){
    403             if($(this).val()==0){
    404                 $(this).parent().find('input,select').not(this).attr('disabled','disabled');
    405                 $(this).parent().find('label,.note').addClass('disabled');
    406             } else {
    407                 $(this).parent().find('input,select').not(this).removeAttr('disabled');
    408                 $(this).parent().find('label,.note').removeClass('disabled');
    409             }
    410         });
    411         $(".cycloneslider_metas_enable_slide_effects").trigger('change');
    412448       
    413449    })();
  • cyclone-slider-2/trunk/libs/cycle2/jquery.cycle2.carousel.min.js

    r775279 r1690000  
    1 /* Plugin for Cycle2; Copyright (c) 2012 M. Alsup; v20130528 */
    2 (function(e){"use strict";e(document).on("cycle-bootstrap",function(e,i,t){"carousel"===i.fx&&(t.getSlideIndex=function(e){var i=this.opts()._carouselWrap.children(),t=i.index(e);return t%i.length},t.next=function(){var e=i.reverse?-1:1;i.allowWrap===!1&&i.currSlide+e>i.slideCount-i.carouselVisible||(i.API.advanceSlide(e),i.API.trigger("cycle-next",[i]).log("cycle-next"))})}),e.fn.cycle.transitions.carousel={preInit:function(i){i.hideNonActive=!1,i.container.on("cycle-destroyed",e.proxy(this.onDestroy,i.API)),i.API.stopTransition=this.stopTransition;for(var t=0;i.startingSlide>t;t++)i.container.append(i.slides[0])},postInit:function(i){var t,n,s,o,l=i.carouselVertical;i.carouselVisible&&i.carouselVisible>i.slideCount&&(i.carouselVisible=i.slideCount-1);var r=i.carouselVisible||i.slides.length,c={display:l?"block":"inline-block",position:"static"};if(i.container.css({position:"relative",overflow:"hidden"}),i.slides.css(c),i._currSlide=i.currSlide,o=e('<div class="cycle-carousel-wrap"></div>').prependTo(i.container).css({margin:0,padding:0,top:0,left:0,position:"absolute"}).append(i.slides),i._carouselWrap=o,l||o.css("white-space","nowrap"),i.allowWrap!==!1){for(n=0;(void 0===i.carouselVisible?2:1)>n;n++){for(t=0;i.slideCount>t;t++)o.append(i.slides[t].cloneNode(!0));for(t=i.slideCount;t--;)o.prepend(i.slides[t].cloneNode(!0))}o.find(".cycle-slide-active").removeClass("cycle-slide-active"),i.slides.eq(i.startingSlide).addClass("cycle-slide-active")}i.pager&&i.allowWrap===!1&&(s=i.slideCount-r,e(i.pager).children().filter(":gt("+s+")").hide()),i._nextBoundry=i.slideCount-i.carouselVisible,this.prepareDimensions(i)},prepareDimensions:function(i){var t,n,s,o=i.carouselVertical,l=i.carouselVisible||i.slides.length;if(i.carouselFluid&&i.carouselVisible?i._carouselResizeThrottle||this.fluidSlides(i):i.carouselVisible&&i.carouselSlideDimension?(t=l*i.carouselSlideDimension,i.container[o?"height":"width"](t)):i.carouselVisible&&(t=l*e(i.slides[0])[o?"outerHeight":"outerWidth"](!0),i.container[o?"height":"width"](t)),n=i.carouselOffset||0,i.allowWrap!==!1)if(i.carouselSlideDimension)n-=(i.slideCount+i.currSlide)*i.carouselSlideDimension;else{s=i._carouselWrap.children();for(var r=0;i.slideCount+i.currSlide>r;r++)n-=e(s[r])[o?"outerHeight":"outerWidth"](!0)}i._carouselWrap.css(o?"top":"left",n)},fluidSlides:function(i){function t(){clearTimeout(s),s=setTimeout(n,20)}function n(){i._carouselWrap.stop(!1,!0);var e=i.container.width()/i.carouselVisible;e=Math.ceil(e-l),i._carouselWrap.children().width(e),i._sentinel&&i._sentinel.width(e),r(i)}var s,o=i.slides.eq(0),l=o.outerWidth()-o.width(),r=this.prepareDimensions;e(window).on("resize",t),i._carouselResizeThrottle=t,n()},transition:function(i,t,n,s,o){var l,r={},c=i.nextSlide-i.currSlide,a=i.carouselVertical,d=i.speed;if(i.allowWrap===!1){s=c>0;var u=i._currSlide,p=i.slideCount-i.carouselVisible;c>0&&i.nextSlide>p&&u==p?c=0:c>0&&i.nextSlide>p?c=i.nextSlide-u-(i.nextSlide-p):0>c&&i.currSlide>p&&i.nextSlide>p?c=0:0>c&&i.currSlide>p?c+=i.currSlide-p:u=i.currSlide,l=this.getScroll(i,a,u,c),i.API.opts()._currSlide=i.nextSlide>p?p:i.nextSlide}else s&&0===i.nextSlide?(l=this.getDim(i,i.currSlide,a),o=this.genCallback(i,s,a,o)):s||i.nextSlide!=i.slideCount-1?l=this.getScroll(i,a,i.currSlide,c):(l=this.getDim(i,i.currSlide,a),o=this.genCallback(i,s,a,o));r[a?"top":"left"]=s?"-="+l:"+="+l,i.throttleSpeed&&(d=l/e(i.slides[0])[a?"height":"width"]()*i.speed),i._carouselWrap.animate(r,d,i.easing,o)},getDim:function(i,t,n){var s=e(i.slides[t]);return s[n?"outerHeight":"outerWidth"](!0)},getScroll:function(e,i,t,n){var s,o=0;if(n>0)for(s=t;t+n>s;s++)o+=this.getDim(e,s,i);else for(s=t;s>t+n;s--)o+=this.getDim(e,s,i);return o},genCallback:function(i,t,n,s){return function(){var t=e(i.slides[i.nextSlide]).position(),o=0-t[n?"top":"left"]+(i.carouselOffset||0);i._carouselWrap.css(i.carouselVertical?"top":"left",o),s()}},stopTransition:function(){var e=this.opts();e.slides.stop(!1,!0),e._carouselWrap.stop(!1,!0)},onDestroy:function(){var i=this.opts();i._carouselResizeThrottle&&e(window).off("resize",i._carouselResizeThrottle),i.slides.prependTo(i.container),i._carouselWrap.remove()}}})(jQuery);
     1/* Plugin for Cycle2; Copyright (c) 2012 M. Alsup; v20141007 */
     2!function(a){"use strict";a(document).on("cycle-bootstrap",function(a,b,c){"carousel"===b.fx&&(c.getSlideIndex=function(a){var b=this.opts()._carouselWrap.children(),c=b.index(a);return c%b.length},c.next=function(){var a=b.reverse?-1:1;b.allowWrap===!1&&b.currSlide+a>b.slideCount-b.carouselVisible||(b.API.advanceSlide(a),b.API.trigger("cycle-next",[b]).log("cycle-next"))})}),a.fn.cycle.transitions.carousel={preInit:function(b){b.hideNonActive=!1,b.container.on("cycle-destroyed",a.proxy(this.onDestroy,b.API)),b.API.stopTransition=this.stopTransition;for(var c=0;c<b.startingSlide;c++)b.container.append(b.slides[0])},postInit:function(b){var c,d,e,f,g=b.carouselVertical;b.carouselVisible&&b.carouselVisible>b.slideCount&&(b.carouselVisible=b.slideCount-1);var h=b.carouselVisible||b.slides.length,i={display:g?"block":"inline-block",position:"static"};if(b.container.css({position:"relative",overflow:"hidden"}),b.slides.css(i),b._currSlide=b.currSlide,f=a('<div class="cycle-carousel-wrap"></div>').prependTo(b.container).css({margin:0,padding:0,top:0,left:0,position:"absolute"}).append(b.slides),b._carouselWrap=f,g||f.css("white-space","nowrap"),b.allowWrap!==!1){for(d=0;d<(void 0===b.carouselVisible?2:1);d++){for(c=0;c<b.slideCount;c++)f.append(b.slides[c].cloneNode(!0));for(c=b.slideCount;c--;)f.prepend(b.slides[c].cloneNode(!0))}f.find(".cycle-slide-active").removeClass("cycle-slide-active"),b.slides.eq(b.startingSlide).addClass("cycle-slide-active")}b.pager&&b.allowWrap===!1&&(e=b.slideCount-h,a(b.pager).children().filter(":gt("+e+")").hide()),b._nextBoundry=b.slideCount-b.carouselVisible,this.prepareDimensions(b)},prepareDimensions:function(b){var c,d,e,f,g=b.carouselVertical,h=b.carouselVisible||b.slides.length;if(b.carouselFluid&&b.carouselVisible?b._carouselResizeThrottle||this.fluidSlides(b):b.carouselVisible&&b.carouselSlideDimension?(c=h*b.carouselSlideDimension,b.container[g?"height":"width"](c)):b.carouselVisible&&(c=h*a(b.slides[0])[g?"outerHeight":"outerWidth"](!0),b.container[g?"height":"width"](c)),d=b.carouselOffset||0,b.allowWrap!==!1)if(b.carouselSlideDimension)d-=(b.slideCount+b.currSlide)*b.carouselSlideDimension;else for(e=b._carouselWrap.children(),f=0;f<b.slideCount+b.currSlide;f++)d-=a(e[f])[g?"outerHeight":"outerWidth"](!0);b._carouselWrap.css(g?"top":"left",d)},fluidSlides:function(b){function c(){clearTimeout(e),e=setTimeout(d,20)}function d(){b._carouselWrap.stop(!1,!0);var a=b.container.width()/b.carouselVisible;a=Math.ceil(a-g),b._carouselWrap.children().width(a),b._sentinel&&b._sentinel.width(a),h(b)}var e,f=b.slides.eq(0),g=f.outerWidth()-f.width(),h=this.prepareDimensions;a(window).on("resize",c),b._carouselResizeThrottle=c,d()},transition:function(b,c,d,e,f){var g,h={},i=b.nextSlide-b.currSlide,j=b.carouselVertical,k=b.speed;if(b.allowWrap===!1){e=i>0;var l=b._currSlide,m=b.slideCount-b.carouselVisible;i>0&&b.nextSlide>m&&l==m?i=0:i>0&&b.nextSlide>m?i=b.nextSlide-l-(b.nextSlide-m):0>i&&b.currSlide>m&&b.nextSlide>m?i=0:0>i&&b.currSlide>m?i+=b.currSlide-m:l=b.currSlide,g=this.getScroll(b,j,l,i),b.API.opts()._currSlide=b.nextSlide>m?m:b.nextSlide}else e&&0===b.nextSlide?(g=this.getDim(b,b.currSlide,j),f=this.genCallback(b,e,j,f)):e||b.nextSlide!=b.slideCount-1?g=this.getScroll(b,j,b.currSlide,i):(g=this.getDim(b,b.currSlide,j),f=this.genCallback(b,e,j,f));h[j?"top":"left"]=e?"-="+g:"+="+g,b.throttleSpeed&&(k=g/a(b.slides[0])[j?"height":"width"]()*b.speed),b._carouselWrap.animate(h,k,b.easing,f)},getDim:function(b,c,d){var e=a(b.slides[c]);return e[d?"outerHeight":"outerWidth"](!0)},getScroll:function(a,b,c,d){var e,f=0;if(d>0)for(e=c;c+d>e;e++)f+=this.getDim(a,e,b);else for(e=c;e>c+d;e--)f+=this.getDim(a,e,b);return f},genCallback:function(b,c,d,e){return function(){var c=a(b.slides[b.nextSlide]).position(),f=0-c[d?"top":"left"]+(b.carouselOffset||0);b._carouselWrap.css(b.carouselVertical?"top":"left",f),e()}},stopTransition:function(){var a=this.opts();a.slides.stop(!1,!0),a._carouselWrap.stop(!1,!0)},onDestroy:function(){var b=this.opts();b._carouselResizeThrottle&&a(window).off("resize",b._carouselResizeThrottle),b.slides.prependTo(b.container),b._carouselWrap.remove()}}}(jQuery);
  • cyclone-slider-2/trunk/libs/cycle2/jquery.cycle2.min.js

    r777273 r1690000  
    1 /*
    2 * jQuery Cycle2; v20130909
     1/*!
     2* jQuery Cycle2; version: 2.1.6 build: 20141007
    33* http://jquery.malsup.com/cycle2/
    4 * Copyright (c) 2013 M. Alsup; Dual licensed: MIT/GPL
     4* Copyright (c) 2014 M. Alsup; Dual licensed: MIT/GPL
    55*/
    6 (function(e){"use strict";function t(e){return(e||"").toLowerCase()}var i="20130725";e.fn.cycle=function(i){var n;return 0!==this.length||e.isReady?this.each(function(){var n,s,o,c,r=e(this),l=e.fn.cycle.log;if(!r.data("cycle.opts")){(r.data("cycle-log")===!1||i&&i.log===!1||s&&s.log===!1)&&(l=e.noop),l("--c2 init--"),n=r.data();for(var a in n)n.hasOwnProperty(a)&&/^cycle[A-Z]+/.test(a)&&(c=n[a],o=a.match(/^cycle(.*)/)[1].replace(/^[A-Z]/,t),l(o+":",c,"("+typeof c+")"),n[o]=c);s=e.extend({},e.fn.cycle.defaults,n,i||{}),s.timeoutId=0,s.paused=s.paused||!1,s.container=r,s._maxZ=s.maxZ,s.API=e.extend({_container:r},e.fn.cycle.API),s.API.log=l,s.API.trigger=function(e,t){return s.container.trigger(e,t),s.API},r.data("cycle.opts",s),r.data("cycle.API",s.API),s.API.trigger("cycle-bootstrap",[s,s.API]),s.API.addInitialSlides(),s.API.preInitSlideshow(),s.slides.length&&s.API.initSlideshow()}}):(n={s:this.selector,c:this.context},e.fn.cycle.log("requeuing slideshow (dom not ready)"),e(function(){e(n.s,n.c).cycle(i)}),this)},e.fn.cycle.API={opts:function(){return this._container.data("cycle.opts")},addInitialSlides:function(){var t=this.opts(),i=t.slides;t.slideCount=0,t.slides=e(),i=i.jquery?i:t.container.find(i),t.random&&i.sort(function(){return Math.random()-.5}),t.API.add(i)},preInitSlideshow:function(){var t=this.opts();t.API.trigger("cycle-pre-initialize",[t]);var i=e.fn.cycle.transitions[t.fx];i&&e.isFunction(i.preInit)&&i.preInit(t),t._preInitialized=!0},postInitSlideshow:function(){var t=this.opts();t.API.trigger("cycle-post-initialize",[t]);var i=e.fn.cycle.transitions[t.fx];i&&e.isFunction(i.postInit)&&i.postInit(t)},initSlideshow:function(){var t,i=this.opts(),n=i.container;i.API.calcFirstSlide(),"static"==i.container.css("position")&&i.container.css("position","relative"),e(i.slides[i.currSlide]).css("opacity",1).show(),i.API.stackSlides(i.slides[i.currSlide],i.slides[i.nextSlide],!i.reverse),i.pauseOnHover&&(i.pauseOnHover!==!0&&(n=e(i.pauseOnHover)),n.hover(function(){i.API.pause(!0)},function(){i.API.resume(!0)})),i.timeout&&(t=i.API.getSlideOpts(i.nextSlide),i.API.queueTransition(t,t.timeout+i.delay)),i._initialized=!0,i.API.updateView(!0),i.API.trigger("cycle-initialized",[i]),i.API.postInitSlideshow()},pause:function(t){var i=this.opts(),n=i.API.getSlideOpts(),s=i.hoverPaused||i.paused;t?i.hoverPaused=!0:i.paused=!0,s||(i.container.addClass("cycle-paused"),i.API.trigger("cycle-paused",[i]).log("cycle-paused"),n.timeout&&(clearTimeout(i.timeoutId),i.timeoutId=0,i._remainingTimeout-=e.now()-i._lastQueue,(0>i._remainingTimeout||isNaN(i._remainingTimeout))&&(i._remainingTimeout=void 0)))},resume:function(e){var t=this.opts(),i=!t.hoverPaused&&!t.paused;e?t.hoverPaused=!1:t.paused=!1,i||(t.container.removeClass("cycle-paused"),0===t.slides.filter(":animated").length&&t.API.queueTransition(t.API.getSlideOpts(),t._remainingTimeout),t.API.trigger("cycle-resumed",[t,t._remainingTimeout]).log("cycle-resumed"))},add:function(t,i){var n,s=this.opts(),o=s.slideCount,c=!1;"string"==e.type(t)&&(t=e.trim(t)),e(t).each(function(){var t,n=e(this);i?s.container.prepend(n):s.container.append(n),s.slideCount++,t=s.API.buildSlideOpts(n),s.slides=i?e(n).add(s.slides):s.slides.add(n),s.API.initSlide(t,n,--s._maxZ),n.data("cycle.opts",t),s.API.trigger("cycle-slide-added",[s,t,n])}),s.API.updateView(!0),c=s._preInitialized&&2>o&&s.slideCount>=1,c&&(s._initialized?s.timeout&&(n=s.slides.length,s.nextSlide=s.reverse?n-1:1,s.timeoutId||s.API.queueTransition(s)):s.API.initSlideshow())},calcFirstSlide:function(){var e,t=this.opts();e=parseInt(t.startingSlide||0,10),(e>=t.slides.length||0>e)&&(e=0),t.currSlide=e,t.reverse?(t.nextSlide=e-1,0>t.nextSlide&&(t.nextSlide=t.slides.length-1)):(t.nextSlide=e+1,t.nextSlide==t.slides.length&&(t.nextSlide=0))},calcNextSlide:function(){var e,t=this.opts();t.reverse?(e=0>t.nextSlide-1,t.nextSlide=e?t.slideCount-1:t.nextSlide-1,t.currSlide=e?0:t.nextSlide+1):(e=t.nextSlide+1==t.slides.length,t.nextSlide=e?0:t.nextSlide+1,t.currSlide=e?t.slides.length-1:t.nextSlide-1)},calcTx:function(t,i){var n,s=t;return i&&s.manualFx&&(n=e.fn.cycle.transitions[s.manualFx]),n||(n=e.fn.cycle.transitions[s.fx]),n||(n=e.fn.cycle.transitions.fade,s.API.log('Transition "'+s.fx+'" not found.  Using fade.')),n},prepareTx:function(e,t){var i,n,s,o,c,r=this.opts();return 2>r.slideCount?(r.timeoutId=0,void 0):(!e||r.busy&&!r.manualTrump||(r.API.stopTransition(),r.busy=!1,clearTimeout(r.timeoutId),r.timeoutId=0),r.busy||(0!==r.timeoutId||e)&&(n=r.slides[r.currSlide],s=r.slides[r.nextSlide],o=r.API.getSlideOpts(r.nextSlide),c=r.API.calcTx(o,e),r._tx=c,e&&void 0!==o.manualSpeed&&(o.speed=o.manualSpeed),r.nextSlide!=r.currSlide&&(e||!r.paused&&!r.hoverPaused&&r.timeout)?(r.API.trigger("cycle-before",[o,n,s,t]),c.before&&c.before(o,n,s,t),i=function(){r.busy=!1,r.container.data("cycle.opts")&&(c.after&&c.after(o,n,s,t),r.API.trigger("cycle-after",[o,n,s,t]),r.API.queueTransition(o),r.API.updateView(!0))},r.busy=!0,c.transition?c.transition(o,n,s,t,i):r.API.doTransition(o,n,s,t,i),r.API.calcNextSlide(),r.API.updateView()):r.API.queueTransition(o)),void 0)},doTransition:function(t,i,n,s,o){var c=t,r=e(i),l=e(n),a=function(){l.animate(c.animIn||{opacity:1},c.speed,c.easeIn||c.easing,o)};l.css(c.cssBefore||{}),r.animate(c.animOut||{},c.speed,c.easeOut||c.easing,function(){r.css(c.cssAfter||{}),c.sync||a()}),c.sync&&a()},queueTransition:function(t,i){var n=this.opts(),s=void 0!==i?i:t.timeout;return 0===n.nextSlide&&0===--n.loop?(n.API.log("terminating; loop=0"),n.timeout=0,s?setTimeout(function(){n.API.trigger("cycle-finished",[n])},s):n.API.trigger("cycle-finished",[n]),n.nextSlide=n.currSlide,void 0):(s&&(n._lastQueue=e.now(),void 0===i&&(n._remainingTimeout=t.timeout),n.paused||n.hoverPaused||(n.timeoutId=setTimeout(function(){n.API.prepareTx(!1,!n.reverse)},s))),void 0)},stopTransition:function(){var e=this.opts();e.slides.filter(":animated").length&&(e.slides.stop(!1,!0),e.API.trigger("cycle-transition-stopped",[e])),e._tx&&e._tx.stopTransition&&e._tx.stopTransition(e)},advanceSlide:function(e){var t=this.opts();return clearTimeout(t.timeoutId),t.timeoutId=0,t.nextSlide=t.currSlide+e,0>t.nextSlide?t.nextSlide=t.slides.length-1:t.nextSlide>=t.slides.length&&(t.nextSlide=0),t.API.prepareTx(!0,e>=0),!1},buildSlideOpts:function(i){var n,s,o=this.opts(),c=i.data()||{};for(var r in c)c.hasOwnProperty(r)&&/^cycle[A-Z]+/.test(r)&&(n=c[r],s=r.match(/^cycle(.*)/)[1].replace(/^[A-Z]/,t),o.API.log("["+(o.slideCount-1)+"]",s+":",n,"("+typeof n+")"),c[s]=n);c=e.extend({},e.fn.cycle.defaults,o,c),c.slideNum=o.slideCount;try{delete c.API,delete c.slideCount,delete c.currSlide,delete c.nextSlide,delete c.slides}catch(l){}return c},getSlideOpts:function(t){var i=this.opts();void 0===t&&(t=i.currSlide);var n=i.slides[t],s=e(n).data("cycle.opts");return e.extend({},i,s)},initSlide:function(t,i,n){var s=this.opts();i.css(t.slideCss||{}),n>0&&i.css("zIndex",n),isNaN(t.speed)&&(t.speed=e.fx.speeds[t.speed]||e.fx.speeds._default),t.sync||(t.speed=t.speed/2),i.addClass(s.slideClass)},updateView:function(e,t){var i=this.opts();if(i._initialized){var n=i.API.getSlideOpts(),s=i.slides[i.currSlide];!e&&t!==!0&&(i.API.trigger("cycle-update-view-before",[i,n,s]),0>i.updateView)||(i.slideActiveClass&&i.slides.removeClass(i.slideActiveClass).eq(i.currSlide).addClass(i.slideActiveClass),e&&i.hideNonActive&&i.slides.filter(":not(."+i.slideActiveClass+")").hide(),i.API.trigger("cycle-update-view",[i,n,s,e]),e&&i.API.trigger("cycle-update-view-after",[i,n,s]))}},getComponent:function(t){var i=this.opts(),n=i[t];return"string"==typeof n?/^\s*[\>|\+|~]/.test(n)?i.container.find(n):e(n):n.jquery?n:e(n)},stackSlides:function(t,i,n){var s=this.opts();t||(t=s.slides[s.currSlide],i=s.slides[s.nextSlide],n=!s.reverse),e(t).css("zIndex",s.maxZ);var o,c=s.maxZ-2,r=s.slideCount;if(n){for(o=s.currSlide+1;r>o;o++)e(s.slides[o]).css("zIndex",c--);for(o=0;s.currSlide>o;o++)e(s.slides[o]).css("zIndex",c--)}else{for(o=s.currSlide-1;o>=0;o--)e(s.slides[o]).css("zIndex",c--);for(o=r-1;o>s.currSlide;o--)e(s.slides[o]).css("zIndex",c--)}e(i).css("zIndex",s.maxZ-1)},getSlideIndex:function(e){return this.opts().slides.index(e)}},e.fn.cycle.log=function(){window.console&&console.log&&console.log("[cycle2] "+Array.prototype.join.call(arguments," "))},e.fn.cycle.version=function(){return"Cycle2: "+i},e.fn.cycle.transitions={custom:{},none:{before:function(e,t,i,n){e.API.stackSlides(i,t,n),e.cssBefore={opacity:1,display:"block"}}},fade:{before:function(t,i,n,s){var o=t.API.getSlideOpts(t.nextSlide).slideCss||{};t.API.stackSlides(i,n,s),t.cssBefore=e.extend(o,{opacity:0,display:"block"}),t.animIn={opacity:1},t.animOut={opacity:0}}},fadeout:{before:function(t,i,n,s){var o=t.API.getSlideOpts(t.nextSlide).slideCss||{};t.API.stackSlides(i,n,s),t.cssBefore=e.extend(o,{opacity:1,display:"block"}),t.animOut={opacity:0}}},scrollHorz:{before:function(e,t,i,n){e.API.stackSlides(t,i,n);var s=e.container.css("overflow","hidden").width();e.cssBefore={left:n?s:-s,top:0,opacity:1,display:"block"},e.cssAfter={zIndex:e._maxZ-2,left:0},e.animIn={left:0},e.animOut={left:n?-s:s}}}},e.fn.cycle.defaults={allowWrap:!0,autoSelector:".cycle-slideshow[data-cycle-auto-init!=false]",delay:0,easing:null,fx:"fade",hideNonActive:!0,loop:0,manualFx:void 0,manualSpeed:void 0,manualTrump:!0,maxZ:100,pauseOnHover:!1,reverse:!1,slideActiveClass:"cycle-slide-active",slideClass:"cycle-slide",slideCss:{position:"absolute",top:0,left:0},slides:"> img",speed:500,startingSlide:0,sync:!0,timeout:4e3,updateView:-1},e(document).ready(function(){e(e.fn.cycle.defaults.autoSelector).cycle()})})(jQuery),function(e){"use strict";function t(t,n){var s,o,c,r=n.autoHeight;if("container"==r)o=e(n.slides[n.currSlide]).outerHeight(),n.container.height(o);else if(n._autoHeightRatio)n.container.height(n.container.width()/n._autoHeightRatio);else if("calc"===r||"number"==e.type(r)&&r>=0){if(c="calc"===r?i(t,n):r>=n.slides.length?0:r,c==n._sentinelIndex)return;n._sentinelIndex=c,n._sentinel&&n._sentinel.remove(),s=e(n.slides[c].cloneNode(!0)),s.removeAttr("id name rel").find("[id],[name],[rel]").removeAttr("id name rel"),s.css({position:"static",visibility:"hidden",display:"block"}).prependTo(n.container).addClass("cycle-sentinel cycle-slide").removeClass("cycle-slide-active"),s.find("*").css("visibility","hidden"),n._sentinel=s}}function i(t,i){var n=0,s=-1;return i.slides.each(function(t){var i=e(this).height();i>s&&(s=i,n=t)}),n}function n(t,i,n,s){var o=e(s).outerHeight(),c=i.sync?i.speed/2:i.speed;i.container.animate({height:o},c)}function s(i,o){o._autoHeightOnResize&&(e(window).off("resize orientationchange",o._autoHeightOnResize),o._autoHeightOnResize=null),o.container.off("cycle-slide-added cycle-slide-removed",t),o.container.off("cycle-destroyed",s),o.container.off("cycle-before",n),o._sentinel&&(o._sentinel.remove(),o._sentinel=null)}e.extend(e.fn.cycle.defaults,{autoHeight:0}),e(document).on("cycle-initialized",function(i,o){function c(){t(i,o)}var r,l=o.autoHeight,a=e.type(l),d=null;("string"===a||"number"===a)&&(o.container.on("cycle-slide-added cycle-slide-removed",t),o.container.on("cycle-destroyed",s),"container"==l?o.container.on("cycle-before",n):"string"===a&&/\d+\:\d+/.test(l)&&(r=l.match(/(\d+)\:(\d+)/),r=r[1]/r[2],o._autoHeightRatio=r),"number"!==a&&(o._autoHeightOnResize=function(){clearTimeout(d),d=setTimeout(c,50)},e(window).on("resize orientationchange",o._autoHeightOnResize)),setTimeout(c,30))})}(jQuery),function(e){"use strict";e.extend(e.fn.cycle.defaults,{caption:"> .cycle-caption",captionTemplate:"{{slideNum}} / {{slideCount}}",overlay:"> .cycle-overlay",overlayTemplate:"<div>{{title}}</div><div>{{desc}}</div>",captionModule:"caption"}),e(document).on("cycle-update-view",function(t,i,n,s){"caption"===i.captionModule&&e.each(["caption","overlay"],function(){var e=this,t=n[e+"Template"],o=i.API.getComponent(e);o.length&&t?(o.html(i.API.tmpl(t,n,i,s)),o.show()):o.hide()})}),e(document).on("cycle-destroyed",function(t,i){var n;e.each(["caption","overlay"],function(){var e=this,t=i[e+"Template"];i[e]&&t&&(n=i.API.getComponent("caption"),n.empty())})})}(jQuery),function(e){"use strict";var t=e.fn.cycle;e.fn.cycle=function(i){var n,s,o,c=e.makeArray(arguments);return"number"==e.type(i)?this.cycle("goto",i):"string"==e.type(i)?this.each(function(){var r;return n=i,o=e(this).data("cycle.opts"),void 0===o?(t.log('slideshow must be initialized before sending commands; "'+n+'" ignored'),void 0):(n="goto"==n?"jump":n,s=o.API[n],e.isFunction(s)?(r=e.makeArray(c),r.shift(),s.apply(o.API,r)):(t.log("unknown command: ",n),void 0))}):t.apply(this,arguments)},e.extend(e.fn.cycle,t),e.extend(t.API,{next:function(){var e=this.opts();if(!e.busy||e.manualTrump){var t=e.reverse?-1:1;e.allowWrap===!1&&e.currSlide+t>=e.slideCount||(e.API.advanceSlide(t),e.API.trigger("cycle-next",[e]).log("cycle-next"))}},prev:function(){var e=this.opts();if(!e.busy||e.manualTrump){var t=e.reverse?1:-1;e.allowWrap===!1&&0>e.currSlide+t||(e.API.advanceSlide(t),e.API.trigger("cycle-prev",[e]).log("cycle-prev"))}},destroy:function(){this.stop();var t=this.opts(),i=e.isFunction(e._data)?e._data:e.noop;clearTimeout(t.timeoutId),t.timeoutId=0,t.API.stop(),t.API.trigger("cycle-destroyed",[t]).log("cycle-destroyed"),t.container.removeData(),i(t.container[0],"parsedAttrs",!1),t.retainStylesOnDestroy||(t.container.removeAttr("style"),t.slides.removeAttr("style"),t.slides.removeClass(t.slideActiveClass)),t.slides.each(function(){e(this).removeData(),i(this,"parsedAttrs",!1)})},jump:function(e){var t,i=this.opts();if(!i.busy||i.manualTrump){var n=parseInt(e,10);if(isNaN(n)||0>n||n>=i.slides.length)return i.API.log("goto: invalid slide index: "+n),void 0;if(n==i.currSlide)return i.API.log("goto: skipping, already on slide",n),void 0;i.nextSlide=n,clearTimeout(i.timeoutId),i.timeoutId=0,i.API.log("goto: ",n," (zero-index)"),t=i.currSlide<i.nextSlide,i.API.prepareTx(!0,t)}},stop:function(){var t=this.opts(),i=t.container;clearTimeout(t.timeoutId),t.timeoutId=0,t.API.stopTransition(),t.pauseOnHover&&(t.pauseOnHover!==!0&&(i=e(t.pauseOnHover)),i.off("mouseenter mouseleave")),t.API.trigger("cycle-stopped",[t]).log("cycle-stopped")},reinit:function(){var e=this.opts();e.API.destroy(),e.container.cycle()},remove:function(t){for(var i,n,s=this.opts(),o=[],c=1,r=0;s.slides.length>r;r++)i=s.slides[r],r==t?n=i:(o.push(i),e(i).data("cycle.opts").slideNum=c,c++);n&&(s.slides=e(o),s.slideCount--,e(n).remove(),t==s.currSlide?s.API.advanceSlide(1):s.currSlide>t?s.currSlide--:s.currSlide++,s.API.trigger("cycle-slide-removed",[s,t,n]).log("cycle-slide-removed"),s.API.updateView())}}),e(document).on("click.cycle","[data-cycle-cmd]",function(t){t.preventDefault();var i=e(this),n=i.data("cycle-cmd"),s=i.data("cycle-context")||".cycle-slideshow";e(s).cycle(n,i.data("cycle-arg"))})}(jQuery),function(e){"use strict";function t(t,i){var n;return t._hashFence?(t._hashFence=!1,void 0):(n=window.location.hash.substring(1),t.slides.each(function(s){if(e(this).data("cycle-hash")==n){if(i===!0)t.startingSlide=s;else{var o=s>t.currSlide;t.nextSlide=s,t.API.prepareTx(!0,o)}return!1}}),void 0)}e(document).on("cycle-pre-initialize",function(i,n){t(n,!0),n._onHashChange=function(){t(n,!1)},e(window).on("hashchange",n._onHashChange)}),e(document).on("cycle-update-view",function(e,t,i){i.hash&&"#"+i.hash!=window.location.hash&&(t._hashFence=!0,window.location.hash=i.hash)}),e(document).on("cycle-destroyed",function(t,i){i._onHashChange&&e(window).off("hashchange",i._onHashChange)})}(jQuery),function(e){"use strict";e.extend(e.fn.cycle.defaults,{loader:!1}),e(document).on("cycle-bootstrap",function(t,i){function n(t,n){function o(t){var o;"wait"==i.loader?(r.push(t),0===a&&(r.sort(c),s.apply(i.API,[r,n]),i.container.removeClass("cycle-loading"))):(o=e(i.slides[i.currSlide]),s.apply(i.API,[t,n]),o.show(),i.container.removeClass("cycle-loading"))}function c(e,t){return e.data("index")-t.data("index")}var r=[];if("string"==e.type(t))t=e.trim(t);else if("array"===e.type(t))for(var l=0;t.length>l;l++)t[l]=e(t[l])[0];t=e(t);var a=t.length;a&&(t.hide().appendTo("body").each(function(t){function c(){0===--l&&(--a,o(d))}var l=0,d=e(this),u=d.is("img")?d:d.find("img");return d.data("index",t),u=u.filter(":not(.cycle-loader-ignore)").filter(':not([src=""])'),u.length?(l=u.length,u.each(function(){this.complete?c():e(this).load(function(){c()}).error(function(){0===--l&&(i.API.log("slide skipped; img not loaded:",this.src),0===--a&&"wait"==i.loader&&s.apply(i.API,[r,n]))})}),void 0):(--a,r.push(d),void 0)}),a&&i.container.addClass("cycle-loading"))}var s;i.loader&&(s=i.API.add,i.API.add=n)})}(jQuery),function(e){"use strict";function t(t,i,n){var s,o=t.API.getComponent("pager");o.each(function(){var o=e(this);if(i.pagerTemplate){var c=t.API.tmpl(i.pagerTemplate,i,t,n[0]);s=e(c).appendTo(o)}else s=o.children().eq(t.slideCount-1);s.on(t.pagerEvent,function(e){e.preventDefault(),t.API.page(o,e.currentTarget)})})}function i(e,t){var i=this.opts();if(!i.busy||i.manualTrump){var n=e.children().index(t),s=n,o=s>i.currSlide;i.currSlide!=s&&(i.nextSlide=s,i.API.prepareTx(!0,o),i.API.trigger("cycle-pager-activated",[i,e,t]))}}e.extend(e.fn.cycle.defaults,{pager:"> .cycle-pager",pagerActiveClass:"cycle-pager-active",pagerEvent:"click.cycle",pagerTemplate:"<span>&bull;</span>"}),e(document).on("cycle-bootstrap",function(e,i,n){n.buildPagerLink=t}),e(document).on("cycle-slide-added",function(e,t,n,s){t.pager&&(t.API.buildPagerLink(t,n,s),t.API.page=i)}),e(document).on("cycle-slide-removed",function(t,i,n){if(i.pager){var s=i.API.getComponent("pager");s.each(function(){var t=e(this);e(t.children()[n]).remove()})}}),e(document).on("cycle-update-view",function(t,i){var n;i.pager&&(n=i.API.getComponent("pager"),n.each(function(){e(this).children().removeClass(i.pagerActiveClass).eq(i.currSlide).addClass(i.pagerActiveClass)}))}),e(document).on("cycle-destroyed",function(e,t){var i=t.API.getComponent("pager");i&&(i.children().off(t.pagerEvent),t.pagerTemplate&&i.empty())})}(jQuery),function(e){"use strict";e.extend(e.fn.cycle.defaults,{next:"> .cycle-next",nextEvent:"click.cycle",disabledClass:"disabled",prev:"> .cycle-prev",prevEvent:"click.cycle",swipe:!1}),e(document).on("cycle-initialized",function(e,t){if(t.API.getComponent("next").on(t.nextEvent,function(e){e.preventDefault(),t.API.next()}),t.API.getComponent("prev").on(t.prevEvent,function(e){e.preventDefault(),t.API.prev()}),t.swipe){var i=t.swipeVert?"swipeUp.cycle":"swipeLeft.cycle swipeleft.cycle",n=t.swipeVert?"swipeDown.cycle":"swipeRight.cycle swiperight.cycle";t.container.on(i,function(){t.API.next()}),t.container.on(n,function(){t.API.prev()})}}),e(document).on("cycle-update-view",function(e,t){if(!t.allowWrap){var i=t.disabledClass,n=t.API.getComponent("next"),s=t.API.getComponent("prev"),o=t._prevBoundry||0,c=void 0!==t._nextBoundry?t._nextBoundry:t.slideCount-1;t.currSlide==c?n.addClass(i).prop("disabled",!0):n.removeClass(i).prop("disabled",!1),t.currSlide===o?s.addClass(i).prop("disabled",!0):s.removeClass(i).prop("disabled",!1)}}),e(document).on("cycle-destroyed",function(e,t){t.API.getComponent("prev").off(t.nextEvent),t.API.getComponent("next").off(t.prevEvent),t.container.off("swipeleft.cycle swiperight.cycle swipeLeft.cycle swipeRight.cycle swipeUp.cycle swipeDown.cycle")})}(jQuery),function(e){"use strict";e.extend(e.fn.cycle.defaults,{progressive:!1}),e(document).on("cycle-pre-initialize",function(t,i){if(i.progressive){var n,s,o=i.API,c=o.next,r=o.prev,l=o.prepareTx,a=e.type(i.progressive);if("array"==a)n=i.progressive;else if(e.isFunction(i.progressive))n=i.progressive(i);else if("string"==a){if(s=e(i.progressive),n=e.trim(s.html()),!n)return;if(/^(\[)/.test(n))try{n=e.parseJSON(n)}catch(d){return o.log("error parsing progressive slides",d),void 0}else n=n.split(RegExp(s.data("cycle-split")||"\n")),n[n.length-1]||n.pop()}l&&(o.prepareTx=function(e,t){var s,o;return e||0===n.length?(l.apply(i.API,[e,t]),void 0):(t&&i.currSlide==i.slideCount-1?(o=n[0],n=n.slice(1),i.container.one("cycle-slide-added",function(e,t){setTimeout(function(){t.API.advanceSlide(1)},50)}),i.API.add(o)):t||0!==i.currSlide?l.apply(i.API,[e,t]):(s=n.length-1,o=n[s],n=n.slice(0,s),i.container.one("cycle-slide-added",function(e,t){setTimeout(function(){t.currSlide=1,t.API.advanceSlide(-1)},50)}),i.API.add(o,!0)),void 0)}),c&&(o.next=function(){var e=this.opts();if(n.length&&e.currSlide==e.slideCount-1){var t=n[0];n=n.slice(1),e.container.one("cycle-slide-added",function(e,t){c.apply(t.API),t.container.removeClass("cycle-loading")}),e.container.addClass("cycle-loading"),e.API.add(t)}else c.apply(e.API)}),r&&(o.prev=function(){var e=this.opts();if(n.length&&0===e.currSlide){var t=n.length-1,i=n[t];n=n.slice(0,t),e.container.one("cycle-slide-added",function(e,t){t.currSlide=1,t.API.advanceSlide(-1),t.container.removeClass("cycle-loading")}),e.container.addClass("cycle-loading"),e.API.add(i,!0)}else r.apply(e.API)})}})}(jQuery),function(e){"use strict";e.extend(e.fn.cycle.defaults,{tmplRegex:"{{((.)?.*?)}}"}),e.extend(e.fn.cycle.API,{tmpl:function(t,i){var n=RegExp(i.tmplRegex||e.fn.cycle.defaults.tmplRegex,"g"),s=e.makeArray(arguments);return s.shift(),t.replace(n,function(t,i){var n,o,c,r,l=i.split(".");for(n=0;s.length>n;n++)if(c=s[n]){if(l.length>1)for(r=c,o=0;l.length>o;o++)c=r,r=r[l[o]]||i;else r=c[i];if(e.isFunction(r))return r.apply(c,s);if(void 0!==r&&null!==r&&r!=i)return r}return i})}})}(jQuery);
     6!function(a){"use strict";function b(a){return(a||"").toLowerCase()}var c="2.1.6";a.fn.cycle=function(c){var d;return 0!==this.length||a.isReady?this.each(function(){var d,e,f,g,h=a(this),i=a.fn.cycle.log;if(!h.data("cycle.opts")){(h.data("cycle-log")===!1||c&&c.log===!1||e&&e.log===!1)&&(i=a.noop),i("--c2 init--"),d=h.data();for(var j in d)d.hasOwnProperty(j)&&/^cycle[A-Z]+/.test(j)&&(g=d[j],f=j.match(/^cycle(.*)/)[1].replace(/^[A-Z]/,b),i(f+":",g,"("+typeof g+")"),d[f]=g);e=a.extend({},a.fn.cycle.defaults,d,c||{}),e.timeoutId=0,e.paused=e.paused||!1,e.container=h,e._maxZ=e.maxZ,e.API=a.extend({_container:h},a.fn.cycle.API),e.API.log=i,e.API.trigger=function(a,b){return e.container.trigger(a,b),e.API},h.data("cycle.opts",e),h.data("cycle.API",e.API),e.API.trigger("cycle-bootstrap",[e,e.API]),e.API.addInitialSlides(),e.API.preInitSlideshow(),e.slides.length&&e.API.initSlideshow()}}):(d={s:this.selector,c:this.context},a.fn.cycle.log("requeuing slideshow (dom not ready)"),a(function(){a(d.s,d.c).cycle(c)}),this)},a.fn.cycle.API={opts:function(){return this._container.data("cycle.opts")},addInitialSlides:function(){var b=this.opts(),c=b.slides;b.slideCount=0,b.slides=a(),c=c.jquery?c:b.container.find(c),b.random&&c.sort(function(){return Math.random()-.5}),b.API.add(c)},preInitSlideshow:function(){var b=this.opts();b.API.trigger("cycle-pre-initialize",[b]);var c=a.fn.cycle.transitions[b.fx];c&&a.isFunction(c.preInit)&&c.preInit(b),b._preInitialized=!0},postInitSlideshow:function(){var b=this.opts();b.API.trigger("cycle-post-initialize",[b]);var c=a.fn.cycle.transitions[b.fx];c&&a.isFunction(c.postInit)&&c.postInit(b)},initSlideshow:function(){var b,c=this.opts(),d=c.container;c.API.calcFirstSlide(),"static"==c.container.css("position")&&c.container.css("position","relative"),a(c.slides[c.currSlide]).css({opacity:1,display:"block",visibility:"visible"}),c.API.stackSlides(c.slides[c.currSlide],c.slides[c.nextSlide],!c.reverse),c.pauseOnHover&&(c.pauseOnHover!==!0&&(d=a(c.pauseOnHover)),d.hover(function(){c.API.pause(!0)},function(){c.API.resume(!0)})),c.timeout&&(b=c.API.getSlideOpts(c.currSlide),c.API.queueTransition(b,b.timeout+c.delay)),c._initialized=!0,c.API.updateView(!0),c.API.trigger("cycle-initialized",[c]),c.API.postInitSlideshow()},pause:function(b){var c=this.opts(),d=c.API.getSlideOpts(),e=c.hoverPaused||c.paused;b?c.hoverPaused=!0:c.paused=!0,e||(c.container.addClass("cycle-paused"),c.API.trigger("cycle-paused",[c]).log("cycle-paused"),d.timeout&&(clearTimeout(c.timeoutId),c.timeoutId=0,c._remainingTimeout-=a.now()-c._lastQueue,(c._remainingTimeout<0||isNaN(c._remainingTimeout))&&(c._remainingTimeout=void 0)))},resume:function(a){var b=this.opts(),c=!b.hoverPaused&&!b.paused;a?b.hoverPaused=!1:b.paused=!1,c||(b.container.removeClass("cycle-paused"),0===b.slides.filter(":animated").length&&b.API.queueTransition(b.API.getSlideOpts(),b._remainingTimeout),b.API.trigger("cycle-resumed",[b,b._remainingTimeout]).log("cycle-resumed"))},add:function(b,c){var d,e=this.opts(),f=e.slideCount,g=!1;"string"==a.type(b)&&(b=a.trim(b)),a(b).each(function(){var b,d=a(this);c?e.container.prepend(d):e.container.append(d),e.slideCount++,b=e.API.buildSlideOpts(d),e.slides=c?a(d).add(e.slides):e.slides.add(d),e.API.initSlide(b,d,--e._maxZ),d.data("cycle.opts",b),e.API.trigger("cycle-slide-added",[e,b,d])}),e.API.updateView(!0),g=e._preInitialized&&2>f&&e.slideCount>=1,g&&(e._initialized?e.timeout&&(d=e.slides.length,e.nextSlide=e.reverse?d-1:1,e.timeoutId||e.API.queueTransition(e)):e.API.initSlideshow())},calcFirstSlide:function(){var a,b=this.opts();a=parseInt(b.startingSlide||0,10),(a>=b.slides.length||0>a)&&(a=0),b.currSlide=a,b.reverse?(b.nextSlide=a-1,b.nextSlide<0&&(b.nextSlide=b.slides.length-1)):(b.nextSlide=a+1,b.nextSlide==b.slides.length&&(b.nextSlide=0))},calcNextSlide:function(){var a,b=this.opts();b.reverse?(a=b.nextSlide-1<0,b.nextSlide=a?b.slideCount-1:b.nextSlide-1,b.currSlide=a?0:b.nextSlide+1):(a=b.nextSlide+1==b.slides.length,b.nextSlide=a?0:b.nextSlide+1,b.currSlide=a?b.slides.length-1:b.nextSlide-1)},calcTx:function(b,c){var d,e=b;return e._tempFx?d=a.fn.cycle.transitions[e._tempFx]:c&&e.manualFx&&(d=a.fn.cycle.transitions[e.manualFx]),d||(d=a.fn.cycle.transitions[e.fx]),e._tempFx=null,this.opts()._tempFx=null,d||(d=a.fn.cycle.transitions.fade,e.API.log('Transition "'+e.fx+'" not found.  Using fade.')),d},prepareTx:function(a,b){var c,d,e,f,g,h=this.opts();return h.slideCount<2?void(h.timeoutId=0):(!a||h.busy&&!h.manualTrump||(h.API.stopTransition(),h.busy=!1,clearTimeout(h.timeoutId),h.timeoutId=0),void(h.busy||(0!==h.timeoutId||a)&&(d=h.slides[h.currSlide],e=h.slides[h.nextSlide],f=h.API.getSlideOpts(h.nextSlide),g=h.API.calcTx(f,a),h._tx=g,a&&void 0!==f.manualSpeed&&(f.speed=f.manualSpeed),h.nextSlide!=h.currSlide&&(a||!h.paused&&!h.hoverPaused&&h.timeout)?(h.API.trigger("cycle-before",[f,d,e,b]),g.before&&g.before(f,d,e,b),c=function(){h.busy=!1,h.container.data("cycle.opts")&&(g.after&&g.after(f,d,e,b),h.API.trigger("cycle-after",[f,d,e,b]),h.API.queueTransition(f),h.API.updateView(!0))},h.busy=!0,g.transition?g.transition(f,d,e,b,c):h.API.doTransition(f,d,e,b,c),h.API.calcNextSlide(),h.API.updateView()):h.API.queueTransition(f))))},doTransition:function(b,c,d,e,f){var g=b,h=a(c),i=a(d),j=function(){i.animate(g.animIn||{opacity:1},g.speed,g.easeIn||g.easing,f)};i.css(g.cssBefore||{}),h.animate(g.animOut||{},g.speed,g.easeOut||g.easing,function(){h.css(g.cssAfter||{}),g.sync||j()}),g.sync&&j()},queueTransition:function(b,c){var d=this.opts(),e=void 0!==c?c:b.timeout;return 0===d.nextSlide&&0===--d.loop?(d.API.log("terminating; loop=0"),d.timeout=0,e?setTimeout(function(){d.API.trigger("cycle-finished",[d])},e):d.API.trigger("cycle-finished",[d]),void(d.nextSlide=d.currSlide)):void 0!==d.continueAuto&&(d.continueAuto===!1||a.isFunction(d.continueAuto)&&d.continueAuto()===!1)?(d.API.log("terminating automatic transitions"),d.timeout=0,void(d.timeoutId&&clearTimeout(d.timeoutId))):void(e&&(d._lastQueue=a.now(),void 0===c&&(d._remainingTimeout=b.timeout),d.paused||d.hoverPaused||(d.timeoutId=setTimeout(function(){d.API.prepareTx(!1,!d.reverse)},e))))},stopTransition:function(){var a=this.opts();a.slides.filter(":animated").length&&(a.slides.stop(!1,!0),a.API.trigger("cycle-transition-stopped",[a])),a._tx&&a._tx.stopTransition&&a._tx.stopTransition(a)},advanceSlide:function(a){var b=this.opts();return clearTimeout(b.timeoutId),b.timeoutId=0,b.nextSlide=b.currSlide+a,b.nextSlide<0?b.nextSlide=b.slides.length-1:b.nextSlide>=b.slides.length&&(b.nextSlide=0),b.API.prepareTx(!0,a>=0),!1},buildSlideOpts:function(c){var d,e,f=this.opts(),g=c.data()||{};for(var h in g)g.hasOwnProperty(h)&&/^cycle[A-Z]+/.test(h)&&(d=g[h],e=h.match(/^cycle(.*)/)[1].replace(/^[A-Z]/,b),f.API.log("["+(f.slideCount-1)+"]",e+":",d,"("+typeof d+")"),g[e]=d);g=a.extend({},a.fn.cycle.defaults,f,g),g.slideNum=f.slideCount;try{delete g.API,delete g.slideCount,delete g.currSlide,delete g.nextSlide,delete g.slides}catch(i){}return g},getSlideOpts:function(b){var c=this.opts();void 0===b&&(b=c.currSlide);var d=c.slides[b],e=a(d).data("cycle.opts");return a.extend({},c,e)},initSlide:function(b,c,d){var e=this.opts();c.css(b.slideCss||{}),d>0&&c.css("zIndex",d),isNaN(b.speed)&&(b.speed=a.fx.speeds[b.speed]||a.fx.speeds._default),b.sync||(b.speed=b.speed/2),c.addClass(e.slideClass)},updateView:function(a,b){var c=this.opts();if(c._initialized){var d=c.API.getSlideOpts(),e=c.slides[c.currSlide];!a&&b!==!0&&(c.API.trigger("cycle-update-view-before",[c,d,e]),c.updateView<0)||(c.slideActiveClass&&c.slides.removeClass(c.slideActiveClass).eq(c.currSlide).addClass(c.slideActiveClass),a&&c.hideNonActive&&c.slides.filter(":not(."+c.slideActiveClass+")").css("visibility","hidden"),0===c.updateView&&setTimeout(function(){c.API.trigger("cycle-update-view",[c,d,e,a])},d.speed/(c.sync?2:1)),0!==c.updateView&&c.API.trigger("cycle-update-view",[c,d,e,a]),a&&c.API.trigger("cycle-update-view-after",[c,d,e]))}},getComponent:function(b){var c=this.opts(),d=c[b];return"string"==typeof d?/^\s*[\>|\+|~]/.test(d)?c.container.find(d):a(d):d.jquery?d:a(d)},stackSlides:function(b,c,d){var e=this.opts();b||(b=e.slides[e.currSlide],c=e.slides[e.nextSlide],d=!e.reverse),a(b).css("zIndex",e.maxZ);var f,g=e.maxZ-2,h=e.slideCount;if(d){for(f=e.currSlide+1;h>f;f++)a(e.slides[f]).css("zIndex",g--);for(f=0;f<e.currSlide;f++)a(e.slides[f]).css("zIndex",g--)}else{for(f=e.currSlide-1;f>=0;f--)a(e.slides[f]).css("zIndex",g--);for(f=h-1;f>e.currSlide;f--)a(e.slides[f]).css("zIndex",g--)}a(c).css("zIndex",e.maxZ-1)},getSlideIndex:function(a){return this.opts().slides.index(a)}},a.fn.cycle.log=function(){window.console&&console.log&&console.log("[cycle2] "+Array.prototype.join.call(arguments," "))},a.fn.cycle.version=function(){return"Cycle2: "+c},a.fn.cycle.transitions={custom:{},none:{before:function(a,b,c,d){a.API.stackSlides(c,b,d),a.cssBefore={opacity:1,visibility:"visible",display:"block"}}},fade:{before:function(b,c,d,e){var f=b.API.getSlideOpts(b.nextSlide).slideCss||{};b.API.stackSlides(c,d,e),b.cssBefore=a.extend(f,{opacity:0,visibility:"visible",display:"block"}),b.animIn={opacity:1},b.animOut={opacity:0}}},fadeout:{before:function(b,c,d,e){var f=b.API.getSlideOpts(b.nextSlide).slideCss||{};b.API.stackSlides(c,d,e),b.cssBefore=a.extend(f,{opacity:1,visibility:"visible",display:"block"}),b.animOut={opacity:0}}},scrollHorz:{before:function(a,b,c,d){a.API.stackSlides(b,c,d);var e=a.container.css("overflow","hidden").width();a.cssBefore={left:d?e:-e,top:0,opacity:1,visibility:"visible",display:"block"},a.cssAfter={zIndex:a._maxZ-2,left:0},a.animIn={left:0},a.animOut={left:d?-e:e}}}},a.fn.cycle.defaults={allowWrap:!0,autoSelector:".cycle-slideshow[data-cycle-auto-init!=false]",delay:0,easing:null,fx:"fade",hideNonActive:!0,loop:0,manualFx:void 0,manualSpeed:void 0,manualTrump:!0,maxZ:100,pauseOnHover:!1,reverse:!1,slideActiveClass:"cycle-slide-active",slideClass:"cycle-slide",slideCss:{position:"absolute",top:0,left:0},slides:"> img",speed:500,startingSlide:0,sync:!0,timeout:4e3,updateView:0},a(document).ready(function(){a(a.fn.cycle.defaults.autoSelector).cycle()})}(jQuery),/*! Cycle2 autoheight plugin; Copyright (c) M.Alsup, 2012; version: 20130913 */
     7function(a){"use strict";function b(b,d){var e,f,g,h=d.autoHeight;if("container"==h)f=a(d.slides[d.currSlide]).outerHeight(),d.container.height(f);else if(d._autoHeightRatio)d.container.height(d.container.width()/d._autoHeightRatio);else if("calc"===h||"number"==a.type(h)&&h>=0){if(g="calc"===h?c(b,d):h>=d.slides.length?0:h,g==d._sentinelIndex)return;d._sentinelIndex=g,d._sentinel&&d._sentinel.remove(),e=a(d.slides[g].cloneNode(!0)),e.removeAttr("id name rel").find("[id],[name],[rel]").removeAttr("id name rel"),e.css({position:"static",visibility:"hidden",display:"block"}).prependTo(d.container).addClass("cycle-sentinel cycle-slide").removeClass("cycle-slide-active"),e.find("*").css("visibility","hidden"),d._sentinel=e}}function c(b,c){var d=0,e=-1;return c.slides.each(function(b){var c=a(this).height();c>e&&(e=c,d=b)}),d}function d(b,c,d,e){var f=a(e).outerHeight();c.container.animate({height:f},c.autoHeightSpeed,c.autoHeightEasing)}function e(c,f){f._autoHeightOnResize&&(a(window).off("resize orientationchange",f._autoHeightOnResize),f._autoHeightOnResize=null),f.container.off("cycle-slide-added cycle-slide-removed",b),f.container.off("cycle-destroyed",e),f.container.off("cycle-before",d),f._sentinel&&(f._sentinel.remove(),f._sentinel=null)}a.extend(a.fn.cycle.defaults,{autoHeight:0,autoHeightSpeed:250,autoHeightEasing:null}),a(document).on("cycle-initialized",function(c,f){function g(){b(c,f)}var h,i=f.autoHeight,j=a.type(i),k=null;("string"===j||"number"===j)&&(f.container.on("cycle-slide-added cycle-slide-removed",b),f.container.on("cycle-destroyed",e),"container"==i?f.container.on("cycle-before",d):"string"===j&&/\d+\:\d+/.test(i)&&(h=i.match(/(\d+)\:(\d+)/),h=h[1]/h[2],f._autoHeightRatio=h),"number"!==j&&(f._autoHeightOnResize=function(){clearTimeout(k),k=setTimeout(g,50)},a(window).on("resize orientationchange",f._autoHeightOnResize)),setTimeout(g,30))})}(jQuery),/*! caption plugin for Cycle2;  version: 20130306 */
     8function(a){"use strict";a.extend(a.fn.cycle.defaults,{caption:"> .cycle-caption",captionTemplate:"{{slideNum}} / {{slideCount}}",overlay:"> .cycle-overlay",overlayTemplate:"<div>{{title}}</div><div>{{desc}}</div>",captionModule:"caption"}),a(document).on("cycle-update-view",function(b,c,d,e){if("caption"===c.captionModule){a.each(["caption","overlay"],function(){var a=this,b=d[a+"Template"],f=c.API.getComponent(a);f.length&&b?(f.html(c.API.tmpl(b,d,c,e)),f.show()):f.hide()})}}),a(document).on("cycle-destroyed",function(b,c){var d;a.each(["caption","overlay"],function(){var a=this,b=c[a+"Template"];c[a]&&b&&(d=c.API.getComponent("caption"),d.empty())})})}(jQuery),/*! command plugin for Cycle2;  version: 20140415 */
     9function(a){"use strict";var b=a.fn.cycle;a.fn.cycle=function(c){var d,e,f,g=a.makeArray(arguments);return"number"==a.type(c)?this.cycle("goto",c):"string"==a.type(c)?this.each(function(){var h;return d=c,f=a(this).data("cycle.opts"),void 0===f?void b.log('slideshow must be initialized before sending commands; "'+d+'" ignored'):(d="goto"==d?"jump":d,e=f.API[d],a.isFunction(e)?(h=a.makeArray(g),h.shift(),e.apply(f.API,h)):void b.log("unknown command: ",d))}):b.apply(this,arguments)},a.extend(a.fn.cycle,b),a.extend(b.API,{next:function(){var a=this.opts();if(!a.busy||a.manualTrump){var b=a.reverse?-1:1;a.allowWrap===!1&&a.currSlide+b>=a.slideCount||(a.API.advanceSlide(b),a.API.trigger("cycle-next",[a]).log("cycle-next"))}},prev:function(){var a=this.opts();if(!a.busy||a.manualTrump){var b=a.reverse?1:-1;a.allowWrap===!1&&a.currSlide+b<0||(a.API.advanceSlide(b),a.API.trigger("cycle-prev",[a]).log("cycle-prev"))}},destroy:function(){this.stop();var b=this.opts(),c=a.isFunction(a._data)?a._data:a.noop;clearTimeout(b.timeoutId),b.timeoutId=0,b.API.stop(),b.API.trigger("cycle-destroyed",[b]).log("cycle-destroyed"),b.container.removeData(),c(b.container[0],"parsedAttrs",!1),b.retainStylesOnDestroy||(b.container.removeAttr("style"),b.slides.removeAttr("style"),b.slides.removeClass(b.slideActiveClass)),b.slides.each(function(){var d=a(this);d.removeData(),d.removeClass(b.slideClass),c(this,"parsedAttrs",!1)})},jump:function(a,b){var c,d=this.opts();if(!d.busy||d.manualTrump){var e=parseInt(a,10);if(isNaN(e)||0>e||e>=d.slides.length)return void d.API.log("goto: invalid slide index: "+e);if(e==d.currSlide)return void d.API.log("goto: skipping, already on slide",e);d.nextSlide=e,clearTimeout(d.timeoutId),d.timeoutId=0,d.API.log("goto: ",e," (zero-index)"),c=d.currSlide<d.nextSlide,d._tempFx=b,d.API.prepareTx(!0,c)}},stop:function(){var b=this.opts(),c=b.container;clearTimeout(b.timeoutId),b.timeoutId=0,b.API.stopTransition(),b.pauseOnHover&&(b.pauseOnHover!==!0&&(c=a(b.pauseOnHover)),c.off("mouseenter mouseleave")),b.API.trigger("cycle-stopped",[b]).log("cycle-stopped")},reinit:function(){var a=this.opts();a.API.destroy(),a.container.cycle()},remove:function(b){for(var c,d,e=this.opts(),f=[],g=1,h=0;h<e.slides.length;h++)c=e.slides[h],h==b?d=c:(f.push(c),a(c).data("cycle.opts").slideNum=g,g++);d&&(e.slides=a(f),e.slideCount--,a(d).remove(),b==e.currSlide?e.API.advanceSlide(1):b<e.currSlide?e.currSlide--:e.currSlide++,e.API.trigger("cycle-slide-removed",[e,b,d]).log("cycle-slide-removed"),e.API.updateView())}}),a(document).on("click.cycle","[data-cycle-cmd]",function(b){b.preventDefault();var c=a(this),d=c.data("cycle-cmd"),e=c.data("cycle-context")||".cycle-slideshow";a(e).cycle(d,c.data("cycle-arg"))})}(jQuery),/*! hash plugin for Cycle2;  version: 20130905 */
     10function(a){"use strict";function b(b,c){var d;return b._hashFence?void(b._hashFence=!1):(d=window.location.hash.substring(1),void b.slides.each(function(e){if(a(this).data("cycle-hash")==d){if(c===!0)b.startingSlide=e;else{var f=b.currSlide<e;b.nextSlide=e,b.API.prepareTx(!0,f)}return!1}}))}a(document).on("cycle-pre-initialize",function(c,d){b(d,!0),d._onHashChange=function(){b(d,!1)},a(window).on("hashchange",d._onHashChange)}),a(document).on("cycle-update-view",function(a,b,c){c.hash&&"#"+c.hash!=window.location.hash&&(b._hashFence=!0,window.location.hash=c.hash)}),a(document).on("cycle-destroyed",function(b,c){c._onHashChange&&a(window).off("hashchange",c._onHashChange)})}(jQuery),/*! loader plugin for Cycle2;  version: 20131121 */
     11function(a){"use strict";a.extend(a.fn.cycle.defaults,{loader:!1}),a(document).on("cycle-bootstrap",function(b,c){function d(b,d){function f(b){var f;"wait"==c.loader?(h.push(b),0===j&&(h.sort(g),e.apply(c.API,[h,d]),c.container.removeClass("cycle-loading"))):(f=a(c.slides[c.currSlide]),e.apply(c.API,[b,d]),f.show(),c.container.removeClass("cycle-loading"))}function g(a,b){return a.data("index")-b.data("index")}var h=[];if("string"==a.type(b))b=a.trim(b);else if("array"===a.type(b))for(var i=0;i<b.length;i++)b[i]=a(b[i])[0];b=a(b);var j=b.length;j&&(b.css("visibility","hidden").appendTo("body").each(function(b){function g(){0===--i&&(--j,f(k))}var i=0,k=a(this),l=k.is("img")?k:k.find("img");return k.data("index",b),l=l.filter(":not(.cycle-loader-ignore)").filter(':not([src=""])'),l.length?(i=l.length,void l.each(function(){this.complete?g():a(this).load(function(){g()}).on("error",function(){0===--i&&(c.API.log("slide skipped; img not loaded:",this.src),0===--j&&"wait"==c.loader&&e.apply(c.API,[h,d]))})})):(--j,void h.push(k))}),j&&c.container.addClass("cycle-loading"))}var e;c.loader&&(e=c.API.add,c.API.add=d)})}(jQuery),/*! pager plugin for Cycle2;  version: 20140415 */
     12function(a){"use strict";function b(b,c,d){var e,f=b.API.getComponent("pager");f.each(function(){var f=a(this);if(c.pagerTemplate){var g=b.API.tmpl(c.pagerTemplate,c,b,d[0]);e=a(g).appendTo(f)}else e=f.children().eq(b.slideCount-1);e.on(b.pagerEvent,function(a){b.pagerEventBubble||a.preventDefault(),b.API.page(f,a.currentTarget)})})}function c(a,b){var c=this.opts();if(!c.busy||c.manualTrump){var d=a.children().index(b),e=d,f=c.currSlide<e;c.currSlide!=e&&(c.nextSlide=e,c._tempFx=c.pagerFx,c.API.prepareTx(!0,f),c.API.trigger("cycle-pager-activated",[c,a,b]))}}a.extend(a.fn.cycle.defaults,{pager:"> .cycle-pager",pagerActiveClass:"cycle-pager-active",pagerEvent:"click.cycle",pagerEventBubble:void 0,pagerTemplate:"<span>&bull;</span>"}),a(document).on("cycle-bootstrap",function(a,c,d){d.buildPagerLink=b}),a(document).on("cycle-slide-added",function(a,b,d,e){b.pager&&(b.API.buildPagerLink(b,d,e),b.API.page=c)}),a(document).on("cycle-slide-removed",function(b,c,d){if(c.pager){var e=c.API.getComponent("pager");e.each(function(){var b=a(this);a(b.children()[d]).remove()})}}),a(document).on("cycle-update-view",function(b,c){var d;c.pager&&(d=c.API.getComponent("pager"),d.each(function(){a(this).children().removeClass(c.pagerActiveClass).eq(c.currSlide).addClass(c.pagerActiveClass)}))}),a(document).on("cycle-destroyed",function(a,b){var c=b.API.getComponent("pager");c&&(c.children().off(b.pagerEvent),b.pagerTemplate&&c.empty())})}(jQuery),/*! prevnext plugin for Cycle2;  version: 20140408 */
     13function(a){"use strict";a.extend(a.fn.cycle.defaults,{next:"> .cycle-next",nextEvent:"click.cycle",disabledClass:"disabled",prev:"> .cycle-prev",prevEvent:"click.cycle",swipe:!1}),a(document).on("cycle-initialized",function(a,b){if(b.API.getComponent("next").on(b.nextEvent,function(a){a.preventDefault(),b.API.next()}),b.API.getComponent("prev").on(b.prevEvent,function(a){a.preventDefault(),b.API.prev()}),b.swipe){var c=b.swipeVert?"swipeUp.cycle":"swipeLeft.cycle swipeleft.cycle",d=b.swipeVert?"swipeDown.cycle":"swipeRight.cycle swiperight.cycle";b.container.on(c,function(){b._tempFx=b.swipeFx,b.API.next()}),b.container.on(d,function(){b._tempFx=b.swipeFx,b.API.prev()})}}),a(document).on("cycle-update-view",function(a,b){if(!b.allowWrap){var c=b.disabledClass,d=b.API.getComponent("next"),e=b.API.getComponent("prev"),f=b._prevBoundry||0,g=void 0!==b._nextBoundry?b._nextBoundry:b.slideCount-1;b.currSlide==g?d.addClass(c).prop("disabled",!0):d.removeClass(c).prop("disabled",!1),b.currSlide===f?e.addClass(c).prop("disabled",!0):e.removeClass(c).prop("disabled",!1)}}),a(document).on("cycle-destroyed",function(a,b){b.API.getComponent("prev").off(b.nextEvent),b.API.getComponent("next").off(b.prevEvent),b.container.off("swipeleft.cycle swiperight.cycle swipeLeft.cycle swipeRight.cycle swipeUp.cycle swipeDown.cycle")})}(jQuery),/*! progressive loader plugin for Cycle2;  version: 20130315 */
     14function(a){"use strict";a.extend(a.fn.cycle.defaults,{progressive:!1}),a(document).on("cycle-pre-initialize",function(b,c){if(c.progressive){var d,e,f=c.API,g=f.next,h=f.prev,i=f.prepareTx,j=a.type(c.progressive);if("array"==j)d=c.progressive;else if(a.isFunction(c.progressive))d=c.progressive(c);else if("string"==j){if(e=a(c.progressive),d=a.trim(e.html()),!d)return;if(/^(\[)/.test(d))try{d=a.parseJSON(d)}catch(k){return void f.log("error parsing progressive slides",k)}else d=d.split(new RegExp(e.data("cycle-split")||"\n")),d[d.length-1]||d.pop()}i&&(f.prepareTx=function(a,b){var e,f;return a||0===d.length?void i.apply(c.API,[a,b]):void(b&&c.currSlide==c.slideCount-1?(f=d[0],d=d.slice(1),c.container.one("cycle-slide-added",function(a,b){setTimeout(function(){b.API.advanceSlide(1)},50)}),c.API.add(f)):b||0!==c.currSlide?i.apply(c.API,[a,b]):(e=d.length-1,f=d[e],d=d.slice(0,e),c.container.one("cycle-slide-added",function(a,b){setTimeout(function(){b.currSlide=1,b.API.advanceSlide(-1)},50)}),c.API.add(f,!0)))}),g&&(f.next=function(){var a=this.opts();if(d.length&&a.currSlide==a.slideCount-1){var b=d[0];d=d.slice(1),a.container.one("cycle-slide-added",function(a,b){g.apply(b.API),b.container.removeClass("cycle-loading")}),a.container.addClass("cycle-loading"),a.API.add(b)}else g.apply(a.API)}),h&&(f.prev=function(){var a=this.opts();if(d.length&&0===a.currSlide){var b=d.length-1,c=d[b];d=d.slice(0,b),a.container.one("cycle-slide-added",function(a,b){b.currSlide=1,b.API.advanceSlide(-1),b.container.removeClass("cycle-loading")}),a.container.addClass("cycle-loading"),a.API.add(c,!0)}else h.apply(a.API)})}})}(jQuery),/*! tmpl plugin for Cycle2;  version: 20121227 */
     15function(a){"use strict";a.extend(a.fn.cycle.defaults,{tmplRegex:"{{((.)?.*?)}}"}),a.extend(a.fn.cycle.API,{tmpl:function(b,c){var d=new RegExp(c.tmplRegex||a.fn.cycle.defaults.tmplRegex,"g"),e=a.makeArray(arguments);return e.shift(),b.replace(d,function(b,c){var d,f,g,h,i=c.split(".");for(d=0;d<e.length;d++)if(g=e[d]){if(i.length>1)for(h=g,f=0;f<i.length;f++)g=h,h=h[i[f]]||c;else h=g[c];if(a.isFunction(h))return h.apply(g,e);if(void 0!==h&&null!==h&&h!=c)return h}return c})}})}(jQuery);
  • cyclone-slider-2/trunk/libs/cycle2/jquery.cycle2.scrollVert.min.js

    r777273 r1690000  
    1 /*! Plugin for Cycle2; Copyright (c) 2012 M. Alsup; ver: 20121120 */
    2 (function(a){"use strict",a.fn.cycle.transitions.scrollVert={before:function(a,b,c,d){a.API.stackSlides(a,b,c,d);var e=a.container.css("overflow","hidden").height();a.cssBefore={top:d?-e:e,left:0,opacity:1,display:"block"},a.animIn={top:0},a.animOut={top:d?e:-e}}}})(jQuery);
     1/* Plugin for Cycle2; Copyright (c) 2012 M. Alsup; v20141007 */
     2!function(a){"use strict";a.fn.cycle.transitions.scrollVert={before:function(a,b,c,d){a.API.stackSlides(a,b,c,d);var e=a.container.css("overflow","hidden").height();a.cssBefore={top:d?-e:e,left:0,opacity:1,display:"block",visibility:"visible"},a.animIn={top:0},a.animOut={top:d?e:-e}}}}(jQuery);
  • cyclone-slider-2/trunk/libs/cycle2/jquery.cycle2.swipe.min.js

    r777273 r1690000  
    1 /*! Plugin for Cycle2; Copyright (c) 2012 M. Alsup; ver: 20121120 */
    2 (function(a){"use strict";var b="ontouchend"in document;a.event.special.swipe=a.event.special.swipe||{scrollSupressionThreshold:10,durationThreshold:1e3,horizontalDistanceThreshold:30,verticalDistanceThreshold:75,setup:function(){var b=a(this);b.bind("touchstart",function(c){function g(b){if(!f)return;var c=b.originalEvent.touches?b.originalEvent.touches[0]:b;e={time:(new Date).getTime(),coords:[c.pageX,c.pageY]},Math.abs(f.coords[0]-e.coords[0])>a.event.special.swipe.scrollSupressionThreshold&&b.preventDefault()}var d=c.originalEvent.touches?c.originalEvent.touches[0]:c,e,f={time:(new Date).getTime(),coords:[d.pageX,d.pageY],origin:a(c.target)};b.bind("touchmove",g).one("touchend",function(c){b.unbind("touchmove",g),f&&e&&e.time-f.time<a.event.special.swipe.durationThreshold&&Math.abs(f.coords[0]-e.coords[0])>a.event.special.swipe.horizontalDistanceThreshold&&Math.abs(f.coords[1]-e.coords[1])<a.event.special.swipe.verticalDistanceThreshold&&f.origin.trigger("swipe").trigger(f.coords[0]>e.coords[0]?"swipeleft":"swiperight"),f=e=undefined})})}},a.event.special.swipeleft=a.event.special.swipeleft||{setup:function(){a(this).bind("swipe",a.noop)}},a.event.special.swiperight=a.event.special.swiperight||a.event.special.swipeleft})(jQuery);
     1/* Plugin for Cycle2; Copyright (c) 2012 M. Alsup; v20141007 */
     2!function(a){"use strict";a.event.special.swipe=a.event.special.swipe||{scrollSupressionThreshold:10,durationThreshold:1e3,horizontalDistanceThreshold:30,verticalDistanceThreshold:75,setup:function(){var b=a(this);b.bind("touchstart",function(c){function d(b){if(g){var c=b.originalEvent.touches?b.originalEvent.touches[0]:b;e={time:(new Date).getTime(),coords:[c.pageX,c.pageY]},Math.abs(g.coords[0]-e.coords[0])>a.event.special.swipe.scrollSupressionThreshold&&b.preventDefault()}}var e,f=c.originalEvent.touches?c.originalEvent.touches[0]:c,g={time:(new Date).getTime(),coords:[f.pageX,f.pageY],origin:a(c.target)};b.bind("touchmove",d).one("touchend",function(){b.unbind("touchmove",d),g&&e&&e.time-g.time<a.event.special.swipe.durationThreshold&&Math.abs(g.coords[0]-e.coords[0])>a.event.special.swipe.horizontalDistanceThreshold&&Math.abs(g.coords[1]-e.coords[1])<a.event.special.swipe.verticalDistanceThreshold&&g.origin.trigger("swipe").trigger(g.coords[0]>e.coords[0]?"swipeleft":"swiperight"),g=e=void 0})})}},a.event.special.swipeleft=a.event.special.swipeleft||{setup:function(){a(this).bind("swipe",a.noop)}},a.event.special.swiperight=a.event.special.swiperight||a.event.special.swipeleft}(jQuery);
  • cyclone-slider-2/trunk/libs/cycle2/jquery.cycle2.tile.min.js

    r775279 r1690000  
    1 /* Plugin for Cycle2; Copyright (c) 2012 M. Alsup; v20130721 */
    2 (function(e){"use strict";e.fn.cycle.transitions.tileSlide=e.fn.cycle.transitions.tileBlind={before:function(t,i,n,s){t.API.stackSlides(i,n,s),e(i).show(),t.container.css("overflow","hidden"),t.tileDelay=t.tileDelay||"tileSlide"==t.fx?100:125,t.tileCount=t.tileCount||7,t.tileVertical=t.tileVertical!==!1,t.container.data("cycleTileInitialized")||(t.container.on("cycle-destroyed",e.proxy(this.onDestroy,t.API)),t.container.data("cycleTileInitialized",!0))},transition:function(t,i,n,s,o){function r(e){p.eq(e).animate(I,{duration:t.speed,easing:t.easing,complete:function(){(s?v-1===e:0===e)&&t._tileAniCallback()}}),setTimeout(function(){(s?v-1!==e:0!==e)&&r(s?e+1:e-1)},t.tileDelay)}t.slides.not(i).not(n).hide();var c,l,a,d,u,p=e(),f=e(i),y=e(n),v=t.tileCount,h=t.tileVertical,g=t.container.height(),m=t.container.width();h?(l=Math.floor(m/v),d=m-l*(v-1),a=u=g):(l=d=m,a=Math.floor(g/v),u=g-a*(v-1)),t.container.find(".cycle-tiles-container").remove();var I,A={left:0,top:0,overflow:"hidden",position:"absolute",margin:0,padding:0};I=h?"tileSlide"==t.fx?{top:g}:{width:0}:"tileSlide"==t.fx?{left:m}:{height:0};var S=e('<div class="cycle-tiles-container"></div>');S.css({zIndex:f.css("z-index"),overflow:"visible",position:"absolute",top:0,left:0,direction:"ltr"}),S.insertBefore(n);for(var x=0;v>x;x++)c=e("<div></div>").css(A).css({width:v-1===x?d:l,height:v-1===x?u:a,marginLeft:h?x*l:0,marginTop:h?0:x*a}).append(f.clone().css({position:"relative",maxWidth:"none",width:f.width(),margin:0,padding:0,marginLeft:h?-(x*l):0,marginTop:h?0:-(x*a)})),p=p.add(c);S.append(p),f.hide(),y.show().css("opacity",1),r(s?0:v-1),t._tileAniCallback=function(){y.show(),f.hide(),S.remove(),o()}},stopTransition:function(e){e.container.find("*").stop(!0,!0),e._tileAniCallback&&e._tileAniCallback()},onDestroy:function(){var e=this.opts();e.container.find(".cycle-tiles-container").remove()}}})(jQuery);
     1/* Plugin for Cycle2; Copyright (c) 2012 M. Alsup; v20141007 */
     2!function(a){"use strict";a.fn.cycle.transitions.tileSlide=a.fn.cycle.transitions.tileBlind={before:function(b,c,d,e){b.API.stackSlides(c,d,e),a(c).css({display:"block",visibility:"visible"}),b.container.css("overflow","hidden"),b.tileDelay=b.tileDelay||"tileSlide"==b.fx?100:125,b.tileCount=b.tileCount||7,b.tileVertical=b.tileVertical!==!1,b.container.data("cycleTileInitialized")||(b.container.on("cycle-destroyed",a.proxy(this.onDestroy,b.API)),b.container.data("cycleTileInitialized",!0))},transition:function(b,c,d,e,f){function g(a){m.eq(a).animate(t,{duration:b.speed,easing:b.easing,complete:function(){(e?p-1===a:0===a)&&b._tileAniCallback()}}),setTimeout(function(){(e?p-1!==a:0!==a)&&g(e?a+1:a-1)},b.tileDelay)}b.slides.not(c).not(d).css("visibility","hidden");var h,i,j,k,l,m=a(),n=a(c),o=a(d),p=b.tileCount,q=b.tileVertical,r=b.container.height(),s=b.container.width();q?(i=Math.floor(s/p),k=s-i*(p-1),j=l=r):(i=k=s,j=Math.floor(r/p),l=r-j*(p-1)),b.container.find(".cycle-tiles-container").remove();var t,u={left:0,top:0,overflow:"hidden",position:"absolute",margin:0,padding:0};t=q?"tileSlide"==b.fx?{top:r}:{width:0}:"tileSlide"==b.fx?{left:s}:{height:0};var v=a('<div class="cycle-tiles-container"></div>');v.css({zIndex:n.css("z-index"),overflow:"visible",position:"absolute",top:0,left:0,direction:"ltr"}),v.insertBefore(d);for(var w=0;p>w;w++)h=a("<div></div>").css(u).css({width:p-1===w?k:i,height:p-1===w?l:j,marginLeft:q?w*i:0,marginTop:q?0:w*j}).append(n.clone().css({position:"relative",maxWidth:"none",width:n.width(),margin:0,padding:0,marginLeft:q?-(w*i):0,marginTop:q?0:-(w*j)})),m=m.add(h);v.append(m),n.css("visibility","hidden"),o.css({opacity:1,display:"block",visibility:"visible"}),g(e?0:p-1),b._tileAniCallback=function(){o.css({display:"block",visibility:"visible"}),n.css("visibility","hidden"),v.remove(),f()}},stopTransition:function(a){a.container.find("*").stop(!0,!0),a._tileAniCallback&&a._tileAniCallback()},onDestroy:function(){var a=this.opts();a.container.find(".cycle-tiles-container").remove()}}}(jQuery);
  • cyclone-slider-2/trunk/libs/cycle2/jquery.cycle2.video.min.js

    r777273 r1690000  
    1 /* Plugin for Cycle2; Copyright (c) 2012 M. Alsup; v20130708 */
    2 (function(e){"use strict";function t(){try{this.playVideo()}catch(e){}}function i(){try{this.pauseVideo()}catch(e){}}var n='<div class=cycle-youtube><object width="640" height="360"><param name="movie" value="{{url}}"></param><param name="allowFullScreen" value="{{allowFullScreen}}"></param><param name="allowscriptaccess" value="always"></param><embed src="{{url}}" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="{{allowFullScreen}}"></embed></object></div>';e.extend(e.fn.cycle.defaults,{youtubeAllowFullScreen:!0,youtubeAutostart:!1,youtubeAutostop:!0}),e(document).on("cycle-bootstrap",function(s,o){o.youtube&&(o.hideNonActive=!1,o.container.find(o.slides).each(function(t){if(this.href){var i,s=e(this),l=s.attr("href"),c=o.youtubeAllowFullScreen?"true":"false";l+=(/\?/.test(l)?"&":"?")+"enablejsapi=1",o.youtubeAutostart&&o.startingSlide===t&&(l+="&autoplay=1"),i=o.API.tmpl(n,{url:l,allowFullScreen:c}),s.replaceWith(i)}}),o.slides=o.slides.replace(/(\b>?a\b)/,"div.cycle-youtube"),o.youtubeAutostart&&o.container.on("cycle-initialized cycle-after",function(i,n){var s="cycle-initialized"==i.type?n.currSlide:n.nextSlide;e(n.slides[s]).find("object,embed").each(t)}),o.youtubeAutostop&&o.container.on("cycle-before",function(t,n){e(n.slides[n.currSlide]).find("object,embed").each(i)}))})})(jQuery);
     1/* Plugin for Cycle2; Copyright (c) 2012 M. Alsup; v20141007 */
     2!function(a){"use strict";function b(){try{this.playVideo()}catch(a){}}function c(){try{this.pauseVideo()}catch(a){}}var d='<div class=cycle-youtube><object width="640" height="360"><param name="movie" value="{{url}}"></param><param name="allowFullScreen" value="{{allowFullScreen}}"></param><param name="allowscriptaccess" value="always"></param><param name="wmode" value="opaque"></param><embed src="{{url}}" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="{{allowFullScreen}}" wmode="opaque"></embed></object></div>';a.extend(a.fn.cycle.defaults,{youtubeAllowFullScreen:!0,youtubeAutostart:!1,youtubeAutostop:!0}),a(document).on("cycle-bootstrap",function(e,f){f.youtube&&(f.hideNonActive=!1,f.container.find(f.slides).each(function(b){if(void 0!==a(this).attr("href")){var c,e=a(this),g=e.attr("href"),h=f.youtubeAllowFullScreen?"true":"false";g+=(/\?/.test(g)?"&":"?")+"enablejsapi=1",f.youtubeAutostart&&f.startingSlide===b&&(g+="&autoplay=1"),c=f.API.tmpl(d,{url:g,allowFullScreen:h}),e.replaceWith(c)}}),f.slides=f.slides.replace(/(\b>?a\b)/,"div.cycle-youtube"),f.youtubeAutostart&&f.container.on("cycle-initialized cycle-after",function(c,d){var e="cycle-initialized"==c.type?d.currSlide:d.nextSlide;a(d.slides[e]).find("object,embed").each(b)}),f.youtubeAutostop&&f.container.on("cycle-before",function(b,d){a(d.slides[d.currSlide]).find("object,embed").each(c)}))})}(jQuery);
  • cyclone-slider-2/trunk/src/CycloneSlider/Admin.php

    r1450024 r1690000  
    112112        // Add hook for ajax operations if logged in
    113113        add_action( 'wp_ajax_cycloneslider_get_video', array( $this, 'cycloneslider_get_video' ) );
    114 
    115         add_action( 'post_submitbox_start', array( $this, 'upgrade_link' ));
    116114       
    117115    }
     
    140138            array(
    141139                'labels' => array(
    142                     'name' => __('Cyclone Slider', 'cyclone-slider-2'),
    143                     'singular_name' => __('Slideshow', 'cyclone-slider-2'),
    144                     'add_new' => __('Add Slideshow', 'cyclone-slider-2'),
    145                     'add_new_item' => __('Add New Slideshow', 'cyclone-slider-2'),
    146                     'edit_item' => __('Edit Slideshow', 'cyclone-slider-2'),
    147                     'new_item' => __('New Slideshow', 'cyclone-slider-2'),
    148                     'view_item' => __('View Slideshow', 'cyclone-slider-2'),
    149                     'search_items' => __('Search Slideshows', 'cyclone-slider-2'),
    150                     'not_found' => __('No slideshows found', 'cyclone-slider-2'),
    151                     'not_found_in_trash' => __('No slideshows found in Trash', 'cyclone-slider-2')
     140                    'name' => __('Cyclone Slider', 'cycloneslider'),
     141                    'singular_name' => __('Slideshow', 'cycloneslider'),
     142                    'add_new' => __('Add Slideshow', 'cycloneslider'),
     143                    'add_new_item' => __('Add New Slideshow', 'cycloneslider'),
     144                    'edit_item' => __('Edit Slideshow', 'cycloneslider'),
     145                    'new_item' => __('New Slideshow', 'cycloneslider'),
     146                    'view_item' => __('View Slideshow', 'cycloneslider'),
     147                    'search_items' => __('Search Slideshows', 'cycloneslider'),
     148                    'not_found' => __('No slideshows found', 'cycloneslider'),
     149                    'not_found_in_trash' => __('No slideshows found in Trash', 'cycloneslider')
    152150                ),
    153151                'supports' => array('title'),
     
    195193        $messages['cycloneslider'] = array(
    196194            0  => '',
    197             1  => __( 'Slideshow updated.', 'cyclone-slider-2' ),
    198             2  => __( 'Custom field updated.', 'cyclone-slider-2' ),
    199             3  => __( 'Custom field deleted.', 'cyclone-slider-2' ),
    200             4  => __( 'Slideshow updated.', 'cyclone-slider-2' ),
    201             5  => __( 'Slideshow updated.', 'cyclone-slider-2' ),
    202             6  => __( 'Slideshow published.', 'cyclone-slider-2' ),
    203             7  => __( 'Slideshow saved.', 'cyclone-slider-2' ),
    204             8  => __( 'Slideshow updated.', 'cyclone-slider-2' ),
    205             9  => __( 'Slideshow updated.', 'cyclone-slider-2' ),
    206             10 => __( 'Slideshow updated.', 'cyclone-slider-2' )
     195            1  => __( 'Slideshow updated.', 'cycloneslider' ),
     196            2  => __( 'Custom field updated.', 'cycloneslider' ),
     197            3  => __( 'Custom field deleted.', 'cycloneslider' ),
     198            4  => __( 'Slideshow updated.', 'cycloneslider' ),
     199            5  => __( 'Slideshow updated.', 'cycloneslider' ),
     200            6  => __( 'Slideshow published.', 'cycloneslider' ),
     201            7  => __( 'Slideshow saved.', 'cycloneslider' ),
     202            8  => __( 'Slideshow updated.', 'cycloneslider' ),
     203            9  => __( 'Slideshow updated.', 'cycloneslider' ),
     204            10 => __( 'Slideshow updated.', 'cycloneslider' )
    207205        );
    208206        return $messages;
     
    240238        add_meta_box(
    241239            'cyclone-slides-metabox',
    242             __('Slides', 'cyclone-slider-2'),
     240            __('Slides', 'cycloneslider'),
    243241            array( $this, 'render_slides_meta_box' ),
    244242            'cycloneslider' ,
     
    249247        add_meta_box(
    250248            'cyclone-slider-preview-metabox',
    251             __('Slider Preview', 'cyclone-slider-2'),
     249            __('Slider Preview', 'cycloneslider'),
    252250            array( $this, 'render_slider_preview_meta_box' ),
    253251            'cycloneslider' ,
     
    258256        add_meta_box(
    259257            'cyclone-slider-codes',
    260             __('Get Slider Codes', 'cyclone-slider-2'),
     258            __('Get Slider Codes', 'cycloneslider'),
    261259            array( $this, 'render_slider_codes' ),
    262260            'cycloneslider' ,
     
    267265        add_meta_box(
    268266            'cyclone-slider-properties-metabox',
    269             __('Basic Settings', 'cyclone-slider-2'),
     267            __('Basic Settings', 'cycloneslider'),
    270268            array( $this, 'render_slider_properties_meta_box' ),
    271269            'cycloneslider' ,
     
    276274        add_meta_box(
    277275            'cyclone-slider-advanced-settings-metabox',
    278             __('Advanced Settings', 'cyclone-slider-2'),
     276            __('Advanced Settings', 'cycloneslider'),
    279277            array( $this, 'render_slider_advanced_settings_meta_box' ),
    280278            'cycloneslider' ,
     
    285283        add_meta_box(
    286284            'cyclone-slider-templates-metabox',
    287             __('Templates', 'cyclone-slider-2'),
     285            __('Templates', 'cycloneslider'),
    288286            array( $this, 'render_slider_templates_meta_box' ),
    289287            'cycloneslider' ,
     
    294292        add_meta_box(
    295293            'cyclone-slider-id',
    296             __('Slideshow ID', 'cyclone-slider-2'),
     294            __('Slideshow ID', 'cycloneslider'),
    297295            array( $this, 'render_slider_id' ),
    298296            'cycloneslider' ,
     
    310308    public function render_slides_meta_box($post){
    311309       
    312         $slides_html = '';
    313        
    314         $slider_settings = $this->data->get_slider_settings( $post->ID );
    315         $slides = $this->data->get_slider_slides( $post->ID );
    316 
    317         if(is_array($slides) and count($slides)>0):
    318            
    319             foreach($slides as $i=>$slide):
    320            
    321                 $image_url = $this->get_slide_img_thumb($slide['id']);
    322                 $image_url = apply_filters('cycloneslider_preview_url', $image_url, $slide);
    323                 $box_title = __('Slide', 'cyclone-slider-2').' '.($i+1);
    324                 if( '' != trim($slide['title']) and 'image' == $slide['type'] ){
    325                     $box_title = $box_title. ' - '.$slide['title'];
     310        try {
     311            $slider = $this->data->get_slider($post->ID);
     312
     313            if($slider === NULL){
     314                $this->view->render('slides.php', array('error'=> sprintf(__('Slider "%s" not found.','cycloneslider'), $post->ID) ));
     315            } else {
     316                $slides_html = '';
     317                foreach($slider['slides'] as $i=>$slide) {
     318                   
     319                    $image_url = $this->get_slide_img_thumb($slide['id']);
     320                    $image_url = apply_filters('cycloneslider_preview_url', $image_url, $slide);
     321                    $box_title = __('Slide', 'cycloneslider').' '.($i+1);
     322                    if( '' != trim($slide['title']) and 'image' == $slide['type'] ){
     323                        $box_title = $box_title. ' - '.$slide['title'];
     324                    }
     325                    if( '1' == $slide['hidden'] ){
     326                        $box_title = $box_title. ' - '.__('[Hidden]', 'cycloneslider');
     327                    }
     328                    $box_title = apply_filters('cycloneslider_box_title', $box_title);
     329                   
     330                    $vars = array();
     331                    $vars['i'] = $i;
     332                    $vars['slider'] = $slider;
     333                    $vars['slide'] = $slide;
     334                    $vars['image_url'] = $image_url;
     335                    $vars['full_image_url'] = wp_get_attachment_url($slide['id']);
     336                    $vars['testimonial_img_url'] = $this->get_slide_img_thumb($slide['testimonial_img']);
     337                    $vars['full_testimonial_img_url'] = wp_get_attachment_url($slide['testimonial_img']);
     338                    $vars['box_title'] = $box_title;
     339                    $vars['debug'] = ($this->debug) ? cyclone_slider_debug($slide) : '';
     340                    $vars['effects'] = $this->data->get_slide_effects();
     341                   
     342                    $slides_html .= $this->view->get_render('slide-edit.php', $vars);
    326343                }
    327                 if( '1' == $slide['hidden'] ){
    328                     $box_title = $box_title. ' - '.__('[Hidden]', 'cyclone-slider-2');
    329                 }
    330                 $box_title = apply_filters('cycloneslider_box_title', $box_title);
    331344               
    332345                $vars = array();
    333                 $vars['i'] = $i;
    334                 $vars['slider_settings'] = $slider_settings;
    335                 $vars['slide'] = $slide;
    336                 $vars['image_url'] = $image_url;
    337                 $vars['full_image_url'] = wp_get_attachment_url($slide['id']);
    338                 $vars['box_title'] = $box_title;
    339                 $vars['debug'] = ($this->debug) ? cyclone_slider_debug($slide) : '';
    340                 $vars['effects'] = $this->data->get_slide_effects();
    341                
    342                 $slides_html .= $this->view->get_render('slide-edit.php', $vars);
    343                
    344             endforeach;
    345         endif;
    346        
    347         $vars = array();
    348         $vars['slides'] = $slides_html;
    349         $vars['post_id'] = $post->ID;
    350         $vars['nonce_name'] = $this->nonce_name;
    351         $vars['nonce'] = wp_create_nonce( $this->nonce_action );
    352        
    353         $this->view->render('slides.php', $vars);
     346                $vars['error'] = '';
     347                $vars['slides'] = $slides_html;
     348                $vars['post_id'] = $post->ID;
     349                $vars['nonce_name'] = $this->nonce_name;
     350                $vars['nonce'] = wp_create_nonce( $this->nonce_action );
     351           
     352                $this->view->render('slides.php', $vars);
     353            }
     354        } catch (Exception $e) {
     355            $this->view->render('slides.php', array('error'=> $e->getMessage()));
     356        }
    354357    }
    355358
     
    462465       
    463466            if( $template['location_name'] == 'core' ){
    464                 $templates[$name]['location_name'] = __('Core', 'cyclone-slider-2');
    465                 $templates[$name]['location_details'] = sprintf( __('You should not make changes to templates in this location. All your changes will be gone when the plugin is updated. <br />Location: <strong>%s</strong>', 'cyclone-slider-2' ), $template['path']);
     467                $templates[$name]['location_name'] = __('Core', 'cycloneslider');
     468                $templates[$name]['location_details'] = sprintf( __('You should not make changes to templates in this location. All your changes will be gone when the plugin is updated. <br />Location: <strong>%s</strong>', 'cycloneslider' ), $template['path']);
    466469            }
    467470            if( $template['location_name'] == 'active-theme' ){
    468                 $templates[$name]['location_name'] = 'Active Theme';
    469                 $templates[$name]['location_details'] = sprintf( __("Location: <strong>%s</strong>", 'cyclone-slider-2' ), $template['path']);
    470                 $templates[$name]['warning'] = sprintf( __('Your template is in danger of being overwritten when you upgrade your theme. Please consider creating a WordPress plugin Cyclone Slider template.', 'cyclone-slider-2' ) );
     471                $templates[$name]['location_name'] = __('Active Theme', 'cycloneslider');
     472                $templates[$name]['location_details'] = sprintf( __("Location: <strong>%s</strong>", 'cycloneslider' ), $template['path']);
     473                $templates[$name]['warning'] = sprintf( __('Your template is in danger of being overwritten when you upgrade your theme. Please consider creating a WordPress plugin Cyclone Slider template.', 'cycloneslider' ) );
    471474            }
    472475            if( $template['location_name'] == 'wp-content' ){
    473                 $templates[$name]['location_name'] = 'WP Content';
    474                 $templates[$name]['location_details'] = sprintf( __("Location: <strong>%s</strong>", 'cyclone-slider-2'), $template['path'] );
     476                $templates[$name]['location_name'] = __('WP Content', 'cycloneslider');
     477                $templates[$name]['location_details'] = sprintf( __("Location: <strong>%s</strong>", 'cycloneslider'), $template['path'] );
    475478            }
    476479            if( $template['location_name'] == 'plugin' ){
    477                 $templates[$name]['location_name'] = 'Plugin';
    478                 $templates[$name]['location_details'] = sprintf( __("Location: <strong>%s</strong>", 'cyclone-slider-2'), $template['path'] );
     480                $templates[$name]['location_name'] = __('Plugin', 'cycloneslider');
     481                $templates[$name]['location_details'] = sprintf( __("Location: <strong>%s</strong>", 'cycloneslider'), $template['path'] );
    479482            }
    480483            // Remove inactive templates
     
    505508
    506509    }
    507 
    508     public function upgrade_link(){
    509         echo '<div class="cs-upgrade-action"><a href="https://www.codefleet.net/cyclone-slider-pro/">Upgrade to Pro</a></div>';
    510         echo '<div class="clear"></div>';
    511     }
    512 
     510   
    513511    /**
    514512     * Hook to admin footer
     
    519517            // Empty Slide
    520518            $vars = array();
    521             $vars['box_title'] = __('Slide *', 'cyclone-slider-2');
     519            $vars['box_title'] = __('Slide *', 'cycloneslider');
    522520            $vars['image_url'] = '';
    523521            $vars['i'] = '{id}';
     
    530528            $vars['debug'] = ($this->debug) ? cyclone_slider_debug($vars['slide']) : '';
    531529           
     530            $vars['full_image_url'] = '';
     531            $vars['testimonial_img_url'] = '';
     532            $vars['full_testimonial_img_url'] = '';
     533            $vars['type'] = 'image';
     534
    532535            $empty_slide = $this->view->get_render('slide-edit.php', $vars);
    533536           
     
    608611    public function slideshow_columns( $columns ) {
    609612        unset($columns['date']);
    610         $columns['title']= __('Slideshow Name', 'cyclone-slider-2');
    611         $columns['template']= __('Template', 'cyclone-slider-2');
    612         $columns['images']= __('No. of Slides', 'cyclone-slider-2');
    613         $columns['id']= __('Slideshow ID', 'cyclone-slider-2');
    614         $columns['shortcode']= __('Shortcode', 'cyclone-slider-2');
     613        $columns['title']= __('Slideshow Name', 'cycloneslider');
     614        $columns['template']= __('Template', 'cycloneslider');
     615        $columns['images']= __('No. of Slides', 'cycloneslider');
     616        $columns['id']= __('Slideshow ID', 'cycloneslider');
     617        $columns['shortcode']= __('Shortcode', 'cycloneslider');
    615618        return $columns;
    616619    }
  • cyclone-slider-2/trunk/src/CycloneSlider/AssetLoader.php

    r1381774 r1690000  
    5050            wp_enqueue_media();
    5151           
    52             // Fontawesome style
    53             wp_enqueue_style( 'font-awesome', $this->url.'libs/font-awesome/css/font-awesome.min.css', array(), $this->version );
    54            
    5552            // Main style
    5653            wp_enqueue_style( 'cycloneslider-admin-styles', $this->url.'css/admin.css', array(), $this->version  );
     
    6966            wp_localize_script( 'cycloneslider-admin-script', 'cycloneslider_admin_vars',
    7067                array(
    71                     'title'     => __( 'Select an image', 'cyclone-slider-2' ), // This will be used as the default title
    72                     'title2'     => __( 'Select Images - Use Ctrl + Click or Shift + Click', 'cyclone-slider-2' ),
    73                     'button'    => __( 'Add to Slide', 'cyclone-slider-2' ), // This will be used as the default button text
    74                     'button2'    => __( 'Add Images as Slides', 'cyclone-slider-2' ),
    75                     'youtube_url_error'    => __( 'Error. Make sure its a valid YouTube URL.', 'cyclone-slider-2' )
     68                    'title'     => __( 'Select an image', 'cycloneslider' ), // This will be used as the default title
     69                    'title2'     => __( 'Select Images - Use Ctrl + Click or Shift + Click', 'cycloneslider' ),
     70                    'button'    => __( 'Add to Slide', 'cycloneslider' ), // This will be used as the default button text
     71                    'button2'    => __( 'Add Images as Slides', 'cycloneslider' ),
     72                    'youtube_url_error'    => __( 'Error. Make sure its a valid YouTube URL.', 'cycloneslider' )
    7673                )
    7774            );
     
    145142        /*** Templates Scripts ***/
    146143        $this->enqueue_templates_scripts();
    147        
     144
     145        /*** Vimeo JS API ***/
     146        wp_enqueue_script( 'vimeo-player-js', $this->url.'libs/vimeo-player-js/player.js', array(), $this->version, $in_footer );
     147
    148148        /*** Client Script ***/
    149149        wp_enqueue_script( 'cyclone-client', $this->url.'js/client.js', array('jquery'), $this->version, $in_footer );
  • cyclone-slider-2/trunk/src/CycloneSlider/Data.php

    r1471540 r1690000  
    3737        global $wp_version;
    3838       
    39         // Save slides. Use better hook if available
    40         if ( version_compare( $wp_version, '3.7', '>=' ) ) {
    41             add_action( 'save_post_cycloneslider', array( $this, 'save_slider_post' ) );
    42         } else {
    43             add_action( 'save_post', array( $this, 'save_slider_post' ) );
    44         }
    45        
    46        
     39        // Add save hook
     40        $this->_add_save_hook( $wp_version );
    4741    }
    4842   
     
    5044     * Save post hook
    5145     */
    52     public function save_slider_post( $post_id ){
    53         global $cyclone_slider_saved_done;
    54        
    55         // Stop! We have already saved..
    56         if($cyclone_slider_saved_done){
    57             return $post_id;
    58         }
     46    public function save_post_hook( $post_id ){
     47        global $wp_version;
     48
     49        // Use local variable
     50        $post = $_POST;
    5951       
    6052        // Verify nonce
    6153        $nonce_name = $this->nonce_name;
    62         if (!empty($_POST[$nonce_name])) {
    63             if (!wp_verify_nonce($_POST[$nonce_name], $this->nonce_action)) {
     54        if (!empty($post[$nonce_name])) {
     55            if (!wp_verify_nonce($post[$nonce_name], $this->nonce_action)) {
    6456                return $post_id;
    6557            }
     
    7264            return $post_id;
    7365        }
    74        
    75         // Assign POST data with array key checks
    76         $slides = isset($_POST['cycloneslider_metas']) ? $_POST['cycloneslider_metas'] : array();
    77         $slider_settings = isset($_POST['cycloneslider_settings']) ? $_POST['cycloneslider_settings'] : array();
    78         // Resize images
    79         $this->image_resizer->resize_images( $slider_settings, $slides );
    80        
    81         // Save slides
    82         $this->add_slider_slides( $post_id, $slides );
    83        
    84         // Save slider settings
    85         $this->add_slider_settings( $post_id, $slider_settings);
    86        
    87         // Marked as done
    88         $cyclone_slider_saved_done = true;
    89     }
    90    
    91     /**
    92      * API to add slider
    93      */
    94     public function add_slider( $post_title, $slider_settings, $slides ){
    95        
    96         $post_data = array(
    97             'post_type' => 'cycloneslider',
    98             'post_title' => $post_title,
    99             'post_content' => '',
    100             'post_status' => 'publish'
     66        // TODO: Comprehensive array key checks
     67        $slider = array(
     68            'id' => $post_id,
     69            'name' => $post['post_name'],
     70            'title' => $post['post_title'],
     71            'status' => $post['post_status'],
     72            'slider_settings' => isset($post['cycloneslider_settings']) ? $post['cycloneslider_settings'] : array(),
     73            'slides' => isset($post['cycloneslider_metas']) ? $post['cycloneslider_metas'] : array(),
    10174        );
    102 
    103         if( $slider_id = wp_insert_post( $post_data ) ){
    104            
    105             // Resize images if needed
    106             if( $slider_settings['resize'] == 1){
     75        // Remove temporarily to avoid infinite loop
     76        $this->_remove_save_hook( $wp_version );
     77        // Update slider info
     78        $this->update_slider($slider);
     79        // Add save hook
     80        $this->_add_save_hook( $wp_version );
     81    }
     82   
     83    /**
     84     * @param array $slider
     85     *
     86     * @return int|\WP_Error
     87     */
     88    public function add_slider( $slider ){
     89
     90        $slider['id'] = 0; // Set to zero to insert instead of update
     91        return $this->update_slider( $slider );
     92    }
     93
     94    /**
     95     * @param array $slider
     96     *
     97     * @return int|\WP_Error
     98     */
     99    public function update_slider( $slider ){
     100
     101        $post_data = array(
     102            'ID' => (int) $slider['id'],
     103            'post_name' => wp_strip_all_tags($slider['name'], true),
     104            'post_title' => wp_strip_all_tags($slider['title'], true),
     105            'post_type' => 'cycloneslider',
     106            'post_status' => $slider['status'],
     107            'post_content' => ''
     108        );
     109
     110        if( $slider_id = wp_insert_post( $post_data ) ){
     111
     112            // Resize images if needed
     113            if( $slider['slider_settings']['resize'] == 1){
    107114               
    108                 $this->image_resizer->resize_images( $slider_settings, $slides );
     115                $this->image_resizer->resize_images( $slider['slider_settings'], $slider['slides'] );
    109116            }
    110117           
    111118            // Save slides
    112             $this->add_slider_slides( $slider_id, $slides );
     119            $this->add_slider_slides( $slider_id, $slider['slides'] );
    113120           
    114121            // Save slider settings
    115             $this->add_slider_settings( $slider_id, $slider_settings );
    116            
    117         }
    118     }
    119    
     122            $this->add_slider_settings( $slider_id, $slider['slider_settings'] );
     123
     124        }
     125
     126        return $slider_id;
     127    }
     128
    120129    /**
    121130     * Add Slide Settings
     
    127136     * @return void
    128137     */
    129     public function add_slider_settings( $slider_id, $settings ){
     138    public function add_slider_settings( $slider_id, array $settings ){
    130139        $settings = wp_parse_args(
    131140            $settings,
     
    148157        $settings_to_save['resize'] = (int) ( $settings['resize'] );
    149158        $settings_to_save['width_management'] = sanitize_text_field( $settings['width_management'] );
    150         // Pro options
    151         $settings_to_save['easing'] = '';
    152         $settings_to_save['resize_option'] = 'fit';
    153         $settings_to_save['resize_quality'] = 100;
    154         $settings_to_save['allow_wrap'] = 'true';
    155         $settings_to_save['dynamic_height'] = 'off';
    156         $settings_to_save['dynamic_height_speed'] = 250;
    157         $settings_to_save['delay'] = 0;
    158         $settings_to_save['swipe'] = 'false';
    159 
    160         $settings_to_save = apply_filters('cycloneslider_settings', $settings_to_save, $slider_id); // Apply filters before saving
     159
     160        $settings_to_save = apply_filters('cycloneslider_settings', $settings_to_save, $settings, $slider_id); // Apply filters before saving
    161161       
    162162        delete_post_meta($slider_id, '_cycloneslider_settings');
     
    171171     * @param int $slider_id Slider post ID
    172172     * @param array $slides Slides array
    173      * @return void
    174      */
    175     public function add_slider_slides( $slider_id, $slides ){
     173     */
     174    public function add_slider_slides( $slider_id, array $slides ){
    176175       
    177176        $slides_to_save = array();
    178177       
    179         if( is_array($slides) ){
    180 
    181             $i=0;//always start from 0
    182             foreach($slides as $slide){
    183                 $slide = wp_parse_args(
    184                     $slide,
    185                     $this->get_slide_defaults()
    186                 );
    187                 $slides_to_save[$i]['id'] = (int) ($slide['id']);
    188                 $slides_to_save[$i]['type'] = sanitize_text_field($slide['type']);
    189                 $slides_to_save[$i]['hidden'] = (int) ($slide['hidden']);
    190                
    191                 $slides_to_save[$i]['link'] = esc_url_raw($slide['link']);
    192                 $slides_to_save[$i]['title'] = wp_kses_post($slide['title']);
    193                 $slides_to_save[$i]['description'] = wp_kses_post($slide['description']);
    194                 $slides_to_save[$i]['link_target'] = sanitize_text_field($slide['link_target']);
    195                
    196                 $slides_to_save[$i]['img_alt'] = sanitize_text_field($slide['img_alt']);
    197                 $slides_to_save[$i]['img_title'] = sanitize_text_field($slide['img_title']);
    198                
    199                 $slides_to_save[$i]['enable_slide_effects'] = (int) ($slide['enable_slide_effects']);
    200                 $slides_to_save[$i]['fx'] = sanitize_text_field($slide['fx']);
    201                 $slides_to_save[$i]['speed'] = sanitize_text_field($slide['speed']);
    202                 $slides_to_save[$i]['timeout'] = sanitize_text_field($slide['timeout']);
    203                 $slides_to_save[$i]['tile_count'] = sanitize_text_field($slide['tile_count']);
    204                 $slides_to_save[$i]['tile_delay'] = sanitize_text_field($slide['tile_delay']);
    205                 $slides_to_save[$i]['tile_vertical'] = sanitize_text_field($slide['tile_vertical']);
    206                
    207                 $slides_to_save[$i]['video_thumb'] = esc_url_raw($slide['video_thumb']);
    208                 $slides_to_save[$i]['video_url'] = esc_url_raw($slide['video_url']);
    209                 $slides_to_save[$i]['video'] = $slide['video'];
    210                
    211                 $slides_to_save[$i]['custom'] = $slide['custom'];
    212                
    213                 $slides_to_save[$i]['youtube_url'] = esc_url_raw($slide['youtube_url']);
    214                 $slides_to_save[$i]['youtube_related'] = sanitize_text_field($slide['youtube_related']);
    215                
    216                 $slides_to_save[$i]['vimeo_url'] = esc_url_raw($slide['vimeo_url']);
    217                
    218                 $slides_to_save[$i]['testimonial'] = wp_kses_post($slide['testimonial']);
    219                 $slides_to_save[$i]['testimonial_author'] = sanitize_text_field($slide['testimonial_author']);
    220                 $slides_to_save[$i]['testimonial_link'] = esc_url_raw($slide['testimonial_link']);
    221                 $slides_to_save[$i]['testimonial_link_target'] = sanitize_text_field($slide['testimonial_link_target']);
    222            
    223                 $i++;
    224             }
    225            
    226         }
     178        $i=0;//always start from 0
     179        foreach($slides as $slide){
     180            $slide = wp_parse_args(
     181                $slide,
     182                $this->get_slide_defaults()
     183            );
     184            $slides_to_save[$i]['id'] = (int) ($slide['id']);
     185            $slides_to_save[$i]['type'] = sanitize_text_field($slide['type']);
     186            $slides_to_save[$i]['hidden'] = (int) ($slide['hidden']);
     187           
     188            $slides_to_save[$i]['link'] = esc_url_raw($slide['link']);
     189            $slides_to_save[$i]['title'] = wp_kses_post($slide['title']);
     190            $slides_to_save[$i]['description'] = wp_kses_post($slide['description']);
     191            $slides_to_save[$i]['link_target'] = sanitize_text_field($slide['link_target']);
     192           
     193            $slides_to_save[$i]['img_alt'] = sanitize_text_field($slide['img_alt']);
     194            $slides_to_save[$i]['img_title'] = sanitize_text_field($slide['img_title']);
     195           
     196            $slides_to_save[$i]['enable_slide_effects'] = (int) ($slide['enable_slide_effects']);
     197            $slides_to_save[$i]['fx'] = sanitize_text_field($slide['fx']);
     198            $slides_to_save[$i]['speed'] = sanitize_text_field($slide['speed']);
     199            $slides_to_save[$i]['timeout'] = sanitize_text_field($slide['timeout']);
     200            $slides_to_save[$i]['tile_count'] = sanitize_text_field($slide['tile_count']);
     201            $slides_to_save[$i]['tile_delay'] = sanitize_text_field($slide['tile_delay']);
     202            $slides_to_save[$i]['tile_vertical'] = sanitize_text_field($slide['tile_vertical']);
     203           
     204            $slides_to_save[$i]['video_thumb'] = esc_url_raw($slide['video_thumb']);
     205            $slides_to_save[$i]['video_url'] = esc_url_raw($slide['video_url']);
     206            $slides_to_save[$i]['video'] = $slide['video'];
     207           
     208            $slides_to_save[$i]['custom'] = $slide['custom'];
     209           
     210            $slides_to_save[$i]['youtube_url'] = esc_url_raw($slide['youtube_url']);
     211            $slides_to_save[$i]['youtube_related'] = sanitize_text_field($slide['youtube_related']);
     212           
     213            $slides_to_save[$i]['vimeo_url'] = esc_url_raw($slide['vimeo_url']);
     214           
     215            $slides_to_save[$i]['testimonial'] = wp_kses_post($slide['testimonial']);
     216            $slides_to_save[$i]['testimonial_author'] = sanitize_text_field($slide['testimonial_author']);
     217            $slides_to_save[$i]['testimonial_link'] = esc_url_raw($slide['testimonial_link']);
     218            $slides_to_save[$i]['testimonial_link_target'] = sanitize_text_field($slide['testimonial_link_target']);
     219            $slides_to_save[$i]['testimonial_img'] = (int) $slide['testimonial_img'];
     220       
     221            $i++;
     222        }
     223           
    227224        $slides_to_save = apply_filters('cycloneslider_slides', $slides_to_save); //do filter before saving
    228225       
     
    248245   
    249246    /**
     247     * @param $slug Post slug
     248     *
     249     * @return array|NULL
     250     */
     251    public function get_slider_by_slug( $slug ){
     252        global $wp_version;
     253
     254        $args = array(
     255            'numberposts' => 1 // 1 only
     256        );
     257
     258        $args['name'] = $slug;
     259        if ( version_compare( $wp_version, '4.4', '>=' ) ) { // post_name__in avail only in 4.4
     260            $args['post_name__in'] = array( $slug ); // Workaround: Using "post_name__in" not "name" as WP returns a post instead of nothing when name is ''.
     261        }
     262       
     263        $sliders = $this->get_sliders( $args );
     264        return array_pop($sliders); // Return the lone slideshow or NULL if empty
     265    }
     266
     267    /**
     268     * @param $id_or_slug
     269     *
     270     * @return array|NULL
     271     * @throws Exception on invalid parameter
     272     */
     273    public function get_slider( $id_or_slug ) {
     274        global $wp_version;
     275
     276        $args = array(
     277            'numberposts' => 1 // 1 only
     278        );
     279
     280        if ( is_numeric( $id_or_slug ) ) {
     281            $args['post__in'] = array( $id_or_slug ); // Workaround: Using "post_in" not "p" as WP inserts an ID when p <= 0.
     282        } else if ( is_string( $id_or_slug ) ) {
     283            $args['name'] = $id_or_slug;
     284            if ( version_compare( $wp_version, '4.4', '>=' ) ) { // post_name__in avail only in 4.4
     285                $args['post_name__in'] = array( $id_or_slug ); // Workaround: Using "post_name__in" not "name" as WP returns a post instead of nothing when name is ''.
     286            }
     287        } else {
     288            throw new Exception( sprintf(__( 'Invalid format for get_slider %s parameter.', 'cycloneslider' ), '$id_or_slug') );
     289        }
     290
     291        $sliders = $this->get_sliders( $args );
     292        return array_pop($sliders); // Return the lone slideshow or NULL if empty
     293    }
     294
     295    /**
    250296    * Get Sliders
    251297    *
    252298    * Get all sliders and their accompanying meta data
    253299    *
    254     * @return array|false The array of sliders post and their meta data or false on fail
     300    * @return array Returns an array of sliders
    255301    */
    256302    public function get_sliders( $args=array() ){
    257303        $defaults = array(
    258304            'post_type' => 'cycloneslider',
    259             'numberposts' => -1 // Get all
     305            'post_status' => array('any', 'auto-draft'), // As long as it exist, get it
     306            'numberposts' => -1 // Get all
    260307        );
    261308        $args = wp_parse_args($args, $defaults);
    262309       
    263         $slider_posts = get_posts( $args ); // Use get_posts to avoid filters
    264310        $sliders = array(); // Store it here
    265         if( !empty($slider_posts) and is_array($slider_posts) ){
    266             foreach($slider_posts as $index=>$slider_post){
    267                 $sliders[$index] = (array) $slider_post;
    268                 $sliders[$index]['slider_settings'] = $this->get_slider_settings( $slider_post->ID );
    269                 $sliders[$index]['slides'] = $this->get_slider_slides( $slider_post->ID );
    270             }
    271             return $sliders;
    272         } else {
    273             return false;
    274         }
     311        foreach($this->get_posts( $args ) as $index=>$slider_post){
     312            $sliders[$index] = array(
     313                'id' => $slider_post['ID'],
     314                'name' => $slider_post['post_name'],
     315                'title' => $slider_post['post_title'],
     316                'status' => $slider_post['post_status']
     317            );
     318            $sliders[$index]['slider_settings'] = $this->get_slider_settings( $slider_post['ID'] );
     319            $sliders[$index]['slides'] = $this->get_slider_slides( $slider_post['ID'] );
     320        }
     321        return $sliders;
    275322    }
    276323   
     
    284331    */
    285332    public function get_slider_settings( $slider_id ) {
    286         $meta = get_post_custom( $slider_id );
    287         $slider_settings = array();
    288         if(isset($meta['_cycloneslider_settings'][0]) and !empty($meta['_cycloneslider_settings'][0])){
    289             $slider_settings = maybe_unserialize($meta['_cycloneslider_settings'][0]);
    290         }
     333        $slider_settings = $this->get_post_meta( $slider_id, '_cycloneslider_settings' );
    291334        $slider_settings = wp_parse_args($slider_settings, $this->get_slider_defaults() );
    292335        return apply_filters('cycloneslider_get_slider_settings', $slider_settings);
     
    297340    *
    298341    * @param int $slider_id Post ID of the slider custom post.
    299     * @return array The array of slides settings
     342    * @return array The array of slides or empty array
    300343    */
    301344    public function get_slider_slides( $slider_id ){
    302         $meta = get_post_custom( $slider_id );
    303        
    304         if(isset($meta['_cycloneslider_metas'][0]) and !empty($meta['_cycloneslider_metas'][0])){
    305             $slides = maybe_unserialize($meta['_cycloneslider_metas'][0]);
    306             $defaults = $this->get_slide_defaults();
    307            
    308             foreach($slides as $i=>$slide){
    309                 $slides[$i] = wp_parse_args($slide, $defaults);
    310             }
    311            
    312             return apply_filters('cycloneslider_get_slider_slides', $slides);
    313         }
    314         return false;
    315     }
    316    
    317     /**
    318      * Get Slider by Slug
    319      *
    320      * @param string $slug Post slug of the slider custom post.
    321      * @return array|false The array of slider post and associated meta or false if none found
    322      */
    323     public function get_slider_by_slug( $slug ) {
    324         // Get slider by id
    325         $args = array(
    326             'post_type' => 'cycloneslider',
    327             'numberposts' => 1,
    328             'name'=> $slug
    329         );
    330 
    331         $slider_posts = get_posts( $args ); // Use get_posts to avoid filters
    332 
    333         if( isset($slider_posts[0]) ){
    334             $slider_post = $slider_posts[0];
    335            
    336             $slider = (array) $slider_post;
    337             $slider['slider_settings'] = $this->get_slider_settings( $slider_post->ID );
    338             $slider['slides'] = $this->get_slider_slides( $slider_post->ID );
    339            
    340             return $slider;
    341         }
    342        
    343         return false;
     345        $slides = $this->get_post_meta( $slider_id, '_cycloneslider_metas' );
     346       
     347        $defaults = $this->get_slide_defaults();
     348        foreach($slides as $i=>$slide){
     349            $slides[$i] = wp_parse_args($slide, $defaults);
     350        }
     351       
     352        return apply_filters('cycloneslider_get_slider_slides', $slides);
    344353    }
    345354   
     
    348357    *
    349358    * @param int $slider_id Post ID of slider custom post
    350     * @return int|0 Total images or zero
     359    * @return int Total slides
    351360    */
    352361    public function get_slide_count( $slider_id ){
    353         $meta = get_post_custom( $slider_id );
    354        
    355         if(isset($meta['_cycloneslider_metas'][0]) and !empty($meta['_cycloneslider_metas'][0])){
    356             $slides = maybe_unserialize($meta['_cycloneslider_metas'][0]);
    357            
    358             return count($slides);
    359         }
    360         return 0;
     362        $slides = $this->get_post_meta( $slider_id, '_cycloneslider_metas' );
     363       
     364        return count($slides);
    361365    }
    362366   
     
    559563    */
    560564    public function get_settings_page_data(){
    561         return get_option( $this->settings_page_properties['option_name'], $this->get_default_settings_page_data() );
     565        $option = get_option( $this->settings_page_properties['option_name'], array() );
     566        return wp_parse_args($option, $this->get_default_settings_page_data());
    562567    }
    563568   
     
    567572    public function get_default_settings_page_data() {
    568573        $defaults = array();
     574
     575        $defaults['legacy'] = 0;
     576
    569577        $defaults['load_scripts_in'] = 'footer';
    570578       
     
    595603    *
    596604    *
    597     * @param array $slider_meta Slide settings array.
    598     * @param array $slider_settings Slider settings array.
    599     * @param string $slider_id HTML ID of slideshow.
    600     * @param int $slider_count Current slideshow count.
    601     * @return string Data attributes for slide.
     605    * @param array $slide Slide settings array.
     606    * @param array $slider Slider array.
     607    *
     608    * @return string data-* attributes for slide.
    602609    */
    603     public function slide_data_attributes($slider_meta, $slider_settings=array()){
    604         $cycle2_settings = array();
    605         if(!empty($slider_meta['enable_slide_effects'])){
    606             $cycle2_settings['data-cycle-fx'] = $slider_meta['fx'];
    607            
    608             if(!empty($slider_meta['speed'])) {
    609                 $cycle2_settings['data-cycle-speed'] = $slider_meta['speed'];
     610    public function slide_data_attributes($slide, $slider){
     611        $data_attrib = array();
     612        if($slide['fx'] != 'default'){
     613            $data_attrib['data-cycle-fx'] = $slide['fx'];
     614        }
     615        if($slide['speed'] !== '') {
     616            $data_attrib['data-cycle-speed'] = $slide['speed'];
     617        }
     618        if($slide['timeout'] !== '') {
     619            $data_attrib['data-cycle-timeout'] = $slide['timeout'];
     620        }
     621        if($slide['fx']=='tileBlind' or $slide['fx']=='tileSlide'){
     622            if($slide['tile_count'] !== '') {
     623                $data_attrib['data-cycle-tile-count'] = $slide['tile_count'];
    610624            }
    611             if(!empty($slider_meta['timeout'])) {
    612                 $cycle2_settings['data-cycle-timeout'] = $slider_meta['timeout'];
     625            if($slide['tile_delay'] !== '') {
     626                $data_attrib['data-cycle-tile-delay'] = $slide['tile_delay'];
    613627            }
    614             if($slider_meta['fx']=='tileBlind' or $slider_meta['fx']=='tileSlide'){
    615                 if(!empty($slider_meta['tile_count'])) {
    616                     $cycle2_settings['data-cycle-tile-count'] = $slider_meta['tile_count'];
    617                 }
    618                 if(!empty($slider_meta['tile_delay'])) {
    619                     $cycle2_settings['data-cycle-tile-delay'] = $slider_meta['tile_delay'];
    620                 }
    621                 $cycle2_settings['data-cycle-tile-vertical'] = $slider_meta['tile_vertical'];
    622             }
    623            
    624         }
    625         $cycle2_settings = apply_filters('cyclone_cycle2_slide_settings_array', $cycle2_settings, $slider_meta, $slider_settings);
     628            $data_attrib['data-cycle-tile-vertical'] = $slide['tile_vertical'];
     629        }
     630       
     631        $data_attrib = apply_filters('cycloneslider_slide_data_attributes', $data_attrib, $slide, $slider);
    626632       
    627633        $out = '';
    628         foreach($cycle2_settings as $data_attr=>$value){ //Array to html string
     634        foreach($data_attrib as $data_attr=>$value){ // Array to html string
    629635            $out .= ' '.$data_attr.'="'.esc_attr($value).'" ';
    630636        }
     
    793799            'testimonial_author' => '',
    794800            'testimonial_link' => '',
    795             'testimonial_link_target' => '_self'
     801            'testimonial_link_target' => '_self',
     802            'testimonial_img' => ''
    796803        );
    797804    }
     
    805812        if(version_compare(PHP_VERSION, '5.3', '>=')) { // 5.3+
    806813            return array(
    807                 'fit'      => 'Fit',
    808                 'fill'     => 'Fill',
    809                 'crop'     => 'Crop',
    810                 'exact'      => 'Exact',
    811                 'exactWidth' => 'Exact Width',
    812                 'exactHeight'  => 'Exact Height'
     814                'fit'      => __('Fit', 'cycloneslider'),
     815                'fill'     => __('Fill', 'cycloneslider'),
     816                'crop'     => __('Crop', 'cycloneslider'),
     817                'exact'      => __('Exact', 'cycloneslider'),
     818                'exactWidth' => __('Exact Width', 'cycloneslider'),
     819                'exactHeight'  => __('Exact Height', 'cycloneslider')
    813820            );
    814821        } else { // 5.2
    815822            return array(
    816                 'auto'      => 'Auto',
    817                 'crop'      => 'Crop',
    818                 'exact'     => 'Exact',
    819                 'landscape' => 'Landscape',
    820                 'portrait'  => 'Portrait'
     823                'auto'      => __('Auto', 'cycloneslider'),
     824                'crop'      => __('Crop', 'cycloneslider'),
     825                'exact'     => __('Exact', 'cycloneslider'),
     826                'landscape' => __('Landscape', 'cycloneslider'),
     827                'portrait'  => __('Portrait', 'cycloneslider')
    821828            );
    822829        }
     
    830837    public function get_slide_effects(){
    831838        return array(
    832             'fade'=>'Fade',
    833             'fadeout'=>'Fade Out',
    834             'none'=>'None',
    835             'scrollHorz'=>'Scroll Horizontally',
    836             'tileBlind'=>'Tile Blind',
    837             'tileSlide'=>'Tile Slide'
     839            'fade'=>__('Fade', 'cycloneslider'),
     840            'fadeout'=>__('Fade Out', 'cycloneslider'),
     841            'none'=>__('None', 'cycloneslider'),
     842            'scrollHorz'=>__('Scroll Horizontally', 'cycloneslider'),
     843            'tileBlind'=>__('Tile Blind', 'cycloneslider'),
     844            'tileSlide'=>__('Tile Slide', 'cycloneslider')
    838845        );
    839846    }
     
    847854        return array(
    848855            array(
    849                 'text' => 'Default',
     856                'text' => __('Default', 'cycloneslider'),
    850857                'value' => ''
    851858            ),
    852859            array(
    853                 'text' => 'Swing',
     860                'text' => __('Swing', 'cycloneslider'),
    854861                'value' => 'swing'
    855862            ),
    856863            array(
    857                 'text' => 'Ease-In Quad',
     864                'text' => __('Ease-In Quad', 'cycloneslider'),
    858865                'value' => 'easeInQuad'
    859866            ),
    860867            array(
    861                 'text' => 'Ease-Out Quad',
     868                'text' => __('Ease-Out Quad', 'cycloneslider'),
    862869                'value' => 'easeOutQuad'
    863870            ),
    864871            array(
    865                 'text' => 'Ease-In OutQuad',
     872                'text' => __('Ease-In OutQuad', 'cycloneslider'),
    866873                'value' => 'easeInOutQuad'
    867874            ),
    868875            array(
    869                 'text' => 'Ease-In Cubic',
     876                'text' => __('Ease-In Cubic', 'cycloneslider'),
    870877                'value' => 'easeInCubic'
    871878            ),
    872879            array(
    873                 'text' => 'Ease-Out Cubic',
     880                'text' => __('Ease-Out Cubic', 'cycloneslider'),
    874881                'value' => 'easeOutCubic'
    875882            ),
    876883            array(
    877                 'text' => 'Ease-In OutCubic',
     884                'text' => __('Ease-In OutCubic', 'cycloneslider'),
    878885                'value' => 'easeInOutCubic'
    879886            ),
    880887            array(
    881                 'text' => 'Ease-In Quart',
     888                'text' => __('Ease-In Quart', 'cycloneslider'),
    882889                'value' => 'easeInQuart'
    883890            ),
    884891            array(
    885                 'text' => 'Ease-Out Quart',
     892                'text' => __('Ease-Out Quart', 'cycloneslider'),
    886893                'value' => 'easeOutQuart'
    887894            ),
    888895            array(
    889                 'text' => 'Ease-In OutQuart',
     896                'text' => __('Ease-In OutQuart', 'cycloneslider'),
    890897                'value' => 'easeInOutQuart'
    891898            ),
    892899            array(
    893                 'text' => 'Ease-In Quint',
     900                'text' => __('Ease-In Quint', 'cycloneslider'),
    894901                'value' => 'easeInQuint'
    895902            ),
    896903            array(
    897                 'text' => 'Ease-Out Quint',
     904                'text' => __('Ease-Out Quint', 'cycloneslider'),
    898905                'value' => 'easeOutQuint'
    899906            ),
    900907            array(
    901                 'text' => 'Ease-In OutQuint',
     908                'text' => __('Ease-In OutQuint', 'cycloneslider'),
    902909                'value' => 'easeInOutQuint'
    903910            ),
    904911            array(
    905                 'text' => 'Ease-In Sine',
     912                'text' => __('Ease-In Sine', 'cycloneslider'),
    906913                'value' => 'easeInSine'
    907914            ),
    908915            array(
    909                 'text' => 'Ease-Out Sine',
     916                'text' => __('Ease-Out Sine', 'cycloneslider'),
    910917                'value' => 'easeOutSine'
    911918            ),
    912919            array(
    913                 'text' => 'Ease-In OutSine',
     920                'text' => __('Ease-In OutSine', 'cycloneslider'),
    914921                'value' => 'easeInOutSine'
    915922            ),
    916923            array(
    917                 'text' => 'Ease-In Expo',
     924                'text' => __('Ease-In Expo', 'cycloneslider'),
    918925                'value' => 'easeInExpo'
    919926            ),
    920927            array(
    921                 'text' => 'Ease-Out Expo',
     928                'text' => __('Ease-Out Expo', 'cycloneslider'),
    922929                'value' => 'easeOutExpo'
    923930            ),
    924931            array(
    925                 'text' => 'Ease-In OutExpo',
     932                'text' => __('Ease-In OutExpo', 'cycloneslider'),
    926933                'value' => 'easeInOutExpo'
    927934            ),
    928935            array(
    929                 'text' => 'Ease-In Circ',
     936                'text' => __('Ease-In Circ', 'cycloneslider'),
    930937                'value' => 'easeInCirc'
    931938            ),
    932939            array(
    933                 'text' => 'Ease-Out Circ',
     940                'text' => __('Ease-Out Circ', 'cycloneslider'),
    934941                'value' => 'easeOutCirc'
    935942            ),
    936943            array(
    937                 'text' => 'Ease-In OutCirc',
     944                'text' => __('Ease-In OutCirc', 'cycloneslider'),
    938945                'value' => 'easeInOutCirc'
    939946            ),
    940947            array(
    941                 'text' => 'Ease-In Elastic',
     948                'text' => __('Ease-In Elastic', 'cycloneslider'),
    942949                'value' => 'easeInElastic'
    943950            ),
    944951            array(
    945                 'text' => 'Ease-Out Elastic',
     952                'text' => __('Ease-Out Elastic', 'cycloneslider'),
    946953                'value' => 'easeOutElastic'
    947954            ),
    948955            array(
    949                 'text' => 'Ease-In OutElastic',
     956                'text' => __('Ease-In OutElastic', 'cycloneslider'),
    950957                'value' => 'easeInOutElastic'
    951958            ),
    952959            array(
    953                 'text' => 'Ease-In Back',
     960                'text' => __('Ease-In Back', 'cycloneslider'),
    954961                'value' => 'easeInBack'
    955962            ),
    956963            array(
    957                 'text' => 'Ease-Out Back',
     964                'text' => __('Ease-Out Back', 'cycloneslider'),
    958965                'value' => 'easeOutBack'
    959966            ),
    960967            array(
    961                 'text' => 'Ease-In OutBack',
     968                'text' => __('Ease-In OutBack', 'cycloneslider'),
    962969                'value' => 'easeInOutBack'
    963970            ),
    964971            array(
    965                 'text' => 'Ease-In Bounce',
     972                'text' => __('Ease-In Bounce', 'cycloneslider'),
    966973                'value' => 'easeInBounce'
    967974            ),
    968975            array(
    969                 'text' => 'Ease-Out Bounce',
     976                'text' => __('Ease-Out Bounce', 'cycloneslider'),
    970977                'value' => 'easeOutBounce'
    971978            ),
    972979            array(
    973                 'text' => 'Ease-In OutBounce',
     980                'text' => __('Ease-In OutBounce', 'cycloneslider'),
    974981                'value' => 'easeInOutBounce'
    975982            )
    976983        );
    977984    }
     985
     986    /**
     987     * Wrapper for WP get_posts.
     988     *
     989     * @param array $args The same as WP get_posts
     990     *
     991     * @return array An assoc array of posts or empty array
     992     */
     993    public function get_posts( array $args ) {
     994        $posts   = get_posts( $args ); // Returns array
     995        $results = array(); // Store it here
     996        if ( ! empty( $posts ) and is_array( $posts ) ) {
     997            foreach ( $posts as $index => $post ) {
     998                $results[ $index ] = (array) $post; // Obj to assoc array
     999            }
     1000        }
     1001        return $results;
     1002    }
     1003
     1004    /**
     1005     * Wrapper for WP get_post_custom that automatically unserialize data.
     1006     *
     1007     * @param int $post_id ID of post
     1008     * @param string $key Meta key name
     1009     *
     1010     * @return array Array of data or empty array
     1011     */
     1012    public function get_post_meta( $post_id, $key ) {
     1013        $meta = get_post_custom( $post_id );
     1014        if ( isset( $meta[ $key ][0] ) and ! empty( $meta[ $key ][0] ) ) {
     1015            return maybe_unserialize( $meta[ $key ][0] );
     1016        }
     1017        return array();
     1018    }
     1019
     1020    private function _add_save_hook($wp_version){
     1021        // Use better hook if available
     1022        if ( version_compare( $wp_version, '3.7', '>=' ) ) {
     1023            add_action( "save_post_cycloneslider", array( $this, 'save_post_hook' ) );
     1024        } else {
     1025            add_action( 'save_post', array( $this, 'save_post_hook' ) );
     1026        }
     1027    }
     1028
     1029    private function _remove_save_hook($wp_version){
     1030        // Use better hook if available
     1031        if ( version_compare( $wp_version, '3.7', '>=' ) ) {
     1032            remove_action( "save_post_cycloneslider", array( $this, 'save_post_hook' ) );
     1033        } else {
     1034            remove_action( 'save_post', array( $this, 'save_post_hook' ) );
     1035        }
     1036    }
    9781037}
    9791038
  • cyclone-slider-2/trunk/src/CycloneSlider/ExportPage.php

    r1381774 r1690000  
    6262        $vars['tabs'] = array(
    6363            array(
    64                 'title' => __('Export', 'cyclone-slider-2'),
     64                'title' => __('Export', 'cycloneslider'),
    6565                'url' => $this->export_page_url,
    6666                'classes' => 'nav-tab nav-tab-active'
    6767            ),
    6868            array(
    69                 'title' => __('Import', 'cyclone-slider-2'),
     69                'title' => __('Import', 'cycloneslider'),
    7070                'url' => $this->import_page_url,
    7171                'classes' => 'nav-tab'
     
    7575        $vars['error'] = get_transient( 'cycloneslider_error_export');
    7676        if(!class_exists('ZipArchive')){
    77             $vars['error'] = __( 'ZipArchive not supported. ZipArchive is needed for Import and Export to work.', 'cyclone-slider-2' );
     77            $vars['error'] = __( 'ZipArchive not supported. ZipArchive is needed for Import and Export to work.', 'cycloneslider' );
    7878        }
    7979        delete_transient( 'cycloneslider_error_export');
     
    111111        $zip_file = $this->wp_content_dir.'/cyclone-slider/exports/'.$vars['page_data']['file_name'];
    112112       
    113         $vars['ok'] = __('Your export file is ready. Click Download.', 'cyclone-slider-2');
     113        $vars['ok'] = __('Your export file is ready. Click Download.', 'cycloneslider');
    114114        try {
    115115            // Create exports dir
    116116            if( is_dir( $this->wp_content_dir.'/cyclone-slider/exports' ) == false ){
    117117                if( ! mkdir( $this->wp_content_dir.'/cyclone-slider/exports', 0777, true ) ){
    118                     throw new Exception( __('Error creating exports directory.', 'cyclone-slider-2'));
     118                    throw new Exception( __('Error creating exports directory.', 'cycloneslider'));
    119119                }
    120120            }
     
    165165       
    166166        if( empty( $post[$this->transient_name]['sliders']) ){
    167             set_transient( 'cycloneslider_error_export', __('No slider selected.', 'cyclone-slider-2'), 60 );
     167            set_transient( 'cycloneslider_error_export', __('No slider selected.', 'cycloneslider'), 60 );
    168168            return false;
    169169        }
    170170       
    171171        if( empty( $post[$this->transient_name]['file_name'] ) ){
    172             set_transient( 'cycloneslider_error_export', __('Please choose a file name.', 'cyclone-slider-2'), 60 );
     172            set_transient( 'cycloneslider_error_export', __('Please choose a file name.', 'cycloneslider'), 60 );
    173173            return false;
    174174        }
  • cyclone-slider-2/trunk/src/CycloneSlider/ExportPageNextgen.php

    r1381774 r1690000  
    6060        $vars['tabs'] = array(
    6161            array(
    62                 'title' => __('Export', 'cyclone-slider-2'),
     62                'title' => __('Export', 'cycloneslider'),
    6363                'url' => $this->export_page_url,
    6464                'classes' => 'nav-tab'
    6565            ),
    6666            array(
    67                 'title' => __('Import', 'cyclone-slider-2'),
     67                'title' => __('Import', 'cycloneslider'),
    6868                'url' => $this->import_page_url,
    6969                'classes' => 'nav-tab'
    7070            ),
    7171            array(
    72                 'title' => __('Export Nextgen', 'cyclone-slider-2'),
     72                'title' => __('Export Nextgen', 'cycloneslider'),
    7373                'url' => $this->nextgen_page_url,
    7474                'classes' => 'nav-tab nav-tab-active'
     
    116116        $zip_file = $this->wp_content_dir.'/cyclone-slider/exports/'.$vars['page_data']['file_name'];
    117117       
    118         $vars['ok'] = __('Your export file is ready. Click Download.', 'cyclone-slider-2');
     118        $vars['ok'] = __('Your export file is ready. Click Download.', 'cycloneslider');
    119119        try {
    120120            // Create exports dir
    121121            if( is_dir( $this->wp_content_dir.'/cyclone-slider/exports' ) == false ){
    122122                if( ! mkdir( $this->wp_content_dir.'/cyclone-slider/exports', 0777, true ) ){
    123                     throw new Exception( __('Error creating exports directory.', 'cyclone-slider-2'));
     123                    throw new Exception( __('Error creating exports directory.', 'cycloneslider'));
    124124                }
    125125            }
     
    170170       
    171171        if( empty( $post[$this->transient_name]['sliders']) ){
    172             set_transient( 'cycloneslider_error_export', __('No slider selected.', 'cyclone-slider-2'), 60 );
     172            set_transient( 'cycloneslider_error_export', __('No slider selected.', 'cycloneslider'), 60 );
    173173            return false;
    174174        }
    175175       
    176176        if( empty( $post[$this->transient_name]['file_name'] ) ){
    177             set_transient( 'cycloneslider_error_export', __('Please choose a file name.', 'cyclone-slider-2'), 60 );
     177            set_transient( 'cycloneslider_error_export', __('Please choose a file name.', 'cycloneslider'), 60 );
    178178            return false;
    179179        }
  • cyclone-slider-2/trunk/src/CycloneSlider/Exporter.php

    r1381774 r1690000  
    5050        // Check selected sliders
    5151        if( empty($sliders_slugs_array) ){
    52             throw new Exception( __('Error no sliders selected.', 'cyclone-slider-2'), 1);
     52            throw new Exception( __('Error no sliders selected.', 'cycloneslider'), 1);
    5353        }
    5454       
     
    7171        $export_json = json_encode( $export_data );
    7272        if( false === $export_json ){
    73             throw new Exception( __('Error encoding data to JSON.', 'cyclone-slider-2'), 1);
     73            throw new Exception( __('Error encoding data to JSON.', 'cycloneslider'), 1);
    7474        }
    7575       
     
    7777        $this->generate_export_zip( $zip_file, $images_list, $export_json );
    7878       
    79         $this->add_ok( sprintf( __('Success generating zip %s.', 'cyclone-slider-2'), wp_basename($zip_file) ) );
     79        $this->add_ok( sprintf( __('Success generating zip %s.', 'cycloneslider'), wp_basename($zip_file) ) );
    8080       
    8181        return true;
     
    102102            if($slider){
    103103                $sliders_export_data[$i] = array(
    104                     'title' => $slider['post_title'],
    105                     'name' => $slider['post_name'],
     104                    'title' => $slider['title'],
     105                    'name' => $slider['name'],
    106106                    'slider_settings' => $slider['slider_settings'],
    107107                    'slides' => $slider['slides']
    108108                );
    109                 $this->add_ok( sprintf( __('Exporting data for slider "%s".', 'cyclone-slider-2'), $slider_slug) );
     109                $this->add_ok( sprintf( __('Exporting data for slider "%s".', 'cycloneslider'), $slider_slug) );
    110110            } else {
    111                 throw new Exception( sprintf( __('Slider "%s" not found.', 'cyclone-slider-2'), $slider_slug), 3);
     111                throw new Exception( sprintf( __('Slider "%s" not found.', 'cycloneslider'), $slider_slug), 3);
    112112            }
    113113        }
     
    136136                        $images_list[ $slider['name'] ][ $i ] = $file;
    137137                    } else {
    138                         throw new Exception( sprintf( __('Image %1$d was not found on slide %2$d of slider %3$s. Path to image is %4$s.', 'cyclone-slider-2' ), $slide['id'], (int)$i+1, $slider['name'], $file ), 4 );
     138                        throw new Exception( sprintf( __('Image %1$d was not found on slide %2$d of slider %3$s. Path to image is %4$s.', 'cycloneslider' ), $slide['id'], (int)$i+1, $slider['name'], $file ), 4 );
    139139                    }
    140140                }
     
    180180
    181181        if( !class_exists('ZipArchive') ) {
    182             throw new Exception( __( 'ZipArchive not supported.', 'cyclone-slider-2' ) );
     182            throw new Exception( __( 'ZipArchive not supported.', 'cycloneslider' ) );
    183183        }
    184184        $zip_archive_class_name = $this->zip_archive;
     
    186186        $result = $zip->open( $zip_file, ZipArchive::CREATE | ZipArchive::OVERWRITE );
    187187        if ( true !== $result ) {
    188             throw new Exception( sprintf( __( 'Error opening zip file %s. Code: %s', 'cyclone-slider-2' ), $zip_file, $result ) );
     188            throw new Exception( sprintf( __( 'Error opening zip file %s. Code: %s', 'cycloneslider' ), $zip_file, $result ) );
    189189        }
    190190       
     
    195195                    $filename = sanitize_file_name( wp_basename( $image_file ) );
    196196                    if( $zip->addFile( $image_file, $filename ) === false ){
    197                         throw new Exception( sprintf( __( 'Error adding file %s to zip.', 'cyclone-slider-2' ), $image_file ) );
     197                        throw new Exception( sprintf( __( 'Error adding file %s to zip.', 'cycloneslider' ), $image_file ) );
    198198                    } else {
    199                         $this->add_ok( sprintf( __('File %s added to zip.', 'cyclone-slider-2'), wp_basename($image_file) ) );
     199                        $this->add_ok( sprintf( __('File %s added to zip.', 'cycloneslider'), wp_basename($image_file) ) );
    200200                    }
    201201                }
     
    205205        // Add json file
    206206        $zip->addFromString($this->export_json_file, $export_json );
    207         $this->add_ok( sprintf( __('File %s added to zip.', 'cyclone-slider-2' ), $this->export_json_file) );
     207        $this->add_ok( sprintf( __('File %s added to zip.', 'cycloneslider' ), $this->export_json_file) );
    208208       
    209209        $zip->close();
  • cyclone-slider-2/trunk/src/CycloneSlider/Frontend.php

    r1450024 r1690000  
    8787                'dynamic_height'   => null,
    8888                'delay'            => null,
    89                 'swipe'            => null,
     89                'swipe'            => true, // TODO: Proper fix for swipe
    9090                'width_management' => null
    9191            ),
     
    9898
    9999        // Abort if slider not found!
    100         if ( $slider === false ) {
    101             return sprintf( __( '[Slideshow "%s" not found]', 'cyclone-slider-2' ), $slider_slug );
     100        if ( $slider === NULL ) {
     101            return sprintf( __( '[Slideshow "%s" not found]', 'cycloneslider' ), $slider_slug );
    102102        }
    103103
     
    107107
    108108        // Assign important variables
    109         $admin_settings = isset( $slider['slider_settings'] ) ? $slider['slider_settings'] : array(); // Assign slider settings
    110         $slides         = isset( $slider['slides'] ) ? $slider['slides'] : array(); // Assign slides
     109        // $slider_settings = $slider['slider_settings'];
     110        // $slides = $slider['slides'];
     111        $admin_settings = $slider['slider_settings']; // Assign slider settings
     112        $slides         = $slider['slides']; // Assign slides
    111113
    112114        $template_name = $admin_settings['template'];
    113115        $view_file     = $this->data->get_view_file( $template_name );
    114 
    115 
    116116        if ( $view_file === false ) { // Abort if template not found!
    117             return sprintf( __( '[Template "%s" not found]', 'cyclone-slider-2' ), $template_name );
     117            return sprintf( __( '[Template "%s" not found]', 'cycloneslider' ), $template_name );
    118118        }
    119119
     
    126126        $vimeo_count   = 0; // Number of Vimeo slides
    127127
     128        // Remove hidden slides
    128129        foreach ( $slides as $i => $slide ) {
    129130            if ( $slides[ $i ]['hidden'] ) {
     
    131132            }
    132133        }
     134
    133135        // Do some last minute logic
    134136        // Translations and counters
     
    137139            $slides[ $i ]['title']                 = __( $slide['title'] ); // Needed by some translation plugins to work
    138140            $slides[ $i ]['description']           = __( $slide['description'] ); // Needed by some translation plugins to work
    139             $slides[ $i ]['slide_data_attributes'] = $this->data->slide_data_attributes( $slide, $slider_settings );
     141            $slides[ $i ]['slide_data_attributes'] = $this->data->slide_data_attributes( $slide, $slider );
    140142
    141143            if ( $slides[ $i ]['type'] == 'image' ) {
     
    176178                $vimeo_id = $this->vimeo->get_vimeo_id( $slides[ $i ]['vimeo_url'] );
    177179
    178                 $slides[ $i ]['vimeo_embed_code'] = '<iframe id="' . $slider_html_id . '-iframe-' . $i . '" width="' . $slider_settings['width'] . '" height="' . $slider_settings['height'] . '" src="http://player.vimeo.com/video/' . $vimeo_id . '?api=1&wmode=transparent" frameborder="0"  webkitAllowFullScreen mozallowfullscreen allowFullScreen></iframe>';
     180                $slides[ $i ]['vimeo_embed_code'] = '<iframe id="' . $slider_html_id . '-iframe-' . $i . '" width="' . $slider_settings['width'] . '" height="' . $slider_settings['height'] . '" src="https://player.vimeo.com/video/' . $vimeo_id . '?wmode=transparent" frameborder="0"  webkitAllowFullScreen mozallowfullscreen allowFullScreen></iframe>';
    179181                $slides[ $i ]['vimeo_id']         = $vimeo_id;
    180182                $slides[ $i ]['thumbnail_small']  = $this->vimeo->get_vimeo_thumb( $vimeo_id );
     183            } else if ( $slides[ $i ]['type'] == 'testimonial' ) {
     184                list( $full_image_url, $orig_width, $orig_height ) = wp_get_attachment_image_src( $slide['testimonial_img'],
     185                    'full' );
     186
     187                $slides[ $i ]['testimonial_img_url'] = $slides[ $i ]['full_testimonial_img_url'] = $full_image_url;
    181188            }
    182189        }
     
    186193            shuffle( $slides ); // Randomizing happens in php not in cycle2
    187194        }
     195
    188196        // Make this available in templates regardless
    189197        $slider_settings['random'] = ( $slider_settings['random'] == 1 ) ? true : false; // Convert from int to bool
     
    211219        $vars['youtube_count']   = $youtube_count;
    212220        $vars['vimeo_count']     = $vimeo_count;
    213         $vars['slider_id']       = $slider_slug; //TODO: (Deprecated since 2.6.0, use $slider_html_id instead) Unique string to identify the slideshow.
    214         $vars['slider_metas']    = $slides; //TODO: (Deprecated since 2.5.5, use $slides instead) An array containing slides properties.
     221        // $vars['slider_id']       = $slider_slug; //TODO: (Deprecated since 2.6.0, use $slider_html_id instead) Unique string to identify the slideshow.
     222        // $vars['slider_metas']    = $slides; //TODO: (Deprecated since 2.5.5, use $slides instead) An array containing slides properties.
    215223        $vars['slider_settings'] = $slider_settings;
    216224
  • cyclone-slider-2/trunk/src/CycloneSlider/ImportPage.php

    r1381774 r1690000  
    6161        $vars['error'] = get_transient( 'cycloneslider_error_import');
    6262        if(!class_exists('ZipArchive')){
    63             $vars['error'] = __( 'ZipArchive not supported. ZipArchive is needed for Import and Export to work.', 'cyclone-slider-2' );
     63            $vars['error'] = __( 'ZipArchive not supported. ZipArchive is needed for Import and Export to work.', 'cycloneslider' );
    6464        }
    6565        delete_transient( 'cycloneslider_error_import');
     
    6767        $vars['tabs'] = array(
    6868            array(
    69                 'title' => __('Export', 'cyclone-slider-2'),
     69                'title' => __('Export', 'cycloneslider'),
    7070                'url' => $this->export_page_url,
    7171                'classes' => 'nav-tab'
    7272            ),
    7373            array(
    74                 'title' => __('Import', 'cyclone-slider-2'),
     74                'title' => __('Import', 'cycloneslider'),
    7575                'url' => $this->import_page_url,
    7676                'classes' => 'nav-tab nav-tab-active'
     
    114114        }
    115115       
    116         $vars['ok'] = __('Import operation success!', 'cyclone-slider-2' );
     116        $vars['ok'] = __('Import operation success!', 'cycloneslider' );
    117117       
    118118        $this->view->render('import-step-3.php', $vars);
  • cyclone-slider-2/trunk/src/CycloneSlider/Importer.php

    r1381774 r1690000  
    3333        // Check zip support
    3434        if( !class_exists('ZipArchive') ){
    35             throw new Exception( __('Could not read zip files. ZipArchive not supported.', 'cyclone-slider-2'), 1);
     35            throw new Exception( __('Could not read zip files. ZipArchive not supported.', 'cycloneslider'), 1);
    3636        }
    3737       
    3838        // Check zip
    3939        if( !is_file( $uploaded_zip ) ){
    40             throw new Exception( __('No zip file found.', 'cyclone-slider-2'), 1);
     40            throw new Exception( __('No zip file found.', 'cycloneslider'), 1);
    4141        }
    4242       
     
    4444        if( is_dir( $this->imports_dir ) == false ){
    4545            if( ! mkdir( $this->imports_dir, 0777, true ) ){
    46                 throw new Exception( __('Error creating imports directory.', 'cyclone-slider-2'), 2);
     46                throw new Exception( __('Error creating imports directory.', 'cycloneslider'), 2);
    4747            }
    4848        }
     
    5151        $zip_file = $this->imports_dir.'/'.$this->zip_name;
    5252        if ( ! move_uploaded_file( $uploaded_zip, $zip_file ) ){
    53             throw new Exception( __('Error moving uploaded zip.', 'cyclone-slider-2'), 3);
     53            throw new Exception( __('Error moving uploaded zip.', 'cycloneslider'), 3);
    5454        }
    5555       
     
    5858        $zip_result = $zip->open( $zip_file, ZipArchive::CHECKCONS);
    5959        if( true !== $zip_result ){
    60             throw new Exception( sprintf( __('Error opening zip: %s', 'cyclone-slider-2'), $this->get_zip_error( $zip_result ) ), 4);
     60            throw new Exception( sprintf( __('Error opening zip: %s', 'cycloneslider'), $this->get_zip_error( $zip_result ) ), 4);
    6161        }
    6262
     
    7171                    $export_json_found = true;
    7272                    if( null === json_decode($entry) ){  // Not a valid JSON
    73                         throw new Exception( sprintf( __('Security error. Invalid %s file.', 'cyclone-slider-2'), $name ) );
     73                        throw new Exception( sprintf( __('Security error. Invalid %s file.', 'cycloneslider'), $name ) );
    7474                    }
    7575                } else {
     
    7878                        imagedestroy($im);
    7979                    } else { // Not an image
    80                         throw new Exception( sprintf( __('Security error. File %s is not an image.', 'cyclone-slider-2'), $name ) );
     80                        throw new Exception( sprintf( __('Security error. File %s is not an image.', 'cycloneslider'), $name ) );
    8181                    }
    8282                }
     
    8484        }
    8585        if(!$export_json_found) {
    86             throw new Exception( sprintf( __('Security error. Missing %s file.', 'cyclone-slider-2'), 'export.json' ) );
     86            throw new Exception( sprintf( __('Security error. Missing %s file.', 'cycloneslider'), 'export.json' ) );
    8787        }
    8888
     
    9090        $extraction_dir = $this->imports_extracts_dir;
    9191        if( $zip->extractTo( $extraction_dir ) === false ){
    92             throw new Exception( __('Error extracting zip.', 'cyclone-slider-2'), 5);
     92            throw new Exception( __('Error extracting zip.', 'cycloneslider'), 5);
    9393        }
    9494        $zip->close();
     
    9797        $json_file = $extraction_dir.'/'.$this->export_json_file;
    9898        if( ($export_string = file_get_contents( $json_file )) === false ){
    99             throw new Exception( __('Failed to read export JSON.', 'cyclone-slider-2'), 6);
     99            throw new Exception( __('Failed to read export JSON.', 'cycloneslider'), 6);
    100100        }
    101101       
    102102        // Decode JSON
    103103        if( ($export_data = json_decode($export_string, true)) == false ) {
    104             throw new Exception( __('Failed to decode JSON.', 'cyclone-slider-2'), 7);
     104            throw new Exception( __('Failed to decode JSON.', 'cycloneslider'), 7);
    105105        }
    106106
     
    173173        $target_folder_files = scandir($target_folder);
    174174        if( false === $target_folder_files ){
    175             throw new Exception( sprintf( __('scandir failed on %s', 'cyclone-slider-2'), $target_folder), 8 );
     175            throw new Exception( sprintf( __('scandir failed on %s', 'cycloneslider'), $target_folder), 8 );
    176176        }
    177177       
     
    189189    private function copy_image( $src_image_file, $dest_image_file ){
    190190        if( ! file_exists($src_image_file) ){
    191             throw new Exception( sprintf( __('Source image %s not found.', 'cyclone-slider-2'), $src_image_file ), 9);
     191            throw new Exception( sprintf( __('Source image %s not found.', 'cycloneslider'), $src_image_file ), 9);
    192192        }
    193193       
    194194        if( ! copy($src_image_file, $dest_image_file) ){
    195             throw new Exception( __('Copy error.', 'cyclone-slider-2'), 10);
     195            throw new Exception( __('Copy error.', 'cycloneslider'), 10);
    196196        }
    197197    }
  • cyclone-slider-2/trunk/src/CycloneSlider/NextgenIntegration.php

    r1381774 r1690000  
    3737        add_meta_box(
    3838            'cyclone-nextgen-metabox',
    39             __('NextGEN Integration', 'cyclone-slider-2'),
     39            __('NextGEN Integration', 'cycloneslider'),
    4040            array( $this, 'render_nextgen_meta_box' ),
    4141            'cycloneslider' ,
     
    5353        ?>
    5454        <div class="cycloneslider-field last">
    55             <label for="cycloneslider_nextgen_gallery"><?php _e('Choose a NextGEN Gallery', 'cyclone-slider-2'); ?></label>
     55            <label for="cycloneslider_nextgen_gallery"><?php _e('Choose a NextGEN Gallery', 'cycloneslider'); ?></label>
    5656            <?php
    5757            $galleries = $nggdb->find_all_galleries();
     
    6363                <?php endforeach; ?>
    6464            </select>
    65             <input type="submit" name="cycloneslider_settings[nextgen]" value="<?php _e('Import', 'cyclone-slider-2'); ?>" class="button-secondary" />
     65            <input type="submit" name="cycloneslider_settings[nextgen]" value="<?php _e('Import', 'cycloneslider'); ?>" class="button-secondary" />
    6666            <br />
    67             <span class="note"><?php _e('Select a gallery to import images from. Images will be added as new slides.', 'cyclone-slider-2'); ?></span>
     67            <span class="note"><?php _e('Select a gallery to import images from. Images will be added as new slides.', 'cycloneslider'); ?></span>
    6868            <div class="clear"></div>
    6969        </div>
  • cyclone-slider-2/trunk/src/CycloneSlider/SettingsPage.php

    r1381774 r1690000  
    4949        if( isset($_POST['reset']) ){
    5050            $input = $this->data->get_default_settings_page_data();
    51             add_settings_error( $this->settings_page_properties['menu_slug'], 'restore_defaults', __( 'Default options restored.', 'cyclone-slider-2' ), 'updated fade' );
     51            add_settings_error( $this->settings_page_properties['menu_slug'], 'restore_defaults', __( 'Default options restored.', 'cycloneslider' ), 'updated fade' );
    5252        }
    5353        return $input;
  • cyclone-slider-2/trunk/src/CycloneSlider/View.php

    r1381774 r1690000  
    3838    */
    3939    public function render($file, $vars = array()){
     40        $vars = apply_filters('cycloneslider_pre_render_view_vars', $vars);
    4041        $view_file = $this->right_sep($this->view_folder).$file; // Add directory separator if needed
     42        $view_file = apply_filters('cycloneslider_pre_render_view_file', $view_file);
    4143        if(@file_exists($view_file)){
    4244            if(!empty($vars)){
  • cyclone-slider-2/trunk/src/CycloneSlider/Vimeo.php

    r1041061 r1690000  
    1717       
    1818        $parsed_url = parse_url($url);
    19         if ($parsed_url['host'] == 'vimeo.com'){
     19        if (isset($parsed_url['host']) && $parsed_url['host'] == 'vimeo.com'){
    2020            $vimeo_id = ltrim( $parsed_url['path'], '/');
    2121            if (is_numeric($vimeo_id)) {
  • cyclone-slider-2/trunk/src/CycloneSlider/WidgetSlider.php

    r1381774 r1690000  
    1111        parent::__construct(
    1212            'cyclone-slider-widget', // Base ID
    13             __( 'Cyclone Slider Widget', 'cyclone-slider-2' ), // Name
    14             array( 'description' => __( 'Widget for displaying sliders.', 'cyclone-slider-2' ), ) // Args
     13            __( 'Cyclone Slider Widget', 'cycloneslider' ), // Name
     14            array( 'description' => __( 'Widget for displaying sliders.', 'cycloneslider' ), ) // Args
    1515        );
    1616    }
     
    6363?>
    6464        <p>
    65             <label for="<?php echo $this->get_field_id('title'); ?>"><?php _e('Title:', 'cyclone-slider-2'); ?></label>
     65            <label for="<?php echo $this->get_field_id('title'); ?>"><?php _e('Title:', 'cycloneslider'); ?></label>
    6666            <input class="widefat" id="<?php echo $this->get_field_id('title'); ?>" name="<?php echo $this->get_field_name('title'); ?>" type="text" value="<?php esc_attr_e($instance['title']); ?>" />
    6767        </p>
     
    7777        if($my_query->have_posts()):
    7878        ?>
    79             <label for="<?php echo $this->get_field_id('slideshow'); ?>"><?php _e('Select a Slider:', 'cyclone-slider-2'); ?></label>
     79            <label for="<?php echo $this->get_field_id('slideshow'); ?>"><?php _e('Select a Slider:', 'cycloneslider'); ?></label>
    8080            <select class="widefat" id="<?php echo $this->get_field_id('slideshow'); ?>" name="<?php echo $this->get_field_name('slideshow'); ?>">
    8181                <option value=""></option>
     
    9292            </select>
    9393        <?php else: ?>
    94             <?php _e('No sliders found.', 'cyclone-slider-2'); ?>
     94            <?php _e('No sliders found.', 'cycloneslider'); ?>
    9595        <?php endif; ?>
    9696        </p>
  • cyclone-slider-2/trunk/src/autoloader.php

    r1451766 r1690000  
    11<?php
    22// Autoloader
    3 function cycloneslider_autoloader( $class_name ) {
     3function cs3_autoloader( $class_name ) {
    44    if ( 0 === strpos( $class_name, 'CycloneSlider' ) ) {
    55
     
    1212}
    1313
    14 spl_autoload_register( 'cycloneslider_autoloader' );
     14spl_autoload_register( 'cs3_autoloader' );
  • cyclone-slider-2/trunk/src/functions.php

    r1058994 r1690000  
    11<?php
    2 /**
    3  * Cyclone Slider
    4  *
    5  * Displays the slider on template files.
    6  *
    7  * @param string $slider_slug The slug of the slider.
    8  */
    9 function cyclone_slider( $slider_slug ){
    10     global $cyclone_slider_plugin_instance;
    11     if(isset($cyclone_slider_plugin_instance)){
    12         echo $cyclone_slider_plugin_instance['frontend']->cycloneslider_shortcode( array('id'=>$slider_slug) );
    13     }
    14 }
     2
    153
    164/**
  • cyclone-slider-2/trunk/templates/dark/slider.php

    r1381774 r1690000  
    3131        <?php foreach($slides as $slide): ?>
    3232            <?php if ( 'image' == $slide['type'] ) : ?>
    33                 <div class="cycloneslider-slide" <?php echo $slide['slide_data_attributes']; ?>>
     33                <div class="cycloneslider-slide cycloneslider-slide-image" <?php echo $slide['slide_data_attributes']; ?>>
    3434                    <img src="<?php echo $slide['image_url']; ?>" alt="<?php echo $slide['img_alt'];?>" title="<?php echo $slide['img_title'];?>" />
    3535                    <?php if(!empty($slide['title']) or !empty($slide['description'])) : ?>
     
    6767            <?php elseif ( 'testimonial' == $slide['type'] ) : ?>
    6868                <div class="cycloneslider-slide cycloneslider-slide-testimonial" <?php echo $slide['slide_data_attributes']; ?>>
     69                    <?php if ( '' != $slide['testimonial_img_url'] ) : ?>
     70                        <img src="<?php echo esc_attr($slide['testimonial_img_url']); ?>" alt="<?php _e('Quote Image', 'cycloneslider'); ?>">
     71                    <?php endif; ?>
    6972                    <blockquote>
    7073                        <p><?php echo $slide['testimonial']; ?></p>
  • cyclone-slider-2/trunk/templates/dark/style.css

    r836140 r1690000  
    4848    background: #000;
    4949}
    50 .cycloneslider-template-dark .cycloneslider-slide-custom,
    51 .cycloneslider-template-dark .cycloneslider-slide-testimonial{
     50.cycloneslider-template-dark .cycloneslider-slide-custom{
    5251    min-height: 100%;
    5352}
    54 .cycloneslider-template-dark div[data-cycle-dynamic-height="on"] .cycloneslider-slide-custom,
    55 .cycloneslider-template-dark div[data-cycle-dynamic-height="on"] .cycle-sentinel + .cycloneslider-slide-testimonial{
     53.cycloneslider-template-dark div[data-cycle-dynamic-height="on"] .cycloneslider-slide-custom {
    5654    min-height: 100px; /* Disable 100% min height when dynamic height is on. To fix issue with scrollHorz */
    5755}
  • cyclone-slider-2/trunk/templates/standard/slider.php

    r1381774 r1690000  
    7373            <?php elseif ( 'testimonial' == $slide['type'] ) : ?>
    7474                <div class="cycloneslider-slide cycloneslider-slide-testimonial" <?php echo $slide['slide_data_attributes']; ?>>
     75                    <?php if ( '' != $slide['testimonial_img_url'] ) : ?>
     76                        <img src="<?php echo esc_attr($slide['testimonial_img_url']); ?>" alt="<?php _e('Quote Image', 'cycloneslider'); ?>">
     77                    <?php endif; ?>
    7578                    <blockquote>
    7679                        <p><?php echo wp_kses_post($slide['testimonial']); ?></p>
  • cyclone-slider-2/trunk/templates/standard/style.css

    r1359616 r1690000  
    5151    background: #000;
    5252}
    53 .cycloneslider-template-standard .cycloneslider-slide-custom,
    54 .cycloneslider-template-standard .cycloneslider-slide-testimonial{
     53.cycloneslider-template-standard .cycloneslider-slide-custom {
    5554    min-height: 100%;
    5655}
    57 .cycloneslider-template-standard div[data-cycle-dynamic-height="on"] .cycloneslider-slide-custom,
    58 .cycloneslider-template-standard div[data-cycle-dynamic-height="on"] .cycle-sentinel + .cycloneslider-slide-testimonial{
     56.cycloneslider-template-standard div[data-cycle-dynamic-height="on"] .cycloneslider-slide-custom{
    5957    min-height: 100px; /* Disable 100% min height when dynamic height is on. To fix issue with scrollHorz */
    6058}
  • cyclone-slider-2/trunk/views/export-nextgen-step-1.php

    r1381774 r1690000  
    66    <?php $this->render('export-import-tabs.php', array('tabs'=>$tabs)); ?>
    77   
    8     <h2><?php _e('Cyclone Slider Nextgen Exporter', 'cyclone-slider-2'); ?></h2>
     8    <h2><?php _e('Cyclone Slider Nextgen Exporter', 'cycloneslider'); ?></h2>
    99   
    1010    <?php $this->render('error-message.php', array('error'=>$error)); ?>
     
    1616            <table class="form-table">
    1717                <tr>
    18                     <th><h4><?php _e('Choose a NextGEN Gallery:', 'cyclone-slider-2'); ?></h4></th>
     18                    <th><h4><?php _e('Choose a NextGEN Gallery:', 'cycloneslider'); ?></h4></th>
    1919                    <td>
    2020                        <label for="cs-select-all">
    2121                            <input type="checkbox" id="cs-select-all" name="<?php echo esc_attr( $transient_name ); ?>[all_sliders]" value="1" <?php checked($page_data['all_sliders'], 1); ?> />
    22                             <span><strong><?php _e('Select All', 'cyclone-slider-2'); ?></strong></span>
     22                            <span><strong><?php _e('Select All', 'cycloneslider'); ?></strong></span>
    2323                        </label> <br />
    2424                        <hr />
     
    3232                </tr>
    3333                <tr>
    34                     <th><label for="cs-file_name"><?php _e('File Name:', 'cyclone-slider-2'); ?></label></th>
     34                    <th><label for="cs-file_name"><?php _e('File Name:', 'cycloneslider'); ?></label></th>
    3535                    <td>
    3636                        <input type="text" class="regular-text" id="cs-file_name" name="<?php echo esc_attr( $transient_name ); ?>[file_name]" value="<?php echo esc_attr( $page_data['file_name'] ); ?>" />
     
    3939            </table>
    4040        <?php else: ?>
    41             <p><?php _e('No slider to export.', 'cyclone-slider-2'); ?></p>
     41            <p><?php _e('No slider to export.', 'cycloneslider'); ?></p>
    4242        <?php endif; ?>
    4343        <br /><br />
    44         <?php submit_button( __('Clear', 'cyclone-slider-2'), 'secondary', 'reset', false) ?>
    45         <?php submit_button( __('Next', 'cyclone-slider-2'), 'primary', 'submit', false) ?>
     44        <?php submit_button( __('Clear', 'cycloneslider'), 'secondary', 'reset', false) ?>
     45        <?php submit_button( __('Next', 'cycloneslider'), 'primary', 'submit', false) ?>
    4646    </form>
    4747</div>
  • cyclone-slider-2/trunk/views/export-nextgen-step-2.php

    r1381774 r1690000  
    66    <?php $this->render('export-import-tabs.php', array('tabs'=>$tabs)); ?>
    77   
    8     <h2><?php _e('Cyclone Slider Nextgen Exporter', 'cyclone-slider-2'); ?></h2>
     8    <h2><?php _e('Cyclone Slider Nextgen Exporter', 'cycloneslider'); ?></h2>
    99   
    1010    <?php $this->render('error-message.php', array('error'=>$error)); ?>
     
    1515        <table class="form-table">
    1616            <tr>
    17                 <th><h4><?php _e('Selected slider(s):', 'cyclone-slider-2'); ?></h4></th>
     17                <th><h4><?php _e('Selected slider(s):', 'cycloneslider'); ?></h4></th>
    1818                <td><?php if($page_data['sliders']): ?>
    1919                    <ul class="export-page-list ">
     
    2626            </tr>
    2727            <tr>
    28                 <th><h4><?php _e('File Name:', 'cyclone-slider-2'); ?></h4></th>
     28                <th><h4><?php _e('File Name:', 'cycloneslider'); ?></h4></th>
    2929                <td>
    3030                    <?php echo esc_attr( $page_data['file_name'] ); ?>
     
    3333        </table>
    3434        <br /><br />
    35         <a class="button" href="<?php echo esc_url( $export_page_url ); ?>"><?php _e('Back', 'cyclone-slider-2'); ?></a>
    36         <?php submit_button( __('Generate Export File', 'cyclone-slider-2'), 'primary', 'submit', false) ?>
     35        <a class="button" href="<?php echo esc_url( $export_page_url ); ?>"><?php _e('Back', 'cycloneslider'); ?></a>
     36        <?php submit_button( __('Generate Export File', 'cycloneslider'), 'primary', 'submit', false) ?>
    3737    </form>
    3838</div>
  • cyclone-slider-2/trunk/views/export-nextgen-step-3.php

    r1381774 r1690000  
    66    <?php $this->render('export-import-tabs.php', array('tabs'=>$tabs)); ?>
    77   
    8     <h2><?php _e('Cyclone Slider Nextgen Exporter', 'cyclone-slider-2'); ?></h2>
     8    <h2><?php _e('Cyclone Slider Nextgen Exporter', 'cycloneslider'); ?></h2>
    99   
    1010    <?php $this->render('error-message.php', array('error'=>$error)); ?>
     
    1919        </ul>
    2020        <br /><br />
    21         <a class="button" href="<?php echo esc_url($export_page_url); ?>"><?php _e('Back', 'cyclone-slider-2'); ?></a>
    22         <a class="button button-primary" href="<?php echo esc_url($zip_url); ?>"><?php _e('Download', 'cyclone-slider-2'); ?></a>
     21        <a class="button" href="<?php echo esc_url($export_page_url); ?>"><?php _e('Back', 'cycloneslider'); ?></a>
     22        <a class="button button-primary" href="<?php echo esc_url($zip_url); ?>"><?php _e('Download', 'cycloneslider'); ?></a>
    2323    <?php else: ?>
    2424       
    2525        <br /><br />
    26         <a class="button" href="<?php echo esc_url($export_page_url); ?>"><?php _e('Back', 'cyclone-slider-2'); ?></a>
     26        <a class="button" href="<?php echo esc_url($export_page_url); ?>"><?php _e('Back', 'cycloneslider'); ?></a>
    2727    <?php endif; ?>
    2828</div>
  • cyclone-slider-2/trunk/views/export-step-1.php

    r1381774 r1690000  
    66    <?php $this->render('export-import-tabs.php', array('tabs'=>$tabs)); ?>
    77   
    8     <h2><?php _e('Cyclone Slider Exporter', 'cyclone-slider-2'); ?></h2>
     8    <h2><?php _e('Cyclone Slider Exporter', 'cycloneslider'); ?></h2>
    99   
    1010    <?php $this->render('error-message.php', array('error'=>$error)); ?>
     
    1616            <table class="form-table">
    1717                <tr>
    18                     <th><h4><?php _e('Select sliders:', 'cyclone-slider-2'); ?></h4></th>
     18                    <th><h4><?php _e('Select sliders:', 'cycloneslider'); ?></h4></th>
    1919                    <td>
    2020                        <label for="cs-select-all">
    2121                            <input type="checkbox" id="cs-select-all" name="<?php echo esc_attr( $transient_name ); ?>[all_sliders]" value="1" <?php checked($page_data['all_sliders'], 1); ?> />
    22                             <span><strong><?php _e('Select All', 'cyclone-slider-2'); ?></strong></span>
     22                            <span><strong><?php _e('Select All', 'cycloneslider'); ?></strong></span>
    2323                        </label> <br />
    2424                        <hr />
    2525                        <?php foreach($sliders as $slider): ?>
    26                             <label for="cs-slider-<?php echo $slider['post_name']; ?>">
    27                                 <input class="cs-sliders" type="checkbox" id="cs-slider-<?php echo esc_attr( $slider['post_name'] ); ?>" name="<?php echo esc_attr( $transient_name ); ?>[sliders][]" value="<?php echo esc_attr( $slider['post_name'] ); ?>" <?php echo ( in_array($slider['post_name'], $page_data['sliders']) ) ? 'checked="checked"' : '' ; ?> />
    28                                 <span><em><?php echo esc_html($slider['post_title']); ?></em></span>
     26                            <label for="cs-slider-<?php echo $slider['name']; ?>">
     27                                <input class="cs-sliders" type="checkbox" id="cs-slider-<?php echo esc_attr( $slider['name'] ); ?>" name="<?php echo esc_attr( $transient_name ); ?>[sliders][]" value="<?php echo esc_attr( $slider['name'] ); ?>" <?php echo ( in_array($slider['name'], $page_data['sliders']) ) ? 'checked="checked"' : '' ; ?> />
     28                                <span><em><?php echo esc_html($slider['title']); ?></em></span>
    2929                            </label> <br />
    3030                        <?php endforeach; ?>
     
    3232                </tr>
    3333                <tr>
    34                     <th><label for="cs-file_name"><?php _e('File Name:', 'cyclone-slider-2'); ?></label></th>
     34                    <th><label for="cs-file_name"><?php _e('File Name:', 'cycloneslider'); ?></label></th>
    3535                    <td>
    3636                        <input type="text" class="regular-text" id="cs-file_name" name="<?php echo esc_attr( $transient_name ); ?>[file_name]" value="<?php echo esc_attr( $page_data['file_name'] ); ?>" />
     
    3939            </table>
    4040        <?php else: ?>
    41             <p><?php _e('No slider to export.', 'cyclone-slider-2'); ?></p>
     41            <p><?php _e('No slider to export.', 'cycloneslider'); ?></p>
    4242        <?php endif; ?>
    4343        <br /><br />
    44         <?php submit_button( __('Clear', 'cyclone-slider-2'), 'secondary', 'reset', false) ?>
    45         <?php submit_button( __('Next', 'cyclone-slider-2'), 'primary', 'submit', false) ?>
     44        <?php submit_button( __('Clear', 'cycloneslider'), 'secondary', 'reset', false) ?>
     45        <?php submit_button( __('Next', 'cycloneslider'), 'primary', 'submit', false) ?>
    4646    </form>
    4747</div>
  • cyclone-slider-2/trunk/views/export-step-2.php

    r1381774 r1690000  
    66    <?php $this->render('export-import-tabs.php', array('tabs'=>$tabs)); ?>
    77   
    8     <h2><?php _e('Cyclone Slider Exporter', 'cyclone-slider-2'); ?></h2>
     8    <h2><?php _e('Cyclone Slider Exporter', 'cycloneslider'); ?></h2>
    99   
    1010    <?php $this->render('error-message.php', array('error'=>$error)); ?>
     
    1515        <table class="form-table">
    1616            <tr>
    17                 <th><h4><?php _e('Selected slider(s):', 'cyclone-slider-2'); ?></h4></th>
     17                <th><h4><?php _e('Selected slider(s):', 'cycloneslider'); ?></h4></th>
    1818                <td><?php if($page_data['sliders']): ?>
    1919                    <ul class="export-page-list ">
     
    2626            </tr>
    2727            <tr>
    28                 <th><h4><?php _e('File Name:', 'cyclone-slider-2'); ?></h4></th>
     28                <th><h4><?php _e('File Name:', 'cycloneslider'); ?></h4></th>
    2929                <td>
    3030                    <?php echo esc_attr( $page_data['file_name'] ); ?>
     
    3333        </table>
    3434        <br /><br />
    35         <a class="button" href="<?php echo esc_url( $export_page_url ); ?>"><?php _e('Back', 'cyclone-slider-2'); ?></a>
    36         <?php submit_button( __('Generate Export File', 'cyclone-slider-2'), 'primary', 'submit', false) ?>
     35        <a class="button" href="<?php echo esc_url( $export_page_url ); ?>"><?php _e('Back', 'cycloneslider'); ?></a>
     36        <?php submit_button( __('Generate Export File', 'cycloneslider'), 'primary', 'submit', false) ?>
    3737    </form>
    3838</div>
  • cyclone-slider-2/trunk/views/export-step-3.php

    r1381774 r1690000  
    66    <?php $this->render('export-import-tabs.php', array('tabs'=>$tabs)); ?>
    77   
    8     <h2><?php _e('Cyclone Slider Exporter', 'cyclone-slider-2'); ?></h2>
     8    <h2><?php _e('Cyclone Slider Exporter', 'cycloneslider'); ?></h2>
    99   
    1010    <?php $this->render('error-message.php', array('error'=>$error)); ?>
     
    1919        </ul>
    2020        <br /><br />
    21         <a class="button" href="<?php echo esc_url($export_page_url); ?>"><?php _e('Back', 'cyclone-slider-2'); ?></a>
    22         <a class="button button-primary" href="<?php echo esc_url($zip_url); ?>"><?php _e('Download', 'cyclone-slider-2'); ?></a>
     21        <a class="button" href="<?php echo esc_url($export_page_url); ?>"><?php _e('Back', 'cycloneslider'); ?></a>
     22        <a class="button button-primary" href="<?php echo esc_url($zip_url); ?>"><?php _e('Download', 'cycloneslider'); ?></a>
    2323    <?php else: ?>
    2424       
    2525        <br /><br />
    26         <a class="button" href="<?php echo esc_url($export_page_url); ?>"><?php _e('Back', 'cyclone-slider-2'); ?></a>
     26        <a class="button" href="<?php echo esc_url($export_page_url); ?>"><?php _e('Back', 'cycloneslider'); ?></a>
    2727    <?php endif; ?>
    2828</div>
  • cyclone-slider-2/trunk/views/import-step-1.php

    r1381774 r1690000  
    66    <?php $this->render('export-import-tabs.php', array('tabs'=>$tabs)); ?>
    77   
    8     <h2><?php _e('Cyclone Slider Importer', 'cyclone-slider-2'); ?></h2>
     8    <h2><?php _e('Cyclone Slider Importer', 'cycloneslider'); ?></h2>
    99   
    1010    <?php $this->render('error-message.php', array('error'=>$error)); ?>
     
    1515        <table class="form-table">
    1616            <tr>
    17                 <th><label for="cycloneslider_import"><?php _e('Import Zip File:', 'cyclone-slider-2'); ?></label></th>
     17                <th><label for="cycloneslider_import"><?php _e('Import Zip File:', 'cycloneslider'); ?></label></th>
    1818                <td>
    1919                    <input id="cycloneslider_import" type="file" name="cycloneslider_import" />
     
    2222        </table>
    2323        <br /><br />
    24         <?php submit_button( __('Upload', 'cyclone-slider-2'), 'primary', 'submit', false) ?>
     24        <?php submit_button( __('Upload', 'cycloneslider'), 'primary', 'submit', false) ?>
    2525    </form>
    2626</div>
  • cyclone-slider-2/trunk/views/import-step-3.php

    r1381774 r1690000  
    66    <?php $this->render('export-import-tabs.php', array('tabs'=>$tabs)); ?>
    77   
    8     <h2><?php _e('Cyclone Slider Importer', 'cyclone-slider-2' ); ?></h2>
     8    <h2><?php _e('Cyclone Slider Importer', 'cycloneslider' ); ?></h2>
    99   
    1010    <?php $this->render('error-message.php', array('error'=>$error)); ?>
     
    1313   
    1414    <br /><br />
    15     <a class="button" href="<?php echo esc_url($import_page_url); ?>"><?php _e('Back', 'cyclone-slider-2' ); ?></a>
     15    <a class="button" href="<?php echo esc_url($import_page_url); ?>"><?php _e('Back', 'cycloneslider' ); ?></a>
    1616</div>
  • cyclone-slider-2/trunk/views/settings-page.php

    r1381774 r1690000  
    55    <h2><?php echo esc_html($page_title); ?></h2>
    66    <div class="intro">
    7         <p><?php _e('Play with these settings if Cyclone Slider is not working or if you want to optimize it.', 'cyclone-slider-2'); ?></p>
     7        <p><?php _e('Play with these settings if Cyclone Slider is not working or if you want to optimize it.', 'cycloneslider'); ?></p>
    88    </div>
    99    <?php settings_errors();?>
     
    1313        ?>
    1414        <table class="form-table">
     15           
    1516            <tr>
    16                 <th><label for="cs2-settings-load_scripts_in"><?php _e('Load scripts in:', 'cyclone-slider-2'); ?></label></th>
     17                <th><label for="cs2-settings-load_scripts_in"><?php _e('Load scripts in:', 'cycloneslider'); ?></label></th>
    1718                <td>
    1819                    <select name="<?php echo esc_attr( $option_name."[load_scripts_in]" ); ?>" id="cs2-settings-load_scripts_in">
    19                         <option value="header" <?php selected($settings_data['load_scripts_in'], 'header'); ?>><?php _e('Header', 'cyclone-slider-2'); ?></option>
    20                         <option value="footer" <?php selected($settings_data['load_scripts_in'], 'footer'); ?>><?php _e('Footer', 'cyclone-slider-2'); ?></option>
     20                        <option value="header" <?php selected($settings_data['load_scripts_in'], 'header'); ?>><?php _e('Header', 'cycloneslider'); ?></option>
     21                        <option value="footer" <?php selected($settings_data['load_scripts_in'], 'footer'); ?>><?php _e('Footer', 'cycloneslider'); ?></option>
    2122                    </select>
    2223                </td>
    2324            </tr>
    2425            <tr>
    25                 <th><label for=""><?php _e('Load these scripts:', 'cyclone-slider-2'); ?></label></th>
     26                <th><label for=""><?php _e('Load these scripts:', 'cycloneslider'); ?></label></th>
    2627                <td>
    2728                    <label for="cs2-settings-load_cycle2">
    2829                        <input type="hidden" name="<?php echo esc_attr( $option_name."[load_cycle2]" ); ?>" value="0">
    2930                        <input type="checkbox" id="cs2-settings-load_cycle2" name="<?php echo esc_attr( $option_name."[load_cycle2]" ); ?>" value="1" <?php checked($settings_data['load_cycle2'], 1); ?> />
    30                         <span><em><?php _e('Cycle 2. This is the core script needed by the plugin.', 'cyclone-slider-2'); ?></em></span>
     31                        <span><em><?php _e('Cycle 2. This is the core script needed by the plugin.', 'cycloneslider'); ?></em></span>
    3132                    </label> <br />
    3233                    <label for="cs2-settings-load_cycle2_carousel">
    3334                        <input type="hidden" name="<?php echo esc_attr( $option_name."[load_cycle2_carousel]" ); ?>" value="0">
    3435                        <input type="checkbox" id="cs2-settings-load_cycle2_carousel" name="<?php echo esc_attr( $option_name."[load_cycle2_carousel]" ); ?>" value="1" <?php checked($settings_data['load_cycle2_carousel'], 1); ?> />
    35                         <span><em><?php _e('Cycle 2 - Carousel. Used by these templates: Galleria, Lea, Dos.', 'cyclone-slider-2'); ?></em></span>
     36                        <span><em><?php _e('Cycle 2 - Carousel. Used by these templates: Galleria, Lea, Dos.', 'cycloneslider'); ?></em></span>
    3637                    </label> <br />
    3738                    <label for="cs2-settings-load_cycle2_swipe">
    3839                        <input type="hidden" name="<?php echo esc_attr( $option_name."[load_cycle2_swipe]" ); ?>" value="0">
    3940                        <input type="checkbox" id="cs2-settings-load_cycle2_swipe" name="<?php echo esc_attr( $option_name."[load_cycle2_swipe]" ); ?>" value="1" <?php checked($settings_data['load_cycle2_swipe'], 1); ?> />
    40                         <span><em><?php _e('Cycle 2 - Swipe. For touch swipe events.', 'cyclone-slider-2'); ?></em></span>
     41                        <span><em><?php _e('Cycle 2 - Swipe. For touch swipe events.', 'cycloneslider'); ?></em></span>
    4142                    </label> <br />
    4243                    <label for="cs2-settings-load_cycle2_tile">
    4344                        <input type="hidden" name="<?php echo esc_attr( $option_name."[load_cycle2_tile]" ); ?>" value="0">
    4445                        <input type="checkbox" id="cs2-settings-load_cycle2_tile" name="<?php echo esc_attr( $option_name."[load_cycle2_tile]" ); ?>" value="1" <?php checked($settings_data['load_cycle2_tile'], 1); ?> />
    45                         <span><em><?php _e('Cycle 2 - Tile. Used for tile transition effects.', 'cyclone-slider-2'); ?></em></span>
     46                        <span><em><?php _e('Cycle 2 - Tile. Used for tile transition effects.', 'cycloneslider'); ?></em></span>
    4647                    </label> <br />
    4748                    <label for="cs2-settings-load_cycle2_video">
    4849                        <input type="hidden" name="<?php echo esc_attr( $option_name."[load_cycle2_video]" ); ?>" value="0">
    4950                        <input type="checkbox" id="cs2-settings-load_cycle2_video" name="<?php echo esc_attr( $option_name."[load_cycle2_video]" ); ?>" value="1" <?php checked($settings_data['load_cycle2_video'], 1); ?> />
    50                         <span><em><?php _e('Cycle 2 - Video. Used by YouTube template.', 'cyclone-slider-2'); ?></em></span>
     51                        <span><em><?php _e('Cycle 2 - Video. Used by YouTube template.', 'cycloneslider'); ?></em></span>
    5152                    </label> <br />
    5253                    <label for="cs2-settings-load_magnific">
    5354                        <input type="hidden" name="<?php echo esc_attr( $option_name."[load_magnific]" ); ?>" value="0">
    5455                        <input type="checkbox" id="cs2-settings-load_magnific" name="<?php echo esc_attr( $option_name."[load_magnific]" ); ?>" disabled value="1" <?php checked($settings_data['load_magnific'], 1); ?> />
    55                         <span class="cs2-disabled"><em><?php _e('Magnific Popup - Enable lightbox option.', 'cyclone-slider-2'); ?></em></span> <a href="http://www.codefleet.net/cyclone-slider-pro/"><?php _e('Available in pro version.', 'cyclone-slider-2'); ?></a>
     56                        <span class="cs2-disabled"><em><?php _e('Magnific Popup - Enable lightbox option.', 'cycloneslider'); ?></em></span> <a href="http://www.codefleet.net/cyclone-slider-pro/"><?php _e('Available in pro version.', 'cycloneslider'); ?></a>
    5657                    </label> <br />
    5758                    <label for="cs2-settings-load_easing">
    5859                        <input type="hidden" name="<?php echo esc_attr( $option_name."[load_easing]" ); ?>" value="0">
    5960                        <input type="checkbox" id="cs2-settings-load_easing" name="<?php echo esc_attr( $option_name."[load_easing]" ); ?>" disabled value="1" <?php checked($settings_data['load_easing'], 1); ?> />
    60                         <span class="cs2-disabled"><em><?php _e('Easing - Enable easing options.', 'cyclone-slider-2'); ?></em></span> <a href="http://www.codefleet.net/cyclone-slider-pro/"><?php _e('Available in pro version.', 'cyclone-slider-2'); ?></a>
     61                        <span class="cs2-disabled"><em><?php _e('Easing - Enable easing options.', 'cycloneslider'); ?></em></span> <a href="http://www.codefleet.net/cyclone-slider-pro/"><?php _e('Available in pro version.', 'cycloneslider'); ?></a>
    6162                    </label> <br />
    6263                </td>
    6364            </tr>
    6465            <tr>
    65                 <th><label for="cs2-settings-script_priority"><?php _e('Scripts loading priority:', 'cyclone-slider-2'); ?></label></th>
     66                <th><label for="cs2-settings-script_priority"><?php _e('Scripts loading priority:', 'cycloneslider'); ?></label></th>
    6667                <td>
    6768                    <input type="number" id="<?php echo esc_attr( 'script_priority' ); ?>" name="<?php echo esc_attr( $option_name."[script_priority]" ); ?>" value="<?php echo esc_attr( $settings_data['script_priority'] ); ?>" />
    68                     <em><?php _e('Make this value bigger to load scripts last.', 'cyclone-slider-2'); ?></em>
     69                    <em><?php _e('Make this value bigger to load scripts last.', 'cycloneslider'); ?></em>
    6970                </td>
    7071            </tr>
    7172            <tr>
    72                 <th><label for=""><?php _e('Load these templates:', 'cyclone-slider-2'); ?></label></th>
     73                <th><label for=""><?php _e('Load these templates:', 'cycloneslider'); ?></label></th>
    7374                <td>
    7475                    <?php foreach($templates as $name=>$template): ?>
     
    8182                </td>
    8283            </tr>
     84
     85            <tr>
     86                <th><label for=""><?php _e('Legacy Mode:', 'cycloneslider'); ?></label></th>
     87                <td>
     88                    <label for="cs2-settings-legacy">
     89                        <input type="hidden" name="<?php echo esc_attr( $option_name."[legacy]" ); ?>" value="0">
     90                        <input type="checkbox" id="cs2-settings-legacy" name="<?php echo esc_attr( $option_name."[legacy]" ); ?>" value="1" <?php checked($settings_data['legacy'], 1); ?> />
     91                        <span><em><?php _e('Turn back time to the bygone era of Cyclone Slider 1.', 'cycloneslider'); ?></em></span>
     92                    </label> <br />
     93                </td>
     94            </tr>
    8395        </table>
    8496        <br /><br />
    85         <?php submit_button( __('Save Options', 'cyclone-slider-2'), 'primary', 'submit', false) ?>
    86         <?php submit_button( __('Restore Defaults', 'cyclone-slider-2'), 'secondary', 'reset', false) ?>
     97        <?php submit_button( __('Save Options', 'cycloneslider'), 'primary', 'submit', false) ?>
     98        <?php submit_button( __('Restore Defaults', 'cycloneslider'), 'secondary', 'reset', false) ?>
    8799    </form>
    88100   
  • cyclone-slider-2/trunk/views/slide-edit.php

    r1450024 r1690000  
    11<?php if(!defined('ABSPATH')) die('Direct access denied.'); ?>
    2 
    32<div class="cs-slide" data-slide-type="<?php echo esc_attr( $slide['type'] ); ?>" data-slide-hidden="<?php echo esc_attr( $slide['hidden'] ); ?>">
    43    <div class="cs-header">
    5         <span class="cs-icon">
    6             <i class="icon-picture"></i>
    7             <i class="icon-youtube-play"></i>
    8             <i class="icon-play"></i>
    9             <i class="icon-code"></i>
    10             <i class="icon-film"></i>
    11             <i class="icon-quote-left"></i>
    12         </span>
     4        <div class="cs-slide-type">
     5            <input type="hidden" name="cycloneslider_metas[<?php echo esc_attr($i); ?>][type]" value="<?php echo esc_attr($slide['type']); ?>">
     6            <div class="switcher">
     7                <div class="display">
     8                    <svg viewBox="0 0 24 24"><path d="M8.5,13.5L11,16.5L14.5,12L19,18H5M21,19V5C21,3.89 20.1,3 19,3H5A2,2 0 0,0 3,5V19A2,2 0 0,0 5,21H19A2,2 0 0,0 21,19Z" /></svg>
     9                    <span><?php _e('Image', 'cycloneslider'); ?></span>
     10                </div>
     11                <ul>
     12                    <li data-value="image">
     13                        <svg viewBox="0 0 24 24"><path d="M20,5A2,2 0 0,1 22,7V17A2,2 0 0,1 20,19H4C2.89,19 2,18.1 2,17V7C2,5.89 2.89,5 4,5H20M5,16H19L14.5,10L11,14.5L8.5,11.5L5,16Z" /></svg>
     14                        <span><?php _e('Image', 'cycloneslider'); ?></span>
     15                    </li>
     16                    <li data-value="youtube">
     17                        <svg viewBox="0 0 24 24"><path d="M10,16.5V7.5L16,12M20,4.4C19.4,4.2 15.7,4 12,4C8.3,4 4.6,4.19 4,4.38C2.44,4.9 2,8.4 2,12C2,15.59 2.44,19.1 4,19.61C4.6,19.81 8.3,20 12,20C15.7,20 19.4,19.81 20,19.61C21.56,19.1 22,15.59 22,12C22,8.4 21.56,4.91 20,4.4Z" /></svg>
     18                        <span><?php _e('YouTube', 'cycloneslider'); ?></span>
     19                    </li>
     20                    <li data-value="vimeo">
     21                        <svg viewBox="0 0 24 24"><path d="M22,7.42C21.91,9.37 20.55,12.04 17.92,15.44C15.2,19 12.9,20.75 11,20.75C9.85,20.75 8.86,19.67 8.05,17.5C7.5,15.54 7,13.56 6.44,11.58C5.84,9.42 5.2,8.34 4.5,8.34C4.36,8.34 3.84,8.66 2.94,9.29L2,8.07C3,7.2 3.96,6.33 4.92,5.46C6.24,4.32 7.23,3.72 7.88,3.66C9.44,3.5 10.4,4.58 10.76,6.86C11.15,9.33 11.42,10.86 11.57,11.46C12,13.5 12.5,14.5 13.05,14.5C13.47,14.5 14.1,13.86 14.94,12.53C15.78,11.21 16.23,10.2 16.29,9.5C16.41,8.36 15.96,7.79 14.94,7.79C14.46,7.79 13.97,7.9 13.46,8.12C14.44,4.89 16.32,3.32 19.09,3.41C21.15,3.47 22.12,4.81 22,7.42Z" /></svg>
     22                        <span><?php _e('Vimeo', 'cycloneslider'); ?></span>
     23                    </li>
     24                    <li data-value="custom">
     25                        <svg viewBox="0 0 24 24"><path d="M14.6,16.6L19.2,12L14.6,7.4L16,6L22,12L16,18L14.6,16.6M9.4,16.6L4.8,12L9.4,7.4L8,6L2,12L8,18L9.4,16.6Z" /></svg>
     26                        <span><?php _e('Custom', 'cycloneslider'); ?></span>
     27                    </li>
     28                    <li data-value="testimonial">
     29                        <svg viewBox="0 0 24 24"><path d="M10,7L8,11H11V17H5V11L7,7H10M18,7L16,11H19V17H13V11L15,7H18Z" /></svg>
     30                        <span><?php _e('Testimonial', 'cycloneslider'); ?></span>
     31                    </li>
     32                </ul>
     33                <svg viewBox="0 0 24 24"><path d="M7,10L12,15L17,10H7Z" /></svg>
     34            </div>
     35        </div>
    1336        <span class="cs-title">
    1437            <?php echo esc_html($box_title); ?>
    1538        </span>
    1639        <span class="cs-controls">
    17             <span class="cs-delete" title="<?php _e('Delete', 'cyclone-slider-2'); ?>">
    18                 <i class="icon-remove"></i>
    19             </span>
     40            <button class="cs-minimize" type="button" title="<?php _e('Toggle', 'cycloneslider'); ?>">
     41                <svg width="16" height="16" viewBox="0 0 24 24"><path d="M20,14H4V10H20" /></svg>
     42            </button>
     43            <button class="cs-delete" type="button" title="<?php _e('Delete', 'cycloneslider'); ?>">
     44                <svg width="16" height="16" viewBox="0 0 24 24"><path d="M13.46,12L19,17.54V19H17.54L12,13.46L6.46,19H5V17.54L10.54,12L5,6.46V5H6.46L12,10.54L17.54,5H19V6.46L13.46,12Z" /></svg>
     45            </button>
    2046        </span>
    2147        <div class="clear"></div>
    2248    </div>
    2349    <div class="cs-body">
    24         <div class="cs-slide-type-bar">
    25             <select class="cs-slide-type-switcher" name="cycloneslider_metas[<?php echo esc_attr($i); ?>][type]">
    26                 <option value="image" <?php selected($slide['type'], 'image'); ?>><?php _e('Image', 'cyclone-slider-2'); ?></option>
    27                 <option value="youtube" <?php selected($slide['type'], 'youtube'); ?>><?php _e('YouTube', 'cyclone-slider-2'); ?></option>
    28                 <option value="vimeo" <?php selected($slide['type'], 'vimeo'); ?>><?php _e('Vimeo', 'cyclone-slider-2'); ?></option>
    29                 <option value="custom" <?php selected($slide['type'], 'custom'); ?>><?php _e('Custom HTML', 'cyclone-slider-2'); ?></option>
    30                 <option value="testimonial" <?php selected($slide['type'], 'testimonial'); ?>><?php _e('Testimonial', 'cyclone-slider-2'); ?></option>
    31             </select>
    32            
    33             <label class="cs-slide-hidden" for="cs-slide-hidden-<?php echo esc_attr($i); ?>">
    34                 <input id="cs-slide-hidden-<?php echo esc_attr($i); ?>" type="checkbox" name="cycloneslider_metas[<?php echo esc_attr($i); ?>][hidden]" value="1" <?php checked($slide['hidden'], '1'); ?>>
    35                 <span><?php _e('Hidden', 'cyclone-slider-2'); ?></span>
    36             </label>
    37         </div>
    38         <div class="clear"></div>
    39         <div class="cs-slide-image">
    40             <div class="cs-image-preview">
    41                 <div class="cs-image-thumb" <?php echo (empty($image_url)) ? 'style="display:none"' : '';?>>
    42                     <?php if($image_url): ?>
    43                         <a target="_blank" href="<?php echo esc_url($full_image_url); ?>"><img src="<?php echo esc_url($image_url); ?>" alt="thumb"></a>
    44                     <?php endif; ?>
    45                 </div>
    46                 <input class="cs-image-id" name="cycloneslider_metas[<?php echo esc_attr($i); ?>][id]" type="hidden" value="<?php echo esc_attr($slide['id']); ?>" />
    47                 <input class="button-secondary cs-media-gallery-show" type="button" value="<?php _e('Get Image', 'cyclone-slider-2'); ?>" />
    48             </div>
    49             <div class="cs-image-settings">
    50                 <div class="expandable-box">
    51                     <div class="expandable-header first"><?php _e('Caption', 'cyclone-slider-2'); ?></div>
    52                     <div class="expandable-body">
    53                         <div class="field">
    54                             <label for=""><?php _e('Title:', 'cyclone-slider-2'); ?></label> <br>
    55                             <input class="widefat cycloneslider-slide-meta-title" name="cycloneslider_metas[<?php echo esc_attr($i); ?>][title]" type="text" value="<?php echo esc_attr($slide['title']); ?>" />
    56                         </div>
    57                         <div class="field last">
    58                             <label for=""><?php _e('Description:', 'cyclone-slider-2'); ?></label> <br>
    59                             <textarea class="widefat cycloneslider-slide-meta-description" name="cycloneslider_metas[<?php echo esc_attr($i); ?>][description]"><?php echo esc_textarea($slide['description']); ?></textarea>
    60                         </div>
    61                     </div>
    62                 </div>
    63                 <div class="expandable-box">
    64                     <div class="expandable-header"><?php _e('Link', 'cyclone-slider-2'); ?></div>
    65                     <div class="expandable-body">
    66                         <div class="field">
    67                             <label for=""><?php _e('Link URL:', 'cyclone-slider-2'); ?></label> <br>
    68                             <input class="cycloneslider_metas_link_url widefat" name="cycloneslider_metas[<?php echo esc_attr($i); ?>][link]" type="text" value="<?php echo esc_url($slide['link']); ?>" />
    69                         </div>
    70                         <div class="field last">
    71                             <label for=""><?php _e('Open Link in:', 'cyclone-slider-2'); ?></label> <br>
    72                             <select class="cycloneslider_metas_link_target" id="" name="cycloneslider_metas[<?php echo esc_attr($i); ?>][link_target]">
    73                                 <option <?php selected( $slide['link_target'], '_self' ); ?> value="_self"><?php _e('Same Window', 'cyclone-slider-2'); ?></option>
    74                                 <option <?php selected( $slide['link_target'], '_blank' ); ?> value="_blank"><?php _e('New Tab or Window', 'cyclone-slider-2'); ?></option>
    75                             </select>
    76                         </div>
    77                     </div>
    78                 </div>
    79                 <div class="expandable-box">
    80                     <div class="expandable-header"><?php _e('Image Attributes', 'cyclone-slider-2'); ?></div>
    81                     <div class="expandable-body">
    82                         <div class="field">
    83                             <label for=""><?php _e('Alternate Text:', 'cyclone-slider-2'); ?></label> <br>
    84                             <input class="widefat cycloneslider-slide-meta-alt" name="cycloneslider_metas[<?php echo esc_attr($i); ?>][img_alt]" type="text" value="<?php echo esc_attr($slide['img_alt']); ?>" />
    85                         </div>
    86                         <div class="field last">
    87                             <label for=""><?php _e('Title Text:', 'cyclone-slider-2'); ?></label> <br>
    88                             <input class="widefat cycloneslider-slide-meta-title" name="cycloneslider_metas[<?php echo esc_attr($i); ?>][img_title]" type="text" value="<?php echo esc_attr($slide['img_title']); ?>" />
    89                         </div>
    90                     </div>
    91                 </div>
    92                 <div class="expandable-box last">
    93                     <div class="expandable-header"><?php _e('Slide Transition Effects', 'cyclone-slider-2'); ?></div>
    94                     <div class="expandable-body">
    95                        
    96                         <select id="" class="cycloneslider_metas_enable_slide_effects" name="cycloneslider_metas[<?php echo esc_attr($i); ?>][enable_slide_effects]">
    97                             <option <?php echo (0==$slide['enable_slide_effects']) ? 'selected="selected"' : ''; ?> value="0"><?php _e('Disable', 'cyclone-slider-2'); ?></option>
    98                             <option <?php echo (1==$slide['enable_slide_effects']) ? 'selected="selected"' : ''; ?> value="1"><?php _e('Enable Slide Effects', 'cyclone-slider-2'); ?></option>
    99                         </select>
    100                        
    101                         <div class="clear"></div>
    102                        
    103                         <div class="field field-inline">
    104                             <label for=""><?php _e('Transition Effects:', 'cyclone-slider-2'); ?></label>
    105                             <select id="" class="cycloneslider_metas_fx" name="cycloneslider_metas[<?php echo esc_attr($i); ?>][fx]">
    106                                 <option value="default">Default</option>
    107                                 <?php foreach($effects as $value=>$name): ?>
    108                                 <option value="<?php echo esc_attr($value); ?>" <?php echo ($slide['fx']==$value) ? 'selected="selected"' : ''; ?>><?php echo esc_html($name); ?></option>
    109                                 <?php endforeach; ?>
    110                             </select>
    111                             <div class="clear"></div>
    112                         </div>
    113                        
    114                         <div class="field field-inline">
    115                             <label for=""><?php _e('Transition Effects Speed:', 'cyclone-slider-2'); ?></label>
    116                             <input class="widefat cycloneslider-slide-meta-speed" name="cycloneslider_metas[<?php echo esc_attr($i); ?>][speed]" type="number" value="<?php echo esc_attr(@$slide['speed']); ?>" />
    117                             <span class="note"> <?php _e('Milliseconds', 'cyclone-slider-2'); ?></span>
    118                             <div class="clear"></div>
    119                         </div>
    120                        
    121                         <div class="field field-inline">
    122                             <label for=""><?php _e('Next Slide Delay:', 'cyclone-slider-2'); ?></label>
    123                             <input class="widefat cycloneslider-slide-meta-timeout" name="cycloneslider_metas[<?php echo esc_attr($i); ?>][timeout]" type="number" value="<?php echo esc_attr(@$slide['timeout']); ?>" />
    124                             <span class="note"> <?php _e('Milliseconds', 'cyclone-slider-2'); ?></span>
    125                             <div class="clear"></div>
    126                         </div>
    127                        
    128                        
    129                         <div class="cycloneslider-slide-tile-properties">
    130                            
    131                             <div class="field field-inline">
    132                                 <label for=""><?php _e('Tile Count:', 'cyclone-slider-2'); ?></label>
    133                                 <input class="widefat cycloneslider-slide-meta-tile-count" name="cycloneslider_metas[<?php echo esc_attr($i); ?>][tile_count]" type="number" value="<?php echo esc_attr(@$slide['tile_count']); ?>" />
    134                                 <span class="note"> <?php _e('The number of tiles to use in the transition.', 'cyclone-slider-2'); ?></span>
    135                                 <div class="clear"></div>
    136                             </div>
    137                             <!--
    138                             <label for=""><?php _e('Tile Delay:', 'cyclone-slider-2'); ?></label>
    139                             <input class="widefat cycloneslider-slide-meta-tile-delay" name="cycloneslider_metas[<?php echo esc_attr($i); ?>][tile_delay]" type="text" value="<?php echo esc_attr(@$slide['tile_delay']); ?>" />
    140                             <span class="note"> <?php _e('Milliseconds to delay each individual tile transition.', 'cyclone-slider-2'); ?></span>
    141                             <div class="cycloneslider-spacer-15"></div>
    142                             -->
    143                             <div class="field field-inline">
    144                                 <label for=""><?php _e('Tile Position:', 'cyclone-slider-2'); ?></label>
    145                                 <select id="" name="cycloneslider_metas[<?php echo esc_attr($i); ?>][tile_vertical]">
    146                                     <option <?php echo ('true'==$slide['tile_vertical']) ? 'selected="selected"' : ''; ?> value="true"><?php _e('Vertical', 'cyclone-slider-2'); ?></option>
    147                                     <option <?php echo ('false'==$slide['tile_vertical']) ? 'selected="selected"' : ''; ?> value="false"><?php _e('Horizontal', 'cyclone-slider-2'); ?></option>
    148                                 </select>
    149                                 <div class="clear"></div>
    150                             </div>
    151                         </div>
    152                     </div>
    153                 </div>
    154             </div>
    155             <div class="clear"></div>
    156         </div><!-- // end .cs-slide-image -->
     50        <?php
     51        $this->render('slide-settings.php',
     52            array(
     53                'i' => $i,
     54                'slide' => $slide,
     55                'effects' => $effects
     56            )
     57        );
     58        ?>
     59        <?php $this->render(
     60            'slide-edit-image.php',
     61            array(
     62                'i' => $i,
     63                'slide' => $slide,
     64                'image_url' => $image_url,
     65                'full_image_url' => $full_image_url,
     66                'box_title' => $box_title,
     67                'effects' => $effects
     68            )
     69        ); ?>
    15770        <div class="cs-slide-youtube">
    15871            <div class="field">
    159                 <label for="cs_youtube_url-<?php echo esc_attr($i); ?>" class="cs-changeling-id"><?php _e('YouTube URL:', 'cyclone-slider-2'); ?></label>
     72                <label for="cs_youtube_url-<?php echo esc_attr($i); ?>" class="cs-changeling-id"><?php _e('YouTube URL:', 'cycloneslider'); ?></label>
    16073                <input id="cs_youtube_url-<?php echo esc_attr($i); ?>" type="text" class="widefat cs-changeling-id cs-youtube-url" name="cycloneslider_metas[<?php echo esc_attr($i); ?>][youtube_url]" value="<?php echo esc_attr($slide['youtube_url']); ?>" />
    161                 <span class="note"><?php _e('Copy and paste a valid YouTube URL here.', 'cyclone-slider-2'); ?></span>
     74                <span class="note"><?php _e('Copy and paste a valid YouTube URL here.', 'cycloneslider'); ?></span>
    16275            </div>
    16376            <div class="field field-normal last">
    16477                <input type="hidden" name="cycloneslider_metas[<?php echo esc_attr($i); ?>][youtube_related]" value="false" />
    16578                <input id="cs_youtube_related-<?php echo esc_attr($i); ?>" type="checkbox" class="widefat cs-changeling-id cs-youtube-related" name="cycloneslider_metas[<?php echo esc_attr($i); ?>][youtube_related]" value="true" <?php checked( $slide['youtube_related'], 'false' ); ?> />
    166                 <label for="cs_youtube_related-<?php echo esc_attr($i); ?>" class="cs-changeling-id"><?php _e('Do not show suggested videos when the video finishes.', 'cyclone-slider-2'); ?></label>
     79                <label for="cs_youtube_related-<?php echo esc_attr($i); ?>" class="cs-changeling-id"><?php _e('Do not show suggested videos when the video finishes.', 'cycloneslider'); ?></label>
    16780            </div>
    16881        </div><!-- // end .cs-slide-youtube -->
    16982        <div class="cs-slide-vimeo">
    17083            <div class="field last">
    171                 <label for=""><?php _e('Vimeo URL:', 'cyclone-slider-2'); ?></label>
     84                <label for=""><?php _e('Vimeo URL:', 'cycloneslider'); ?></label>
    17285                <input type="text" class="widefat cs-vimeo-url" name="cycloneslider_metas[<?php echo esc_attr($i); ?>][vimeo_url]" value="<?php echo esc_attr($slide['vimeo_url']); ?>" />
    173                 <span class="note"><?php _e('Copy and paste a valid Vimeo URL here.', 'cyclone-slider-2'); ?></span>
     86                <span class="note"><?php _e('Copy and paste a valid Vimeo URL here.', 'cycloneslider'); ?></span>
    17487            </div>
    17588        </div><!-- // end .cs-slide-vimeo -->
    17689        <div class="cs-slide-custom">
    17790            <div class="field last">
    178                 <label for=""><?php _e('Custom HTML', 'cyclone-slider-2'); ?></label>
     91                <label for=""><?php _e('Custom HTML', 'cycloneslider'); ?></label>
    17992                <textarea class="widefat cs-custom-html" name="cycloneslider_metas[<?php echo esc_attr($i); ?>][custom]"><?php echo esc_textarea($slide['custom']); ?></textarea>
    18093            </div>
     
    18396        <div class="cs-slide-testimonial">
    18497            <div class="cs-testimonial-quote">
     98                <div class="field">
     99                    <label for=""><?php _e('Quote', 'cycloneslider'); ?></label>
     100                    <textarea class="widefat cs-testimonial" name="cycloneslider_metas[<?php echo esc_attr($i); ?>][testimonial]"><?php echo esc_textarea($slide['testimonial']); ?></textarea>
     101                </div>
    185102                <div class="field last">
    186                     <label for=""><?php _e('Quote', 'cyclone-slider-2'); ?></label>
    187                     <textarea class="widefat cs-testimonial" name="cycloneslider_metas[<?php echo esc_attr($i); ?>][testimonial]"><?php echo esc_textarea($slide['testimonial']); ?></textarea>
     103                    <label for=""><?php _e('Image', 'cycloneslider'); ?></label>
     104                    <div class="cs-image-field">
     105                        <div class="cs-image-thumb">
     106                            <?php if($testimonial_img_url): ?>
     107                                <img src="<?php echo esc_url($testimonial_img_url); ?>" alt="<?php _e('Thumbnail', 'cycloneslider'); ?>">
     108                            <?php endif; ?>
     109                        </div>
     110                        <input class="cs-image-id" name="cycloneslider_metas[<?php echo esc_attr($i); ?>][testimonial_img]" type="hidden" value="<?php echo esc_attr($slide['testimonial_img']); ?>" />
     111                        <input class="button-secondary cs-media-gallery-show" type="button" value="<?php _e('Get Image', 'cycloneslider'); ?>" />
     112                        <?php if($testimonial_img_url): ?>
     113                            <a target="_blank" class="button-secondary" href="<?php echo esc_url($full_testimonial_img_url); ?>"><?php _e('View Image', 'cycloneslider'); ?></a>
     114                        <?php endif; ?>
     115                    </div>
    188116                </div>
    189117            </div><!-- // end .cs-testimonial-quote -->
    190118            <div class="cs-quote-properties">
    191119                <div class="expandable-box">
    192                     <div class="expandable-header first"><?php _e('Author', 'cyclone-slider-2'); ?></div>
     120                    <div class="expandable-header first"><?php _e('Author', 'cycloneslider'); ?></div>
    193121                    <div class="expandable-body">
    194122                        <div class="field last">
    195                             <label for=""><?php _e('Name:', 'cyclone-slider-2'); ?></label> <br>
     123                            <label for=""><?php _e('Name:', 'cycloneslider'); ?></label> <br>
    196124                            <input class="widefat" name="cycloneslider_metas[<?php echo esc_attr($i); ?>][testimonial_author]" type="text" value="<?php echo esc_attr($slide['testimonial_author']); ?>" />
    197125                        </div>
     
    199127                </div>
    200128                <div class="expandable-box last">
    201                     <div class="expandable-header"><?php _e('Link', 'cyclone-slider-2'); ?></div>
     129                    <div class="expandable-header"><?php _e('Link', 'cycloneslider'); ?></div>
    202130                    <div class="expandable-body">
    203131                        <div class="field">
    204                             <label for=""><?php _e('Link URL:', 'cyclone-slider-2'); ?></label> <br>
     132                            <label for=""><?php _e('Link URL:', 'cycloneslider'); ?></label> <br>
    205133                            <input class="widefat" name="cycloneslider_metas[<?php echo esc_attr($i); ?>][testimonial_link]" type="text" value="<?php echo esc_url($slide['testimonial_link']); ?>" />
    206134                        </div>
    207135                        <div class="field last">
    208                             <label for=""><?php _e('Open Link in:', 'cyclone-slider-2'); ?></label> <br>
     136                            <label for=""><?php _e('Open Link in:', 'cycloneslider'); ?></label> <br>
    209137                            <select class="" id="" name="cycloneslider_metas[<?php echo esc_attr($i); ?>][testimonial_link_target]">
    210                                 <option <?php selected( $slide['testimonial_link_target'], '_self' ); ?> value="_self"><?php _e('Same Window', 'cyclone-slider-2'); ?></option>
    211                                 <option <?php selected( $slide['testimonial_link_target'], '_blank' ); ?> value="_blank"><?php _e('New Tab or Window', 'cyclone-slider-2'); ?></option>
     138                                <option <?php selected( $slide['testimonial_link_target'], '_self' ); ?> value="_self"><?php _e('Same Window', 'cycloneslider'); ?></option>
     139                                <option <?php selected( $slide['testimonial_link_target'], '_blank' ); ?> value="_blank"><?php _e('New Tab or Window', 'cycloneslider'); ?></option>
    212140                            </select>
    213141                        </div>
     
    215143                </div>
    216144            </div>
    217             <div class="clear"></div>
    218145        </div><!-- // end .cs-slide-testimonial -->
    219         <div class="clear"></div>
    220     </div>
    221 </div>
     146    </div><!-- // end .cs-body -->
     147</div><!-- // end .cs-slide -->
  • cyclone-slider-2/trunk/views/slider-advanced-settings.php

    r1451766 r1690000  
    11<?php if(!defined('ABSPATH')) die('Direct access denied.'); ?>
    2 <div class="cycloneslider-cover"><p><a href="http://www.codefleet.net/cyclone-slider-pro/"><?php _e('Available in pro version.', 'cyclone-slider-2'); ?></a></p></div>
     2<div class="cycloneslider-cover"><p><a href="http://www.codefleet.net/cyclone-slider-pro/"><?php _e('Available in pro version.', 'cycloneslider'); ?></a></p></div>
    33<div class="cycloneslider-field">
    4     <label for="cycloneslider_settings_allow_wrap"><?php _e('Allow Wrap?', 'cyclone-slider-2'); ?></label>
     4    <label for="cycloneslider_settings_allow_wrap"><?php _e('Allow Wrap?', 'cycloneslider'); ?></label>
    55    <select id="cycloneslider_settings_allow_wrap" name="cycloneslider_settings[allow_wrap]">
    6         <option <?php selected($slider_settings['allow_wrap'], 'true'); ?> value="true"><?php _e('Yes', 'cyclone-slider-2'); ?></option>
    7         <option <?php selected($slider_settings['allow_wrap'], 'false'); ?> value="false"><?php _e('No', 'cyclone-slider-2'); ?></option>
     6        <option <?php selected($slider_settings['allow_wrap'], 'true'); ?> value="true"><?php _e('Yes', 'cycloneslider'); ?></option>
     7        <option <?php selected($slider_settings['allow_wrap'], 'false'); ?> value="false"><?php _e('No', 'cycloneslider'); ?></option>
    88    </select>
    99    <span class="note">
    10     <?php _e('Determines if slider wraps to beginning slide if it reaches the end slide.', 'cyclone-slider-2'); ?>
     10    <?php _e('Determines if slider wraps to beginning slide if it reaches the end slide.', 'cycloneslider'); ?>
    1111    </span>
    1212    <div class="clear"></div>
    1313</div>
    1414<div class="cycloneslider-field">
    15     <label for="cycloneslider_settings_dynamic_height"><?php _e('Dynamic Height:', 'cyclone-slider-2'); ?></label>
     15    <label for="cycloneslider_settings_dynamic_height"><?php _e('Dynamic Height:', 'cycloneslider'); ?></label>
    1616    <select id="cycloneslider_settings_dynamic_height" name="cycloneslider_settings[dynamic_height]">
    17         <option <?php selected($slider_settings['dynamic_height'], 'off'); ?> value="off"><?php _e('Off', 'cyclone-slider-2'); ?></option>
    18         <option <?php selected($slider_settings['dynamic_height'], 'on'); ?> value="on"><?php _e('On', 'cyclone-slider-2'); ?></option>
     17        <option <?php selected($slider_settings['dynamic_height'], 'off'); ?> value="off"><?php _e('Off', 'cycloneslider'); ?></option>
     18        <option <?php selected($slider_settings['dynamic_height'], 'on'); ?> value="on"><?php _e('On', 'cycloneslider'); ?></option>
    1919    </select>
    2020    <span class="note">
    21     <?php _e('Adjust slider height depending on current slide.', 'cyclone-slider-2'); ?>
     21    <?php _e('Adjust slider height depending on current slide.', 'cycloneslider'); ?>
    2222    </span>
    2323    <div class="clear"></div>
    2424</div>
    2525<div class="cycloneslider-field">
    26     <label for="cycloneslider_settings_delay"><?php _e('Delay:', 'cyclone-slider-2'); ?> </label>
     26    <label for="cycloneslider_settings_delay"><?php _e('Delay:', 'cycloneslider'); ?> </label>
    2727    <input id="cycloneslider_settings_delay" type="number" name="cycloneslider_settings[delay]" value="<?php echo esc_attr($slider_settings['delay']); ?>" />
    28     <span class="note"><?php _e('Milliseconds to add or substract from the time before the first transition occurs.', 'cyclone-slider-2'); ?></span>
     28    <span class="note"><?php _e('Milliseconds to add or substract from the time before the first transition occurs.', 'cycloneslider'); ?></span>
    2929    <div class="clear"></div>
    3030</div>
    3131<div class="cycloneslider-field">
    32     <label for="cycloneslider_settings_easing"><?php _e('Easing:', 'cyclone-slider-2'); ?></label>
     32    <label for="cycloneslider_settings_easing"><?php _e('Easing:', 'cycloneslider'); ?></label>
    3333    <select id="cycloneslider_settings_easing" name="cycloneslider_settings[easing]">
    3434        <?php foreach( $easing_options as $easing ): ?>
     
    3636        <?php endforeach; ?>
    3737    </select>
    38     <span class="note"><?php _e('Easing for transition animations.', 'cyclone-slider-2'); ?></span>
     38    <span class="note"><?php _e('Easing for transition animations.', 'cycloneslider'); ?></span>
    3939    <div class="clear"></div>
    4040</div>
    4141<div class="cycloneslider-field">
    42     <label for="cycloneslider_settings_swipe"><?php _e('Swipe:', 'cyclone-slider-2'); ?></label>
     42    <label for="cycloneslider_settings_swipe"><?php _e('Swipe:', 'cycloneslider'); ?></label>
    4343    <select id="cycloneslider_settings_swipe" name="cycloneslider_settings[swipe]">
    44         <option <?php selected($slider_settings['swipe'], 'true'); ?> value="true"><?php _e('Yes', 'cyclone-slider-2'); ?></option>
    45         <option <?php selected($slider_settings['swipe'], 'false'); ?> value="false"><?php _e('No', 'cyclone-slider-2'); ?></option>
     44        <option <?php selected($slider_settings['swipe'], 'true'); ?> value="true"><?php _e('Yes', 'cycloneslider'); ?></option>
     45        <option <?php selected($slider_settings['swipe'], 'false'); ?> value="false"><?php _e('No', 'cycloneslider'); ?></option>
    4646    </select>
    4747    <span class="note">
    48     <?php _e('Enable swipe gesture support for touch devices.', 'cyclone-slider-2'); ?>
     48    <?php _e('Enable swipe gesture support for touch devices.', 'cycloneslider'); ?>
    4949    </span>
    5050    <div class="clear"></div>
    5151</div>
    5252    <div class="cycloneslider-field">
    53         <label for="cycloneslider_settings_resize_option"><?php _e('Resize Options:', 'cyclone-slider-2'); ?></label>
     53        <label for="cycloneslider_settings_resize_option"><?php _e('Resize Options:', 'cycloneslider'); ?></label>
    5454        <select id="cycloneslider_settings_resize_option" name="cycloneslider_settings[resize_option]">
    5555            <?php foreach( $resize_options as $resize_option=>$resize_name ): ?>
     
    5959    <span class="note">
    6060        <?php if(version_compare(PHP_VERSION, '5.3', '>=')){ ?>
    61             <?php _e('Fit - (Default) Fit images inside the slideshow maintaining aspect ratio.', 'cyclone-slider-2'); ?><br>
    62             <?php _e('Fill - Images will fill the entire slideshow with no empty space.', 'cyclone-slider-2'); ?><br>
    63             <?php _e('Crop - Excess parts of images are removed.', 'cyclone-slider-2'); ?><br>
    64             <?php _e('Exact - Resize images to exact dimensions ignoring aspect ratio.', 'cyclone-slider-2'); ?><br>
    65             <?php _e('Exact Width - Resize to exact width.', 'cyclone-slider-2'); ?><br>
    66             <?php _e('Exact Height - Resize to exact height.', 'cyclone-slider-2'); ?><br>
    67             <?php _e('Note: Please clear your browser cache if you are not seeing the changes.', 'cyclone-slider-2'); ?><br>
     61            <?php _e('Fit - (Default) Fit images inside the slideshow maintaining aspect ratio.', 'cycloneslider'); ?><br>
     62            <?php _e('Fill - Images will fill the entire slideshow with no empty space.', 'cycloneslider'); ?><br>
     63            <?php _e('Crop - Excess parts of images are removed.', 'cycloneslider'); ?><br>
     64            <?php _e('Exact - Resize images to exact dimensions ignoring aspect ratio.', 'cycloneslider'); ?><br>
     65            <?php _e('Exact Width - Resize to exact width.', 'cycloneslider'); ?><br>
     66            <?php _e('Exact Height - Resize to exact height.', 'cycloneslider'); ?><br>
     67            <?php _e('Note: Please clear your browser cache if you are not seeing the changes.', 'cycloneslider'); ?><br>
    6868        <?php } else { ?>
    69             <?php _e('Auto - Cyclone Slider decides the resize option.', 'cyclone-slider-2'); ?><br>
    70             <?php _e('Crop - Resize and remove excess parts.', 'cyclone-slider-2'); ?><br>
    71             <?php _e('Exact - Resize to exact dimensions.', 'cyclone-slider-2'); ?><br>
    72             <?php _e('Landscape - Resize to exact width.', 'cyclone-slider-2'); ?><br>
    73             <?php _e('Portrait - Resize to exact height.', 'cyclone-slider-2'); ?><br>
     69            <?php _e('Auto - Cyclone Slider decides the resize option.', 'cycloneslider'); ?><br>
     70            <?php _e('Crop - Resize and remove excess parts.', 'cycloneslider'); ?><br>
     71            <?php _e('Exact - Resize to exact dimensions.', 'cycloneslider'); ?><br>
     72            <?php _e('Landscape - Resize to exact width.', 'cycloneslider'); ?><br>
     73            <?php _e('Portrait - Resize to exact height.', 'cycloneslider'); ?><br>
    7474        <?php } ?>
    7575    </span>
     
    7878<?php if(version_compare(PHP_VERSION, '5.3', '>=')){ ?>
    7979    <div class="cycloneslider-field last">
    80         <label for="cycloneslider_settings_resize_quality"><?php _e('Image Quality (JPEG):', 'cyclone-slider-2'); ?></label>
     80        <label for="cycloneslider_settings_resize_quality"><?php _e('Image Quality (JPEG):', 'cycloneslider'); ?></label>
    8181        <select id="cycloneslider_settings_resize_quality" name="cycloneslider_settings[resize_quality]">
    8282
    83             <option <?php selected($slider_settings['resize_quality'], 10); ?> value="10"><?php _e('Low', 'cyclone-slider-2'); ?></option>
    84             <option <?php selected($slider_settings['resize_quality'], 30); ?> value="30"><?php _e('Medium', 'cyclone-slider-2'); ?></option>
    85             <option <?php selected($slider_settings['resize_quality'], 60); ?> value="60"><?php _e('High', 'cyclone-slider-2'); ?></option>
    86             <option <?php selected($slider_settings['resize_quality'], 80); ?> value="80"><?php _e('Very High', 'cyclone-slider-2'); ?></option>
    87             <option <?php selected($slider_settings['resize_quality'], 100); ?> value="100"><?php _e('Max', 'cyclone-slider-2'); ?></option>
     83            <option <?php selected($slider_settings['resize_quality'], 10); ?> value="10"><?php _e('Low', 'cycloneslider'); ?></option>
     84            <option <?php selected($slider_settings['resize_quality'], 30); ?> value="30"><?php _e('Medium', 'cycloneslider'); ?></option>
     85            <option <?php selected($slider_settings['resize_quality'], 60); ?> value="60"><?php _e('High', 'cycloneslider'); ?></option>
     86            <option <?php selected($slider_settings['resize_quality'], 80); ?> value="80"><?php _e('Very High', 'cycloneslider'); ?></option>
     87            <option <?php selected($slider_settings['resize_quality'], 100); ?> value="100"><?php _e('Max', 'cycloneslider'); ?></option>
    8888
    8989        </select>
    9090    <span class="note">
    91         <?php _e('The quality of the generated images. Applies to JPEG images only.', 'cyclone-slider-2'); ?><br>
    92         <?php _e('Low = low quality but small file size. Max = Best quality but large file size.', 'cyclone-slider-2'); ?><br>
     91        <?php _e('The quality of the generated images. Applies to JPEG images only.', 'cycloneslider'); ?><br>
     92        <?php _e('Low = low quality but small file size. Max = Best quality but large file size.', 'cycloneslider'); ?><br>
    9393    </span>
    9494        <div class="clear"></div>
  • cyclone-slider-2/trunk/views/slider-codes.php

    r1381774 r1690000  
    22
    33<div class="cycloneslider-field">
    4     <label for="cycloneslider_get_shortcode"><?php _e('Your Shortcode:', 'cyclone-slider-2'); ?> </label>
     4    <label for="cycloneslider_get_shortcode"><?php _e('Your Shortcode:', 'cycloneslider'); ?> </label>
    55    <input readonly="true" id="cycloneslider_get_shortcode" type="text" class="widefat" name="" value="<?php echo esc_attr($shortcode); ?>" />
    6     <span class="note"><?php _e('Copy and paste this shortcode into your Post, Page or Custom Post editor.', 'cyclone-slider-2'); ?></span>
     6    <span class="note"><?php _e('Copy and paste this shortcode into your Post, Page or Custom Post editor.', 'cycloneslider'); ?></span>
    77    <div class="clear"></div>
    88</div>
    99<div class="cycloneslider-field last">
    10     <label for="cycloneslider_get_code"><?php _e('Your PHP Code:', 'cyclone-slider-2'); ?> </label>
     10    <label for="cycloneslider_get_code"><?php _e('Your PHP Code:', 'cycloneslider'); ?> </label>
    1111    <input readonly="true" id="cycloneslider_get_code" type="text" class="widefat" name="" value="<?php echo esc_attr($template_code); ?>" />
    12     <span class="note"><?php _e('Copy and paste this code when you need to display the slider in template files (header.php, front-page.php, etc.).', 'cyclone-slider-2'); ?></span>
     12    <span class="note"><?php _e('Copy and paste this code when you need to display the slider in template files (header.php, front-page.php, etc.).', 'cycloneslider'); ?></span>
    1313    <div class="clear"></div>
    1414</div>
  • cyclone-slider-2/trunk/views/slider-id.php

    r1381774 r1690000  
    33<div class="cycloneslider-field last">
    44    <input id="cycloneslider_post_name" type="text" name="post_name" value="<?php echo esc_attr($post_name); ?>" />
    5     <span class="note"><?php _e('Change the Slideshow ID here.', 'cyclone-slider-2'); ?></span>
     5    <span class="note"><?php _e('Change the Slideshow ID here.', 'cycloneslider'); ?></span>
    66    <div class="clear"></div>
    77</div>
  • cyclone-slider-2/trunk/views/slider-preview.php

    r1381774 r1690000  
    77    endif;
    88else:
    9     ?><p><?php _e('Your preview will appear here.', 'cyclone-slider-2'); ?></p><?php
     9    ?><p><?php _e('Your preview will appear here.', 'cycloneslider'); ?></p><?php
    1010endif;
  • cyclone-slider-2/trunk/views/slider-settings.php

    r1381774 r1690000  
    11<?php if(!defined('ABSPATH')) die('Direct access denied.'); ?>
    2 
    32<div class="cycloneslider-field">
    4     <label for="cycloneslider_settings_fx"><?php _e('Transition Effects to Use:', 'cyclone-slider-2'); ?></label>
     3    <label for="cycloneslider_settings_fx"><?php _e('Transition Effects to Use:', 'cycloneslider'); ?></label>
    54    <select id="cycloneslider_settings_fx" name="cycloneslider_settings[fx]">
    65    <?php foreach($effects as $key=>$fx): ?>
    7     <option <?php echo (isset($slider_settings['fx']) && $key==$slider_settings['fx']) ? 'selected="selected"' : ''; ?> value="<?php echo esc_attr($key); ?>"><?php echo esc_attr($fx); ?></option>
     6    <option <?php selected( $slider_settings['fx'], $key ); ?> value="<?php echo esc_attr($key); ?>"><?php echo esc_attr($fx); ?></option>
    87    <?php endforeach; ?>
    98    </select>
     
    1110</div>
    1211<div class="cycloneslider-field cycloneslider-field-tile-properties">
    13     <label for="cycloneslider_settings_tile_count"><?php _e('Tile Count:', 'cyclone-slider-2'); ?> </label>
     12    <label for="cycloneslider_settings_tile_count"><?php _e('Tile Count:', 'cycloneslider'); ?> </label>
    1413    <input id="cycloneslider_settings_tile_count" type="number" name="cycloneslider_settings[tile_count]" value="<?php echo esc_attr($slider_settings['tile_count']); ?>" />
    15     <span class="note"><?php _e('The number of tiles to use in the transition.', 'cyclone-slider-2'); ?></span>
     14    <span class="note"><?php _e('The number of tiles to use in the transition.', 'cycloneslider'); ?></span>
    1615    <div class="clear"></div>
    1716    <br />
    18     <label for="cycloneslider_settings_tile_vertical"><?php _e('Tile Position:', 'cyclone-slider-2'); ?> </label>
     17    <label for="cycloneslider_settings_tile_vertical"><?php _e('Tile Position:', 'cycloneslider'); ?> </label>
    1918    <select id="cycloneslider_settings_tile_vertical" name="cycloneslider_settings[tile_vertical]">
    20         <option <?php echo ('true'==$slider_settings['tile_vertical']) ? 'selected="selected"' : ''; ?> value="true"><?php _e('Vertical', 'cyclone-slider-2'); ?></option>
    21         <option <?php echo ('false'==$slider_settings['tile_vertical']) ? 'selected="selected"' : ''; ?> value="false"><?php _e('Horizontal', 'cyclone-slider-2'); ?></option>
     19        <option <?php selected( $slider_settings['tile_vertical'], 'true' ); ?> value="true"><?php _e('Vertical', 'cycloneslider'); ?></option>
     20        <option <?php selected( $slider_settings['tile_vertical'], 'false' ); ?> value="false"><?php _e('Horizontal', 'cycloneslider'); ?></option>
    2221    </select>
    2322    <div class="clear"></div>
    2423</div>
    2524<div class="cycloneslider-field">
    26     <label for="cycloneslider_settings_timeout"><?php _e('Next Slide Delay:', 'cyclone-slider-2'); ?> </label>
     25    <label for="cycloneslider_settings_timeout"><?php _e('Next Slide Delay:', 'cycloneslider'); ?> </label>
    2726    <input id="cycloneslider_settings_timeout" type="number" name="cycloneslider_settings[timeout]" value="<?php echo esc_attr($slider_settings['timeout']); ?>" />
    28     <span class="note"><?php _e('Milliseconds. 0 to disable auto advance.', 'cyclone-slider-2'); ?></span>
     27    <span class="note"><?php _e('Milliseconds. 0 to disable auto advance.', 'cycloneslider'); ?></span>
    2928    <div class="clear"></div>
    3029</div>
    3130<div class="cycloneslider-field">
    32     <label for="cycloneslider_settings_speed"><?php _e('Transition Effects Speed:', 'cyclone-slider-2'); ?></label>
     31    <label for="cycloneslider_settings_speed"><?php _e('Transition Effects Speed:', 'cycloneslider'); ?></label>
    3332    <input id="cycloneslider_settings_speed" type="number" name="cycloneslider_settings[speed]" value="<?php echo esc_attr($slider_settings['speed']); ?>" />
    34     <span class="note"><?php _e('Milliseconds', 'cyclone-slider-2'); ?></span>
     33    <span class="note"><?php _e('Milliseconds', 'cycloneslider'); ?></span>
    3534    <div class="clear"></div>
    3635</div>
    3736<div class="cycloneslider-field">
    38     <label for="cycloneslider_settings_width"><?php _e('Width:', 'cyclone-slider-2'); ?> </label>
     37    <label for="cycloneslider_settings_width"><?php _e('Width:', 'cycloneslider'); ?> </label>
    3938    <input id="cycloneslider_settings_width" type="number" name="cycloneslider_settings[width]" value="<?php echo esc_attr($slider_settings['width']); ?>" />
    40     <span class="note"><?php _e('pixels.', 'cyclone-slider-2'); ?></span>
     39    <span class="note"><?php _e('pixels.', 'cycloneslider'); ?></span>
    4140    <div class="clear"></div>
    4241</div>
    4342<div class="cycloneslider-field">
    44     <label for="cycloneslider_settings_height"><?php _e('Height:', 'cyclone-slider-2'); ?> </label>
     43    <label for="cycloneslider_settings_height"><?php _e('Height:', 'cycloneslider'); ?> </label>
    4544    <input id="cycloneslider_settings_height" type="number" name="cycloneslider_settings[height]" value="<?php echo esc_attr($slider_settings['height']); ?>" />
    46     <span class="note"><?php _e('pixels.', 'cyclone-slider-2'); ?></span>
     45    <span class="note"><?php _e('pixels.', 'cycloneslider'); ?></span>
    4746    <div class="clear"></div>
    4847</div>
    4948<div class="cycloneslider-field">
    50     <label for="cycloneslider_settings_width_management"><?php _e('Width Management:', 'cyclone-slider-2'); ?></label>
     49    <label for="cycloneslider_settings_width_management"><?php _e('Width Management:', 'cycloneslider'); ?></label>
    5150    <select id="cycloneslider_settings_width_management" name="cycloneslider_settings[width_management]">
    52         <option <?php selected($slider_settings['width_management'], 'responsive'); ?> value="responsive"><?php _e('Responsive', 'cyclone-slider-2'); ?></option>
    53         <option <?php selected($slider_settings['width_management'], 'full'); ?> value="full"><?php _e('Full', 'cyclone-slider-2'); ?></option>
    54         <option <?php selected($slider_settings['width_management'], 'fixed'); ?> value="fixed"><?php _e('Fixed', 'cyclone-slider-2'); ?></option>
     51        <option <?php selected($slider_settings['width_management'], 'responsive'); ?> value="responsive"><?php _e('Responsive', 'cycloneslider'); ?></option>
     52        <option <?php selected($slider_settings['width_management'], 'full'); ?> value="full"><?php _e('Full', 'cycloneslider'); ?></option>
     53        <option <?php selected($slider_settings['width_management'], 'fixed'); ?> value="fixed"><?php _e('Fixed', 'cycloneslider'); ?></option>
    5554    </select>
    5655    <span class="note">
    57     <?php _e('Responsive - resizes to smaller size but maximum width will be equal to the provided width.', 'cyclone-slider-2'); ?><br />
    58     <?php _e('Full - the same as responsive but maximum width will be equal to its container ignoring the provided width.', 'cyclone-slider-2'); ?><br />
    59     <?php _e('Fixed - width and height are not resized.', 'cyclone-slider-2'); ?>
     56    <?php _e('Responsive - resizes to smaller size but maximum width will be equal to the provided width.', 'cycloneslider'); ?><br />
     57    <?php _e('Full - the same as responsive but maximum width will be equal to its container ignoring the provided width.', 'cycloneslider'); ?><br />
     58    <?php _e('Fixed - width and height are not resized.', 'cycloneslider'); ?>
    6059    </span>
    6160    <div class="clear"></div>
    6261</div>
    6362<div class="cycloneslider-field">
    64     <label for="cycloneslider_settings_resize"><?php _e('Resize Images?', 'cyclone-slider-2'); ?></label>
     63    <label for="cycloneslider_settings_resize"><?php _e('Resize Images?', 'cycloneslider'); ?></label>
    6564    <select id="cycloneslider_settings_resize" name="cycloneslider_settings[resize]">
    66         <option <?php selected($slider_settings['resize'], 0); ?> value="0"><?php _e('No', 'cyclone-slider-2'); ?></option>
    67         <option <?php selected($slider_settings['resize'], 1); ?> value="1"><?php _e('Yes', 'cyclone-slider-2'); ?></option>
     65        <option <?php selected($slider_settings['resize'], 0); ?> value="0"><?php _e('No', 'cycloneslider'); ?></option>
     66        <option <?php selected($slider_settings['resize'], 1); ?> value="1"><?php _e('Yes', 'cycloneslider'); ?></option>
    6867    </select>
    6968    <input type="hidden" name="cycloneslider_settings[force_resize]" value="0" />
    7069    <input type="checkbox" name="cycloneslider_settings[force_resize]" id="force_resize" value="1" />
    71     <label for="force_resize"><?php _e('Force Resize', 'cyclone-slider-2'); ?></label> <br>
    72     <span class="note"><?php _e('Yes - resize images to slideshow dimension. <br>No - use the original uploaded image. <br>Force Resize - Regenerate all images and thumbnails.', 'cyclone-slider-2'); ?></span>
     70    <label for="force_resize"><?php _e('Force Resize', 'cycloneslider'); ?></label> <br>
     71    <span class="note">
     72        <?php _e('Yes - resize images to slideshow dimension.', 'cycloneslider'); ?><br>
     73        <?php _e('No - use the original uploaded image.', 'cycloneslider'); ?><br>
     74        <?php _e('Force Resize - Regenerate all images and thumbnails.', 'cycloneslider'); ?>
     75    </span>
    7376    <div class="clear"></div>
    7477</div>
    7578<div class="cycloneslider-field">
    76     <label for="cycloneslider_settings_hover_pause"><?php _e('Pause on Hover?', 'cyclone-slider-2'); ?></label>
     79    <label for="cycloneslider_settings_hover_pause"><?php _e('Pause on Hover?', 'cycloneslider'); ?></label>
    7780    <select id="cycloneslider_settings_hover_pause" name="cycloneslider_settings[hover_pause]">
    78         <option <?php echo ('true'==$slider_settings['hover_pause']) ? 'selected="selected"' : ''; ?> value="true"><?php _e('Yes', 'cyclone-slider-2'); ?></option>
    79         <option <?php echo ('false'==$slider_settings['hover_pause']) ? 'selected="selected"' : ''; ?> value="false"><?php _e('No', 'cyclone-slider-2'); ?></option>
     81        <option <?php selected($slider_settings['hover_pause'], 'true'); ?> value="true"><?php _e('Yes', 'cycloneslider'); ?></option>
     82        <option <?php selected($slider_settings['hover_pause'], 'false'); ?> value="false"><?php _e('No', 'cycloneslider'); ?></option>
    8083    </select>
    8184    <div class="clear"></div>
    8285</div>
    8386<div class="cycloneslider-field">
    84     <label for="cycloneslider_settings_show_prev_next"><?php _e('Show Prev/Next Buttons?', 'cyclone-slider-2'); ?></label>
     87    <label for="cycloneslider_settings_show_prev_next"><?php _e('Show Prev/Next Buttons?', 'cycloneslider'); ?></label>
    8588    <select id="cycloneslider_settings_show_prev_next" name="cycloneslider_settings[show_prev_next]">
    86         <option <?php echo (1==$slider_settings['show_prev_next']) ? 'selected="selected"' : ''; ?> value="1"><?php _e('Yes', 'cyclone-slider-2'); ?></option>
    87         <option <?php echo (0==$slider_settings['show_prev_next']) ? 'selected="selected"' : ''; ?> value="0"><?php _e('No', 'cyclone-slider-2'); ?></option>
     89        <option <?php selected($slider_settings['show_prev_next'], 1); ?> value="1"><?php _e('Yes', 'cycloneslider'); ?></option>
     90        <option <?php selected($slider_settings['show_prev_next'], 0); ?> value="0"><?php _e('No', 'cycloneslider'); ?></option>
    8891    </select>
    8992    <div class="clear"></div>
    9093</div>
    9194<div class="cycloneslider-field">
    92     <label for="cycloneslider_settings_show_nav"><?php _e('Show Navigation?', 'cyclone-slider-2'); ?></label>
     95    <label for="cycloneslider_settings_show_nav"><?php _e('Show Navigation?', 'cycloneslider'); ?></label>
    9396    <select id="cycloneslider_settings_show_nav" name="cycloneslider_settings[show_nav]">
    94         <option <?php echo (1==$slider_settings['show_nav']) ? 'selected="selected"' : ''; ?> value="1"><?php _e('Yes', 'cyclone-slider-2'); ?></option>
    95         <option <?php echo (0==$slider_settings['show_nav']) ? 'selected="selected"' : ''; ?> value="0"><?php _e('No', 'cyclone-slider-2'); ?></option>
     97        <option <?php selected($slider_settings['show_nav'], 1); ?> value="1"><?php _e('Yes', 'cycloneslider'); ?></option>
     98        <option <?php selected($slider_settings['show_nav'], 0); ?> value="0"><?php _e('No', 'cycloneslider'); ?></option>
    9699    </select>
    97     <span class="note"><?php _e('The thumbnails or dots depending on template.', 'cyclone-slider-2'); ?></span>
     100    <span class="note"><?php _e('The thumbnails or dots depending on template.', 'cycloneslider'); ?></span>
    98101    <div class="clear"></div>
    99102</div>
    100103<div class="cycloneslider-field last">
    101     <label for="cycloneslider_settings_randomize"><?php _e('Random Slide Order?', 'cyclone-slider-2'); ?></label>
     104    <label for="cycloneslider_settings_randomize"><?php _e('Random Slide Order?', 'cycloneslider'); ?></label>
    102105    <select id="cycloneslider_settings_randomize" name="cycloneslider_settings[random]">
    103         <option <?php echo (0==$slider_settings['random']) ? 'selected="selected"' : ''; ?> value="0"><?php _e('No', 'cyclone-slider-2'); ?></option>
    104         <option <?php echo (1==$slider_settings['random']) ? 'selected="selected"' : ''; ?> value="1"><?php _e('Yes', 'cyclone-slider-2'); ?></option>
     106        <option <?php echo (0==$slider_settings['random']) ? 'selected="selected"' : ''; ?> value="0"><?php _e('No', 'cycloneslider'); ?></option>
     107        <option <?php echo (1==$slider_settings['random']) ? 'selected="selected"' : ''; ?> value="1"><?php _e('Yes', 'cycloneslider'); ?></option>
    105108    </select>
    106     <span class="note"><?php _e('Randomize order of slides on every page visit.', 'cyclone-slider-2'); ?></span>
     109    <span class="note"><?php _e('Randomize order of slides on every page visit.', 'cycloneslider'); ?></span>
    107110    <div class="clear"></div>
    108111</div>
  • cyclone-slider-2/trunk/views/slides-skeleton.php

    r829722 r1690000  
    11<?php if(!defined('ABSPATH')) die('Direct access denied.'); ?>
    22
    3 <div class="cs-slide-skeleton">
     3<div id="cs-slide-skeleton" class="cs-slide-skeleton">
    44    <?php echo $empty_slide; ?>
    5 </div><!-- end .cs-slide-skeleton -->
     5</div><!-- end #cs-slide-skeleton -->
    66
    77<div id="cs-boxy" class="cs-boxy"></div>
  • cyclone-slider-2/trunk/views/slides.php

    r1381774 r1690000  
    11<?php if(!defined('ABSPATH')) die('Direct access denied.'); ?>
    2 
    3 <input type="hidden" name="<?php echo esc_attr($nonce_name); ?>" value="<?php echo esc_attr($nonce); ?>" />
    4 <div class="cs-sortables" data-post-id="<?php echo esc_attr($post_id); ?>">
    5     <?php echo $slides; ?>
    6 </div>
    7 <input type="button" value="<?php _e('Add Slide', 'cyclone-slider-2'); ?>" class="cs-add-slide button-secondary" />
    8 <input type="button" value="<?php _e('Add Images as Slides', 'cyclone-slider-2'); ?>" class="cs-multiple-slides button-secondary" />
     2<?php if($error): ?>
     3    <div class="cs-sortables">
     4        <?php echo $error; ?>
     5    </div>
     6<?php else: ?>
     7    <div class="cs-slide-actions">
     8        <button type="button" id="cs-add-slide" class="cs-add-slide"><?php _e('Add Slide', 'cycloneslider'); ?></button>
     9        <button type="button" id="cs-multiple-slides" class="cs-multiple-slides"><?php _e('Add Images as Slides', 'cycloneslider'); ?></button>
     10        <button type="button" id="cs-sort" class="cs-sort"><?php _e('Sort', 'cycloneslider'); ?></button>
     11    </div>
     12    <input type="hidden" name="<?php echo esc_attr($nonce_name); ?>" value="<?php echo esc_attr($nonce); ?>" />
     13    <div id="cs-sortables" class="cs-sortables" data-post-id="<?php echo esc_attr($post_id); ?>">
     14        <?php echo $slides; ?>
     15    </div>
     16<?php endif; ?>
  • cyclone-slider-2/trunk/views/template-selection.php

    r1381774 r1690000  
    11<?php if(!defined('ABSPATH')) die('Direct access denied.'); ?>
    2 <ul class="cs-templates">
    3     <li class="header">
    4         <span class="template-name"><?php _e('Name', 'cyclone-slider-2'); ?></span>
    5         <span class="supported-slide-types"><?php _e('Supported Slides', 'cyclone-slider-2'); ?></span>
    6         <span class="cs-location"><?php _e('Location', 'cyclone-slider-2'); ?></span>
    7         <span class="selected"><?php _e('Selected', 'cyclone-slider-2'); ?></span>
    8         <span class="clear"></span>
    9     </li>
    10     <?php foreach($templates as $id=>$template): ?>
    11     <li class="body <?php echo ($template['selected']) ? 'active' : ''; ?>">
    12         <input <?php checked( $slider_settings['template'], $id); ?> id="template-<?php echo esc_attr($id); ?>" type="radio" name="cycloneslider_settings[template]" value="<?php echo esc_attr($id); ?>" />
    13         <span class="template-name"><?php echo esc_html($template['name']); ?></span>
    14         <span class="supported-slide-types">
    15             <?php if(in_array('image', $template['supports'])): ?>
    16             <i title="Image" class="icon-picture"></i>
    17             <?php endif; ?>
    18             <?php if(in_array('youtube', $template['supports'])): ?>
    19             <i title="YouTube" class="icon-youtube-play"></i>
    20             <?php endif; ?>
    21             <?php if(in_array('vimeo', $template['supports'])): ?>
    22             <i title="Vimeo" class="icon-play"></i>
    23             <?php endif; ?>
    24             <?php if(in_array('custom', $template['supports'])): ?>
    25             <i title="Custom HTML" class="icon-code"></i>
    26             <?php endif; ?>
    27             <?php if(in_array('testimonial', $template['supports'])): ?>
    28             <i title="Testimonial" class="icon-quote-left"></i>
    29             <?php endif; ?>
    30         </span>
    31         <span class="cs-location">
    32             <a href="#" data-content="<?php echo wp_kses_post($template['location_details']); ?>"><?php echo $template['location_name']; ?></a>
    33             <?php if( !empty( $template['warning'] ) ): ?>
    34                 <a href="#" data-content="<?php echo wp_kses_post($template['warning']); ?>" ><i class="icon-warning-sign"></i></a>
    35             <?php endif; ?>
    36         </span>
    37         <span class="selected"><i class="icon-ok"></i></span>
    38         <span class="clear"></span>
    39     </li>
    40     <?php endforeach; ?>
    41 </ul>
     2<table class="cs-templates">
     3    <thead>
     4        <tr>
     5            <th width="25%"><?php _e('Name', 'cycloneslider'); ?></th>
     6            <th width="25%"><?php _e('Supported Slides', 'cycloneslider'); ?></th>
     7            <th width="25%"><?php _e('Location', 'cycloneslider'); ?></th>
     8            <th width="25%">&nbsp;</th>
     9        </tr>
     10    </thead>
     11    <tbody>
     12        <?php foreach($templates as $id=>$template): ?>
     13        <tr class="<?php echo ($id==$slider_settings['template']) ? 'active': '' ;?>">
     14            <td>
     15                <label for="template-<?php echo esc_attr($id); ?>"><?php echo esc_html($template['name']); ?></label>
     16            </td>
     17            <td>
     18                <?php if(in_array('image', $template['supports'])): ?>
     19                <a class="boxxy" href="#" data-content="<?php _e('Image', 'cycloneslider'); ?>" title="<?php _e('Image', 'cycloneslider'); ?>">
     20                    <svg viewBox="0 0 24 24"><path d="M8.5,13.5L11,16.5L14.5,12L19,18H5M21,19V5C21,3.89 20.1,3 19,3H5A2,2 0 0,0 3,5V19A2,2 0 0,0 5,21H19A2,2 0 0,0 21,19Z" /></svg>
     21                </a>
     22                <?php endif; ?>
     23                <?php if(in_array('youtube', $template['supports'])): ?>
     24                    <a class="boxxy" href="#" data-content="<?php _e('YouTube', 'cycloneslider'); ?>" title="<?php _e('YouTube', 'cycloneslider'); ?>">
     25                        <svg viewBox="0 0 24 24"><path d="M10,16.5V7.5L16,12M20,4.4C19.4,4.2 15.7,4 12,4C8.3,4 4.6,4.19 4,4.38C2.44,4.9 2,8.4 2,12C2,15.59 2.44,19.1 4,19.61C4.6,19.81 8.3,20 12,20C15.7,20 19.4,19.81 20,19.61C21.56,19.1 22,15.59 22,12C22,8.4 21.56,4.91 20,4.4Z" /></svg>
     26                    </a>
     27                <?php endif; ?>
     28                <?php if(in_array('vimeo', $template['supports'])): ?>
     29                    <a class="boxxy" href="#" data-content="<?php _e('Vimeo', 'cycloneslider'); ?>" title="<?php _e('Vimeo', 'cycloneslider'); ?>">
     30                        <svg viewBox="0 0 24 24"><path d="M22,7.42C21.91,9.37 20.55,12.04 17.92,15.44C15.2,19 12.9,20.75 11,20.75C9.85,20.75 8.86,19.67 8.05,17.5C7.5,15.54 7,13.56 6.44,11.58C5.84,9.42 5.2,8.34 4.5,8.34C4.36,8.34 3.84,8.66 2.94,9.29L2,8.07C3,7.2 3.96,6.33 4.92,5.46C6.24,4.32 7.23,3.72 7.88,3.66C9.44,3.5 10.4,4.58 10.76,6.86C11.15,9.33 11.42,10.86 11.57,11.46C12,13.5 12.5,14.5 13.05,14.5C13.47,14.5 14.1,13.86 14.94,12.53C15.78,11.21 16.23,10.2 16.29,9.5C16.41,8.36 15.96,7.79 14.94,7.79C14.46,7.79 13.97,7.9 13.46,8.12C14.44,4.89 16.32,3.32 19.09,3.41C21.15,3.47 22.12,4.81 22,7.42Z" /></svg>
     31                    </a>
     32                <?php endif; ?>
     33                <?php if(in_array('custom', $template['supports'])): ?>
     34                    <a class="boxxy" href="#" data-content="<?php _e('Custom HTML', 'cycloneslider'); ?>" title="<?php _e('Custom HTML', 'cycloneslider'); ?>">
     35                        <svg viewBox="0 0 24 24"><path d="M14.6,16.6L19.2,12L14.6,7.4L16,6L22,12L16,18L14.6,16.6M9.4,16.6L4.8,12L9.4,7.4L8,6L2,12L8,18L9.4,16.6Z" /></svg>
     36                    </a>
     37                <?php endif; ?>
     38                <?php if(in_array('testimonial', $template['supports'])): ?>
     39                    <a class="boxxy" href="#" data-content="<?php _e('Testimonial', 'cycloneslider'); ?>" title="<?php _e('Testimonial', 'cycloneslider'); ?>">
     40                        <svg viewBox="0 0 24 24"><path d="M10,7L8,11H11V17H5V11L7,7H10M18,7L16,11H19V17H13V11L15,7H18Z" /></svg>
     41                    </a>
     42                <?php endif; ?>
     43            </td>
     44            <td>
     45                <a class="boxxy" href="#" data-content="<?php echo wp_kses_post($template['location_details']); ?>"><?php echo $template['location_name']; ?></a>
     46                <?php if( !empty( $template['warning'] ) ): ?>
     47                    <a class="boxxy" href="#" data-content="<?php echo wp_kses_post($template['warning']); ?>" ><i class="icon-warning-sign"></i></a>
     48                <?php endif; ?>
     49            </td>
     50            <td>
     51                <input <?php checked( $slider_settings['template'], $id); ?> id="template-<?php echo esc_attr($id); ?>" type="radio" name="cycloneslider_settings[template]" value="<?php echo esc_attr($id); ?>" />
     52            </td>
     53        </tr>
     54        <?php endforeach; ?>
     55    </tbody>
     56</table>
    4257<div class="cs-templates-buttons">
    43     <a target="_blank" href="http://docs.codefleet.net/cyclone-slider-2/templating/" class="button-secondary"><?php _e('Learn More About Templates', 'cyclone-slider-2'); ?></a>
    44     <a target="_blank" href="https://www.codefleet.net/cyclone-slider-2/templates/" class="button-secondary"><?php _e('Get More Templates', 'cyclone-slider-2'); ?></a>
     58    <a target="_blank" href="http://docs.codefleet.net/cyclone-slider/templating/" class="button-secondary"><i class="icon-book"></i> <?php _e('Learn More About Templates', 'cycloneslider'); ?></a>
     59    <a target="_blank" href="https://www.codefleet.net/cyclone-slider/templates/" class="button-primary"><i class="icon-plus"></i> <?php _e('More Templates', 'cycloneslider'); ?></a>
    4560</div>
Note: See TracChangeset for help on using the changeset viewer.