Plugin Directory

Changeset 1635527


Ignore:
Timestamp:
04/11/2017 04:50:12 PM (9 years ago)
Author:
kosinix
Message:

To trunk v3.0.0

Location:
cyclone-slider/trunk
Files:
255 added
13 deleted
8 edited

Legend:

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

    r775865 r1635527  
    11=== Cyclone Slider ===
    22Contributors: kosinix
    3 Donate link: http://www.codefleet.net/donate
    4 Tags: slider, slideshow, jquery, cycle, jquery cycle, cycle plugin, responsive, multilingual, custom post
    5 Requires at least: 3.3.2
    6 Tested up to: 3.6.1
    7 Stable tag: 1.3.4
    8 License: GPLv2 or later
    9 License URI: http://www.gnu.org/licenses/gpl-2.0.html
     3Donate link: http://www.codefleet.net/donate/
     4Tags: slider, slideshow, drag-and-drop, wordpress-slider, wordpress-slideshow, cycle 2, jquery, responsive, translation-ready, custom-post, cyclone-slider
     5Requires at least: 3.5
     6Tested up to: 4.7.3
     7Stable tag: trunk
     8License: GPLv3
     9License URI: http://www.gnu.org/licenses/gpl-3.0.html
    1010
    11 Create amazing slideshows with ease. Built for both developers and non-developers.
     11An easy-to-use and customizable slideshow plugin. For both casual users and expert developers.
    1212
    1313== Description ==
    1414
    15 Cyclone Slider follows the keep it simple mantra. It leverages wordpress' built-in features. It uses custom post for the slideshow, custom fields to store settings, and media uploader for the images. Its simple yet flexible.
     15Cyclone Slider is an easy-to-use slideshow plugin with an intuitive user interface. It's simple yet extensible.
    1616
    17 = Features: =
    18 * Uses jQuery Cycle plugin with 25+ transitions
    19 * Very easy to use interface!
    20 * Unlimited slideshows
    21 * Unique settings for each slideshow
    22 * Shortcode for displaying slideshows anywhere in your site
    23 * A simple template system for developers to easily customize the slideshow
    24 * Works with qTranslate. You can place `[:en]English Text[:de]German Text` in a slideshow's title and description fields.
    25 * Ability to import images from NextGEN (NextGEN must be installed and active)
    26 * It's totally FREE!
     17= Why Use It? =
     18* Simplified workflow: 1.) Add slides 2.) Set slideshow properties 3.) Choose a template 4.) Publish! You can choose between a shortcode or a php function (for themes) to display.
     19* Supports 5 different slide types: image, YouTube, Vimeo, custom HTML, and testimonial slides.
     20* Translation ready and RTL support. Ideal for languages other than English.
     21* 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/templating/).
     23* Selective loading. Load only the scripts and styles that you need.
     24* Import/export selected slideshows. Moving your slideshow to a different website? No problemo.
     25* It's FREE! Cyclone Slider does not impose the pro version to free users.
     26
     27= More Features =
     28* Ability to add per-slide transition effects.
     29* Customizable tile transition effects.
     30* Unlimited sliders.
     31* Unique settings for each slider.
     32* Supports random slide order.
     33* Shortcode for displaying sliders anywhere in your site.
     34* Ability to import images from NextGEN (NextGEN must be installed and active).
     35* Ability to use qTranslate quick tags for slide title and descriptions (qTranslate must be installed and active).
     36* Allows title and alt to be specified for each slide images.
     37* Comes with a widget to display your slider easily in widget areas.
     38* Ability to fine tune the script settings. You can choose what scripts to load and where to load them.
     39
     40= Cyclone Slider Pro =
     41
     42Cyclone Slider Pro offers even more features:
     43
     44* Allow wrap. Slideshow wraps to beginning slide if it reaches the end slide.
     45* Dynamic height. For slides with varying height.
     46* Delay. Delay start of slideshow
     47* Easing. Some cool transition effects.
     48* Swipe. Swipe gesture support for touch devices.
     49* 6 resize options: Fit, Fill, Crop, Exact, Exact Width, Exact Height
     50* Ability to change the image quality: Low, Medium, High, Very High, Max
     51* And two additional templates: Text and Galleria
    2752
    2853
    29 = Homepage =
    30 Learn more about [Cyclone Slider](http://www.codefleet.net/cyclone-slider/)
     54= Demos =
     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.
    3157
    32 = Note =
    33 Cyclone Slider is no longer actively maintained. Please consider using [Cyclone Slider 2](http://wordpress.org/extend/plugins/cyclone-slider-2/).
     58= Credits =
     59* Cyclone Slider was based on [Cycle 2](http://jquery.malsup.com/cycle2/) by [Mike Alsup](http://jquery.malsup.com/).
    3460
    35 = Cyclone Slider 2 =
    36 [Cyclone Slider 2](http://wordpress.org/extend/plugins/cyclone-slider-2/) is the successor to Cyclone Slider with many more features.
     61= Translation Credits =
     62* Aubin BERTHE for the French translation.
     63* maxgx for the Italian translation.
     64* [Hassan](http://wordpress.org/support/profile/hassanhamm) for the Arabic translation.
     65* Javad for the Persian translation.
     66* [Borisa Djuraskovic](http://www.webhostinghub.com/) for the Serbo-Croatian translation.
     67* [Gabriel Gil](http://gabrielgil.es/) and [Digital03](http://digital03.net/) for the Spanish translation.
    3768
     69Do you want to translate Cyclone Slider manually into your language? Check this [tutorial](http://docs.codefleet.net/cyclone-slider/translation/).
     70
     71= License =
     72GPLv3 - http://www.gnu.org/licenses/gpl-3.0.html
    3873
    3974== Installation ==
    4075
    41 1. Upload the `cyclone-slider` folder to the `/wp-content/plugins/` folder
    42 1. Activate the plugin through the 'Plugins' menu in WordPress
    43 1. Start adding slideshows in 'Cyclone Slider' menu in WordPress
    44 1. You can then use a shortcode to display your slideshow. Example: `[cycloneslider id ="my-slideshow"]`
    45 1. Function do_shortcode can be used inside template files. Example: `<?php echo do_shortcode('[cycloneslider id ="my-slideshow"]'); ?>`
    46 1. Checkout the documentation at [Cyclone Slider's home](http://www.codefleet.net/cyclone-slider/)
     76= Install via WordPress Admin =
     771. Ready the zip file of the plugin
     781. Go to Admin > Plugins > Add New
     791. On the upper portion click the Upload link
     801. Using the file upload field, upload the plugin zip file here and activate the plugin
     81
     82= Install via FTP =
     831. First unzip the plugin file
     841. Using FTP go to your server's wp-content/plugins directory
     851. Upload the unzipped plugin here
     861. Once finished login into your WP Admin and go to Admin > Plugins
     871. Look for Cyclone Slider and activate it
     88
     89= Usage =
     901. Start adding sliders in 'Cyclone Slider' menu in WordPress
     911. The shortcodes and php code are generated automatically by the plugin. Just copy and paste it.
    4792
    4893
     
    5095
    5196= Why is my slider not working? =
    52 Check for javascript errors in your page. This is the most common cause of the slider not running.
    53 `cycle not a function` error - most probably you have double jquery (jquery.js) included from improperly coded plugins. Remove the duplicate jquery or deactivate the plugin causing the double jquery include.
     97Check for javascript errors in your page. This is the most common cause of the slider not running. See [diagnosing javascript errors](http://codex.wordpress.org/Using_Your_Browser_to_Diagnose_JavaScript_Errors). Fix the javascript errors and the slider will run.
     98
     99Also check if you are using jQuery Cycle 1 script by viewing your page source. jQuery Cycle2 won't work if both are present.
     100
     101= How do I pause an auto running slider when I play a YouTube or Vimeo video? =
     102Sorry but its not currently supported as it requires loading the YouTube API which is an extra overhead. A solution would be to disable auto transition.
    54103
    55104= Why is there is an extra slide that I didn't add? =
     
    57106`remove_filter('the_content', 'wpautop');`
    58107
    59 = How to display it in post/page? =
    60 Use the shortcode `[cycloneslider id ="my-slideshow"]`
    61 
    62 = How to display it inside template files (header.php, index.php, page.php, etc.)? =
    63 Use `<?php echo do_shortcode('[cycloneslider id ="my-slideshow"]'); ?>`
    64 
    65 = What are the shortcode options? =
    66 `[cycloneslider id ="my-slideshow" fx="fade" timeout="5000" speed="1000" width="500" height="300" show_prev_next="true" show_nav="true"]`
    67 
    68 = How can I use templates? =
    69 `[cycloneslider id ="my-slideshow" template="custom-name"]`
    70 
    71108= Where do I add my own templates? =
    72 Inside your theme create a folder named "cycloneslider" (as of version 1.0.5). Add your templates inside.
     109See: [http://docs.codefleet.net/cyclone-slider/creating-your-own-template/](http://docs.codefleet.net/cyclone-slider/creating-your-own-template/)
    73110
    74111== Screenshots ==
     
    771142. Slideshow Editing Screen
    781153. Slideshow in Action
     1164. Slideshow Widget
     1175. Slideshow Settings
    79118
    80119== Changelog ==
     120
     121= 3.0.0 - 2017-04-12 =
     122* Codebase merge with Cyclone Slider 2. See [detailed post](https://www.codefleet.net/cyclone-slider-reborn/).
     123* Add "Legacy Mode" to restore full Cyclone Slider 1 functionality if needed.
     124* Add Slider Properties pane. You can now set per-slide settings on all slide types. Before it was only available for Image slides.
     125* Move Hidden option to Slider Properties pane.
     126* Sorting can now be toggled to prevent accidentally dragging slides.
     127* Add minimized/maximized button for it to be more obvious vs just toggling with the slide header.
     128* Slicker slide types dropdown.
     129* Cosmetic changes to Templates and Slide boxes.
     130* Update Cycle2 scripts to latest version.
    81131
    82132= 1.3.4 - 2013-09-20 =
     
    145195* Thumbnail function added.
    146196
    147 
    148 
    149 
    150 
    151197== Upgrade Notice ==
    152198
    153 = 1.3.4 - 2013-09-20 =
    154 * Can now use WP 3.5 media gallery when using WP 3.5 or greater. Older WP versions will use the old media gallery.
    155 * Clicking slide box title will now expand/collapse the box.
    156 * Slide box can now be drag anywhere in the title area.
    157 
    158 = 1.3.3 - 2012-12-18 =
    159 * Bug fix. Preserve PNG transparency on resize.
    160 
    161 = 1.3.2 =
    162 * 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.
    163 
    164 = 1.3.1 =
    165 * Removed width and height attributes from slide images in responsive template
    166 
    167 = 1.3.0 =
    168 Code now based from Cyclone Slider 2 codebase. The improvements are:
    169 
    170 * Cleaner and faster user interface that works well even in IE7
    171 * Ability to import images from NextGEN
    172 * Option to pause slide on hover
    173 * Option to open slide links in new tab
    174 * Improved function cycloneslider_thumb
    175 * 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
    176 * 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
    177 
    178 = 1.2.1 =
    179 * Bug fix
    180 
    181 = 1.2.1 =
    182 * Minor bug fix
    183 
    184 = 1.2.0 =
    185 * Always backup your templates before hitting update. Or better (and recommended), move it inside your theme at yourtheme/cycloneslider.
    186 
    187 = 1.1.1 =
    188 * Fix bug on function cycloneslider_thumb
    189 * Added improved thumbnails template
    190 
    191 = 1.1.0 =
    192 * Do not upgrade if you have made custom changes to the templates. New template is incompatible with v1.0.6 and below
    193 
    194 = 1.0.6 =
    195 * Bug fix for titles and descriptions out of sync after deleting a slide
    196 
    197 = 1.0.5 =
    198 * Backend enhancements
    199 
    200 = 1.0.4 =
    201 * UI enhancements
    202 
    203 = 1.0.3 =
    204 * Bug fixed
    205 
    206 = 1.0.2 =
    207 * Template thumbnails added.
     199See changelog
  • cyclone-slider/trunk/css/admin.css

    r775863 r1635527  
    1 /*** Slides ***/
    2 #cyclone-slides-metabox .inside{
    3     margin:20px;
     1.clear{
     2    clear:both;
     3    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;
     15}
     16
     17/*** Add extra space in wp 3.6 ***/
     18.cycloneslider.version-3-6 #titlediv{
     19    margin-bottom: 20px;
     20}
     21
     22/*** ID Metabox ***/
     23#cyclone-slider-id input[type="text"]{
     24    display: inline-block;
     25    min-width: 30%;
     26}
     27#cyclone-slider-id .cycloneslider-field{
     28    padding: 10px 10px 0 10px;
     29}
     30
     31/*** Codes Metabox ***/
     32#cyclone-slider-codes .inside{
    433    padding:0;
    534}
    6 .cycloneslider-sortable{
    7     margin-bottom:20px;
    8 }
    9 .cycloneslider-box{
    10     margin-bottom:10px;
    11 }
    12 /*** Slides - Title ***/
    13 .cycloneslider-box-title{
     35
     36/*** Slides Metabox ***/
     37#cyclone-slides-metabox .inside,
     38#cyclone-slider-templates-metabox .inside {
     39    margin:0;
     40    padding:0;
     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 {
     104    margin-bottom:10px;
     105}
     106.cs-slide:last-child,
     107.cs-slide-placeholder:last-child {
     108    margin-bottom: 0;
     109}
     110.cs-header{
     111    position: relative;
     112    border:1px solid #D3D3D3;
    14113    background-color: #f1f1f1; /* Fallback */
    15114    background-image: -ms-linear-gradient(top, #f9f9f9, #ececec); /* IE10 */
     
    20119    background-image: linear-gradient(top, #f9f9f9, #ececec); /* proposed W3C Markup */
    21120}
    22 .cycloneslider-box-title{
    23     padding:5px;
    24     border:1px solid #D3D3D3;
    25     cursor:move;
    26 }
    27 .cycloneslider-box-title-left{
     121
     122.cs-slide[data-slide-hidden="1"] .cs-header {
     123    border-color: #e0e0e0;
     124    color: #A2A2A2;
     125}
     126
     127.cs-slide-settings .expandable-header {
     128    border: 0;
     129    text-align: right;
     130}
     131.rtl .cs-slide-settings .expandable-header {
     132    text-align: left;
     133}
     134.cs-slide-settings .expandable-body {
     135    border-left: 0;
     136    border-right: 0;
     137}
     138
     139.admin-color-light .cs-header {
     140    background-color: #F9F9F9;
     141    background-image: none;
     142}
     143
     144/* Admin - Blue */
     145.admin-color-blue .cs-title,
     146.admin-color-blue .cs-header .cs-icon,
     147.admin-color-blue .cs-templates,
     148.admin-color-blue .cs-templates .body.active,
     149.admin-color-blue .cs-templates a,
     150.admin-color-blue.cycloneslider h2,
     151.admin-color-blue.cycloneslider h3,
     152.admin-color-blue.cycloneslider .meta-box-sortables,
     153.admin-color-blue .expandable-header,
     154.admin-color-blue .cs-slide .note,
     155.admin-color-blue .cycloneslider-field .note {
     156    color: #0C4D63;
     157}
     158
     159/* Admin - Ocean */
     160.admin-color-ocean .cs-title,
     161.admin-color-ocean .cs-header .cs-icon,
     162.admin-color-ocean .cs-templates,
     163.admin-color-ocean .cs-templates .body.active,
     164.admin-color-ocean .cs-templates a,
     165.admin-color-ocean.cycloneslider h2,
     166.admin-color-ocean.cycloneslider h3,
     167.admin-color-ocean.cycloneslider .meta-box-sortables,
     168.admin-color-ocean .expandable-header,
     169.admin-color-ocean .cs-slide .note,
     170.admin-color-ocean .cycloneslider-field .note {
     171    color: #516166;
     172}
     173
     174/* Admin - Coffee */
     175.admin-color-coffee .cs-title,
     176.admin-color-coffee .cs-header .cs-icon,
     177.admin-color-coffee .cs-templates,
     178.admin-color-coffee .cs-templates a,
     179.admin-color-coffee.cycloneslider h2,
     180.admin-color-coffee.cycloneslider h3,
     181.admin-color-coffee.cycloneslider .meta-box-sortables,
     182.admin-color-coffee .expandable-header,
     183.admin-color-coffee .cs-slide .note,
     184.admin-color-coffee .cycloneslider-field .note {
     185    color: #59524C;
     186}
     187.admin-color-coffee .cs-templates .body.active,
     188.admin-color-coffee .cs-templates .body.active a{
     189    color: #46403C;
     190}
     191.admin-color-coffee .cs-header,
     192.admin-color-coffee .cs-body,
     193.admin-color-coffee .cs-header .cs-icon,
     194.admin-color-coffee .cs-slide-type-bar {
     195    border-color: #D8CCC2;
     196}
     197.admin-color-coffee .cs-slide:hover .cs-header,
     198.admin-color-coffee .cs-slide:hover .cs-body{
     199    border-color: #CABCB1;
     200}
     201
     202/* Admin - Ectoplasm */
     203.admin-color-ectoplasm .cs-title,
     204.admin-color-ectoplasm .cs-header .cs-icon,
     205.admin-color-ectoplasm .cs-templates,
     206.admin-color-ectoplasm .cs-templates a,
     207.admin-color-ectoplasm.cycloneslider h2,
     208.admin-color-ectoplasm.cycloneslider h3,
     209.admin-color-ectoplasm.cycloneslider .meta-box-sortables,
     210.admin-color-ectoplasm .expandable-header,
     211.admin-color-ectoplasm .cs-slide .note,
     212.admin-color-ectoplasm .cycloneslider-field .note {
     213    color: #413256;
     214}
     215.admin-color-ectoplasm .cs-templates .body.active{
     216    color: #523F6D;
     217}
     218.admin-color-ectoplasm .cs-header,
     219.admin-color-ectoplasm .cs-body,
     220.admin-color-ectoplasm .cs-header .cs-icon,
     221.admin-color-ectoplasm .cs-slide-type-bar {
     222    border-color: #D8CAEC;
     223}
     224.admin-color-ectoplasm .cs-slide:hover .cs-header,
     225.admin-color-ectoplasm .cs-slide:hover .cs-body{
     226    border-color: #BEB1CF;
     227}
     228
     229/* Admin - Sunrise */
     230.admin-color-sunrise .cs-title,
     231.admin-color-sunrise .cs-header .cs-icon,
     232.admin-color-sunrise .cs-templates,
     233.admin-color-sunrise .cs-templates .body.active,
     234.admin-color-sunrise .cs-templates a,
     235.admin-color-sunrise.cycloneslider h2,
     236.admin-color-sunrise.cycloneslider h3,
     237.admin-color-sunrise.cycloneslider .meta-box-sortables,
     238.admin-color-sunrise .expandable-header,
     239.admin-color-sunrise .cs-slide .note,
     240.admin-color-sunrise .cycloneslider-field .note {
     241    color: #8B3B38;
     242}
     243
     244.cs-header .cs-icon{
     245    float:left;
     246    padding:6px;
     247    border-right:1px solid #D3D3D3;
     248}
     249.rtl .cs-header .cs-icon{
     250    float:right;
     251    border-left:1px solid #D3D3D3;
     252    border-right:0;
     253}
     254.cs-icon i{
     255    font-size: 14px;
     256    width:14px;
     257    height:14px;
     258    display:none;
     259}
     260.cs-title{
    28261    float:left;
    29 }
    30 .cycloneslider-box-title-right{
     262    padding:4px 6px;
     263    max-width: 50%;
     264    white-space: nowrap;
     265    overflow: hidden;
     266    -ms-text-overflow: ellipsis;
     267    text-overflow: ellipsis;
     268}
     269.rtl .cs-title{
     270    float:right;
     271}
     272.cs-controls{
    31273    float:right;
    32 }
    33 
    34 .cycloneslider-box-title a.cycloneslider-box-toggle,
    35 .cycloneslider-box-title a.cycloneslider-box-delete{
    36     margin:0 5px;
    37     display:block;
    38     float:left;
    39     text-indent:-99999px;
    40     width:15px;
    41     height:15px;
    42 }
    43 .cycloneslider-box-title a.cycloneslider-box-toggle{
    44     color:#21759B;
    45     background: url(../images/ui-icons.png) no-repeat -15px 0;
    46 }
    47 .cycloneslider-box-title a.cycloneslider-box-delete{
    48     color:#ff9191;
    49     background: url(../images/ui-icons.png) no-repeat -30px 0;
    50 }
    51 .cycloneslider-box-title:hover a.cycloneslider-box-toggle{
    52     background-position:-15px -15px;
    53     color:#fff;
    54 }
    55 .cycloneslider-box-title a.cycloneslider-box-delete:hover{
    56     background-color:#ff9191;
    57     color:#fff;
    58 }
    59 
    60 /*** Slides Body ***/
    61 .cycloneslider-box-body{
     274    padding:2px 5px;
     275}
     276.rtl .cs-controls{
     277    float:left;
     278    text-align: right;
     279}
     280.cs-controls button {
     281    font-size: 16px;
     282    background: none;
     283    border: 0;
     284    outline:0;
     285    cursor: pointer;
     286}
     287.cs-controls .cs-delete{
     288    color: #CC0A0C;
     289}
     290.cs-controls .cs-minimize{
     291    color: #444;
     292}
     293.cs-slide:hover .cs-header,
     294.cs-slide:hover .cs-body{
     295    border-color:#c0c0c0;
     296}
     297.cs-header .cs-delete:hover{
     298    color:#ff0000;
     299}
     300.cs-body{
    62301    background:#F5F5F5;
    63302    min-height:1px; /* IE7 - on open disappearing content - bug fix */
    64     padding:10px 10px 20px 10px;
    65303    border-left:1px solid #D3D3D3;
    66304    border-right:1px solid #D3D3D3;
     
    68306    display:none;
    69307}
    70 input[name=cycloneslider_add_slide]{
     308.cs-slide-type-bar{
     309    padding:10px 2%;
     310    background: #ECECEC;
     311    border-bottom:1px solid #D3D3D3;
     312}
     313.cs-slide-hidden {
     314    float: right;
     315    display: block;
     316    margin-top: 6px;
     317}
     318.cs-image-thumb img{
     319    display:block;
     320    max-width:90%;
     321    margin-bottom:10px;
     322    border:3px solid #ccc;
     323}
     324.cs-media-gallery-show{
    71325    margin-bottom:15px;
    72326}
    73 .cycloneslider-box-placeholder{
     327.cs-slide textarea{
     328    overflow:auto;
     329}
     330.cs-slide .note,
     331.cycloneslider-field .note{
     332    font-weight:normal;
     333    font-size:11px;
     334    font-style:italic;
     335    color:#666666;
     336}
     337
     338/* Image slide */
     339.cs-image-preview,
     340.cs-image-edit {
     341    float: left;
     342    width: 50%;
     343    padding: 15px;
     344}
     345.cs-image-edit {
     346    padding-left: 0;
     347}
     348.rtl .cs-image-preview,
     349.rtl .cs-image-edit {
     350    float: right;
     351}
     352.rtl .cs-image-edit {
     353    padding-left: 15px;
     354    padding-right: 0;
     355}
     356
     357/* Select */
     358.cs-slide-type {
     359    float: left;
     360    position: relative;
     361}
     362.switcher {
     363    cursor: pointer;
     364}
     365.switcher > i {
     366    position: absolute;
     367    right: 10px;
     368    top: 50%;
     369    transform: translateY(-60%);
     370}
     371.switcher .display {
     372    display: block;
     373    min-width: 115px;
     374    border-right: 1px solid #d3d3d3;
     375    padding: 5px 25px 5px 10px;
     376}
     377.switcher .display i,
     378.switcher li i {
     379    display: inline-block;
     380    min-width: 15px;
     381}
     382.switcher .display span,
     383.switcher li span {
     384    margin-left: 5px;
     385    padding-left: 6px;
     386    border-left: 1px solid #d3d3d3;
     387}
     388.switcher ul {
     389    display: none;
     390    padding: 0;
     391    margin: 0;
     392    list-style: none inside;
     393    position: absolute;
     394    left: 0;
     395    top: 100%;
     396    width: 100%;
     397    background: rgba(255,255,255,0.9);
     398    border-left:1px solid #d3d3d3;
     399    border-right:1px solid #d3d3d3;
     400    border-top:1px solid #d3d3d3;
     401    z-index: 100;
     402}
     403.switcher.open ul {
     404    display: block;
     405}
     406.switcher li {
     407    padding: 5px 10px;
     408    margin: 0;
     409    border-bottom:1px solid #d3d3d3;
     410}
     411.switcher li:hover {
     412    background: #d54e21;
     413    color: #fff;
     414}
     415
     416
     417/*** Video ***/
     418.cs-video-preview{
     419    padding:15px 2%;
     420    float:left;
     421    width:40%;
     422}
     423.rtl .cs-video-preview{
     424    float:right;
     425}
     426.cs-video-error{
     427    background-color: #FFEBE8;
     428    border-top: 1px solid #C00;
     429    border-bottom: 1px solid #C00;
     430}
     431.cs-video-error p{
     432    padding: 5px 10px;
     433    margin: 0;
     434}
     435.cs-video-settings{
     436    float:left;
     437    width:50%;
     438    padding:15px 2%;
     439    min-width:300px;
     440}
     441.rtl .cs-video-settings{
     442    float:right;
     443}
     444.cs-loader{
     445    display:inline-block;
     446    width:24px;
     447    height:24px;
     448   
     449}
     450.cs-video-thumb{
     451    background: url(../images/loader.gif) no-repeat center;
     452    min-height:150px;
     453}
     454.cs-video-thumb img{
     455    max-width:100%;
     456    margin-bottom:15px;
     457}
     458
     459/*** Custom HTML ***/
     460.cs-slide-custom{
     461    padding:15px 2%;
     462}
     463.cs-custom-html{
     464    min-height:140px;
     465}
     466
     467/*** YouTube Slide ***/
     468.cs-slide-youtube {
     469    padding: 15px;
     470}
     471
     472/*** YouTube Vimeo ***/
     473.cs-slide-vimeo {
     474    padding: 15px;
     475}
     476
     477/*** Testimonial ***/
     478.cs-testimonial-quote,
     479.cs-quote-properties {
     480    float:left;
     481    padding:15px;
     482    width:50%;
     483}
     484.rtl .cs-testimonial-quote,
     485.rtl .cs-quote-properties {
     486    float:right;
     487}
     488
     489/*** Hide other slide types ***/
     490.cs-slide-image,
     491.cs-slide-video,
     492.cs-slide-custom,
     493.cs-slide-youtube,
     494.cs-slide-vimeo,
     495.cs-slide-testimonial{
     496    display: none;
     497}
     498
     499/*** Show selected slide type ***/
     500.cs-slide[data-slide-type="image"] .cs-slide-image,
     501.cs-slide[data-slide-type="video"] .cs-slide-video,
     502.cs-slide[data-slide-type="custom"] .cs-slide-custom,
     503.cs-slide[data-slide-type="youtube"] .cs-slide-youtube,
     504.cs-slide[data-slide-type="vimeo"] .cs-slide-vimeo,
     505.cs-slide[data-slide-type="testimonial"] .cs-slide-testimonial{
     506    display: block;
     507}
     508
     509/*** Slide effects toggle ***/
     510.cycloneslider_metas_enable_slide_effects{
     511    float:right;
     512    margin-bottom:15px;
     513}
     514.rtl .cycloneslider_metas_enable_slide_effects{
     515    float:left;
     516}
     517
     518/*** Placeholder ***/
     519.cs-slide-placeholder{
    74520    padding:5px;
    75521    height:20px;
    76522    border:1px dashed #ccc;
    77523    margin-bottom:10px;
    78 }
    79 .cycloneslider-body-left{
    80     float:left;
    81     width:35%;
    82 }
    83 .cycloneslider-body-right{
    84     float:right;
    85     width:50%;
    86     margin-right:20px;
    87 }
    88 .cycloneslider-slide-thumb{
    89     display:block;
    90     max-width:90%;
    91     margin-bottom:10px;
    92     border:3px solid #ccc;
    93 }
    94 .cycloneslider-slide-path{
    95     display:block;
    96     width:100%;
    97     margin-bottom:10px;
    98 }
    99 
    100 /* accordion */
    101 .cycloneslider-accordion{
    102     font-size:12px;
    103     padding:0 20px;
    104    
    105 }
    106 .cycloneslider-accordion .ui-accordion-header{
    107     padding:5px 8px 5px 8px;
    108     margin-bottom:1px;
    109    
    110 }
    111 .cycloneslider-accordion .ui-accordion-header.ui-state-active{
    112     border-bottom:0;
    113     margin-bottom:0;
    114     background:#F5F5F5;
    115 }
    116 .cycloneslider-accordion .ui-accordion-content{
    117     padding:0px 20px 20px 20px;
    118     margin-bottom:1px;
    119     background:#F5F5F5;
    120 }
    121 .cycloneslider-accordion .ui-accordion-content-active{
    122     border-top:0;
    123 }
    124 
    125 
    126 /* box template */
    127 .cycloneslider-box-template{
     524    min-height: 30px;
     525}
     526
     527/* Skeleton for adding slide box in JS */
     528.cs-slide-skeleton{
    128529    display:none;
    129530}
    130531
    131 /*** Slide Properties ***/
    132 .cycloneslider-sub-title{
    133     font-weight:bold;
    134     font-size:12px;
    135     margin-bottom:10px;
    136     text-transform:capitalize;
    137 }
    138 .cycloneslider-slide-metas{
     532/*** Expandables ***/
     533.expandable-box.last{
    139534    border-bottom:1px solid #D3D3D3;
    140535}
    141 .cycloneslider-field-title.first{
    142     -webkit-border-radius: 3px 3px 0px 0px;
    143     border-radius: 3px 3px 0px 0px;
    144 }
    145 .cycloneslider-title-checkbox{
    146     background:none;
    147     padding:0;
    148     float:left;
    149 }
    150 .cycloneslider-field-title{
     536.expandable-header{
    151537    border-left:1px solid #D3D3D3;
    152538    border-right:1px solid #D3D3D3;
    153539    border-top:1px solid #D3D3D3;
    154540    padding:3px 7px;
    155     font-weight:bold;
    156541    color:#666666;
    157542    background-color: #f1f1f1;
    158543    cursor:pointer;
    159544}
    160 .cycloneslider-field-body{
     545.expandable-body{
    161546    border-top:1px solid #D3D3D3;
    162547    border-left:1px solid #D3D3D3;
     
    164549    padding:20px;
    165550    background:#f9f9f9;
    166    
    167 }
    168 .cycloneslider-field-body label{
    169     display:block;
    170     margin-bottom:3px;
    171 }
    172 .cycloneslider-field-body textarea{
    173     overflow:auto;
    174 }
    175 .cycloneslider-field-body input.cycloneslider-slide-meta-link{
    176     margin-bottom:10px;
    177 }
     551    display:none;
     552}
     553.expandable-header.first{
     554    -webkit-border-radius: 3px 3px 0px 0px;
     555    border-radius: 3px 3px 0px 0px;
     556}
     557.expandable-box input.widefat[type="text"]:disabled{
     558    background: #f1f1f1;
     559}
     560
     561
     562
     563/*** Form Fields ***/
     564.field{
     565    margin-bottom:15px;
     566}
     567.field.last{
     568    margin:0;
     569}
     570.field label{
     571    display:inline-block;
     572    margin-bottom:5px;
     573    font-weight:bold;
     574}
     575.field-inline label{
     576    width:40%;
     577}
     578.field-inline input,
     579.field-inline select,
     580.field-inline textarea{
     581    max-width:40%;
     582}
     583
     584.field-normal {
     585    padding-top:10px;
     586}
     587.field-normal label{
     588    font-weight: normal;
     589}
     590
    178591.cycloneslider-slide-meta-speed,
    179 .cycloneslider-slide-meta-timeout{
    180     width:50%;
    181 }
    182 
    183 
    184 
    185 
    186 
    187 #cyclone-slider-properties-metabox .inside{
     592.cycloneslider-slide-meta-timeout,
     593.cycloneslider-slide-meta-tile-count,
     594.cycloneslider-slide-meta-tile-delay{
     595    width:25%;
     596}
     597.cycloneslider-meta-field .note.disabled,
     598label.disabled,
     599input:disabled{
     600    color:#999;
     601}
     602
     603#cyclone-slider-properties-metabox .inside,
     604#cyclone-slider-advanced-settings-metabox .inside{
    188605    padding:0;
    189606}
     607
     608/*** Cycloneslider Field ***/
    190609.cycloneslider-field{
    191610    padding:15px 10px 20px 10px;
     
    200619    font-weight:bold;
    201620    margin-bottom:5px;
    202 }
    203 .cycloneslider-field .note,
    204 .cycloneslider-meta-field .note{
    205     font-weight:normal;
    206     font-size:11px;
    207     font-style:italic;
    208     color:#666666;
    209621}
    210622.cycloneslider-field input[type="text"],
     
    214626    margin-bottom:3px;
    215627}
    216 
    217 .cycloneslider-fresh-slide{
    218     border:1px solid yellow;
     628.cycloneslider-field-tile-properties,
     629.cycloneslider-slide-tile-properties{
     630    display:none;
     631}
     632.cycloneslider-spacer-10{
     633    height:10px;
     634}
     635.cycloneslider-spacer-15{
     636    height:15px;
    219637}
    220638
     
    231649    margin:0 0 0 3px;
    232650}
     651
     652
     653/*** Templates ***/
     654.cs-templates {
     655    width: 100%;
     656    border-spacing: 0;
     657   
     658}
     659.cs-templates th {
     660    padding: 5px;
     661    border-bottom:1px solid #ececec;
     662}
     663
     664.cs-templates td {
     665    padding: 10px;
     666}
     667.cs-templates td a {
     668    text-decoration: none;
     669}
     670.cs-templates td:nth-child(1),
     671.cs-templates td:nth-child(2) {
     672    text-align: left;
     673}
     674.rtl .cs-templates td:nth-child(1),
     675.rtl .cs-templates td:nth-child(2) {
     676    text-align: right;
     677}
     678.cs-templates td:nth-child(3),
     679.cs-templates td:nth-child(4) {
     680    text-align: center;
     681}
     682.cs-templates td:nth-child(2) a {
     683    color:#444;
     684}
     685.cs-templates .active td {
     686    background: #ececec;
     687}
     688.cs-templates .active label,
     689.cs-templates .active td:nth-child(2) a {
     690    color: #0085ba;
     691}
     692.cs-boxy{
     693    position: absolute;
     694    left: 0;
     695    top:10%;
     696    padding: 10px 20px;
     697    background: #fff;
     698    z-index: 1000;
     699    border: 1px solid #CFCFCF;
     700    display: none;
     701    border-radius: 5px;
     702}
     703.cs-templates-buttons {
     704    border-top: 1px solid #ececec;
     705    padding: 10px;
     706}
     707
     708/*** Preview ***/
     709#cyclone-slider-preview-metabox .inside{
     710    overflow: auto;
     711}
     712
     713/*** Hide admin stuff ***/
     714.inline-edit-date,
     715.inline-edit-group{
     716    display:none;
     717}
     718
     719#cycloneslider_settings_resize{
     720    display: inline-block;
     721}
     722label[for="force_resize"]{
     723    display: inline-block;
     724    font-weight: normal;
     725    margin: 0;
     726}
     727
     728/*** Responsive ***/
     729@media (max-width: 800px) {
     730    .cs-templates .template-name {
     731        width: 20%;
     732    }
     733    .cs-templates .supported-slide-types {
     734        width: 35%;
     735    }
     736    .cs-templates .cs-location {
     737        width: 15%;
     738    }
     739}
     740
     741/*** Pro ***/
     742.cycloneslider-cover{
     743    position: absolute;
     744    left: 0;
     745    top: 0;
     746    width: 100%;
     747    height: 100%;
     748    background: #F8F8F8;
     749    opacity: 0.7;
     750    z-index: 99;
     751}
     752.cycloneslider-cover p{
     753    text-align: center;
     754    padding: 80px 0 0 0;
     755    font-size: 20px;
     756}
     757.cycloneslider-cover p a{
     758    text-decoration: underline;
     759}
     760.cs2-disabled{
     761    color: #999;
     762}
     763
     764/* Override Admin CSS to prevent covering the lightbox prev button during preview */
     765.sticky-menu #adminmenuwrap {
     766    z-index: 999;
     767}
     768
     769.export-page-list  {
     770    list-style:  inside square;
     771}
     772
     773.cs-upgrade-action a {
     774    text-decoration: none;
     775    display: block;
     776    padding:1px 2px;
     777}
     778
  • cyclone-slider/trunk/cyclone-slider.php

    r775863 r1635527  
    11<?php
    22/*
    3 Plugin Name: Cyclone Slider
    4 Plugin URI: http://www.codefleet.net/cyclone-slider/
    5 Description: Create amazing slideshows with ease. Built for both developers and non-developers.
    6 Version: 1.3.4
     3Plugin Name: Cyclone Slider 3
     4Plugin URI: http://www.codefleet.net/cyclone-slider-3/
     5Description: Create and manage sliders with ease. Built for both casual users and developers.
     6Version: 3.0.0
    77Author: Nico Amarilla
    88Author URI: http://www.codefleet.net/
    9 License:
     9License: GPLv3
     10License URI: https://www.gnu.org/licenses/gpl-3.0.html
     11Domain Path: /languages
     12Text Domain: cycloneslider
     13*/
    1014
    11   Copyright 2012 ([email protected])
     15// Legacy mode or not
     16$option = get_option('cyclone_option_name');
    1217
    13   This program is free software; you can redistribute it and/or modify
    14   it under the terms of the GNU General Public License, version 2, as
    15   published by the Free Software Foundation.
    16 
    17   This program is distributed in the hope that it will be useful,
    18   but WITHOUT ANY WARRANTY; without even the implied warranty of
    19   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    20   GNU General Public License for more details.
    21 
    22   You should have received a copy of the GNU General Public License
    23   along with this program; if not, write to the Free Software
    24   Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
    25  
    26 */
    27 require_once('inc/class-cyclone-slider.php');
    28 require_once('inc/class-image-resizer.php');
    29 require_once('inc/class-nextgen-integration.php');
    30 
    31 if(!defined('CYCLONE_VERSION')){
    32     define('CYCLONE_VERSION', '1.3.4' );
     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);
    3322}
    34 if(!defined('CYCLONE_PATH')){
    35     define('CYCLONE_PATH', realpath(plugin_dir_path(__FILE__)) . DIRECTORY_SEPARATOR );
     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';
    3628}
    37 if(!defined('CYCLONE_URL')){
    38     define('CYCLONE_URL', plugin_dir_url(__FILE__) );
    39 }
    40 
    41 if(class_exists('Cyclone_Slider')):
    42     $cyclone_slider_1 = new Cyclone_Slider();
    43 endif;
    44 
    45 /**
    46  * Thumbnailer
    47  *
    48  * Creates thumbnail of the slide image using the specified attachment ID, width and height
    49  *
    50  *
    51  * @param int $original_attachment_id Attachment ID.
    52  * @param int $width Width of thumbnail in pixels.
    53  * @param int $height Height of thumbnail in pixels.
    54  * @param bool $refresh Recreate thumbnail if it already exists if set to true. Default to false, will not recreate thumbnails if it already exist.
    55  * @return string The url to the thumbnail. False on failure.
    56  */
    57 //
    58 function cycloneslider_thumb( $original_attachment_id, $width, $height, $refresh = false, $slide_meta = array() ){
    59     $dir = wp_upload_dir();
    60    
    61     // Get full path to the slide image
    62     $image_path = get_attached_file($original_attachment_id);
    63     $image_path = apply_filters('cycloneslider_image_path', $image_path, $slide_meta);
    64     if(empty($image_path)){
    65         return false;
    66     }
    67    
    68     // Full url to the slide image
    69     $image_url = wp_get_attachment_url($original_attachment_id);
    70     $image_url = apply_filters('cycloneslider_image_url', $image_url, $slide_meta);
    71     if(empty($image_url)){
    72         return false;
    73     }
    74 
    75     $info = pathinfo($image_path);
    76     $dirname = isset($info['dirname']) ? $info['dirname'] : ''; // Path to directory
    77     $ext = isset($info['extension']) ? $info['extension'] : ''; // File extension Eg. "jpg"
    78     $thumb = wp_basename($image_path, ".$ext")."-{$width}x{$height}.{$ext}"; // Thumbname. Eg. [imagename]-[width]x[height].hpg
    79    
    80     // Check if thumb already exists. If it is, return its url, unless refresh is true
    81     if(file_exists($dirname.'/'.$thumb ) and !$refresh){
    82         return dirname($image_url).'/'.$thumb; //We used dirname() since we need the URL format not the path
    83     }
    84    
    85     $resizeObj = new Image_Resizer($image_path);
    86     $resizeObj -> resizeImage($width, $height);
    87     $resizeObj -> saveImage($dirname.'/'.$thumb, 80);
    88    
    89     return dirname($image_url).'/'.$thumb;
    90 }
    91 
    92 /**
    93  * Transparent GIF Generator
    94  *
    95  * Creates trasnparent gif for use by the responsive template passing the width and height
    96  *
    97  * @since 1.1.0
    98  *
    99  * @param int $width Width in pixels.
    100  * @param int $height Height in pixels.
    101  * @param bool $refresh Recreate if it already exists if set to true. Default to false, will not recreate if it already exist.
    102  * @return string The url to the image. False on failure.
    103  */
    104 //
    105 function cycloneslider_trans( $width=1, $height=1, $refresh = false ){
    106     $dir = wp_upload_dir();
    107    
    108     // Check if thumb already exists. Return its url
    109     $thumb = "cycloneslider_trans-{$width}x{$height}.gif";
    110     if(file_exists($dir['path'].'/'.$thumb ) and !$refresh){
    111         return $dir['url'].'/'.$thumb;
    112     }
    113    
    114     // Create it
    115     if(function_exists('imagecreate')){ //check for gd lib
    116         $image = imagecreate( $width, $height );
    117         $background = imagecolorallocate( $image,  255, 255, 255);
    118        
    119         imagecolortransparent($image, $background);
    120        
    121         if(!imagegif($image, $dir['path'].'/'.$thumb)){
    122             return false; //error
    123         }
    124         imagedestroy( $image );
    125     } else {
    126         return false;
    127     }
    128     // Get full url to the image
    129     return $dir['url'].'/'.$thumb;
    130 }
  • cyclone-slider/trunk/js/admin.js

    r775863 r1635527  
     1/*** Wrapper module for js store ***/
     2var cs_local_storage = (function () {
     3    return {
     4        get: function (key) {
     5            if(store!=undefined){
     6                return store.get(key);
     7            }
     8            return false;
     9        },
     10        set: function (key, value) {
     11            if(store!=undefined){
     12                store.set(key, value);
     13            }
     14        },
     15        remove: function (key) {
     16            if(store!=undefined){
     17                store.remove(key);
     18            }
     19        },
     20        clear: function () {
     21            if(store!=undefined){
     22                store.clear(); /*** Clear all keys ***/
     23            }
     24        }
     25    };
     26})();
     27
     28/*** Class for handling open and close expandable and slide elements. Use together with cs_local_storage ***/
     29function CsUiOpen(data){
     30    if(!data){
     31        data = {};
     32    }
     33    this.expandables = data;/*** data format should be object[slideshowId][element_index] ***/
     34}
     35CsUiOpen.prototype.get = function(slideshow, key){
     36    if(this.expandables[slideshow]!=undefined){
     37        if(this.expandables[slideshow][key]!=undefined){
     38            return this.expandables[slideshow][key];
     39        }
     40    }
     41    return false;
     42}
     43CsUiOpen.prototype.set = function(slideshow, key, value){
     44    if(typeof(this.expandables[slideshow])!=='object'){
     45        this.expandables[slideshow] = {};
     46    }
     47   
     48    this.expandables[slideshow][key] = value;
     49}
     50CsUiOpen.prototype.remove = function(slideshow, key){
     51    if(this.expandables[slideshow]!=undefined){
     52        if(this.expandables[slideshow][key]!=undefined){
     53            delete this.expandables[slideshow][key];
     54        }
     55    }
     56}
     57CsUiOpen.prototype.getAll = function(){
     58    return this.expandables;
     59}
     60CsUiOpen.prototype.clear = function(){
     61    this.expandables = {};
     62}
     63
     64
    165jQuery(document).ready(function($){
    2     (function() {
    3         /*** hide wordpress admin stuff ***/
    4         $('#minor-publishing-actions').hide();
    5         $('#misc-publishing-actions').hide();
    6        
    7         /*** make it sortable ***/
    8         $('.cycloneslider-sortable').sortable({
    9             handle:'.cycloneslider-box-title',
    10             placeholder: "cycloneslider-box-placeholder",
    11             forcePlaceholderSize:true,
    12             update: function(event, ui) {
    13                 $('.cycloneslider-sortable .cycloneslider-box').each(function(i){
    14                     $(this).find('.cycloneslider-slide-meta-id').attr('name', 'cycloneslider_metas['+(i)+'][id]');
    15                     $(this).find('.cycloneslider-slide-meta-link').attr('name', 'cycloneslider_metas['+(i)+'][link]');
    16                     $(this).find('.cycloneslider-slide-meta-title').attr('name', 'cycloneslider_metas['+(i)+'][title]');
    17                     $(this).find('.cycloneslider-slide-meta-description').attr('name', 'cycloneslider_metas['+(i)+'][description]');
    18                 });
    19             }
    20         });
    21        
    22         /*** ID ***/
    23         $('.cycloneslider-upload-button').each(function(i){
    24             $(this).data('cycloneslider_id',i);
    25         });
    26         $('.cycloneslider-sortable .cycloneslider-box').each(function(i){
    27             $(this).data('cycloneslider_id',i);
    28             $(this).find('.cycloneslider-box-title-left').append((i+1));
    29         });
    30        
    31        
    32        
    33         /*** Add new slide box ***/
    34         $('input[name="cycloneslider_add_slide"]').on('click', function(e){
    35             var id = $('.cycloneslider-sortable .cycloneslider-box').length;
    36             var html = $('.cycloneslider-box-template').html();
    37             html = html.replace(/{id}/g, id);/*** replace all occurences of {id} to real id ***/
    38            
    39             $('.cycloneslider-sortable').append(html);
    40             $('.cycloneslider-sortable .cycloneslider-box:last').find('.cycloneslider-slide-thumb').hide().end().find('.cycloneslider-box-body').show();
    41             $('.cycloneslider-upload-button').each(function(i){
    42                 $(this).data('cycloneslider_id',i);
    43             });
    44             $('.cycloneslider-sortable .cycloneslider-box').each(function(i){
    45                 $(this).data('cycloneslider_id',i);
    46             });
    47             $('.cycloneslider-field-body').each(function(i){
    48                 $(this).data('cycloneslider_id',i);
    49             });
    50 
    51             e.preventDefault();
    52         });
    53        
    54         /*** Toggle slide visiblity ***/
    55         $('#cyclone-slides-metabox').on('click', '.cycloneslider-box-title', function(e) {
    56             var box = $(this).parents('.cycloneslider-box');
    57             var body = box.find('.cycloneslider-box-body');
    58            
    59             if(body.is(':visible')){
    60                 body.slideUp(100);
    61                 if($.cookie!=undefined){
    62                     $.cookie('cycloneslider_box_'+box.data('cycloneslider_id'), null);
    63                 }
    64                
    65             } else {
    66                 body.slideDown(100);
    67                 if($.cookie!=undefined){
    68                     $.cookie('cycloneslider_box_'+box.data('cycloneslider_id'), 'open', { expires: 7});/*** remember open section ***/
    69                 }
    70             }
    71             e.preventDefault();
    72         });
    73        
    74         /*** Slide Properties ***/
    75         $('.cycloneslider-field-body').each(function(i){
    76             $(this).data('cycloneslider_id',i);
    77         });
    78         /*** Slide Properties Toggle ***/
    79         $('.cycloneslider-meta-field .cycloneslider-field-title').live('click',function(e){
    80             var body = $(this).next();
    81             var id = body.data('cycloneslider_id');
    82             if(body.is(':visible')){
    83                 body.slideUp(100);
    84                 if($.cookie!=undefined){
    85                     $.cookie('cycloneslider_slide_meta_field_'+id, null);/*** delete cookie ***/
    86                 }
    87             } else {
    88                 body.slideDown(100);
    89                 if($.cookie!=undefined){
    90                     $.cookie('cycloneslider_slide_meta_field_'+id, 'open', { expires: 7});/*** remember open section ***/
    91                 }
    92             }
    93         });
    94         /*** Slide Properties Cookie ***/
    95         $('.cycloneslider-field-body').each(function(i){
    96             body = $(this);
    97             var id = $(this).data('cycloneslider_id');
    98             if($.cookie!=undefined){
    99                 if($.cookie('cycloneslider_slide_meta_field_'+id)!='open'){/*** do not close open section ***/
    100                     body.hide();
    101                 }
    102             }
    103         });
    104         /*** hide all thats hidden ***/
    105         $('.cycloneslider-sortable .cycloneslider-box').each(function(){
    106             var body = $(this).find('.cycloneslider-box-body');
    107             var id = $(this).data('cycloneslider_id');
    108             if($.cookie!=undefined){
    109                 if($.cookie('cycloneslider_box_'+id)=='open'){/*** do not close open section ***/
    110                     body.show();
    111                 }
    112             }
    113         });
    114        
    115         /*** Delete Slide ***/
    116         $('.cycloneslider-box-delete').live('click',function(e) {
    117 
    118             var box = $(this).parents('.cycloneslider-box');
    119             box.fadeOut('slow', function(){ box.remove()});
    120 
    121             e.preventDefault();
    122         });
    123     })();
    124    
    125    
    126     if( !cycloneslider_admin_vars.use_new_media ){
    127         /*** Old Media < WP 3.5 ***/
    128         (function() {
    129             /*** Modify WP media uploader ***/
    130             var current_slide_box = false;/*** we use this var to determine if thickbox is being used in cycloneslider. also saves the field to be updated later. ***/
    131             $(document).on('click', '.cycloneslider-upload-button', function() {
    132                 var box = $(this).parents('.cycloneslider-box');/*** get current box ***/
    133                
    134                 current_slide_box = box;
    135                 tb_show('', 'media-upload.php?referer=cycloneslider&amp;post_id=0&amp;type=image&amp;TB_iframe=true');/*** referer param needed to change button text ***/
    136                 return false;
    137             });
    138            
    139             window.original_send_to_editor = window.send_to_editor;/*** backup original for other parts of admin that uses thickbox to work ***/
    140             window.send_to_editor = function(html) {
    141                 if (current_slide_box) {
    142                     var slide_thumb = current_slide_box.find('.cycloneslider-slide-thumb');/*** find the thumb ***/
    143                     var slide_attachment_id = current_slide_box.find('.cycloneslider-slide-meta-id');/*** find the hidden field that will hold the attachment id ***/
    144                     var slide_type = current_slide_box.find('.cycloneslider-slide-meta-type');/*** find the hidden field that will hold the type ***/
    145                    
    146                     var image = false;
    147                     if(jQuery(html).get(0) != undefined){ /*** Check if its a valid html tag ***/
    148                         if(jQuery(html).get(0).nodeName.toLowerCase()=='img'){/*** Check if html is an img tag ***/
    149                             image = jQuery(html);
    150                         } else { /*** If not may be it contains the img tag ***/
    151                             if(jQuery(html).find('img').length > 0){
    152                                 image = jQuery(html).find('img');
    153                             }
    154                         }
    155                     }
    156                     if(image){
    157                         var url = image.attr('src');
    158                         var attachment_id = image.attr('data-id');
    159                         if(url!=undefined && attachment_id != undefined ){
    160                             slide_thumb.attr('src', url).show();
    161                             slide_attachment_id.val(attachment_id);
    162                             slide_type.val('image');
    163                         } else {
    164                             alert('Could not insert image. URL or attachment ID missing.');
    165                         }
    166                     } else {
    167                         alert('Could not insert image.');
    168                     }
    169                    
    170                     tb_remove();
    171                     current_slide_box = false;
    172                 } else {
    173                     window.original_send_to_editor(html);
    174                 }
    175             };
    176         })();
    177        
    178     } else {
    179        
    180         /*** New Media WP 3.5+ ***/
    181         (function() {
    182             if(typeof(wp) == "undefined" || typeof(wp.media) != "function"){
    183                 return;
    184             }
    185             // Prepare the variable that holds our custom media manager.
    186             var cyclone_media_frame;
    187             var current_slide_box = false;
    188            
    189             // Bind to our click event in order to open up the new media experience.
    190             $(document.body).on('click', '.cycloneslider-upload-button', function(e){
    191                 // Prevent the default action from occuring.
    192                 e.preventDefault();
    193                
    194                 current_slide_box = $(this).parents('.cycloneslider-box');/*** get current box ***/
    195                
    196                
    197                 // If the frame already exists, re-open it.
    198                 if ( cyclone_media_frame ) {
    199                     cyclone_media_frame.open();
    200                     return;
    201                 }
    202        
    203    
    204                 cyclone_media_frame = wp.media.frames.cyclone_media_frame = wp.media({
    205                     className: 'media-frame cs-frame',
    206                     frame: 'select',
    207                     multiple: false,
    208                     title: cycloneslider_admin_vars.title,
    209                     library: {
    210                         type: 'image'
    211                     },
    212                     button: {
    213                         text:  cycloneslider_admin_vars.button
    214                     }
    215                 });
    216        
    217                 cyclone_media_frame.on('select', function(){
    218                     var media_attachment, slide_thumb, slide_attachment_id, img_url;
    219                    
    220                     // Grab our attachment selection and construct a JSON representation of the model.
    221                     media_attachment = cyclone_media_frame.state().get('selection').first().toJSON();
    222                    
    223                     slide_thumb = current_slide_box.find('.cycloneslider-slide-thumb');/*** find the thumb ***/
    224                     slide_attachment_id = current_slide_box.find('.cycloneslider-slide-meta-id');/*** find the hidden field that will hold the attachment id ***/
    225                    
    226                     if(undefined==media_attachment.sizes.medium){ /*** Account for smaller images where medium does not exist ***/
    227                         img_url = media_attachment.url;
    228                     } else {
    229                         img_url = media_attachment.sizes.medium.url;
    230                     }
    231                    
    232                     slide_thumb.attr('src', img_url).show();
    233                     slide_attachment_id.val(media_attachment.id);
    234                    
    235                 });
    236        
    237                 // Now that everything has been set, let's open up the frame.
    238                 cyclone_media_frame.open();
    239             });
    240         })();
    241     }
     66    /*** Export ***/
     67    (function() {
     68        $('#cs-select-all').click(function(){
     69            if( $(this).is(':checked') ) {
     70                $('.cs-sliders').prop('checked', true);
     71            } else {
     72                $('.cs-sliders').prop('checked', false);
     73            }
     74           
     75        });
     76    })();
     77    /*** SLIDE BOXES ***/
     78    (function() {
     79        var $slidesMetabox = $('#cyclone-slides-metabox'),
     80            $sortables = $('#cs-sortables'),
     81            slideshowId = $sortables.data('post-id'),
     82            cs_ui_open;
     83       
     84        cs_ui_open = new CsUiOpen(cs_local_storage.get('cs_slide_toggles'));/*** Handle persistent slide data ***/
     85       
     86        /*** Init - Sortable slides ***/
     87        $sortables.sortable({
     88            handle:'.cs-header',
     89            placeholder: "cs-slide-placeholder",
     90            forcePlaceholderSize:true,
     91            disabled: true,
     92            /*** Update form field indexes when slide order changes ***/
     93            update: function(event, ui) {
     94                $sortables.find('.cs-slide').each(function(boxIndex, box){ /*** Loop thru each box ***/
     95                    $(box).find('input, select, textarea').each(function(i, field){ /*** Loop thru relevant form fields ***/
     96                        var name = $(field).attr('name');
     97                        if(name){
     98                            name = name.replace(/\[[0-9]+\]/, '['+boxIndex+']'); /*** Replace all [index] in field_key[index][name] ***/
     99                            $(field).attr('name',name);
     100                        }
     101                    });
     102                    $(box).find('.cs-changeling-id').each(function(i, field){ /*** Loop thru relevant fields ***/
     103                        var name = $(field).attr('id');
     104                        if(name){
     105                            name = name.replace(/[0-9]+/, boxIndex); /*** Replace all ad_asdasd-x ***/
     106                            $(field).attr('id',name);
     107                        }
     108                        var name = $(field).attr('for');
     109                        if(name){
     110                            name = name.replace(/[0-9]+/, boxIndex); /*** Replace all ad_asdasd-x ***/
     111                            $(field).attr('for',name);
     112                        }
     113                    });
     114                });
     115            }
     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        });
     128        /*** Init - Slide ID and title ***/
     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);
     139            }
     140        });
     141       
     142        /*** Add - Slide box from a hidden html template ***/
     143        $slidesMetabox.on('click', '#cs-add-slide', function(e){
     144            var id = $sortables.find('.cs-slide').length;
     145            var html = $('#cs-slide-skeleton').html();
     146            html = html.replace(/{id}/g, id);/*** replace all occurences of {id} to real id ***/
     147           
     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){
     152                $(this).data('cs_id',i);
     153            });
     154
     155            $('.expandable-body').each(function(i){
     156                $(this).data('cs_id',i);
     157            });
     158           
     159            $(".cycloneslider_metas_enable_slide_effects").trigger('change');
     160           
     161            e.preventDefault();
     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                $slide = $button.closest('.cs-slide'), // Current slide
     169                $thumb = $slide.find('.cs-image-thumb'), // Find the thumb
     170                $hiddenField = $slide.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);
     174 
     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;
     183
     184            for(i=0; i<media_attachments.length; ++i){
     185               
     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 ***/
     207            }
     208           
     209            cs_local_storage.set('cs_slide_toggles', cs_ui_open.getAll());
     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 ***/
     240
     241            var box = $(this).parents('.cs-slide');
     242            box.fadeOut('slow', function(){ box.remove()});
     243
     244            e.preventDefault();
     245            e.stopPropagation();
     246        })
     247        .on('change', '.cycloneslider_metas_link_target', function(e){
     248
     249            /*** Enable/Disable Link URL if lightbox is selected ***/
     250           
     251            var box, link_url;
     252           
     253            box = $(this).parents('.expandable-box');
     254           
     255            link_url = box.find('.cycloneslider_metas_link_url');
     256           
     257            if ($(this).val() == 'lightbox') {
     258                link_url.attr('disabled', 'disabled');
     259            } else {
     260                link_url.removeAttr('disabled');
     261            }
     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
     276        $('.cycloneslider_metas_link_target').trigger('change');
     277       
     278    })();
     279   
     280    /*** EXPANDABLES ***/
     281    (function() {
     282        var slideshowId, cs_ui_open;
     283       
     284        /*** Init ***/
     285        slideshowId = $('#cyclone-slides-metabox .cs-sortables').data('post-id');
     286       
     287        cs_ui_open = new CsUiOpen(cs_local_storage.get('cs_expandables'));
     288       
     289        $('#cyclone-slides-metabox .expandable-body').each(function(i){
     290            $(this).data('cs_id', i);
     291           
     292            if(cs_ui_open.get(slideshowId ,i)=='open'){
     293                $(this).slideDown(0);
     294            } else {
     295                $(this).slideUp(0);
     296            }
     297        });
     298       
     299        /*** Toggle - Expandable toggling ***/
     300        $('#cyclone-slides-metabox').on('click', '.expandable-header', function(e){
     301            var body, id;
     302           
     303            body = $(this).next('.expandable-body');
     304            id = body.data('cs_id');
     305           
     306            if(body.is(':visible')){
     307                body.slideUp(100);
     308                cs_ui_open.remove(slideshowId , id);
     309               
     310            } else {
     311                body.slideDown(100);
     312                cs_ui_open.set(slideshowId , id, 'open');
     313               
     314            }
     315           
     316            cs_local_storage.set('cs_expandables', cs_ui_open.getAll());
     317        });
     318    })();
     319   
     320    /*** VIDEO SLIDE ***/
     321    (function() {
     322        var slideshowId;
     323       
     324        slideshowId = $('#cyclone-slides-metabox .cs-sortables').data('post-id');
     325       
     326        /*** Get Video ***/
     327        $('#cyclone-slides-metabox').on('click', '.cs-video-get', function(e){
     328            var button, box, textbox_url, url, video_thumb, video_embed;
     329           
     330            button = $(this);
     331            box = $(this).parents('.cs-slide');
     332            video_thumb = box.find('.cs-video-thumb');
     333            textbox_url = box.find('.cs-video-url');
     334            url = textbox_url.val();
     335            if(url==''){
     336                return;
     337            }
     338            video_embed = box.find('.cs-video-embed');
     339            video_thumb.empty().show();
     340            textbox_url.attr('disabled','disabled');
     341            button.attr('disabled','disabled');
     342           
     343            $.ajax({
     344                type: "POST",
     345                url: ajaxurl, /*** Automatically added by wordpress ***/
     346                data: "action=cycloneslider_get_video&url="+encodeURIComponent(url),
     347                dataType: 'json',
     348                success: function(data, textStatus, XMLHttpRequest){
     349                    if(data.success){
     350                        video_thumb.html('<img src="'+data.url+'" alt="thumb">');
     351                        box.find('.cs-video-thumb-url').val(data.url);
     352                        video_embed.val(data.embed);
     353                        textbox_url.removeAttr('disabled');
     354                        button.removeAttr('disabled');
     355                    } else {
     356                        alert('Error. Make sure its a valid youtube or vimeo url.');
     357                        video_thumb.empty().hide();
     358                        textbox_url.removeAttr('disabled');
     359                        button.removeAttr('disabled');
     360                    }
     361                }
     362            });
     363        });
     364    })();
     365
     366    (function() {
     367
     368        /*** hide wordpress admin stuff ***/
     369        $('#minor-publishing-actions').hide();
     370        $('#misc-publishing-actions').hide();
     371        $('.inline-edit-date').prev().hide();
     372       
     373        /*** Post type switcher quick fix ***/
     374        $('#pts_post_type').html('<option value="cycloneslider">Cycloneslider</option>');
     375       
     376        /*** Template Chooser ***/
     377        $('#cyclone-slider-templates-metabox').on('click', '.boxxy', function(e){
     378            e.preventDefault();
     379            e.stopPropagation();
     380           
     381            var trigger = $(this),
     382                content = '',
     383                boxy = $('#cs-boxy'),
     384                width = 0,
     385                height = 0,
     386                x = 0,
     387                y = 0;
     388           
     389            boxy.html( trigger.data('content') );
     390            boxy.stop().show();
     391           
     392            /* Do calcs after element is shown to prevent zero values for hidden element */
     393            width = boxy.outerWidth(),
     394            height = boxy.outerHeight(),
     395            x = trigger.offset().left,
     396            y = trigger.offset().top,
     397               
     398            y = y - height;
     399            if ( $('body').hasClass('admin-bar') ) {
     400                y -= 32;
     401            }
     402           
     403            boxy.css({
     404                'left': x+'px',
     405                'top': y+'px'
     406            });
     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');
     414            console.log($radio.attr('id'));
     415        });
     416        $(document).on('click', '#cs-boxy', function(e){
     417            e.preventDefault();
     418            e.stopPropagation();
     419        })
     420        $(document).on('click', 'body', function(e){
     421            $('#cs-boxy').fadeOut();
     422        })
     423        $(window).resize(function(e){
     424            $('#cs-boxy').hide();
     425        })
     426       
     427        /*** show/Hide Tile Properties for slideshow ***/
     428        $('#cyclone-slider-properties-metabox').on('change', '#cycloneslider_settings_fx', function(){
     429            if($(this).val()=='tileBlind' || $(this).val()=='tileSlide'){
     430                $('.cycloneslider-field-tile-properties').slideDown('fast');
     431            } else {
     432                $('.cycloneslider-field-tile-properties').slideUp('fast');
     433            }
     434        });
     435        $("#cycloneslider_settings_fx").trigger('change');
     436       
     437        /*** Show/hide Tile Properties for slides ***/
     438        $('#cyclone-slides-metabox').on('change', '.cycloneslider_metas_fx', function(){
     439            var $select  = $(this),
     440                $field = $select.closest('.field');
     441
     442            if($select.val()=='tileBlind' || $select.val()=='tileSlide'){
     443                $field.siblings('.cycloneslider-slide-tile-properties').slideDown('fast');
     444            } else {
     445                $field.siblings('.cycloneslider-slide-tile-properties').slideUp('fast');
     446            }
     447        });
     448        $(".cycloneslider_metas_fx").trigger('change');
     449       
     450    })();
     451
     452    (function() {
     453        if(typeof(wp) == "undefined" || typeof(wp.media) != "function"){
     454            return;
     455        }
     456        // Prepare the variable that holds our custom media manager.
     457        var cyclone_media_frame;
     458        var triggering_element = null;
     459       
     460        // Bind to our click event in order to open up the new media experience.
     461        $(document.body).on('click', '.cs-media-gallery-show', function(e){
     462            // Prevent the default action from occuring.
     463            e.preventDefault();
     464           
     465            triggering_element = jQuery(this); /* Get current clicked element */
     466           
     467           
     468            // If the frame already exists, re-open it.
     469            if ( cyclone_media_frame ) {
     470                cyclone_media_frame.open();
     471                return;
     472            }
     473   
     474
     475            cyclone_media_frame = wp.media.frames.cyclone_media_frame = wp.media({
     476                className: 'media-frame cs-frame',
     477                frame: 'select',
     478                multiple: false,
     479                title: cycloneslider_admin_vars.title,
     480                library: {
     481                    type: 'image'
     482                },
     483                button: {
     484                    text:  cycloneslider_admin_vars.button
     485                }
     486            });
     487   
     488            cyclone_media_frame.on('select', function(){
     489                var media_attachment, img_url;
     490               
     491                // Grab our attachment selection and construct a JSON representation of the model.
     492                media_attachment = cyclone_media_frame.state().get('selection').first().toJSON();
     493               
     494                if(undefined==media_attachment.sizes.medium){ /*** Account for smaller images where medium does not exist ***/
     495                    img_url = media_attachment.url;
     496                } else {
     497                    img_url = media_attachment.sizes.medium.url;
     498                }
     499
     500                triggering_element.trigger('wpAddImage', [img_url, media_attachment.id, media_attachment]);
     501            });
     502   
     503            // Now that everything has been set, let's open up the frame.
     504            cyclone_media_frame.open();
     505        });
     506    })();
     507   
     508   
     509    (function() {
     510        if(typeof(wp) == "undefined" || typeof(wp.media) != "function"){
     511            return;
     512        }
     513        // Prepare the variable that holds our custom media manager.
     514        var cyclone_media_frame;
     515        var triggering_element = null;
     516       
     517        // Bind to our click event in order to open up the new media experience.
     518        $(document.body).on('click', '.cs-multiple-slides', function(e){
     519            // Prevent the default action from occuring.
     520            e.preventDefault();
     521           
     522            triggering_element = jQuery(this); /* Get current clicked element */
     523           
     524           
     525            // If the frame already exists, re-open it.
     526            if ( cyclone_media_frame ) {
     527                cyclone_media_frame.open();
     528                return;
     529            }
     530   
     531
     532            cyclone_media_frame = wp.media.frames.cyclone_media_frame = wp.media({
     533                className: 'media-frame cs-frame',
     534                frame: 'select',
     535                multiple: true,
     536                title: cycloneslider_admin_vars.title2,
     537                library: {
     538                    type: 'image'
     539                },
     540                button: {
     541                    text:  cycloneslider_admin_vars.button2
     542                }
     543            });
     544   
     545            cyclone_media_frame.on('select', function(){
     546                var media_attachments;
     547               
     548                // Grab our attachment selection and construct a JSON representation of the model.
     549                media_attachments = cyclone_media_frame.state().get('selection').toJSON();
     550               
     551                triggering_element.trigger('wpAddImages', [media_attachments]);
     552            });
     553   
     554            // Now that everything has been set, let's open up the frame.
     555            cyclone_media_frame.open();
     556        });
     557    })();
    242558});
  • cyclone-slider/trunk/templates/default/slider.php

    r631183 r1635527  
    1 <?php if($slider_count>0) $slider_id = $slider_id.'-'.$slider_count; ?>
    2 <div class="cycloneslider cycloneslider-template-default" id="cycloneslider-<?php echo $slider_id; ?>">
    3     <div class="cycloneslider-slides">
    4         <?php foreach($slider_metas as $i=>$slider_meta): ?>
    5             <div class="cycloneslider-slide">
    6                 <?php if ($slider_meta['link']!='') : ?><a target="<?php echo ('_blank'==$slider_meta['link_target']) ? '_blank' : '_self'; ?>" href="<?php echo $slider_meta['link'];?>"><?php endif; ?>
    7                 <img src="<?php echo cycloneslider_thumb($slider_meta['id'], $slider_settings['width'], $slider_settings['height'], false, $slider_meta); ?>" width="<?php echo $slider_settings['width'];?>" height="<?php echo $slider_settings['height'];?>" alt="slide" />
    8                 <?php if ($slider_meta['link']!='') : ?></a><?php endif; ?>
    9                 <?php if(!empty($slider_meta['title']) or !empty($slider_meta['description'])) : ?>
    10                 <div class="cycloneslider-caption">
    11                     <div class="cycloneslider-caption-title"><?php echo $slider_meta['title'];?></div>
    12                     <div class="cycloneslider-caption-description"><?php echo $slider_meta['description'];?></div>
    13                 </div>
    14                 <?php endif; ?>
    15             </div>
    16         <?php endforeach; ?>
    17     </div>
    18     <?php if ($slider_settings['show_nav']) : ?>
    19     <div class="cycloneslider-pager"></div>
    20     <?php endif; ?>
    21     <?php if ($slider_settings['show_prev_next']) : ?>
    22     <div class="cycloneslider-prev">Prev</div>
    23     <div class="cycloneslider-next">Next</div>
    24     <?php endif; ?>
     1<?php if(!defined('ABSPATH')) die('Direct access denied.'); ?>
     2
     3<?php
     4// For description of variables go to: http://www.codefleet.net/cyclone-slider-2/#template-variables
     5?>
     6<div class="cycloneslider cycloneslider-template-default cycloneslider-width-<?php echo esc_attr( $slider_settings['width_management'] ); ?>"
     7    id="<?php echo esc_attr( $slider_html_id ); ?>"
     8    <?php echo ( 'responsive' == $slider_settings['width_management'] ) ? 'style="max-width:'.esc_attr( $slider_settings['width'] ).'px"' : ''; ?>
     9    <?php echo ( 'fixed' == $slider_settings['width_management'] ) ? 'style="width:'.esc_attr( $slider_settings['width'] ).'px"' : ''; ?>
     10    >
     11    <div class="cycloneslider-slides cycle-slideshow"
     12        data-cycle-allow-wrap="<?php echo esc_attr( $slider_settings['allow_wrap'] ); ?>"
     13        data-cycle-dynamic-height="<?php echo esc_attr( $slider_settings['dynamic_height'] ); ?>"
     14        data-cycle-auto-height="<?php echo esc_attr( $slider_settings['auto_height'] ); ?>"
     15        data-cycle-auto-height-easing="<?php echo esc_attr( $slider_settings['auto_height_easing'] ); ?>"
     16        data-cycle-auto-height-speed="<?php echo esc_attr( $slider_settings['auto_height_speed'] ); ?>"
     17        data-cycle-delay="<?php echo esc_attr( $slider_settings['delay'] ); ?>"
     18        data-cycle-easing="<?php echo esc_attr( $slider_settings['easing'] ); ?>"
     19        data-cycle-fx="<?php echo esc_attr( $slider_settings['fx'] ); ?>"
     20        data-cycle-hide-non-active="<?php echo esc_attr( $slider_settings['hide_non_active'] ); ?>"
     21        data-cycle-log="false"
     22        data-cycle-next="#<?php echo esc_attr( $slider_html_id ); ?> .cycloneslider-next"
     23        data-cycle-pager="#<?php echo esc_attr( $slider_html_id ); ?> .cycloneslider-pager"
     24        data-cycle-pause-on-hover="<?php echo esc_attr( $slider_settings['hover_pause'] ); ?>"
     25        data-cycle-prev="#<?php echo esc_attr( $slider_html_id ); ?> .cycloneslider-prev"
     26        data-cycle-slides="&gt; div"
     27        data-cycle-speed="<?php echo esc_attr( $slider_settings['speed'] ); ?>"
     28        data-cycle-swipe="<?php echo esc_attr( $slider_settings['swipe'] ); ?>"
     29        data-cycle-tile-count="<?php echo esc_attr( $slider_settings['tile_count'] ); ?>"
     30        data-cycle-tile-delay="<?php echo esc_attr( $slider_settings['tile_delay'] ); ?>"
     31        data-cycle-tile-vertical="<?php echo esc_attr( $slider_settings['tile_vertical'] ); ?>"
     32        data-cycle-timeout="<?php echo esc_attr( $slider_settings['timeout'] ); ?>"
     33        >
     34        <?php foreach($slides as $slide): ?>
     35            <?php if ( 'image' == $slide['type'] ) : ?>
     36                <div class="cycloneslider-slide cycloneslider-slide-image" <?php echo $slide['slide_data_attributes']; ?>>
     37                    <?php if( 'lightbox' == $slide['link_target'] ): ?>
     38                        <a class="cycloneslider-caption-more magnific-pop" href="<?php echo esc_url( $slide['full_image_url'] ); ?>" alt="<?php echo $slide['img_alt'];?>">
     39                    <?php elseif ( '' != $slide['link'] ) : ?>
     40                        <?php if( '_blank' == $slide['link_target'] ): ?>
     41                            <a class="cycloneslider-caption-more" target="_blank" href="<?php echo esc_url( $slide['link'] );?>">
     42                        <?php else: ?>
     43                            <a class="cycloneslider-caption-more" href="<?php echo esc_url( $slide['link'] );?>">
     44                        <?php endif; ?>
     45                    <?php endif; ?>
     46
     47                    <img src="<?php echo $slide['image_url']; ?>" alt="<?php echo $slide['img_alt'];?>" title="<?php echo $slide['img_title'];?>" />
     48                   
     49                    <?php if( 'lightbox' == $slide['link_target'] or ('' != $slide['link']) ) : ?>
     50                        </a>
     51                    <?php endif; ?>
     52                   
     53                    <?php if(!empty($slide['title']) or !empty($slide['description'])) : ?>
     54                        <div class="cycloneslider-caption">
     55                            <div class="cycloneslider-caption-title"><?php echo wp_kses_post( $slide['title'] );?></div>
     56                            <div class="cycloneslider-caption-description"><?php echo wp_kses_post( $slide['description'] );?></div>
     57                        </div>
     58                    <?php endif; ?>
     59                </div>
     60            <?php elseif ( 'youtube' == $slide['type'] ) : ?>
     61                <div class="cycloneslider-slide cycloneslider-slide-custom" <?php echo $slide['slide_data_attributes']; ?>>
     62                    <p><?php _e('Slide type not supported.', 'cycloneslider'); ?></p>
     63                </div>
     64            <?php elseif ( 'vimeo' == $slide['type'] ) : ?>
     65                <div class="cycloneslider-slide cycloneslider-slide-custom" <?php echo $slide['slide_data_attributes']; ?>>
     66                    <p><?php _e('Slide type not supported.', 'cycloneslider'); ?></p>
     67                </div>
     68            <?php elseif ( 'video' == $slide['type'] ) : ?>
     69                <div class="cycloneslider-slide" <?php echo $slide['slide_data_attributes']; ?>>
     70                    <p><?php _e('Slide type not supported.', 'cycloneslider'); ?></p>
     71                </div>
     72            <?php elseif ( 'custom' == $slide['type'] ) : ?>
     73                <div class="cycloneslider-slide cycloneslider-slide-custom" <?php echo $slide['slide_data_attributes']; ?>>
     74                    <?php echo wp_kses_post( $slide['custom'] ); ?>
     75                </div>
     76            <?php endif; ?>
     77        <?php endforeach; ?>
     78    </div>
     79    <?php if ($slider_settings['show_nav']) : ?>
     80    <div class="cycloneslider-pager"></div>
     81    <?php endif; ?>
     82    <?php if ($slider_settings['show_prev_next']) : ?>
     83    <a href="#" class="cycloneslider-prev"></a>
     84    <a href="#" class="cycloneslider-next"></a>
     85    <?php endif; ?>
    2586</div>
    26 <div>
    27 <script type="text/javascript">
    28 jQuery(document).ready(function(){
    29     (function() {
    30         var slider = '#cycloneslider-<?php echo $slider_id; ?>';
    31         jQuery(slider).width(<?php echo $slider_settings['width']; ?>);
    32         jQuery(slider+' .cycloneslider-slides').height(<?php echo $slider_settings['height']; ?>);
    33         jQuery(slider+' .cycloneslider-slides').cycle({
    34             fx: "<?php echo $slider_settings['fx']; ?>",
    35             speed: <?php echo $slider_settings['speed']; ?>,
    36             timeout: <?php echo $slider_settings['timeout']; ?>,
    37             pager:jQuery(slider+' .cycloneslider-pager'),
    38             prev:jQuery(slider+' .cycloneslider-prev'),
    39             next:jQuery(slider+' .cycloneslider-next'),
    40             pause:<?php echo $slider_settings['hover_pause']; ?>
    41         });
    42     })();
    43 });
    44 </script>
    45 </div>
  • cyclone-slider/trunk/templates/default/style.css

    r592897 r1635527  
    11/*** Template Default ***/
    2 .cycloneslider-template-default img{
    3     display:block;
     2.cycloneslider-template-default{
     3    position:relative;
     4
     5}
     6.cycloneslider-template-default .cycloneslider-slides{
     7    position:relative;
     8    overflow:hidden;
     9}
     10.cycloneslider-template-default .cycloneslider-slide{
     11    text-align: center;
     12    width: 100%; /* For slides in scrollHorz to work */
     13    display: none; /* Hide slides to prevent FOUC */
     14}
     15.cycloneslider-template-default div[data-cycle-dynamic-height="off"] .cycloneslider-slide-image{
     16    height: 100%; /* To prevent cutting off captions when dynamic height is off */
     17}
     18.cycloneslider-template-default .cycloneslider-slide:first-child, /* Show first slide */
     19.cycloneslider-template-default .cycle-sentinel + .cycloneslider-slide{ /* Select next slide when using sentinel slide */
     20    display: block;
     21}
     22.cycloneslider-template-default .cycloneslider-slide img{
     23    display:block;
     24    margin:0 auto;
     25    padding:0;
     26    max-width:100%;
     27    border:0;
     28}
     29.cycloneslider-template-default.cycloneslider-width-full .cycloneslider-slide img{
     30    width:100%;
     31}
     32.cycloneslider-template-default .cycloneslider-slide iframe, /* Make our videos fluid */
     33.cycloneslider-template-default .cycloneslider-slide object,
     34.cycloneslider-template-default .cycloneslider-slide embed {
     35    position: absolute;
     36    left: 0;
     37    top: 0;
     38    width: 100% !important; /* Override width attrib */
     39    height: 100% !important; /* Override height attrib */
     40}
     41.cycloneslider-template-default .cycloneslider-slide-youtube,
     42.cycloneslider-template-default .cycloneslider-slide-vimeo{
     43    background: #000;
     44}
     45.cycloneslider-template-default .cycloneslider-slide-custom{
     46    min-height: 100%;
     47    background: #fff;
     48}
     49.cycloneslider-template-default div[data-cycle-dynamic-height="on"] .cycloneslider-slide-custom{
     50    min-height: 100px; /* Disable 100% min height when dynamic height is on. To fix issue with scrollHorz */
     51}
     52
     53/*** Prev/Next ***/
     54.cycloneslider-template-default .cycloneslider-prev,
     55.cycloneslider-template-default .cycloneslider-next,
     56.cycloneslider-template-default .cycloneslider-pager span {
     57    cursor:pointer;
    458}
    559.cycloneslider-template-default .cycloneslider-prev,
    660.cycloneslider-template-default .cycloneslider-next{
    7     display:none;
    8     opacity:0;
    961    position:absolute;
    1062    top:50%;
     63    z-index:501;
     64    display: block;
    1165    margin-top:-22px;
    12     z-index:102;
    1366    width:26px;
    1467    height:44px;
    15     text-indent:-99999px;
    16     background: url($tpl/images/sprite-arrows.png) no-repeat;
    17 }
    18 .cycloneslider-template-default:hover .cycloneslider-prev,
    19 .cycloneslider-template-default:hover .cycloneslider-next{
    20     display:block;
    21     opacity:0.4;
     68    background: url(images/sprite-arrows.png) no-repeat;
     69    opacity: 0;
     70    -webkit-transition: all 0.5s ;
     71    -moz-transition: all 0.5s ;
     72    -ms-transition: all 0.5s ;
     73    -o-transition: all 0.5s ;
     74    transition: all 0.5s ;
    2275}
    2376.cycloneslider-template-default .cycloneslider-prev{
     
    2578    background-position:0 0;
    2679}
     80.rtl .cycloneslider-template-default .cycloneslider-prev{
     81    left:auto;
     82    right:10px;
     83    background-position:-29px 0;
     84}
    2785.cycloneslider-template-default .cycloneslider-next{
    2886    right:10px;
    2987    background-position:-29px 0;
    3088}
     89.rtl .cycloneslider-template-default .cycloneslider-next{
     90    right:auto;
     91    left:10px;
     92    background-position:0 0;
     93}
     94.cycloneslider-template-default:hover .cycloneslider-prev,
     95.cycloneslider-template-default:hover .cycloneslider-next{
     96    opacity: 0.4;
     97}
    3198.cycloneslider-template-default .cycloneslider-prev:hover,
    3299.cycloneslider-template-default .cycloneslider-next:hover{
    33     opacity:1;
     100    opacity: 1;
    34101}
     102.cycloneslider-template-default .cycloneslider-prev.disabled,
     103.cycloneslider-template-default .cycloneslider-next.disabled{
     104    display: none;
     105}
     106
     107/*** Pager ***/
    35108.cycloneslider-template-default .cycloneslider-pager{
    36109    position:absolute;
    37     z-index:99;
     110    z-index:200;
    38111    top:20px;
    39112    right:20px;
    40113}
    41 .cycloneslider-template-default .cycloneslider-pager a {
    42     background: url($tpl/images/sprite-nav.png) no-repeat scroll 0 0 transparent;
    43     display: block;
    44     float: left;
     114.rtl .cycloneslider-template-default .cycloneslider-pager{
     115    right: auto;
     116    left:20px;
     117}
     118.cycloneslider-template-default .cycloneslider-pager span {
     119    display: inline-block;
     120    margin: 0 3px;
     121    width: 12px;
     122    height: 12px;
     123    border-radius: 6px;
     124    background: #333;
     125    vertical-align: top;
    45126    font-size: 0;
    46     width: 10px;
    47     height: 10px;
    48127    line-height: 0;
    49     margin-right: 6px;
    50     text-indent: -99999px;
    51128}
    52 .cycloneslider-template-default .cycloneslider-pager a.activeSlide {
    53     background-position: left bottom;
     129.ie7 .cycloneslider-template-default .cycloneslider-pager span{
     130    zoom: 1;/* IE 7 inline-block */
     131    *display: inline;/* IE 7 inline-block */
    54132}
     133.cycloneslider-template-default .cycloneslider-pager span.cycle-pager-active {
     134    background-color: #ccc;
     135}
     136
     137/*** Caption ***/
    55138.cycloneslider-template-default .cycloneslider-caption{
    56139    position:absolute;
     
    59142    width:100%;
    60143    z-index:99;
    61     background: url($tpl/images/bg-caption.png);
     144    background: url(images/bg-caption.png);
    62145    color:#fff;
     146    text-align: left;
     147}
     148.rtl .cycloneslider-template-default .cycloneslider-caption{
     149    text-align: right;
    63150}
    64151.cycloneslider-template-default .cycloneslider-caption-title{
  • cyclone-slider/trunk/templates/thumbnails/slider.php

    r631183 r1635527  
    1 <?php if($slider_count>0) $slider_id = $slider_id.'-'.$slider_count; ?>
    2 <div class="cycloneslider cycloneslider-template-thumbnails" id="cycloneslider-<?php echo $slider_id; ?>">
    3     <div class="cycloneslider-slides">
    4         <?php foreach($slider_metas as $i=>$slider_meta): ?>
    5             <div class="cycloneslider-slide">
    6                 <?php if ($slider_meta['link']!='') : ?><a target="<?php echo ('_blank'==$slider_meta['link_target']) ? '_blank' : '_self'; ?>" href="<?php echo $slider_meta['link'];?>"><?php endif; ?>
    7                 <img src="<?php echo cycloneslider_thumb($slider_meta['id'], $slider_settings['width'], $slider_settings['height'], false, $slider_meta); ?>" width="<?php echo $slider_settings['width'];?>" height="<?php echo $slider_settings['height'];?>" alt="slide" />
    8                 <?php if ($slider_meta['link']!='') : ?></a><?php endif; ?>
    9                 <?php if(!empty($slider_meta['title']) or !empty($slider_meta['description'])) : ?>
    10                 <div class="cycloneslider-caption">
    11                     <div class="cycloneslider-caption-title"><?php echo $slider_meta['title'];?></div>
    12                     <div class="cycloneslider-caption-description"><?php echo $slider_meta['description'];?></div>
    13                 </div>
    14                 <?php endif; ?>
    15             </div>
    16         <?php endforeach; ?>
     1<?php if(!defined('ABSPATH')) die('Direct access denied.'); ?>
     2
     3<?php
     4// For description of variables go to: http://www.codefleet.net/cyclone-slider-2/#template-variables
     5?>
     6<div class="cycloneslider cycloneslider-template-thumbnails cycloneslider-width-<?php echo esc_attr( $slider_settings['width_management'] ); ?>"
     7    id="<?php echo esc_attr( $slider_html_id ); ?>"
     8    <?php echo ( 'responsive' == $slider_settings['width_management'] ) ? 'style="max-width:'.esc_attr( $slider_settings['width'] ).'px"' : ''; ?>
     9    <?php echo ( 'fixed' == $slider_settings['width_management'] ) ? 'style="width:'.esc_attr( $slider_settings['width'] ).'px"' : ''; ?>
     10    >
     11    <div class="cycloneslider-slides cycle-slideshow"
     12        data-cycle-allow-wrap="<?php echo esc_attr( $slider_settings['allow_wrap'] ); ?>"
     13        data-cycle-dynamic-height="<?php echo esc_attr( $slider_settings['dynamic_height'] ); ?>"
     14        data-cycle-auto-height="<?php echo esc_attr( $slider_settings['auto_height'] ); ?>"
     15        data-cycle-auto-height-easing="<?php echo esc_attr( $slider_settings['auto_height_easing'] ); ?>"
     16        data-cycle-auto-height-speed="<?php echo esc_attr( $slider_settings['auto_height_speed'] ); ?>"
     17        data-cycle-delay="<?php echo esc_attr( $slider_settings['delay'] ); ?>"
     18        data-cycle-easing="<?php echo esc_attr( $slider_settings['easing'] ); ?>"
     19        data-cycle-fx="<?php echo esc_attr( $slider_settings['fx'] ); ?>"
     20        data-cycle-hide-non-active="<?php echo esc_attr( $slider_settings['hide_non_active'] ); ?>"
     21        data-cycle-log="false"
     22        data-cycle-next="#<?php echo esc_attr( $slider_html_id ); ?> .cycloneslider-next"
     23        data-cycle-pager="#<?php echo esc_attr( $slider_html_id ); ?> .cycloneslider-pager"
     24        data-cycle-pause-on-hover="<?php echo esc_attr( $slider_settings['hover_pause'] ); ?>"
     25        data-cycle-prev="#<?php echo esc_attr( $slider_html_id ); ?> .cycloneslider-prev"
     26        data-cycle-slides="&gt; div"
     27        data-cycle-speed="<?php echo esc_attr( $slider_settings['speed'] ); ?>"
     28        data-cycle-swipe="<?php echo esc_attr( $slider_settings['swipe'] ); ?>"
     29        data-cycle-tile-count="<?php echo esc_attr( $slider_settings['tile_count'] ); ?>"
     30        data-cycle-tile-delay="<?php echo esc_attr( $slider_settings['tile_delay'] ); ?>"
     31        data-cycle-tile-vertical="<?php echo esc_attr( $slider_settings['tile_vertical'] ); ?>"
     32        data-cycle-timeout="<?php echo esc_attr( $slider_settings['timeout'] ); ?>"
     33        >
     34        <?php foreach($slides as $slide): ?>
     35            <?php if ( 'image' == $slide['type'] ) : ?>
     36                <div class="cycloneslider-slide cycloneslider-slide-image" <?php echo $slide['slide_data_attributes']; ?>>
     37                    <?php if( 'lightbox' == $slide['link_target'] ): ?>
     38                        <a class="cycloneslider-caption-more magnific-pop" href="<?php echo esc_url( $slide['full_image_url'] ); ?>" alt="<?php echo $slide['img_alt'];?>">
     39                    <?php elseif ( '' != $slide['link'] ) : ?>
     40                        <?php if( '_blank' == $slide['link_target'] ): ?>
     41                            <a class="cycloneslider-caption-more" target="_blank" href="<?php echo esc_url( $slide['link'] );?>">
     42                        <?php else: ?>
     43                            <a class="cycloneslider-caption-more" href="<?php echo esc_url( $slide['link'] );?>">
     44                        <?php endif; ?>
     45                    <?php endif; ?>
     46
     47                    <img src="<?php echo $slide['image_url']; ?>" alt="<?php echo $slide['img_alt'];?>" title="<?php echo $slide['img_title'];?>" />
     48                   
     49                    <?php if( 'lightbox' == $slide['link_target'] or ('' != $slide['link']) ) : ?>
     50                        </a>
     51                    <?php endif; ?>
     52                   
     53                    <?php if(!empty($slide['title']) or !empty($slide['description'])) : ?>
     54                        <div class="cycloneslider-caption">
     55                            <div class="cycloneslider-caption-title"><?php echo wp_kses_post( $slide['title'] );?></div>
     56                            <div class="cycloneslider-caption-description"><?php echo wp_kses_post( $slide['description'] );?></div>
     57                        </div>
     58                    <?php endif; ?>
     59                </div>
     60            <?php elseif ( 'youtube' == $slide['type'] ) : ?>
     61                <div class="cycloneslider-slide cycloneslider-slide-youtube" <?php echo $slide['slide_data_attributes']; ?> style="padding-bottom:<?php echo $slider_settings['height']/$slider_settings['width']*100;?>%">
     62                    <?php echo $slide['youtube_embed_code']; ?>
     63                </div>
     64            <?php elseif ( 'vimeo' == $slide['type'] ) : ?>
     65                <div class="cycloneslider-slide cycloneslider-slide-vimeo" <?php echo $slide['slide_data_attributes']; ?> style="padding-bottom:<?php echo $slider_settings['height']/$slider_settings['width']*100;?>%">
     66                    <?php echo $slide['vimeo_embed_code']; ?>
     67                </div>
     68            <?php elseif ( 'video' == $slide['type'] ) : ?>
     69                <div class="cycloneslider-slide" <?php echo $slide['slide_data_attributes']; ?>>
     70                    <p><?php _e('Slide type not supported.', 'cycloneslider'); ?></p>
     71                </div>
     72            <?php elseif ( 'custom' == $slide['type'] ) : ?>
     73                <div class="cycloneslider-slide cycloneslider-slide-custom" <?php echo $slide['slide_data_attributes']; ?>>
     74                    <?php echo wp_kses_post( $slide['custom'] ); ?>
     75                </div>
     76            <?php endif; ?>
     77        <?php endforeach; ?>
    1778    </div>
    18     <?php if ($slider_settings['show_prev_next']) : ?>
    19     <a href="#" class="cycloneslider-prev">Prev</a>
    20     <a href="#" class="cycloneslider-next">Next</a>
     79    <?php if ($slider_settings['show_nav'] && ($video_count<=0) ) : ?>
     80    <div class="cycloneslider-prev"></div>
     81    <div class="cycloneslider-next"></div>
    2182    <?php endif; ?>
    2283</div>
    2384<?php if ($slider_settings['show_nav']) : ?>
    24 <div id="cycloneslider-thumbnails-<?php echo $slider_id; ?>" class="cycloneslider-template-thumbnails cycloneslider-thumbnails">
     85<div id="<?php echo $slider_html_id; ?>-pager" class="cycloneslider-template-thumbnails cycloneslider-thumbnails"
     86    <?php echo ( 'responsive' == $slider_settings['width_management'] ) ? 'style="max-width:'.esc_attr( $slider_settings['width'] ).'px"' : ''; ?>
     87    <?php echo ( 'fixed' == $slider_settings['width_management'] ) ? 'style="width:'.esc_attr( $slider_settings['width'] ).'px"' : ''; ?>
     88    >
    2589    <ul class="clearfix">
    26         <?php foreach($slider_metas as $i=>$slider_meta): ?>
    27         <li>
    28             <img src="<?php echo cycloneslider_thumb( $slider_meta['id'], 30, 30 ) ?>" alt="" />
    29         </li>
     90        <?php foreach($slides as $i=>$slide): ?>
     91            <?php if ( 'image' == $slide['type'] ) : ?>
     92                <li>
     93                    <img src="<?php echo $slide['image_thumbnails']['40_40_crop']; ?>" width="40" height="40" alt="<?php echo $slide['img_alt'];?>" title="<?php echo $slide['img_title'];?>" />
     94                </li>
     95            <?php elseif ( 'youtube' == $slide['type'] ) : ?>
     96                <li>
     97                    <img src="<?php echo $slide['thumbnail_small']; ?>" width="auto" height="40" alt="<?php echo $slide['img_alt'];?>" title="<?php echo $slide['img_title'];?>" />
     98                </li>
     99            <?php elseif ( 'vimeo' == $slide['type'] ) : ?>
     100                <li>
     101                    <img src="<?php echo $slide['thumbnail_small']; ?>" width="auto" height="40" alt="<?php echo $slide['img_alt'];?>" title="<?php echo $slide['img_title'];?>" />
     102                </li>
     103            <?php elseif ( 'video' == $slide['type'] ) : ?>
     104                <li>
     105                    <div class="thumb-custom">Video</div>
     106                </li>
     107            <?php elseif ( 'custom' == $slide['type'] ) : ?>
     108                <li>
     109                    <div class="thumb-custom">HTML</div>
     110                </li>
     111            <?php endif; ?>
    30112        <?php endforeach; ?>
    31113    </ul>
    32114</div>
    33115<?php endif; ?>
    34 <script type="text/javascript">
    35 jQuery(document).ready(function(){
    36     (function() {
    37         var start = true;
    38         var slider = '#cycloneslider-<?php echo $slider_id; ?>';
    39         jQuery(slider).width(<?php echo $slider_settings['width']; ?>);
    40         jQuery(slider+' .cycloneslider-slides').height(<?php echo $slider_settings['height']; ?>);
    41         jQuery(slider+' .cycloneslider-slides').cycle({
    42             fx: "<?php echo $slider_settings['fx']; ?>",
    43             speed: <?php echo $slider_settings['speed']; ?>,
    44             timeout: <?php echo $slider_settings['timeout']; ?>,
    45             pager:jQuery(slider+' .cycloneslider-pager'),
    46             prev:jQuery(slider+' .cycloneslider-prev'),
    47             next:jQuery(slider+' .cycloneslider-next'),
    48             before:function(currSlideElement,nextSlideElement,options,forwardFlag){
    49                 var i = options.nextSlide;/*the current active slide index*/
    50                 if(start){
    51                     i=0;
    52                     start = false;
    53                 };
    54                 jQuery('#cycloneslider-thumbnails-<?php echo $slider_id; ?> li').removeClass('current').eq(i).addClass('current');
    55             },
    56             pause:<?php echo $slider_settings['hover_pause']; ?>
    57         });
    58         jQuery('#cycloneslider-thumbnails-<?php echo $slider_id; ?> li').click(function(){
    59             var i = jQuery(this).index();
    60             jQuery("#cycloneslider-<?php echo $slider_id; ?> .cycloneslider-slides").cycle(i);
    61         });
    62     })();
    63 });
    64 </script>
  • cyclone-slider/trunk/templates/thumbnails/style.css

    r593595 r1635527  
    11/*** Template Thumbnails ***/
    2 .cycloneslider-template-thumbnails img{
    3     display:block;
     2.cycloneslider-template-thumbnails{
     3    position:relative;
     4   
     5}
     6.cycloneslider-template-thumbnails .cycloneslider-slides{
     7    position:relative;
     8    overflow:hidden;
     9}
     10.cycloneslider-template-thumbnails .cycloneslider-slide{
     11    text-align: center;
     12    width: 100%; /* For slides in scrollHorz to work */
     13    display: none; /* Hide slides to prevent FOUC when JS hasn't kicked in yet */
     14    background: #fff; /* Add background to prevent slides from peeking behind the current slide when fx=scrollHorz and hideNonActive=false */
     15}
     16.cycloneslider-template-thumbnails .cycle-slide{
     17    display: block; /* Show slide so that getBoundingClientRect().height will not return 0. Class .cycle-slide is added when cycle has initialized. */
     18}
     19.cycloneslider-template-thumbnails div[data-cycle-dynamic-height="off"] .cycloneslider-slide-image{
     20    height: 100%; /* To prevent cutting off captions when dynamic height is off */
     21}
     22.cycloneslider-template-thumbnails .cycloneslider-slide:first-child, /* Show first slide */
     23.cycloneslider-template-thumbnails .cycle-sentinel + .cycloneslider-slide{ /* Select next slide when using sentinel slide */
     24    display: block;
     25}
     26.cycloneslider-template-thumbnails .cycloneslider-slide img{
     27    display:block;
     28    margin:0 auto;
     29    padding:0;
     30    max-width:100%;
     31    border:0;
     32}
     33.cycloneslider-template-thumbnails.cycloneslider-width-full .cycloneslider-slide img{
     34    width:100%;
     35}
     36.cycloneslider-template-thumbnails .cycloneslider-slide iframe, /* Make our videos fluid */
     37.cycloneslider-template-thumbnails .cycloneslider-slide object,
     38.cycloneslider-template-thumbnails .cycloneslider-slide embed {
     39    position: absolute;
     40    left: 0;
     41    top: 0;
     42    width: 100% !important; /* Override width attrib */
     43    height: 100% !important; /* Override height attrib */
     44}
     45.cycloneslider-template-thumbnails .cycloneslider-slide-youtube,
     46.cycloneslider-template-thumbnails .cycloneslider-slide-vimeo{
     47    background: #000;
     48}
     49.cycloneslider-template-thumbnails .cycloneslider-slide-custom{
     50    min-height: 100%;
     51}
     52.cycloneslider-template-thumbnails div[data-cycle-dynamic-height="on"] .cycloneslider-slide-custom{
     53    min-height: 100px; /* Disable 100% min height when dynamic height is on. To fix issue with scrollHorz */
     54}
     55
     56/*** Prev/Next ***/
     57.cycloneslider-template-thumbnails .cycloneslider-prev,
     58.cycloneslider-template-thumbnails .cycloneslider-next,
     59.cycloneslider-template-thumbnails .cycloneslider-pager span {
     60    cursor:pointer;
    461}
    562.cycloneslider-template-thumbnails .cycloneslider-prev,
    663.cycloneslider-template-thumbnails .cycloneslider-next{
    7     display:none;
    8     opacity:0;
    964    position:absolute;
    1065    top:50%;
     66    z-index:501;
     67    display: block;
    1168    margin-top:-22px;
    12     z-index:102;
    1369    width:26px;
    1470    height:44px;
    15     text-indent:-99999px;
    16     background: url($tpl/images/sprite-arrows.png) no-repeat;
    17 }
    18 .cycloneslider-template-thumbnails:hover .cycloneslider-prev,
    19 .cycloneslider-template-thumbnails:hover .cycloneslider-next{
    20     display:block;
    21     opacity:0.4;
     71    background: url(images/sprite-arrows.png) no-repeat;
     72    opacity: 0;
     73    -webkit-transition: all 0.5s ;
     74    -moz-transition: all 0.5s ;
     75    -ms-transition: all 0.5s ;
     76    -o-transition: all 0.5s ;
     77    transition: all 0.5s ;
    2278}
    2379.cycloneslider-template-thumbnails .cycloneslider-prev{
     
    2581    background-position:0 0;
    2682}
     83.rtl .cycloneslider-template-thumbnails .cycloneslider-prev{
     84    left:auto;
     85    right:10px;
     86    background-position:-29px 0;
     87}
    2788.cycloneslider-template-thumbnails .cycloneslider-next{
    2889    right:10px;
    2990    background-position:-29px 0;
    3091}
     92.rtl .cycloneslider-template-thumbnails .cycloneslider-next{
     93    right:auto;
     94    left:10px;
     95    background-position:0 0;
     96}
     97.cycloneslider-template-thumbnails:hover .cycloneslider-prev,
     98.cycloneslider-template-thumbnails:hover .cycloneslider-next{
     99    opacity: 0.4;
     100}
    31101.cycloneslider-template-thumbnails .cycloneslider-prev:hover,
    32102.cycloneslider-template-thumbnails .cycloneslider-next:hover{
    33     opacity:1;
     103    opacity: 1;
     104}
     105.cycloneslider-template-thumbnails .cycloneslider-prev.disabled,
     106.cycloneslider-template-thumbnails .cycloneslider-next.disabled{
     107    display: none;
    34108}
    35109
     110/*** Caption ***/
    36111.cycloneslider-template-thumbnails .cycloneslider-caption{
    37112    position:absolute;
     
    40115    width:100%;
    41116    z-index:99;
    42     background: url($tpl/images/bg-caption.png);
     117    background: url(images/bg-caption.png);
    43118    color:#fff;
     119    text-align: left;
     120}
     121.rtl .cycloneslider-template-thumbnails .cycloneslider-caption{
     122    text-align: right;
    44123}
    45124.cycloneslider-template-thumbnails .cycloneslider-caption-title{
     
    55134}
    56135
     136/*** Thumbnails ***/
    57137.cycloneslider-template-thumbnails.cycloneslider-thumbnails{
    58     padding:20px 0;
     138    margin: 0;
     139    padding:15px 0;
    59140    text-align:center;
    60141}
     142.cycloneslider-template-thumbnails.cycloneslider-thumbnails ul{
     143    margin: 0;
     144    padding: 0;
     145    list-style: none;
     146}
    61147.cycloneslider-template-thumbnails.cycloneslider-thumbnails li{
     148    list-style:none inside;
    62149    display:inline-block;
    63     margin:0 5px;
    64     border:5px solid #ccc;
     150    min-width:40px;
     151    height:40px;
     152    margin:5px;
     153    padding: 0;
     154    border:2px solid #ccc;
    65155    cursor:pointer;
     156    vertical-align:top;
     157    box-sizing: content-box;
     158    overflow: hidden;
     159}
     160.ie7 .cycloneslider-template-thumbnails.cycloneslider-thumbnails li{
     161    zoom: 1;/* IE 7 inline-block */
     162    *display: inline;/* IE 7 inline-block */
    66163}
    67164.cycloneslider-template-thumbnails.cycloneslider-thumbnails li.current{
    68165    border-color:#333;
    69166}
     167.cycloneslider-template-thumbnails.cycloneslider-thumbnails .thumb-custom{
     168    background:#fefefe;
     169    height:100%;
     170    font-size:9px;
     171    color:#BBBBBB;
     172}
     173.cycloneslider-template-thumbnails.cycloneslider-thumbnails img{
     174    border-radius:0;
     175}
     176.ie8 .cycloneslider-template-thumbnails.cycloneslider-thumbnails img{
     177    width: 40px;
     178}
Note: See TracChangeset for help on using the changeset viewer.