Plugin Directory

Changeset 874573


Ignore:
Timestamp:
03/13/2014 07:20:49 AM (12 years ago)
Author:
nextendweb
Message:

2.3.7

  • Feature: Quick image generator with extended fields
  • Feature: Generator step-by-step view
  • Feature: Layout normalization for generators
  • Feature: Slider presets for generated sliders
  • Feature: Background image resize modes: cover and contain
  • Feature: WordPress error checker added: checks for wp_head and wp_footer
  • Feature: Memory limit check for background image resize and fade in on load.
  • Feature: New universal unzip method to give import wider PHP support
  • Fix: parse_ini_file function alternative added when the function disabled
  • Fix: Custom zip algorithm for import and export
  • Fix: Item optimizations
  • Fix: Generator field name normalization. Older field names are still available for compatibility, but better to use new ones as they are supported by the generator layouts.
Location:
smart-slider-2/trunk
Files:
55 added
4 deleted
120 edited

Legend:

Unmodified
Added
Removed
  • smart-slider-2/trunk/library/smartslider/admin/controller.php

    r856428 r874573  
    9090        $this->display('default');
    9191    }
     92   
     93    function problems(){
     94        $count = 0;
     95        if(nextendIsWordPress()){
     96            $nextenderror = get_option( 'nextend_error' );
     97            if ( $nextenderror !== false && is_array($nextenderror)){
     98                if(isset($nextenderror['missinghead'])){
     99                    foreach($nextenderror['missinghead'] AS $url){
     100                        $count++;
     101                    }
     102                }
     103                if(isset($nextenderror['missingfooter'])){
     104                    foreach($nextenderror['missingfooter'] AS $url){
     105                        $count++;
     106                    }
     107                }
     108            }
     109        }
     110        return $count;
     111    }
    92112
    93113}
  • smart-slider-2/trunk/library/smartslider/admin/controllers/layouts.php

    r856428 r874573  
    1818                if ($layoutid = $layoutsModel->create(NextendRequest::getVar('layout'))) {
    1919                    if (NextendRequest::getVar('ajax')) {
     20                        nextendimport('nextend.parse.parse');
     21                        nextendimportsmartslider2('nextend.smartslider.items');
     22                        $items = new NextendSliderItems('nextend-smart-slider-0', true);
     23                        NextendSliderItems::$i['nextend-smart-slider-0'] = time();
     24                        $layout = $layoutsModel->getLayout($layoutid);
     25                        echo $items->render($layout['slide']);
    2026                        exit;
    2127                    }
  • smart-slider-2/trunk/library/smartslider/admin/controllers/sliders.php

    r856428 r874573  
    2121                $slidersModel = $this->getModel('sliders');
    2222                if ($sliderid = $slidersModel->createQuick()) {
    23                     header('LOCATION: ' . $this->route('controller=sliders&view=sliders_slider&action=dashboard&sliderid=' . $sliderid));
     23                    $slidersModel->loadGeneratorFontSet($sliderid);
     24                    header('LOCATION: ' . $this->route('controller=sliders&view=sliders_slider&action=changedynamiclayout&fontset=1&sliderid=' . $sliderid));
    2425                    exit;
    2526                }
     
    159160    }
    160161
    161     function generatorAction() {
     162    function generatorstartAction() {
    162163        if ($this->canDo('slider.edit')) {
    163164            $slidersModel = $this->getModel('sliders');
     
    169170                if ($sliderid = $slidersModel->saveGenerator(NextendRequest::getInt('sliderid'), NextendRequest::getVar('generator', ''), NextendRequest::getVar('slide', ''))) {
    170171                    header('LOCATION: ' . $this->route('controller=sliders&view=sliders_generator&action=generator&sliderid=' . $sliderid));
     172                    exit;
     173                }
     174            }
     175
     176            $this->display('default', 'source');
     177        } else {
     178            $this->noaccess();
     179        }
     180    }
     181
     182    function generatorsettingsAction() {
     183        if ($this->canDo('slider.edit')) {
     184            $slidersModel = $this->getModel('sliders');
     185            if (!$slidersModel->getSlider(NextendRequest::getInt('sliderid'))) {
     186                $this->redirectToSliders();
     187            }
     188
     189            if (NextendRequest::getInt('save')) {
     190                if ($sliderid = $slidersModel->saveGeneratorSettings(NextendRequest::getInt('sliderid'), NextendRequest::getVar('generator', ''))) {
     191                    if(isset($_POST['generator']) && isset($_POST['generator']['enabled']) && $_POST['generator']['enabled'] == 0){
     192                        header('LOCATION: ' . $this->route('controller=sliders&view=sliders_slider&action=dashboard&sliderid=' . $sliderid));
     193                    }else if(NextendRequest::getInt('gotopreset', 0)){
     194                        header('LOCATION: ' . $this->route('controller=sliders&view=sliders_slider&action=changedynamiclayout&sliderid=' . $sliderid));
     195                    }else{
     196                        header('LOCATION: ' . $this->route('controller=sliders&view=sliders_generator&action=generatoredit&sliderid=' . $sliderid));
     197                    }
     198                    exit;
     199                }
     200            }
     201            $this->display('default', 'settings');
     202        } else {
     203            $this->noaccess();
     204        }
     205    }
     206
     207    function generatoreditAction() {
     208        if ($this->canDo('slider.edit')) {
     209            $slidersModel = $this->getModel('sliders');
     210            if (!$slidersModel->getSlider(NextendRequest::getInt('sliderid'))) {
     211                $this->redirectToSliders();
     212            }
     213
     214            if (NextendRequest::getInt('save')) {
     215                if ($sliderid = $slidersModel->saveGeneratorSlide(NextendRequest::getInt('sliderid'), NextendRequest::getVar('slide', ''))) {
     216                    header('LOCATION: ' . $this->route('controller=sliders&view=sliders_generator&action=generatoredit&sliderid=' . $sliderid));
    171217                    exit;
    172218                }
     
    260306   
    261307    function importFile($targetzip, $showmessage = true){
    262         $zip = new ZipArchive;
    263         $res = $zip->open($targetzip);
    264         if ($res === TRUE) {
    265             $slider = $zip->getFromName('slider.ss2');
     308        nextendimport('nextend.externals.zip_read');
     309        $zipfile = new NextendZipfile;
     310        $zipfile->read_zip($targetzip);
     311       
     312        if (count($zipfile->files)) {
     313            $data = array();
     314            foreach($zipfile->files AS $file){
     315                $data[$file['name']] = $file['data'];
     316            }
     317            $slider = isset($data['slider.ss2']) ? $data['slider.ss2'] : 0;
    266318            if($slider){
    267319                $slidersModel = $this->getModel('sliders');
     
    269321                if($showmessage) NextendMessage::success(NextendText::_('Success'), NextendText::_('1_Slider_imported'));
    270322                if($sliderid){
    271                     $slides = $zip->getFromName('slides.ss2');
     323                    $slides = isset($data['slides.ss2']) ? $data['slides.ss2'] : 0;
    272324                    if($slides){
    273325                        $slidesModel = $this->getModel('slides');
     
    279331                        if($showmessage) NextendMessage::success(NextendText::_('Success'), count($slides).' '.NextendText::_('Slides_imported'));
    280332                    }
    281                     $fonts = $zip->getFromName('fonts.ss2');
     333                    $fonts = isset($data['fonts.ss2']) ? $data['fonts.ss2'] : 0;
    282334                    if($fonts){
    283335                        NextendSmartSliderStorage::set('font'.$sliderid, json_encode(unserialize($fonts)));
     
    288340            }
    289341        }else{
    290             NextendMessage::error(NextendText::_('Error'), NextendText::_('Unable_to_unzip_the_file_Error_code').$res);                           
     342            NextendMessage::error(NextendText::_('Error'), NextendText::_('Unable_to_unzip_the_file_Error_code'));                           
    291343        }
    292344    }
  • smart-slider-2/trunk/library/smartslider/admin/fragments/firstcol/slide.php

    r856428 r874573  
    3232                pane.on('mouseenter', function(){
    3333                    if(timeout) clearTimeout(timeout);
    34                     pane.addClass('active');
    35                    
    36                     pane.stop().animate({
    37                         height: pane.prop('scrollHeight')
    38                     },{
    39                         complete: function(){
    40                             pane.css('overflow', 'auto');
    41                             $(window).trigger('resize');
    42                         }
    43                     });
     34                    timeout = setTimeout(function(){
     35                        pane.addClass('active');
     36                       
     37                        pane.stop().animate({
     38                            height: pane.prop('scrollHeight')
     39                        },{
     40                            complete: function(){
     41                                pane.css('overflow', 'auto');
     42                                $(window).trigger('resize');
     43                            }
     44                        });
     45                    }, 400);
    4446                }).on('mouseleave', function(){
     47                    if(timeout) clearTimeout(timeout);
    4548                    timeout = setTimeout(function(){
    4649                        pane.stop().animate({
     
    98101                        <div class="smartslider-slide-layout-pane-inner nextend-clearfix">
    99102                            <?php
     103                            nextendimportsmartslider2('nextend.smartslider.items');
     104                            $items = new NextendSliderItems('nextend-smart-slider-0', true);
     105                           
    100106                            $layoutsModel = $this->getModel('layouts');
    101107                            ?>
     
    111117
    112118                                        <div class="smartslider-layout-container">
    113                                             <?php echo $layout['slide']; ?>
     119                                            <?php echo $items->render($layout['slide']); ?>
    114120                                        </div>
    115121                                    </div>
     
    133139                                               href="#"><?php echo $layout['title']; ?></a>
    134140                                        <div class="smartslider-layout-container">
    135                                             <?php echo $layout['slide']; ?>
     141                                            <?php echo $items->render($layout['slide']); ?>
    136142                                        </div>
    137143                                        </dt>
  • smart-slider-2/trunk/library/smartslider/admin/fragments/firstcol/sliders.php

    r856428 r874573  
    6565        $active = $sliderid == $slider['id'];
    6666
    67         $generator = json_decode($slider['generator'], true);
    68         if ($generator && isset($generator['enabled']) && $generator['enabled']) {
    69             $generator = true;
    70         }else{
    71             $generator = false;
    72         }
    73 
    7467        ?>
    7568        <dt class="<?php echo $c; ?> smartslider-button-blue-active smartslider-icon-container <?php echo $active ? 'subactive' : ''; ?> <?php echo $active && NextendRequest::getCmd('controller') == 'sliders' ? 'active' : ''; ?>">
     
    8578                                <span class="smartslider-qtip-icon create_slider"></span>
    8679                                <?php echo NextendText::_('Edit_slider'); ?>
    87                             </a>
    88                         </li>
    89                     <?php endif; ?>
    90                    
    91                     <?php if (!$j15 && $accessSliderEdit): ?>
    92                         <li class="smartslider-icon-container">
    93                             <a href="<?php echo $this->route('controller=sliders&view=sliders_generator&action=generator&sliderid=' . $slider['id']); ?>">
    94                                 <span class="smartslider-qtip-icon generator"></span>
    95                                 <?php echo NextendText::_('Generator'); ?>
    96                                 <?php if ($generator): ?>
    97                                     <span class="smartslider-qtip-icon activegreen"></span>
    98                                 <?php endif; ?>
    9980                            </a>
    10081                        </li>
  • smart-slider-2/trunk/library/smartslider/admin/fragments/firstcolstart.php

    r856428 r874573  
    1111        <div class="smartslider-border">
    1212<?php
    13 if ((NextendRequest::getCmd('controller') == 'sliders' && NextendRequest::getCmd('action') != 'generator') || NextendRequest::getCmd('controller') == 'help'):
     13if ((NextendRequest::getCmd('controller') == 'sliders' && NextendRequest::getCmd('action') != 'generatoredit') || NextendRequest::getCmd('controller') == 'help'):
    1414    $this->loadFragment('firstcol/sliders');
    1515elseif (NextendRequest::getCmd('controller') == 'layouts' && NextendRequest::getCmd('action') != 'edit' && NextendRequest::getCmd('action') != 'create'):
  • smart-slider-2/trunk/library/smartslider/admin/fragments/headerstart.php

    r856428 r874573  
    5858                        <div></div>
    5959                        <?php echo NextendText::_('Help'); ?>
     60                        <?php
     61                        global $smartslidercontroller;
     62                        $problems = $smartslidercontroller->problems();
     63                        if($problems):
     64                        ?>
     65                        <div class="nextend-possibleproblems"><?php echo $problems; ?></div>
     66                        <?php endif; ?>
    6067                    </a>
    6168                </div>
  • smart-slider-2/trunk/library/smartslider/admin/models/forms/dynamic.xml

    r856428 r874573  
    1212        </param>
    1313        <param type="text" name="slides" label="Slides" default="5" description="" style="width:30px;" />
    14         <param type="onoff" name="static" label="Create real slides" default="1" />
     14        <param type="onoff" name="static" label="Create real slides" default="0" />
    1515    </params>
    1616</root>
  • smart-slider-2/trunk/library/smartslider/admin/models/forms/generator.xml

    r856428 r874573  
    11<root translate="smartslider">
    22    <params name="generator" label="Generator_settings">
    3         <param name="enabled" type="onoff" label="Enabled" default="0" />
    4         <param label="Generators with full version" type="trial" name="trial" src="http://www.nextendweb.com/demo/smartslider2/trial/generators_joomla.png" wpsrc="http://www.nextendweb.com/demo/smartslider2/trial/generators_wp.png" />
    5         <param size="10" class=" heightauto" name="source" type="plugingroup" label="Source" plugingroup="nextendslidergenerator" method="onNextendSliderGeneratorList" file="config.xml" php="generator.php" description="Choose_the_generator_what_you_would_like_to_use_It_will_updates_the_Variables_field" />
     3        <param name="enabled" type="onoff" label="Enabled" default="1" />
    64        <param name="cachetime" type="text" label="Cache expiration" default="24" style="width:30px;">
    75            <unit>hours</unit>
     
    1412
    1513        <param type="text" name="generatorgroup" label="Group_result" default="1" style="width:30px;" description="This_option_allows_you_to_show_multiple_record_from_the_source_generator_on_one_slide" />
    16 
    17         <param name="variables" type="container" label="Variables" description="You_can_copy_and_paste_these_variables_into_any_field_of_the_slide_editor_These_variables_will_turn_into_real_data_when_the_slider_shows" />
    1814    </params>
    1915</root>
  • smart-slider-2/trunk/library/smartslider/admin/models/forms/settings/default.xml

    r856428 r874573  
    1111        <param type="onoff" name="translate3d" label="Hardware_acceleration_on_sliders" default="1" description="If_you_see_flickers_in_some_browsers_you_can_try_to_disable_this" />
    1212        <param type="text" label="Placeholder_for_images" name="placeholder" default="http://www.nextendweb.com/static/placeholder.png" />
     13        <param type="onoff" label="Resize remote urls" name="resizeremote" default="0" />
    1314    </params>
    1415    <params name="reponsive" label="Responsive mode">
    15         <param type="radio" label="Based on" name="responsivebasedon" default="device" description="">
     16        <param type="radio" label="Based on" name="responsivebasedon" default="combined" description="">
    1617            <option value="device">Real device detection</option>
    1718            <option value="screen">Maximum screen width</option>
     
    3233            <param type="text" label="Mobile" style="width:40px;" />
    3334        </param>
     35    </params>
     36    <params name="generator" label="Generator">
     37        <param type="onoff" label="Designer mode" name="generatordesignermode" default="1" description="In generator slide editor, the variables will be filled with values from the source." />
    3438    </params>
    3539    <params name="tidy" label="Tidy_settings">
  • smart-slider-2/trunk/library/smartslider/admin/models/forms/slider.xml

    r856428 r874573  
    5858    </params>
    5959    <params name="slides" label="Slides">
     60        <param type="radio" name="backgroundresize" label="Resize slide backgrounds" default="cover" >
     61            <option value="0">Disabled</option>
     62            <option value="cover">Cover mode</option>
     63            <option value="contain">Contain mode</option>
     64        </param>
    6065        <param type="onoff" name="randomize" label="Randomize_slides" default="0" description="" />
    6166    </params>
  • smart-slider-2/trunk/library/smartslider/admin/models/layouts.php

    r856428 r874573  
    2222            array(
    2323                'class' => 'one-column',
    24                 'slide' => '<div data-parallaxout="0.45" data-delayout="0" data-easingout="linear" data-durationout="500" data-animationout="0" data-playoutafter="0" data-parallaxin="0.45" data-delayin="0" data-easingin="linear" data-durationin="500" data-animationin="0" data-name="Layer #1" class="smart-slider-layer" style="top: 10%; left: 10%; width: 80%; height: 20%; position: absolute; z-index: 7; display: block;" data-animation="slide"><div style="" class="smart-slider-items" data-item="heading" data-itemvalues="{&quot;priority&quot;:&quot;1&quot;,&quot;heading&quot;:&quot;Heading&quot;,&quot;link&quot;:&quot;|*|_self|*|default&quot;,&quot;fontclass&quot;:&quot;sliderfont2&quot;,&quot;skins&quot;:&quot;&quot;,&quot;css&quot;:&quot;padding: 0;\n                    margin: 0;\n                    background: none;\n                    box-shadow: none;&quot;,&quot;class&quot;:&quot;&quot;}">
     24                'slide' => '<div data-parallaxout="0.45" data-delayout="0" data-easingout="linear" data-durationout="500" data-animationout="0" data-playoutafter="0" data-parallaxin="0.45" data-delayin="0" data-easingin="linear" data-durationin="500" data-animationin="0" data-name="Layer #1" class="smart-slider-layer" style="top: 10%; left: 10%; width: 80%; height: 20%; position: absolute; z-index: 7; display: block;" data-animation="slide"><div style="" class="smart-slider-items" data-item="heading" data-itemvalues="{&quot;priority&quot;:&quot;1&quot;,&quot;heading&quot;:&quot;Heading&quot;,&quot;link&quot;:&quot;#|*|_self|*|default&quot;,&quot;fontclass&quot;:&quot;sliderfont2&quot;,&quot;skins&quot;:&quot;&quot;,&quot;css&quot;:&quot;padding: 0;\n                    margin: 0;\n                    background: none;\n                    box-shadow: none;&quot;,&quot;class&quot;:&quot;&quot;}">
    2525          <h1 style="padding: 0;
    2626                    margin: 0;
     
    3333            array(
    3434                'class' => 'two-column',
    35                 'slide' => '<div data-parallaxout="0.45" data-delayout="0" data-easingout="linear" data-durationout="500" data-animationout="0" data-playoutafter="0" data-parallaxin="0.45" data-delayin="0" data-easingin="linear" data-durationin="500" data-animationin="0" data-name="Layer #1" class="smart-slider-layer" style="top: 10%; left: 10%; width: 80%; height: 20%; position: absolute; z-index: 2; display: block;" data-animation="slide"><div style="" class="smart-slider-items" data-item="heading" data-itemvalues="{&quot;priority&quot;:&quot;1&quot;,&quot;heading&quot;:&quot;Heading&quot;,&quot;link&quot;:&quot;|*|_self|*|default&quot;,&quot;fontclass&quot;:&quot;sliderfont2&quot;,&quot;skins&quot;:&quot;&quot;,&quot;css&quot;:&quot;padding: 0;\n                    margin: 0;\n                    background: none;\n                    box-shadow: none;&quot;,&quot;class&quot;:&quot;&quot;}">
     35                'slide' => '<div data-parallaxout="0.45" data-delayout="0" data-easingout="linear" data-durationout="500" data-animationout="0" data-playoutafter="0" data-parallaxin="0.45" data-delayin="0" data-easingin="linear" data-durationin="500" data-animationin="0" data-name="Layer #1" class="smart-slider-layer" style="top: 10%; left: 10%; width: 80%; height: 20%; position: absolute; z-index: 2; display: block;" data-animation="slide"><div style="" class="smart-slider-items" data-item="heading" data-itemvalues="{&quot;priority&quot;:&quot;1&quot;,&quot;heading&quot;:&quot;Heading&quot;,&quot;link&quot;:&quot;#|*|_self|*|default&quot;,&quot;fontclass&quot;:&quot;sliderfont2&quot;,&quot;skins&quot;:&quot;&quot;,&quot;css&quot;:&quot;padding: 0;\n                    margin: 0;\n                    background: none;\n                    box-shadow: none;&quot;,&quot;class&quot;:&quot;&quot;}">
    3636          <h1 style="padding: 0;
    3737                    margin: 0;
     
    4444            array(
    4545                'class' => 'text-image',
    46                 'slide' => '<div data-parallaxout="0.45" data-delayout="0" data-easingout="linear" data-durationout="500" data-animationout="0" data-playoutafter="0" data-parallaxin="0.45" data-delayin="0" data-easingin="linear" data-durationin="500" data-animationin="0" data-name="Layer #1" class="smart-slider-layer" style="top: 10%; left: 10%; width: 38%; height: 20%; position: absolute; z-index: 2; display: block;" data-animation="slide"><div style="" class="smart-slider-items" data-item="heading" data-itemvalues="{&quot;priority&quot;:&quot;1&quot;,&quot;heading&quot;:&quot;Heading&quot;,&quot;link&quot;:&quot;|*|_self|*|default&quot;,&quot;fontclass&quot;:&quot;sliderfont2&quot;,&quot;skins&quot;:&quot;&quot;,&quot;css&quot;:&quot;padding: 0;\n                    margin: 0;\n                    background: none;\n                    box-shadow: none;&quot;,&quot;class&quot;:&quot;&quot;}">
     46                'slide' => '<div data-parallaxout="0.45" data-delayout="0" data-easingout="linear" data-durationout="500" data-animationout="0" data-playoutafter="0" data-parallaxin="0.45" data-delayin="0" data-easingin="linear" data-durationin="500" data-animationin="0" data-name="Layer #1" class="smart-slider-layer" style="top: 10%; left: 10%; width: 38%; height: 20%; position: absolute; z-index: 2; display: block;" data-animation="slide"><div style="" class="smart-slider-items" data-item="heading" data-itemvalues="{&quot;priority&quot;:&quot;1&quot;,&quot;heading&quot;:&quot;Heading&quot;,&quot;link&quot;:&quot;#|*|_self|*|default&quot;,&quot;fontclass&quot;:&quot;sliderfont2&quot;,&quot;skins&quot;:&quot;&quot;,&quot;css&quot;:&quot;padding: 0;\n                    margin: 0;\n                    background: none;\n                    box-shadow: none;&quot;,&quot;class&quot;:&quot;&quot;}">
    4747          <h1 style="padding: 0;
    4848                    margin: 0;
     
    5151                  '.NextendText::_('Heading').'
    5252                </h1>
    53         </div></div><div data-parallaxout="0.45" data-delayout="0" data-easingout="linear" data-durationout="500" data-animationout="0" data-playoutafter="0" data-parallaxin="0.45" data-delayin="0" data-easingin="linear" data-durationin="500" data-animationin="0" data-name="Layer #2" class="smart-slider-layer" style="top: 30%; left: 10%; width: 38%; height: 59.967%; position: absolute; z-index: 3; display: block;" data-animation="slide"><div style="" class="smart-slider-items" data-item="paragraph" data-itemvalues="{&quot;content&quot;:&quot;Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diam nonummy nibh euismod tincidunt ut laoreet dolore magna aliquam erat volutpat. Ut wisi enim ad minim veniam, quis nostrud exerci tation ullamcorper suscipit lobortis nisl ut aliquip ex ea commodo consequat. Duis autem vel eum iriure dolor in hendrerit in vulputate velit esse molestie consequat.&quot;,&quot;fontclass&quot;:&quot;sliderfont6&quot;,&quot;css&quot;:&quot;&quot;,&quot;class&quot;:&quot;&quot;}"><p class="sliderfont6 " style="">Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diam nonummy nibh euismod tincidunt ut laoreet dolore magna aliquam erat volutpat. Ut wisi enim ad minim veniam, quis nostrud exerci tation ullamcorper suscipit lobortis nisl ut aliquip ex ea commodo consequat. Duis autem vel eum iriure dolor in hendrerit in vulputate velit esse molestie consequat.</p></div></div>                    <div data-parallaxout="0.45" data-delayout="0" data-easingout="linear" data-durationout="500" data-animationout="0" data-playoutafter="0" data-parallaxin="0.45" data-delayin="0" data-easingin="linear" data-durationin="500" data-animationin="0" data-name="Layer #2 - copy" class="smart-slider-layer" style="top: 10%; left: 52%; width: 38%; height: 80%; position: absolute; z-index: 4; display: block;" data-animation="slide"><div style="" class="smart-slider-items" data-item="image" data-itemvalues="{&quot;image&quot;:&quot;http://www.nextendweb.com/static/placeholder.png&quot;,&quot;link&quot;:&quot;|*|_self|*|default&quot;,&quot;size&quot;:&quot;auto|*|&quot;,&quot;alt&quot;:&quot;-&quot;,&quot;css&quot;:&quot;&quot;}"><a href="" onclick="if(this.getAttribute(\'href\') === \'\') return false;" target="_self" style="background: none !important;cursor:default;"> <img src="http://www.nextendweb.com/static/placeholder.png" style="max-width: 100%; ;width:auto;height:;" alt="-"> </a></div></div>'
     53        </div></div><div data-parallaxout="0.45" data-delayout="0" data-easingout="linear" data-durationout="500" data-animationout="0" data-playoutafter="0" data-parallaxin="0.45" data-delayin="0" data-easingin="linear" data-durationin="500" data-animationin="0" data-name="Layer #2" class="smart-slider-layer" style="top: 30%; left: 10%; width: 38%; height: 59.967%; position: absolute; z-index: 3; display: block;" data-animation="slide"><div style="" class="smart-slider-items" data-item="paragraph" data-itemvalues="{&quot;content&quot;:&quot;Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diam nonummy nibh euismod tincidunt ut laoreet dolore magna aliquam erat volutpat. Ut wisi enim ad minim veniam, quis nostrud exerci tation ullamcorper suscipit lobortis nisl ut aliquip ex ea commodo consequat. Duis autem vel eum iriure dolor in hendrerit in vulputate velit esse molestie consequat.&quot;,&quot;fontclass&quot;:&quot;sliderfont6&quot;,&quot;css&quot;:&quot;&quot;,&quot;class&quot;:&quot;&quot;}"><p class="sliderfont6 " style="">Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diam nonummy nibh euismod tincidunt ut laoreet dolore magna aliquam erat volutpat. Ut wisi enim ad minim veniam, quis nostrud exerci tation ullamcorper suscipit lobortis nisl ut aliquip ex ea commodo consequat. Duis autem vel eum iriure dolor in hendrerit in vulputate velit esse molestie consequat.</p></div></div>                    <div data-parallaxout="0.45" data-delayout="0" data-easingout="linear" data-durationout="500" data-animationout="0" data-playoutafter="0" data-parallaxin="0.45" data-delayin="0" data-easingin="linear" data-durationin="500" data-animationin="0" data-name="Layer #2 - copy" class="smart-slider-layer" style="top: 10%; left: 52%; width: 38%; height: 80%; position: absolute; z-index: 4; display: block;" data-animation="slide"><div style="" class="smart-slider-items" data-item="image" data-itemvalues="{&quot;image&quot;:&quot;http://www.nextendweb.com/static/placeholder.png&quot;,&quot;link&quot;:&quot;#|*|_self|*|default&quot;,&quot;size&quot;:&quot;auto|*|&quot;,&quot;alt&quot;:&quot;-&quot;,&quot;css&quot;:&quot;&quot;}"><a href="" onclick="if(this.getAttribute(\'href\') === \'\') return false;" target="_self" style="background: none !important;cursor:default;"> <img src="http://www.nextendweb.com/static/placeholder.png" style="max-width: 100%; ;width:auto;height:;" alt="-"> </a></div></div>'
    5454            ),
    5555            array(
    5656                'class' => 'text-youtube',
    57                 'slide' => '<div data-parallaxout="0.45" data-delayout="0" data-easingout="linear" data-durationout="500" data-animationout="0" data-playoutafter="0" data-parallaxin="0.45" data-delayin="0" data-easingin="linear" data-durationin="500" data-animationin="0" data-name="Layer #1" class="smart-slider-layer" style="top: 10%; left: 10%; width: 38%; height: 20%; position: absolute; z-index: 2; display: block;" data-animation="slide"><div style="" class="smart-slider-items" data-item="heading" data-itemvalues="{&quot;priority&quot;:&quot;1&quot;,&quot;heading&quot;:&quot;Heading&quot;,&quot;link&quot;:&quot;|*|_self|*|default&quot;,&quot;fontclass&quot;:&quot;sliderfont2&quot;,&quot;skins&quot;:&quot;&quot;,&quot;css&quot;:&quot;padding: 0;\n                    margin: 0;\n                    background: none;\n                    box-shadow: none;&quot;,&quot;class&quot;:&quot;&quot;}">
     57                'slide' => '<div data-parallaxout="0.45" data-delayout="0" data-easingout="linear" data-durationout="500" data-animationout="0" data-playoutafter="0" data-parallaxin="0.45" data-delayin="0" data-easingin="linear" data-durationin="500" data-animationin="0" data-name="Layer #1" class="smart-slider-layer" style="top: 10%; left: 10%; width: 38%; height: 20%; position: absolute; z-index: 2; display: block;" data-animation="slide"><div style="" class="smart-slider-items" data-item="heading" data-itemvalues="{&quot;priority&quot;:&quot;1&quot;,&quot;heading&quot;:&quot;Heading&quot;,&quot;link&quot;:&quot;#|*|_self|*|default&quot;,&quot;fontclass&quot;:&quot;sliderfont2&quot;,&quot;skins&quot;:&quot;&quot;,&quot;css&quot;:&quot;padding: 0;\n                    margin: 0;\n                    background: none;\n                    box-shadow: none;&quot;,&quot;class&quot;:&quot;&quot;}">
    5858         
    5959            <h1 style="padding: 0;
     
    7070            array(
    7171                'class' => 'full-image',
    72                 'slide' => '<div data-parallaxout="0.45" data-delayout="0" data-easingout="linear" data-durationout="500" data-animationout="0" data-playoutafter="0" data-parallaxin="0.45" data-delayin="0" data-easingin="linear" data-durationin="500" data-animationin="0" data-name="Layer #1" class="smart-slider-layer" style="top: 0%; left: 0%; width: 100%; height: 100%; position: absolute; z-index: 1;" data-animation="slide"><div style="" class="smart-slider-items" data-item="image" data-itemvalues="{&quot;image&quot;:&quot;http://www.nextendweb.com/static/placeholder.png&quot;,&quot;link&quot;:&quot;|*|_self|*|default&quot;,&quot;size&quot;:&quot;100%|*|auto&quot;,&quot;alt&quot;:&quot;-&quot;,&quot;css&quot;:&quot;&quot;}"><a href="" onclick="if(this.getAttribute(\'href\') === \'\') return false;" target="_self" style="background: none !important;cursor:default;"> <img src="http://www.nextendweb.com/static/placeholder.png" style="max-width: 100%; ;width:100%;height:auto;" alt="-"> </a></div></div>'
     72                'slide' => '<div data-parallaxout="0.45" data-delayout="0" data-easingout="linear" data-durationout="500" data-animationout="0" data-playoutafter="0" data-parallaxin="0.45" data-delayin="0" data-easingin="linear" data-durationin="500" data-animationin="0" data-name="Layer #1" class="smart-slider-layer" style="top: 0%; left: 0%; width: 100%; height: 100%; position: absolute; z-index: 1;" data-animation="slide"><div style="" class="smart-slider-items" data-item="image" data-itemvalues="{&quot;image&quot;:&quot;http://www.nextendweb.com/static/placeholder.png&quot;,&quot;link&quot;:&quot;#|*|_self|*|default&quot;,&quot;size&quot;:&quot;100%|*|auto&quot;,&quot;alt&quot;:&quot;-&quot;,&quot;css&quot;:&quot;&quot;}"><a href="" onclick="if(this.getAttribute(\'href\') === \'\') return false;" target="_self" style="background: none !important;cursor:default;"> <img src="http://www.nextendweb.com/static/placeholder.png" style="max-width: 100%; ;width:100%;height:auto;" alt="-"> </a></div></div>'
    7373            ),
    7474            array(
     
    149149
    150150        $db = NextendDatabase::getInstance();
    151 
    152         $query = 'INSERT INTO #__nextend_smartslider_layouts (title, slide, params) VALUES (';
    153 
    154         $query.=$db->quote($layout['title']);
    155         $query.=',' . $db->quote(base64_decode($layout['slide']));
    156         $query.=',' . $db->quote('');
    157         unset($layout['title']);
    158         unset($layout['slide']);
    159         $query.=');';
    160         $db->setQuery($query);
    161         $db->query();
     151       
     152        $db->insert('#__nextend_smartslider_layouts', array(
     153            'title' => $layout['title'],
     154            'slide' => base64_decode($layout['slide']),
     155            'params' => ''
     156        ));
     157       
    162158        return $db->insertid();
    163159    }
     
    169165            $layout['title'] = 'New layout';
    170166        $db = NextendDatabase::getInstance();
     167       
     168        $db->update('#__nextend_smartslider_layouts', array(
     169            'title' => $layout['title'],
     170            'slide' => base64_decode($layout['slide'])
     171        ), 'id = ' . $db->quote($id));
    171172
    172         $query = 'UPDATE #__nextend_smartslider_layouts SET ';
    173 
    174         $query.=' title=' . $db->quote($layout['title']);
    175         $query.=',slide=' . $db->quote(base64_decode($layout['slide']));
    176         unset($layout['title']);
    177         unset($layout['slide']);
    178 
    179         $query.=' WHERE id = ' . $db->quote($id);
    180         $db->setQuery($query);
    181         $db->query();
    182173        return $id;
    183174    }
  • smart-slider-2/trunk/library/smartslider/admin/models/sliders.php

    r856428 r874573  
    4949
    5050        echo $form->render('slider');
     51       
     52        $group = array();
     53        $list = array();
     54        NextendPlugin::callPlugin('nextendslidergenerator', 'onNextendSliderGeneratorList', array(&$group, &$list));
     55        if(isset($list['imagefromfolder']['imagefromfolder_quickimage'])){
     56            $path = $list['imagefromfolder']['imagefromfolder_quickimage'][1];
     57
     58            $form = new NextendForm();
     59            $form->set('class', 'nextend-smart-slider-admin');
     60            $form->loadArray($data);
     61           
     62            $form->loadXMLFile($path.'config.xml');
     63   
     64            echo $form->render('generator');
     65        }else{
     66            echo 'Quick image plugin is missing!';
     67        }
     68
    5169    }
    5270
     
    90108        $form->set('manual', 'http://www.nextendweb.com/wiki/smart-slider-documentation/');
    91109        $form->set('support', 'http://www.nextendweb.com/smart-slider#support');
     110       
     111        if(!empty($data)){
     112            if(!isset($data['backgroundresize'])) $data['backgroundresize'] = 0; // If old version doesn't have background resize, then leave in that way
     113        }
     114       
    92115        $form->loadArray($data);
    93116
     
    105128
    106129        $db = NextendDatabase::getInstance();
    107 
    108         $query = 'INSERT INTO #__nextend_smartslider_sliders (title, type, params, generator, slide) VALUES (';
    109 
    110         $query .= $db->quote($slider['title']);
     130       
     131        $title = $slider['title'];
    111132        unset($slider['title']);
    112         $query .= ',' . $db->quote($slider['type']);
     133        $type = $slider['type'];
    113134        unset($slider['type']);
    114         $query .= ',' . $db->quote(json_encode($slider));
    115         $query .= ", ''";
    116         $query .= ", ''";
    117         $query .= ');';
    118         $db->setQuery($query);
    119         $db->query();
     135       
     136        $db->insert('#__nextend_smartslider_sliders', array(
     137            'title' => $title,
     138            'type' => $type,
     139            'params' => json_encode($slider),
     140            'generator' => '',
     141            'slide' => ''
     142        ));
     143
    120144        return $db->insertid();
    121145    }
     
    128152
    129153        $db = NextendDatabase::getInstance();
    130 
    131         $query = 'INSERT INTO #__nextend_smartslider_sliders (title, type, generator, slide, params) VALUES (';
    132 
    133         $query .= $db->quote($slider['title']);
    134         $query .= ',' . $db->quote($slider['type']);
    135         $query .= ',' . $db->quote($slider['generator']);
    136         $query .= ',' . $db->quote($slider['slide']);
    137         $query .= ',' . $db->quote($slider['params']);
    138         $query .= ');';
    139         $db->setQuery($query);
    140         $db->query();
     154       
     155        $db->insert('#__nextend_smartslider_sliders', array(
     156            'title' => $slider['title'],
     157            'type' => $slider['type'],
     158            'generator' => $slider['generator'],
     159            'slide' => $slider['slide'],
     160            'params' => $slider['params']
     161        ));
     162
    141163        return $db->insertid();
    142164    }
     
    149171
    150172        $db = NextendDatabase::getInstance();
    151 
    152         $query = 'UPDATE #__nextend_smartslider_sliders SET ';
    153 
    154         $query .= ' title=' . $db->quote($slider['title']);
     173       
     174        $title = $slider['title'];
    155175        unset($slider['title']);
    156 
    157         $query .= ',type=' . $db->quote($slider['type']);
     176        $type = $slider['type'];
    158177        unset($slider['type']);
    159 
    160         $query .= ',params=' . $db->quote(json_encode($slider));
    161 
    162         $query .= ' WHERE id = ' . $db->quote($id);
    163         $db->setQuery($query);
    164         $db->query();
     178       
     179        $db->update('#__nextend_smartslider_sliders', array(
     180            'title' => $title,
     181            'type' => $type,
     182            'params' => json_encode($slider)
     183        ), 'id = ' . $db->quote($id));
    165184       
    166185        self::markChanged($id);
     
    194213    }
    195214
     215    function saveGeneratorSettings($id, $generator) {
     216
     217        $db = NextendDatabase::getInstance();
     218       
     219        $db->update('#__nextend_smartslider_sliders', array(
     220            'generator' => json_encode($generator)
     221        ), 'id = ' . $db->quote($id));
     222       
     223        self::markChanged($id);
     224
     225        return $id;
     226    }
     227
    196228    function saveGenerator($id, $generator, $slide, $base64 = true) {
    197229
    198230        $db = NextendDatabase::getInstance();
    199 
    200         $query = 'UPDATE #__nextend_smartslider_sliders SET ';
    201 
    202         $query .= 'generator=' . $db->quote(json_encode($generator));
     231       
    203232        if($base64) $slide['slide'] = base64_decode($slide['slide']);
    204         $query .= ',slide=' . $db->quote(json_encode($slide));
    205 
    206         $query .= ' WHERE id = ' . $db->quote($id);
    207         $db->setQuery($query);
    208         $db->query();
    209 
     233       
     234        $db->update('#__nextend_smartslider_sliders', array(
     235            'generator' => json_encode($generator),
     236            'slide' => json_encode($slide)
     237        ), 'id = ' . $db->quote($id));
     238
     239        $this->generateSlidesWithGenerator($id, $generator, $slide);
     240       
     241        self::markChanged($id);
     242
     243        return $id;
     244    }
     245
     246    function editGeneratorSlide($data = array()) {
     247
     248        $css = NextendCss::getInstance();
     249        $js = NextendJavascript::getInstance();
     250
     251        $css->addCssLibraryFile('common.css');
     252        $css->addCssLibraryFile('window.css');
     253        $css->addCssLibraryFile('configurator.css');
     254
     255        $configurationXmlFile = dirname(__FILE__) . '/forms/generatoredit.xml';
     256        $js->loadLibrary('dojo');
     257
     258        nextendimport('nextend.form.form');
     259        $form = new NextendForm();
     260        $form->set('class', 'nextend-smart-slider-admin');
     261        $form->set('manual', 'http://www.nextendweb.com/wiki/smart-slider-documentation/');
     262        $form->set('support', 'http://www.nextendweb.com/smart-slider#support');
     263        $form->loadArray($data);
     264
     265        $form->loadXMLFile($configurationXmlFile);
     266
     267        echo $form->render('generator');
     268        return $configurationXmlFile;
     269    }
     270
     271    function saveGeneratorSlide($id, $slide, $base64 = true) {
     272
     273        $db = NextendDatabase::getInstance();
     274       
     275        if($base64) $slide['slide'] = base64_decode($slide['slide']);
     276       
     277        $db->update('#__nextend_smartslider_sliders', array(
     278            'slide' => json_encode($slide)
     279        ), 'id = ' . $db->quote($id));
     280
     281        $slider = $this->getSlider($id);
     282        $generator = (array)json_decode($slider['generator'], true);
     283       
     284        $this->generateSlidesWithGenerator($id, $generator, $slide);
     285       
     286        self::markChanged($id);
     287
     288        return $id;
     289    }
     290   
     291    function generateSlidesWithGenerator($id, $generator, $slide){
    210292        $generatorParams = new NextendData();
    211293        $generatorParams->loadArray($generator);
     
    244326            }
    245327        }
    246         self::markChanged($id);
    247 
    248         return $id;
    249328    }
    250329
     
    274353
    275354        $slider['title'] .= ' - copy';
    276 
    277         $query = 'INSERT INTO #__nextend_smartslider_sliders ( ';
    278 
    279         foreach ($slider AS $k => $v) {
    280             $query .= $db->quoteName($k) . ',';
    281         }
    282         $query = rtrim($query, ",");
    283 
    284         $query .= ') VALUES (';
    285 
    286         foreach ($slider AS $k => $v) {
    287             $query .= $db->quote($v) . ',';
    288         }
    289         $query = rtrim($query, ",");
    290         $query .= ');';
    291         $db->setQuery($query);
    292         $db->query();
    293 
    294         $newsliderid = $db->insertid();
     355       
     356        $newsliderid = $this->import($slider);
     357
    295358        if(!$newsliderid) return false;
    296359
     
    383446       
    384447        $googlefonts = '';
    385         if (class_exists('NextendFontsGoogle')) {
     448        if (class_exists('NextendFontsGoogle', false)) {
    386449            $fonts = NextendFontsGoogle::getInstance();
    387450            $googlefonts = '<link rel="stylesheet" type="text/css" href="'.$fonts->getFontUrl().'">'."\n";
     
    428491    function createQuick(){
    429492        $post = NextendRequest::getVar('slider', array());
     493        $generatorpost = NextendRequest::getVar('generator', array());
    430494       
    431495        $name = $post['name'];
     
    433497        unset($post['name']);
    434498       
    435         $params = json_decode('{"size":"800|*|500|*|1","responsive":"1|*|0","globalfontsize":"12|*|16|*|20","margin":"0|*|0|*|0|*|0|*|px","simplebackgroundimage":"","simplebackgroundimagesize":"auto","simplepadding":"0|*|0|*|0|*|0","simpleborder":"0|*|3E3E3Eff","simpleborderradius":"0|*|0|*|0|*|0","simpleresponsivemaxwidth":"3000","improvedtouch":"0","simpleskins":"","simpleslidercss":"","simpleanimation":"horizontal","simpleanimationproperties":"1500|*|0|*|easeInOutQuint|*|1","simplebackgroundanimation":"0|*|bars","fadeonload":"1|*|0","playfirstlayer":"0","mainafterout":"1","inaftermain":"1","controls":"0|*|0|*|0","blockrightclick":"0","randomize":"0","autoplay":"1|*|8000","autoplayfinish":"0|*|loop|*|current","stopautoplay":"1|*|1|*|1","resumeautoplay":"0|*|1|*|0","widgetarrow":"transition","widgetarrowdisplay":"1|*|always|*|1|*|1","previousposition":"left|*|0|*|%|*|top|*|height\/2-previousheight\/2|*|%","previous":"plugins\/nextendsliderwidgetarrow\/transition\/transition\/previous\/my-test.png","nextposition":"right|*|0|*|%|*|top|*|height\/2-nextheight\/2|*|%","next":"plugins\/nextendsliderwidgetarrow\/transition\/transition\/next\/my-test.png","arrowbackground":"00000080","arrowbackgroundhover":"7670c7ff","widgetbullet":"numbers","widgetbulletdisplay":"1|*|always|*|1|*|1","bulletposition":"left|*|0|*|%|*|bottom|*|5|*|%","bulletwidth":"100%","bulletorientation":"horizontal","bulletalign":"center","bullet":"plugins\/nextendsliderwidgetbullet\/numbers\/numbers\/bullets\/square.png","bulletbackground":"00000060","bulletbackgroundhover":"7670C7ff","fontclassnumber":"sliderfont7","bulletbar":"none","bulletshadow":"none","bulletbarcolor":"00000060","bullethumbnail":"0|*|top","thumbnailsizebullet":"100|*|60","bulletthumbnail":"00000060","widgets":"arrow"}', true);
     499        $params = json_decode('{"size":"800|*|500|*|1","responsive":"1|*|0","globalfontsize":"12|*|16|*|20","margin":"0|*|0|*|0|*|0|*|px","simplebackgroundimage":"","simplebackgroundimagesize":"auto","simplepadding":"0|*|0|*|0|*|0","simpleborder":"0|*|3E3E3Eff","simpleborderradius":"0|*|0|*|0|*|0","simpleresponsivemaxwidth":"3000","improvedtouch":"0","simpleskins":"","simpleslidercss":"","simpleanimation":"horizontal","simpleanimationproperties":"1500|*|0|*|easeInOutQuint|*|1","simplebackgroundanimation":"0|*|bars","fadeonload":"1|*|0","playfirstlayer":"0","mainafterout":"1","inaftermain":"1","controls":"0|*|0|*|0","blockrightclick":"0","randomize":"0","autoplay":"1|*|8000","autoplayfinish":"0|*|loop|*|current","stopautoplay":"1|*|1|*|1","resumeautoplay":"0|*|1|*|0","widgetarrow":"transition","widgetarrowdisplay":"1|*|always|*|1|*|1","previousposition":"left|*|0|*|%|*|top|*|height\/2-previousheight\/2|*|%","previous":"plugins\/nextendsliderwidgetarrow\/transition\/transition\/previous\/my-test.png","nextposition":"right|*|0|*|%|*|top|*|height\/2-nextheight\/2|*|%","next":"plugins\/nextendsliderwidgetarrow\/transition\/transition\/next\/my-test.png","arrowbackground":"00000080","arrowbackgroundhover":"7670c7ff","widgetbullet":"numbers","widgetbulletdisplay":"1|*|always|*|1|*|1","bulletposition":"left|*|0|*|%|*|bottom|*|5|*|%","bulletwidth":"100%","bulletorientation":"horizontal","bulletalign":"center","bullet":"plugins\/nextendsliderwidgetbullet\/numbers\/numbers\/bullets\/square.png","bulletbackground":"00000060","bulletbackgroundhover":"7670C7ff","fontclassnumber":"sliderfont7","bulletbar":"none","bulletshadow":"none","bulletbarcolor":"00000060","bullethumbnail":"0|*|top","thumbnailsizebullet":"100|*|60","bulletthumbnail":"00000060","widgets":"arrow","backgroundresize":"cover"}', true);
    436500        $post['autoplay'] = '1|*|8000';
    437501        $params = $post+$params;
     502       
     503        $generator = array(
     504            'enabled' => 1,
     505            'source' => 'imagefromfolder_quickimage',
     506            'cachetime' => 1,
     507            'generateslides' => '1000|*|0|*|0',
     508            'generatorgroup' => 1
     509        );
     510        $generator = $generatorpost + $generator;
     511       
     512        $slide = array();
     513        NextendPlugin::callPlugin('nextendslidergeneratorlayouts', 'onNextendSliderGeneratorLayouts', array('image_extended', &$slide));
     514        $slide = $slide['default']['slide'];
    438515       
    439516        $slider = array(
     
    441518            'type' => 'simple',
    442519            'params' => json_encode($params),
    443             'generator' => '',
    444             'slide' => ''
     520            'generator' => json_encode($generator),
     521            'slide' => json_encode($slide)
    445522        );
    446523        $sliderid = $this->import($slider);
    447524        if($sliderid){
    448             if(count($_POST['images'])){
    449                 $slide = array(
    450                     'slide' => '',
    451                     'description' => '',
    452                     'published' => 1,
    453                     'publish_up' => '',
    454                     'publish_down' => '',
    455                     'first' => 0,
    456                     'generator' => 0
    457                 );
    458                
    459                 $slidesModel = $this->getModel('slides');
    460                
    461                 foreach($_POST['images'] AS $image){
    462                     $slide['title'] = basename($image);
    463                     $slide['thumbnail'] = $image;
    464                     $slide['background'] = '00000000|*|'.$image;
    465                    
    466                     $slidesModel->create($sliderid, $slide, false);
    467                 }
    468             }
    469525            self::markChanged($sliderid);
    470526            return $sliderid;
     
    472528    }
    473529
    474     function editDynamicForm($data = array()) {
     530    function editDynamicForm($data = array(), $control = 'dynamic', $onlyFilter = false) {
    475531       
    476532        $group = array();
     
    493549   
    494550            nextendimport('nextend.form.form');
     551            if(!$onlyFilter){
     552                $form = new NextendForm();
     553                $form->loadArray($data);
     554       
     555                $form->loadXMLFile($configurationXmlFile);
     556       
     557                echo $form->render($control);
     558            }
     559           
    495560            $form = new NextendForm();
    496561            $form->loadArray($data);
    497562   
    498             $form->loadXMLFile($configurationXmlFile);
    499    
    500             echo $form->render('dynamic');
    501            
    502             $form = new NextendForm();
    503             $form->loadArray($data);
    504    
    505563            $form->loadXMLFile($list[$cgroup][$ctype][1].'config.xml');
    506564   
    507             echo $form->render('dynamic');
     565            echo $form->render($control);
    508566           
    509567            return $list[$cgroup][$ctype][1].'config.xml';
     
    522580        $ctype = NextendRequest::getVar('type');
    523581        if(isset($list[$cgroup]) && isset($list[$cgroup][$ctype])){
    524             include $list[$cgroup][$ctype][1].'slide.php';
     582            $slide = array();
     583            NextendPlugin::callPlugin('nextendslidergeneratorlayouts', 'onNextendSliderGeneratorLayouts', array($list[$cgroup][$ctype][5], &$slide));
    525584            $slide = $slide['default']['slide'];
    526585           
     
    548607                'title' => $name,
    549608                'type' => 'simple',
    550                 'params' => '{"size":"'.$size.'","responsive":"1|*|0","globalfontsize":"12|*|16|*|20","margin":"0|*|0|*|0|*|0|*|px","simplebackgroundimage":"","simplebackgroundimagesize":"auto","simplepadding":"0|*|0|*|0|*|0","simpleborder":"0|*|3E3E3Eff","simpleborderradius":"0|*|0|*|0|*|0","simpleresponsivemaxwidth":"3000","improvedtouch":"0","simpleskins":"","simpleslidercss":"","simpleanimation":"horizontal","simpleanimationproperties":"1500|*|0|*|easeInOutQuint|*|1","simplebackgroundanimation":"0|*|bars","fadeonload":"1|*|0","playfirstlayer":"0","mainafterout":"1","inaftermain":"1","controls":"0|*|0|*|0","blockrightclick":"0","randomize":"0","autoplay":"1|*|8000","autoplayfinish":"0|*|loop|*|current","stopautoplay":"1|*|1|*|1","resumeautoplay":"0|*|1|*|0","widgetarrow":"transition","widgetarrowdisplay":"1|*|always|*|1|*|1","previousposition":"left|*|0|*|%|*|top|*|height\/2-previousheight\/2|*|%","previous":"plugins\/nextendsliderwidgetarrow\/transition\/transition\/previous\/my-test.png","nextposition":"right|*|0|*|%|*|top|*|height\/2-nextheight\/2|*|%","next":"plugins\/nextendsliderwidgetarrow\/transition\/transition\/next\/my-test.png","arrowbackground":"00000080","arrowbackgroundhover":"7670c7ff","widgetbullet":"numbers","widgetbulletdisplay":"1|*|always|*|1|*|1","bulletposition":"left|*|0|*|%|*|bottom|*|5|*|%","bulletwidth":"100%","bulletorientation":"horizontal","bulletalign":"center","bullet":"plugins\/nextendsliderwidgetbullet\/numbers\/numbers\/bullets\/square.png","bulletbackground":"00000060","bulletbackgroundhover":"7670C7ff","fontclassnumber":"sliderfont7","bulletbar":"none","bulletshadow":"none","bulletbarcolor":"00000060","bullethumbnail":"0|*|top","thumbnailsizebullet":"100|*|60","bulletthumbnail":"00000060","widgets":"arrow"}',
     609                'params' => '{"size":"'.$size.'","responsive":"1|*|0","globalfontsize":"12|*|16|*|20","margin":"0|*|0|*|0|*|0|*|px","simplebackgroundimage":"","simplebackgroundimagesize":"auto","simplepadding":"0|*|0|*|0|*|0","simpleborder":"0|*|3E3E3Eff","simpleborderradius":"0|*|0|*|0|*|0","simpleresponsivemaxwidth":"3000","improvedtouch":"0","simpleskins":"","simpleslidercss":"","simpleanimation":"horizontal","simpleanimationproperties":"1500|*|0|*|easeInOutQuint|*|1","simplebackgroundanimation":"0|*|bars","fadeonload":"1|*|0","playfirstlayer":"0","mainafterout":"1","inaftermain":"1","controls":"0|*|0|*|0","blockrightclick":"0","randomize":"0","autoplay":"1|*|8000","autoplayfinish":"0|*|loop|*|current","stopautoplay":"1|*|1|*|1","resumeautoplay":"0|*|1|*|0","widgetarrow":"transition","widgetarrowdisplay":"1|*|always|*|1|*|1","previousposition":"left|*|0|*|%|*|top|*|height\/2-previousheight\/2|*|%","previous":"plugins\/nextendsliderwidgetarrow\/transition\/transition\/previous\/my-test.png","nextposition":"right|*|0|*|%|*|top|*|height\/2-nextheight\/2|*|%","next":"plugins\/nextendsliderwidgetarrow\/transition\/transition\/next\/my-test.png","arrowbackground":"00000080","arrowbackgroundhover":"7670c7ff","widgetbullet":"numbers","widgetbulletdisplay":"1|*|always|*|1|*|1","bulletposition":"left|*|0|*|%|*|bottom|*|5|*|%","bulletwidth":"100%","bulletorientation":"horizontal","bulletalign":"center","bullet":"plugins\/nextendsliderwidgetbullet\/numbers\/numbers\/bullets\/square.png","bulletbackground":"00000060","bulletbackgroundhover":"7670C7ff","fontclassnumber":"sliderfont7","bulletbar":"none","bulletshadow":"none","bulletbarcolor":"00000060","bullethumbnail":"0|*|top","thumbnailsizebullet":"100|*|60","bulletthumbnail":"00000060","widgets":"arrow","backgroundresize":"cover"}',
    551610                'generator' => json_encode($generator),
    552611                'slide' => json_encode($slide)
     
    586645    function changeDynamicLayout($sliderid){
    587646        $slider = $this->getSlider($sliderid);
     647       
     648        $sliderParams = new NextendData();
     649        $sliderParams->loadJSON($slider['params']);
     650       
     651        $sliders = array();
     652        NextendPlugin::callPlugin('nextendslidergeneratorlayouts', 'onNextendSliderGeneratorSlider', array(&$sliders, $sliderParams->get('size', null)));
     653        $sliderpreset = NextendRequest::getVar('sliderpreset', '');
     654        if(isset($sliders[$sliderpreset])){
     655            $slider = $sliders[$sliderpreset]['slider']+$slider;
     656           
     657            $db = NextendDatabase::getInstance();
     658           
     659            $db->update('#__nextend_smartslider_sliders', array(
     660                'type' => $slider['type'],
     661                'params' => $slider['params']
     662            ), 'id = ' . $db->quote($sliderid));
     663           
     664            self::markChanged($sliderid);           
     665        }
     666       
     667       
    588668        $generatorParams = new NextendData();
    589669        $generatorParams->loadJSON($slider['generator']);
     
    605685        }
    606686       
    607         $path = $sourcetype[1];
    608         include($path.'slide.php');
    609        
    610         $layout = NextendRequest::getVar('layout', 'default');
    611         if(!isset($slide[$layout])) $layout = 'default';
    612        
    613        
    614       if(isset($slide[$layout]['slider'])) $generatorParams->loadArray($slide[$layout]['slider']);
    615        
    616         $this->saveGenerator($sliderid, $generatorParams->toArray(), $slide[$layout]['slide'], false);
    617        
    618 
    619         $generateslides = NextendParse::parse($generatorParams->get('generateslides', '0|*|0|*|0'));
    620         $createslides = intval($generateslides[1]);
    621         if($generatorParams->get('enabled', 0) && $createslides === 1){
    622 
    623             nextendimportsmartslider2('nextend.smartslider.generator');
    624 
    625             $slidesModel = $this->getModel('slides');
    626             $slidesModel->deleteBySlider($sliderid);
    627 
    628             $staticslides = intval($generateslides[2]);
    629 
    630             $generatorSlideParams = new NextendData();
    631             $generatorSlideParams->loadArray($slide[$layout]['slide']);
    632 
    633             $generator = new NextendSmartsliderGenerator($generatorParams, $generatorSlideParams, $sliderid);
    634 
    635             if($staticslides){
    636                 $slides = $generator->generateSlides($sliderid);
    637                 foreach($slides AS $slide){
    638                     unset($slide['id']);
    639                     $slidesModel->create($sliderid, $slide, false);
    640                 }
    641             }else{
    642                 $slides = $generator->generateSlides($sliderid, false);
    643                 $slidesModel->deleteGeneratedBySlider($sliderid);
    644                 foreach($slides AS $k => $slide){
    645                     unset($slide['id']);
    646                     $slide['generator'] = $k+1;
    647                     $slidesModel->create($sliderid, $slide, false);
     687        $slide = array();
     688        NextendPlugin::callPlugin('nextendslidergeneratorlayouts', 'onNextendSliderGeneratorLayouts', array($sourcetype[5], &$slide));
     689       
     690        $layout = NextendRequest::getVar('layout', '');
     691        if(isset($slide[$layout])){
     692            if(isset($slide[$layout]['slider'])) $generatorParams->loadArray($slide[$layout]['slider']);
     693           
     694            $this->saveGenerator($sliderid, $generatorParams->toArray(), $slide[$layout]['slide'], false);
     695           
     696           
     697            $generateslides = NextendParse::parse($generatorParams->get('generateslides', '0|*|0|*|0'));
     698            $createslides = intval($generateslides[1]);
     699            if($generatorParams->get('enabled', 0) && $createslides === 1){
     700           
     701                nextendimportsmartslider2('nextend.smartslider.generator');
     702           
     703                $slidesModel = $this->getModel('slides');
     704                $slidesModel->deleteBySlider($sliderid);
     705           
     706                $staticslides = intval($generateslides[2]);
     707           
     708                $generatorSlideParams = new NextendData();
     709                $generatorSlideParams->loadArray($slide[$layout]['slide']);
     710           
     711                $generator = new NextendSmartsliderGenerator($generatorParams, $generatorSlideParams, $sliderid);
     712           
     713                if($staticslides){
     714                    $slides = $generator->generateSlides($sliderid);
     715                    foreach($slides AS $slide){
     716                        unset($slide['id']);
     717                        $slidesModel->create($sliderid, $slide, false);
     718                    }
     719                }else{
     720                    $slides = $generator->generateSlides($sliderid, false);
     721                    $slidesModel->deleteGeneratedBySlider($sliderid);
     722                    foreach($slides AS $k => $slide){
     723                        unset($slide['id']);
     724                        $slide['generator'] = $k+1;
     725                        $slidesModel->create($sliderid, $slide, false);
     726                    }
    648727                }
    649728            }
    650729        }
    651        
    652730        return $sliderid;
    653731    }
  • smart-slider-2/trunk/library/smartslider/admin/models/slides.php

    r856428 r874573  
    7272
    7373        $db = NextendDatabase::getInstance();
    74 
    75         $query = 'INSERT INTO #__nextend_smartslider_slides (title, slide, description, thumbnail, background, published, publish_up, publish_down, first, generator, params, slider, ordering) VALUES (';
    76 
    77         $query.=$db->quote($slide['title']);
    78         $query.=','.$db->quote($base64 ? base64_decode($slide['slide']) : $slide['slide']);
    79         $query.=','.$db->quote($slide['description']);
    80         $query.=','.$db->quote($slide['thumbnail']);
    81         $query.=','.$db->quote($slide['background']);
    82         $query.=','.$db->quote(isset($slide['published']) ? $slide['published'] : 0);
     74       
    8375        if(isset($slide['publishdates'])){
    8476            $date = explode('|*|',$slide['publishdates']);
     
    9082        }
    9183        $up = strtotime(isset($date[0]) ? $date[0] : '');
    92         $query.=','.$db->quote(date('Y-m-d H:i:s', ($up && $up > 0 ? $up : strtotime('-1 day'))));
    9384        $down = strtotime(isset($date[1]) ? $date[1] : '');
    94         $query.=','.$db->quote(date('Y-m-d H:i:s', ($down && $down > 0 ? $down : strtotime('+10 years'))));
    95        
    96         $query.=','.$db->quote(isset($slide['first']) ? $slide['first'] : 0);
    97         $query.=','.$db->quote(isset($slide['generator']) ? $slide['generator'] : 0);
    98        
    99        
    100         unset($slide['title']);
    101         unset($slide['slide']);
    102         unset($slide['description']);
    103         unset($slide['thumbnail']);
    104         unset($slide['background']);
    105         unset($slide['published']);
    106         unset($slide['first']);
    107         unset($slide['generator']);
    108         unset($slide['publishdates']);
    109        
    110        
    111         $query.=','.$db->quote(json_encode($slide));
    112        
    113         $query.=',' . $db->quote($sliderid);
    114         $query.=',' . ($this->getMaxOrdering($sliderid)+1);
    115         $query.=');';
    116         $db->setQuery($query);
    117         $db->query();
     85       
     86        $tmpslide = $slide;
     87        unset($tmpslide['title']);
     88        unset($tmpslide['slide']);
     89        unset($tmpslide['description']);
     90        unset($tmpslide['thumbnail']);
     91        unset($tmpslide['background']);
     92        unset($tmpslide['published']);
     93        unset($tmpslide['first']);
     94        unset($tmpslide['generator']);
     95        unset($tmpslide['publishdates']);
     96       
     97        $db->insert('#__nextend_smartslider_slides', array(
     98            'title' => $slide['title'],
     99            'slide' => ($base64 ? base64_decode($slide['slide']) : $slide['slide']),
     100            'description' => $slide['description'],
     101            'thumbnail' => $slide['thumbnail'],
     102            'background' => $slide['background'],
     103            'published' => (isset($slide['published']) ? $slide['published'] : 0),
     104            'publish_up' => date('Y-m-d H:i:s', ($up && $up > 0 ? $up : strtotime('-1 day'))),
     105            'publish_down' => date('Y-m-d H:i:s', ($down && $down > 0 ? $down : strtotime('+10 years'))),
     106            'first' => (isset($slide['first']) ? $slide['first'] : 0),
     107            'generator' => (isset($slide['generator']) ? $slide['generator'] : 0),
     108            'params' => json_encode($tmpslide),
     109            'slider' => $sliderid,
     110            'ordering' => $this->getMaxOrdering($sliderid)+1
     111        ));
    118112       
    119113        $slideid = $db->insertid();
     
    129123        if($slide['title'] == '') $slide['title'] = NextendText::_('New_slide');
    130124        $db = NextendDatabase::getInstance();
    131        
    132         $query = 'UPDATE #__nextend_smartslider_slides SET ';
    133        
    134         $query.=' title='.$db->quote($slide['title']);
    135         $query.=',slide='.$db->quote($base64 ? base64_decode($slide['slide']) : $slide['slide']);
    136         $query.=',description='.$db->quote($slide['description']);
    137         $query.=',thumbnail='.$db->quote($slide['thumbnail']);
    138         $query.=',background='.$db->quote($slide['background']);
    139         $query.=',published='.$db->quote($slide['published']);
    140125       
    141126        if(isset($slide['publishdates'])){
     
    148133        }
    149134        $up = strtotime(isset($date[0]) ? $date[0] : '');
    150         $query.=',publish_up='.$db->quote(date('Y-m-d H:i:s', ($up && $up > 0 ? $up : strtotime('-1 day'))));
    151135        $down = strtotime(isset($date[1]) ? $date[1] : '');
    152         $query.=',publish_down='.$db->quote(date('Y-m-d H:i:s', ($down && $down > 0 ? $down : strtotime('+10 years'))));
    153         unset($slide['title']);
    154         unset($slide['slide']);
    155         unset($slide['description']);
    156         unset($slide['thumbnail']);
    157         unset($slide['published']);
    158         unset($slide['background']);
    159         unset($slide['publishdates']);
    160         unset($slide['generator']);
    161        
    162         $query.=',params='.$db->quote(json_encode($slide));
    163        
    164         $query.=' WHERE id = '.$db->quote($id);
    165         $db->setQuery($query);
    166         $db->query();
    167        
     136       
     137        $tmpslide = $slide;
     138        unset($tmpslide['title']);
     139        unset($tmpslide['slide']);
     140        unset($tmpslide['description']);
     141        unset($tmpslide['thumbnail']);
     142        unset($tmpslide['published']);
     143        unset($tmpslide['background']);
     144        unset($tmpslide['publishdates']);
     145        unset($tmpslide['generator']);
     146       
     147        $db->update('#__nextend_smartslider_slides', array(
     148            'title' => $slide['title'],
     149            'slide' => ($base64 ? base64_decode($slide['slide']) : $slide['slide']),
     150            'description' => $slide['description'],
     151            'thumbnail' => $slide['thumbnail'],
     152            'background' => $slide['background'],
     153            'published' => (isset($slide['published']) ? $slide['published'] : 0),
     154            'publish_up' => date('Y-m-d H:i:s', ($up && $up > 0 ? $up : strtotime('-1 day'))),
     155            'publish_down' => date('Y-m-d H:i:s', ($down && $down > 0 ? $down : strtotime('+10 years'))),
     156            'params' => json_encode($tmpslide)
     157        ), 'id = '.$db->quote($id));
     158
    168159        self::markChanged(NextendRequest::getInt('sliderid'));
    169160       
     
    190181    function first($sliderid, $id){
    191182        $db = NextendDatabase::getInstance();
    192         $db->setQuery('UPDATE #__nextend_smartslider_slides SET first = 0 WHERE slider='.$db->quote($sliderid));
    193         $db->query();
    194        
    195         $db->setQuery('UPDATE #__nextend_smartslider_slides SET first = 1 WHERE id='.$db->quote($id));
    196         $db->query();
     183       
     184        $db->update('#__nextend_smartslider_slides', array(
     185            'first' => 0
     186        ), 'slider = '.$db->quote($sliderid));
     187       
     188        $db->update('#__nextend_smartslider_slides', array(
     189            'first' => 1
     190        ), 'id = '.$db->quote($id));
    197191       
    198192        self::markChanged($sliderid);
     
    202196    function publish($id){
    203197        $db = NextendDatabase::getInstance();
    204         $db->setQuery('UPDATE #__nextend_smartslider_slides SET published = 1 WHERE id='.$db->quote($id));
    205         $db->query();
     198        $db->update('#__nextend_smartslider_slides', array(
     199            'published' => 1
     200        ), 'id = '.$db->quote($id));
    206201    }
    207202   
    208203    function unpublish($id){
    209204        $db = NextendDatabase::getInstance();
    210         $db->setQuery('UPDATE #__nextend_smartslider_slides SET published = 0 WHERE id='.$db->quote($id));
    211         $db->query();
     205        $db->update('#__nextend_smartslider_slides', array(
     206            'published' => 0
     207        ), 'id = '.$db->quote($id));
    212208       
    213209        self::markChanged(NextendRequest::getInt('sliderid'));
     
    238234                $id = intval($id);
    239235                if($id > 0){
    240                     $query = 'UPDATE #__nextend_smartslider_slides SET ';
    241 
    242                     $query.=' ordering='.$db->quote($i);
    243 
    244                     $query.=' WHERE id = '.$db->quote($id). ' AND slider = '.$db->quote($sliderid);
    245                     $db->setQuery($query);
    246                     $db->query();
     236                    $db->update('#__nextend_smartslider_slides', array(
     237                        'ordering' => $i
     238                    ), 'id = '.$db->quote($id). ' AND slider = '.$db->quote($sliderid));
     239
    247240                    $i++;
    248241                }
  • smart-slider-2/trunk/library/smartslider/admin/views/sliders_generator/tpl/edit.php

    r856428 r874573  
    11<?php
    2 global $smartslidergeneratorslide;
     2global $smartslidergeneratorslide, $slidegenerator, $generatorinstance;
     3
     4nextendimportsmartslider2('nextend.smartslider.generator');
     5
     6$slidersModel = $this->getModel('sliders');
     7$slider = $slidersModel->getSlider(NextendRequest::getInt('sliderid'));
     8
     9$smartslidergenerator = (array)json_decode($slider['generator'], true);
     10
     11$slidegenerator = null;
     12$generatorParams = new NextendData();
     13$generatorParams->loadArray($smartslidergenerator);
     14$source = $generatorParams->get('source', '');
     15if ($source) {
     16    $generatorSlideParams = new NextendData();
     17    $generatorSlideParams->loadArray(json_decode($slider['slide'], true));
     18    $generator = new NextendSmartsliderGenerator($generatorParams, $generatorSlideParams, NextendRequest::getInt('sliderid'));
     19    $generatorinstance = $generator->initDatasource($source, true);
     20    $slidegenerator = $generator;
     21}else{
     22    // Here should be a redirect for the generator start!
     23}
    324
    425$this->loadFragment('headerstart');
     
    2950    <?php
    3051    NextendForm::tokenize();
    31     $slidersModel = $this->getModel('sliders');
    32     $slider = $slidersModel->getSlider(NextendRequest::getInt('sliderid'));
    33 
    34     $smartslidergenerator = (array)json_decode($slider['generator'], true);
    35 
    36     $xml = $slidersModel->editGeneratorForm($smartslidergenerator);
     52   
     53    $xml = $slidersModel->editGeneratorSlide($smartslidergenerator);
     54    if(intval(NextendSmartSliderSettings::get('generatordesignermode', 1))){
     55        if($generator->_datasource && count($generator->_datasource)){
     56            echo '<script type="text/javascript">window.samplegeneratordata = '.json_encode($generator->_datasource).';</script>';
     57        }
     58    }
    3759
    3860    $smartslidergeneratorslide = (array)json_decode($slider['slide'], true);
  • smart-slider-2/trunk/library/smartslider/admin/views/sliders_help/tpl/default.php

    r857895 r874573  
    11<?php
     2if(isset($_GET['clearlog'])){
     3    if(nextendIsWordPress()){
     4        delete_option( 'nextend_error' );
     5        wp_safe_redirect( $this->route('controller=help') );
     6    }
     7    else header('Location: '. $this->route('controller=help'));
     8    exit;
     9}
     10
    211$this->loadFragment('headerstart');
    312?>
     
    8594        </tbody>             
    8695      </table>               
    87       <h2><?php echo NextendText::_('Documentation'); ?></h2>             
    88       <div class="doc">                 
    89         <div class='categorycontainer nextend-clearfix'>             
    90           <div class="left">           
    91             <dl>             
    92               <dt>    <i></i>               
    93                 <span><?php echo NextendText::_('Installation_General'); ?>
    94                 </span>                 
    95               </dt>             
    96               <dd>               
    97                 <ul>                 
    98                   <li>                 
    99                   <a target="_blank"  href="http://www.nextendweb.com/wiki/smart-slider-documentation/installation-on-joomla/"><?php echo NextendText::_('Install_instruction_for_Joomla'); ?>
    100                     <span class="platform">Joomla                     
    101                     </span></a>                 
    102                   </li>                 
    103                   <li>                 
    104                   <a target="_blank"  href="http://www.nextendweb.com/wiki/smart-slider-documentation/how-to-create-a-smart-slider-2-module/"><?php echo NextendText::_('How_to_create_a_Smart_Slider_2_module'); ?>
    105                     <span class="platform">Joomla                     
    106                     </span></a>                 
    107                   </li>                 
    108                   <li>                 
    109                   <a target="_blank"  href="http://www.nextendweb.com/wiki/smart-slider-documentation/installation-wordpress/"><?php echo NextendText::_('Install_instruction_for_WordPress'); ?>
    110                     <span class="wordpress">WordPress                     
    111                     </span></a>                 
    112                   </li>                 
    113                   <li>                 
    114                   <a target="_blank"  href="http://www.nextendweb.com/wiki/smart-slider-documentation/system-requirements/"><?php echo NextendText::_('System_requirements_PHP_SQL_etc'); ?></a>                 
    115                   </li>                 
    116                   <li>                 
    117                   <a target="_blank"  href="http://www.nextendweb.com/wiki/smart-slider-documentation/download-section/"><?php echo NextendText::_('Download_section_cancel_subscription'); ?></a>                 
    118                   </li>                 
    119                   <li>                 
    120                   <a target="_blank"  href="http://www.nextendweb.com/wiki/smart-slider-documentation/changelog"><?php echo NextendText::_('Changelog_for_Smart_Slider_2'); ?></a>                 
    121                   </li>                 
    122                   <li>                 
    123                   <a target="_blank"  href="http://www.nextendweb.com/wiki/smart-slider-documentation/known-problems/"><?php echo NextendText::_('Known_problems'); ?></a>                 
    124                   </li>                 
    125                   <li>                 
    126                   <a target="_blank"  href="http://www.nextendweb.com/wiki/smart-slider-documentation/translation/"><?php echo NextendText::_('Translation'); ?></a>                 
    127                   </li>               
    128                 </ul>             
    129               </dd>           
    130             </dl>           
    131             <dl>             
    132               <dt>                     
    133                 <span><?php echo NextendText::_('Usage'); ?>
    134                 </span>                 
    135               </dt>             
    136               <dd>               
    137                 <ul>                 
    138                   <li>                 
    139                   <a target="_blank"  href="http://www.nextendweb.com/wiki/smart-slider-documentation/basics/"><?php echo NextendText::_('Basics'); ?></a>                 
    140                   </li>                 
    141                   <li>                 
    142                   <a target="_blank"  href="http://www.nextendweb.com/wiki/smart-slider-documentation/slider-and-widgets/"><?php echo NextendText::_('Slider_and_widgets'); ?></a>                 
    143                   </li>                 
    144                   <li>                 
    145                   <a target="_blank"  href="http://www.nextendweb.com/wiki/smart-slider-documentation/slide-layers-and-items/"><?php echo NextendText::_('Slide_layers_and_items'); ?></a>                 
    146                   </li>                 
    147                   <li>                 
    148                   <a target="_blank"  href="http://www.nextendweb.com/wiki/smart-slider-documentation/layer-animation/"><?php echo NextendText::_('Slide_layer_animation'); ?></a>                 
    149                   </li>                 
    150                   <li>                 
    151                   <a target="_blank"  href="http://www.nextendweb.com/wiki/smart-slider-documentation/layouts/"><?php echo NextendText::_('Layout'); ?></a>                 
    152                   </li>                 
    153                   <li>                 
    154                   <a target="_blank"  href="http://www.nextendweb.com/wiki/smart-slider-documentation/generator/"><?php echo NextendText::_('Generator'); ?></a>                 
    155                   </li>             
    156                 </ul>             
    157               </dd>           
    158             </dl>           
    159             <dl>             
    160               <dt>                     
    161                 <span><?php echo NextendText::_('Settings_in_depth'); ?>               
    162                 </span>                 
    163               </dt>             
    164               <dd>               
    165                 <ul>                 
    166                   <li>                 
    167                   <a target="_blank"  href="http://www.nextendweb.com/wiki/smart-slider-documentation/global-settings/"><?php echo NextendText::_('Global_settings'); ?></a>                 
    168                   </li>                 
    169                   <li>                 
    170                   <a target="_blank"  href="http://www.nextendweb.com/wiki/smart-slider-documentation/fonts/"><?php echo NextendText::_('Fonts'); ?></a>                 
    171                   </li>                 
    172                   <li>                 
    173                   <a target="_blank"  href="http://www.nextendweb.com/wiki/smart-slider-documentation/slider-settings/"><?php echo NextendText::_('Slider_settings'); ?></a>                 
    174                   </li>                 
    175                   <li>                 
    176                   <a target="_blank"  href="http://www.nextendweb.com/wiki/smart-slider-documentation/slide-settings/"><?php echo NextendText::_('Slide_settings'); ?></a>                 
    177                   </li>                 
    178                   <li>                 
    179                   <a target="_blank"  href="http://www.nextendweb.com/wiki/smart-slider-documentation/layout-settings/"><?php echo NextendText::_('Layout_settings'); ?></a>                 
    180                   </li>                   
    181                   <li>                 
    182                   <a target="_blank"  href="http://www.nextendweb.com/wiki/smart-slider-documentation/import-export/"><?php echo NextendText::_('Import_and_Export'); ?></a>                 
    183                   </li>     
    184                 </ul>             
    185               </dd>           
    186             </dl>           
    187             <dl>             
    188               <dt>                     
    189                 <span><?php echo NextendText::_('Slider_types'); ?>
    190                 </span>                 
    191               </dt>             
    192               <dd>               
    193                 <ul>                 
    194                   <li>                 
    195                   <a target="_blank"  href="http://www.nextendweb.com/wiki/smart-slider-documentation/simple-slider-type/"><?php echo NextendText::_('Simple_slider_type'); ?></a>                 
    196                   </li>                 
    197                   <li>                 
    198                   <a target="_blank"  href="http://www.nextendweb.com/wiki/smart-slider-documentation/full-page-slider-type/"><?php echo NextendText::_('Full_page_type'); ?></a>                 
    199                   </li>                 
    200                   <li>                 
    201                   <a target="_blank"  href="http://www.nextendweb.com/wiki/smart-slider-documentation/horizontal-accordion-slider-type/"><?php echo NextendText::_('Horizontal_accordion_slider_type'); ?></a>
    202           </li>                 
    203                   <li>                 
    204                   <a target="_blank"  href="http://www.nextendweb.com/wiki/smart-slider-documentation/vertical-accordion-slider-type/"><?php echo NextendText::_('Vertical_accordion_slider_type'); ?></a>
    205                   </li>               
    206                 </ul>             
    207               </dd>           
    208             </dl>           
    209             <dl>             
    210               <dt>                     
    211                 <span><?php echo NextendText::_('Slider_widgets'); ?>
    212                 </span>                 
    213               </dt>             
    214               <dd>               
    215                 <ul>                 
    216                   <li>                 
    217                   <a target="_blank"  href="http://www.nextendweb.com/wiki/smart-slider-documentation/widgets/"><?php echo NextendText::_('More_about_widgets'); ?></a>                 
    218                   </li>                 
    219                   <li>                 
    220                   <a target="_blank"  href="http://www.nextendweb.com/wiki/smart-slider-documentation/arrows/"><?php echo NextendText::_('Arrows'); ?></a>                 
    221                   </li>                 
    222                   <li>                 
    223                   <a target="_blank"  href="http://www.nextendweb.com/wiki/smart-slider-documentation/bullets"><?php echo NextendText::_('Bullets'); ?></a>                 
    224                   </li>                 
    225                   <li>                 
    226                   <a target="_blank"  href="http://www.nextendweb.com/wiki/smart-slider-documentation/autoplay-button/"><?php echo NextendText::_('Autoplay_button'); ?></a>                 
    227                   </li>                 
    228                   <li>                 
    229                   <a target="_blank"  href="http://www.nextendweb.com/wiki/smart-slider-documentation/indicator-autoplay"><?php echo NextendText::_('Indicator_autoplay'); ?></a>                 
    230                   </li>                 
    231                   <li>                 
    232                   <a target="_blank"  href="http://www.nextendweb.com/wiki/smart-slider-documentation/bar"><?php echo NextendText::_('Bar'); ?></a>                 
    233                   </li>                 
    234                   <li>                 
    235                   <a target="_blank"  href="http://www.nextendweb.com/wiki/smart-slider-documentation/thumbnails"><?php echo NextendText::_('Thumbnails'); ?></a>                 
    236                   </li>                 
    237                   <li>                 
    238                   <a target="_blank"  href="http://www.nextendweb.com/wiki/smart-slider-documentation/shadows"><?php echo NextendText::_('Shadows'); ?></a>                 
    239                   </li>                 
    240                   <li>                 
    241                   <a target="_blank"  href="http://www.nextendweb.com/wiki/smart-slider-documentation/html"><?php echo NextendText::_('HTML'); ?></a>                 
    242                   </li>               
    243                 </ul>             
    244               </dd>           
    245             </dl>         
    246           </div>         
    247           <div class="right">           
    248             <dl>             
    249               <dt>                     
    250                 <span><?php echo NextendText::_('Items'); ?>                 
    251                 </span>                 
    252               </dt>             
    253               <dd>               
    254                 <ul>                 
    255                   <li>                 
    256                   <a target="_blank"  href="http://www.nextendweb.com/wiki/smart-slider-documentation/button/"><?php echo NextendText::_('Button'); ?></a>                 
    257                   </li>                 
    258                   <li>                 
    259                   <a target="_blank"  href="http://www.nextendweb.com/wiki/smart-slider-documentation/caption/"><?php echo NextendText::_('Caption'); ?></a>                 
    260                   </li>                 
    261                   <li>                 
    262                   <a target="_blank"  href="http://www.nextendweb.com/wiki/smart-slider-documentation/fade/"><?php echo NextendText::_('Fade'); ?></a>                 
    263                   </li>                 
    264                   <li>                 
    265                   <a target="_blank"  href="http://www.nextendweb.com/wiki/smart-slider-documentation/flipper/"><?php echo NextendText::_('Flipper'); ?></a>                 
    266                   </li>                 
    267                   <li>                 
    268                   <a target="_blank"  href="http://www.nextendweb.com/wiki/smart-slider-documentation/heading/"><?php echo NextendText::_('Heading'); ?></a>                 
    269                   </li>                 
    270                   <li>                 
    271                   <a target="_blank"  href="http://www.nextendweb.com/wiki/smart-slider-documentation/html-item/"><?php echo NextendText::_('HTML'); ?></a>                 
    272                   </li>                 
    273                   <li>                 
    274                   <a target="_blank"  href="http://www.nextendweb.com/wiki/smart-slider-documentation/iframe/"><?php echo NextendText::_('Iframe'); ?></a>                 
    275                   </li>                 
    276                   <li>                 
    277                   <a target="_blank"  href="http://www.nextendweb.com/wiki/smart-slider-documentation/paragraph/"><?php echo NextendText::_('Paragraph'); ?></a>                 
    278                   </li>                 
    279                   <li>                 
    280                   <a target="_blank"  href="http://www.nextendweb.com/wiki/smart-slider-documentation/special/"><?php echo NextendText::_('Special'); ?></a>                 
    281                   </li>                 
    282                   <li>                 
    283                   <a target="_blank"  href="http://www.nextendweb.com/wiki/smart-slider-documentation/tag/"><?php echo NextendText::_('Tag'); ?></a>                 
    284                   </li>                 
    285                   <li>                 
    286                   <a target="_blank"  href="http://www.nextendweb.com/wiki/smart-slider-documentation/youtube/"><?php echo NextendText::_('YouTube'); ?></a>                 
    287                   </li>               
    288                 </ul>             
    289               </dd>           
    290             </dl>           
    291             <dl>             
    292               <dt>                     
    293                 <span><?php echo NextendText::_('Generators'); ?>                 
    294                 </span>                 
    295               </dt>             
    296               <dd>               
    297                 <ul>                 
    298                   <li>                 
    299                   <a target="_blank"  href="http://www.nextendweb.com/wiki/smart-slider-documentation/facebook-generator/"><?php echo NextendText::_('Facebook'); ?></a>                 
    300                   </li>                 
    301                   <li>                 
    302                   <a target="_blank"  href="http://www.nextendweb.com/wiki/smart-slider-documentation/flickr-generator/"><?php echo NextendText::_('Flickr'); ?></a>                 
    303                   </li>                 
    304                   <li>                 
    305                   <a target="_blank"  href="http://www.nextendweb.com/wiki/smart-slider-documentation/instagram-generator/"><?php echo NextendText::_('Instagram'); ?></a>                 
    306                   </li>                 
    307                   <li>                 
    308                   <a target="_blank"  href="http://www.nextendweb.com/wiki/smart-slider-documentation/youtube-generator/"><?php echo NextendText::_('YouTube'); ?></a>                 
    309                   </li>                 
    310                   <li>                 
    311                   <a target="_blank"  href="http://www.nextendweb.com/wiki/smart-slider-documentation/twitter-generator/"><?php echo NextendText::_('Twitter'); ?></a>                 
    312                   </li>                 
    313                   <li>                 
    314                   <a target="_blank"  href="http://www.nextendweb.com/wiki/smart-slider-documentation/image-from-folder-joomla-generator/"><?php echo NextendText::_('Image_from_folder'); ?>     
    315                     <span class="platform">Joomla                     
    316                     </span></a>                 
    317                   </li>                 
    318                   <li>                 
    319                   <a target="_blank"  href="http://www.nextendweb.com/wiki/smart-slider-documentation/joomla-content-generator/"><?php echo NextendText::_('Joomla_content'); ?>         
    320                     <span class="platform">Joomla                     
    321                     </span></a>                 
    322                   </li>                 
    323                   <li>                 
    324                   <a target="_blank"  href="http://www.nextendweb.com/wiki/smart-slider-documentation/k2-items-generator/"><?php echo NextendText::_('K2_items'); ?>
    325                     <span class="platform">Joomla                     
    326                     </span></a>                 
    327                   </li>                 
    328                   <li>                 
    329                   <a target="_blank"  href="http://www.nextendweb.com/wiki/smart-slider-documentation/cobalt-cck-generator/"><?php echo NextendText::_('Cobalt_CCK'); ?>
    330                     <span class="platform">Joomla                     
    331                     </span></a>                 
    332                   </li>                 
    333                   <li>                 
    334                   <a target="_blank"  href="http://www.nextendweb.com/wiki/smart-slider-documentation/ignite-gallery-generator/"><?php echo NextendText::_('Ignite_Gallery'); ?>         
    335                     <span class="platform">Joomla                     
    336                     </span></a>                 
    337                   </li>                 
    338                   <li>                 
    339                   <a target="_blank"  href="http://www.nextendweb.com/wiki/smart-slider-documentation/phoca-gallery-generator/"><?php echo NextendText::_('Phoca_Gallery'); ?>                     
    340                     <span class="platform">Joomla                     
    341                     </span></a>                 
    342                   </li>                 
    343                   <li>                 
    344                   <a target="_blank"  href="http://www.nextendweb.com/wiki/smart-slider-documentation/virtuemart2-generator/"><?php echo NextendText::_('Virtuemart_2'); ?>   
    345                     <span class="platform">Joomla                     
    346                     </span></a>                 
    347                   </li>                 
    348                   <li>                 
    349                   <a target="_blank"  href="http://www.nextendweb.com/wiki/smart-slider-documentation/redshop-generator/"><?php echo NextendText::_('redSHOP'); ?>                     
    350                     <span class="platform">Joomla                     
    351                     </span></a>                 
    352                   </li>                 
    353                   <li>                 
    354                   <a target="_blank"  href="http://www.nextendweb.com/wiki/smart-slider-documentation/joomshopping-generator/"><?php echo NextendText::_('JoomShopping'); ?>                     
    355                     <span class="platform">Joomla                     
    356                     </span></a>                 
    357                   </li>                 
    358                   <li>                 
    359                   <a target="_blank"  href="http://www.nextendweb.com/wiki/smart-slider-documentation/image-from-folder-wordpress-generator/"><?php echo NextendText::_('Image_from_folder'); ?>
    360                     <span class="wordpress">WordPress                     
    361                     </span></a>                 
    362                   </li>                 
    363                   <li>                 
    364                   <a target="_blank"  href="http://www.nextendweb.com/wiki/smart-slider-documentation/posts-generator/"><?php echo NextendText::_('Posts'); ?>                 
    365                     <span class="wordpress">WordPress                     
    366                     </span></a>                 
    367                   </li>               
    368                 </ul>             
    369               </dd>           
    370             </dl>           
    371             <dl>             
    372               <dt>                     
    373                 <span><?php echo NextendText::_('Extra_features'); ?>
    374                 </span>                 
    375               </dt>             
    376               <dd>               
    377                 <ul>                 
    378                   <li>                 
    379                   <a href="http://www.nextendweb.com/wiki/smart-slider-documentation/javascript-api/"><?php echo NextendText::_('JavaScript_API'); ?></a>                 
    380                   </li>                 
    381                   <li>                 
    382                   <a href="http://www.nextendweb.com/wiki/smart-slider-documentation/advanced-generator-functions/"><?php echo NextendText::_('Advanced_generator_functions'); ?></a>                 
    383                   </li>               
    384                 </ul>             
    385               </dd>           
    386             </dl>         
    387           </div>         
    388           <div style="clear:both;">         
    389           </div>                         
    390         </div>           
    391       </div>               
    392       <h2><?php echo NextendText::_('Tutorial_videos'); ?></h2>               
    393         <div class="tutorial-videos nextend-clearfix">
    394             <iframe width="640" height="360" src="https://plugins.trac.wordpress.org//www.youtube.com/embed/videoseries?list=PLSawiBnEUNfvCEnV5dGOAQABZ8TBx8fJg&vq=hd1080&hd=1" frameborder="0" allowfullscreen></iframe>                 
    395         </div>                       
     96      <h2><?php echo NextendText::_('Possible problems'); ?></h2>             
     97    <div class="doc">
     98    <?php
     99    if(nextendIsWordPress()){
     100        $nextenderror = get_option( 'nextend_error' );
     101        if ( $nextenderror !== false && is_array($nextenderror)){
     102            if(isset($nextenderror['missinghead'])){
     103                foreach($nextenderror['missinghead'] AS $url){
     104                    NextendMessage::error(NextendText::_('get_header() or wp_head() call is missing from the template!'), 'Related page: '.$url.'<br /><br />Make sure that get_header() exists in the current template of the page or post at the beginning<br />Make sure that wp_head() exists before the closing &lt;/head&gt; tag in the [theme folder]/header.php<br /><a href="http://codex.wordpress.org/Function_Reference/wp_head" target="_blank">http://codex.wordpress.org/Function_Reference/wp_head</a>');
     105                }
     106            }
     107            if(isset($nextenderror['missingfooter'])){
     108                foreach($nextenderror['missingfooter'] AS $url){
     109                    NextendMessage::error(NextendText::_('get_footer() or wp_footer() call is missing from the template!'), 'Related page: '.$url.'<br /><br />Make sure that get_footer() exists in the current template of the page or post at the end of the file<br />Make sure that wp_footer() exists before the closing &lt;/body&gt; tag in the [theme folder]/footer.php<br /><a href="http://codex.wordpress.org/Function_Reference/wp_footer" target="_blank">http://codex.wordpress.org/Function_Reference/wp_footer</a>');
     110                }
     111            }
     112        }
     113    }
     114    ob_start();
     115    NextendMessage::show();
     116    $messages = ob_get_clean();
     117    if($messages){
     118        echo $messages;
     119    }else{
     120        NextendMessage::success('Everything seems fine!');
     121        NextendMessage::show();
     122    }
     123    ?>
     124        <div style="margin: 0 15px;">
     125            <a class="button b" href="<?php echo $this->route('controller=help&clearlog=1'); ?>">Clear error log</a>
     126            <?php if(nextendIsWordPress()){ ?>
     127                <br /><br /><br />
     128                <p>You can disable this log on the Nextend configuration with "<b>Log possible problems</b>" parameter: <a class="button small" href="<?php echo admin_url('options-general.php?page=nextend_settings_page'); ?>">Nextend configuration</a></p>
     129            <?php } ?>
     130        </div>
     131    </div>
     132    <h2><?php echo NextendText::_('Tutorial_videos'); ?></h2>               
     133    <div class="tutorial-videos nextend-clearfix">
     134        <iframe width="640" height="360" src="https://plugins.trac.wordpress.org//www.youtube.com/embed/videoseries?list=PLSawiBnEUNfvCEnV5dGOAQABZ8TBx8fJg&vq=hd1080&hd=1" frameborder="0" allowfullscreen></iframe>                 
     135    </div>
    396136</div>   
    397137</form>
  • smart-slider-2/trunk/library/smartslider/admin/views/sliders_slider/tpl/changedynamiclayout.php

    r856428 r874573  
    1717    $slider = new NextendSliderMagento($sliderid, $d, dirname(__FILE__));
    1818}
    19 $slider->_responsive = false;
    2019$slidersModel = new NextendSmartsliderAdminModelSliders(null);
    2120$fakeslider = $slidersModel->getSlider($sliderid);
     21
     22global $layout, $sliderpreset;
     23
     24$sliderParams = new NextendData();
     25$sliderParams->loadJSON($fakeslider['params']);
     26
     27$sliders = array();
     28NextendPlugin::callPlugin('nextendslidergeneratorlayouts', 'onNextendSliderGeneratorSlider', array(&$sliders, $sliderParams->get('size', null)));
     29$sliderpreset = NextendRequest::getVar('sliderpreset', '');
     30if(isset($sliders[$sliderpreset])){
     31    $fakeslider = $sliders[$sliderpreset]['slider']+$fakeslider;
     32}
     33
    2234$slider->_slider = new NextendData();
    2335$slider->_slider->loadArray($fakeslider);
     
    2941$slider->_generatorParams->loadJSON($fakeslider['generator']);
    3042
     43if($fakeslider['slide'] == '' && !isset($_REQUEST['layout'])){
     44    $_REQUEST['layout'] = 'default';
     45}
    3146$slider->_generatorSlideParams = new NextendData();
    3247$slider->_generatorSlideParams->loadJSON($fakeslider['slide']);
    33 
    3448
    3549$group = array();
     
    4963}
    5064
    51 $path = $sourcetype[1];
    52 include($path.'slide.php');
     65$slide = array();
     66NextendPlugin::callPlugin('nextendslidergeneratorlayouts', 'onNextendSliderGeneratorLayouts', array($sourcetype[5], &$slide));
    5367
    54 $layout = NextendRequest::getVar('layout', 'default');
    55 if(!isset($slide[$layout])) $layout = 'default';
    56 
    57 if(isset($slide[$layout]['slider'])) $slider->_generatorParams->loadArray($slide[$layout]['slider']);
    58 
    59 $slider->_generatorSlideParams->loadArray($slide[$layout]['slide']);
     68$layout = NextendRequest::getVar('layout', '');
     69if(isset($slide[$layout])){
     70    if(isset($slide[$layout]['slider'])) $slider->_generatorParams->loadArray($slide[$layout]['slider']);
     71   
     72    $slider->_generatorSlideParams->loadArray($slide[$layout]['slide']);
     73}
    6074$slider->_generatorParams->set('generateslides', intval($slider->_generatorParams->get('generateslides')).'|*|0|*|0');
    6175
    62 function generateDynamicThumbs($controller, $path, $sliderid, $id, $data){
     76function generateDynamicThumbs($controller, $image, $sliderid, $id, $data){
     77    global $layout, $sliderpreset;
    6378    ?>
    64     <div class="smartslider-dynamic-thumb">
     79    <div class="smartslider-dynamic-thumb <?php echo ($layout == $id ? 'selected' : 'notselected') ?>" onclick="location.href='<?php echo $controller->route('controller=sliders&view=sliders_slider&action=changedynamiclayout&fontset='.NextendRequest::getInt('fontset', 0).'&sliderid='.$sliderid.'&sliderpreset='.$sliderpreset.'&layout='.($layout == $id ? '' : $id)); ?>'">
    6580        <div><?php echo $data['title']; ?></div>
    66         <img src="<?php echo NextendUri::pathToUri(NextendFilesystem::translateToMediaPath($path.$id.'.png')) ?>" /><br />
    67         <a class="button small b" href="<?php echo $controller->route('controller=sliders&view=sliders_slider&action=changedynamiclayout&sliderid='.$sliderid.'&save=1&layout='.$id); ?>">Choose</a>
    68          &nbsp;&nbsp;
    69         <a class="button small" href="<?php echo $controller->route('controller=sliders&view=sliders_slider&action=changedynamiclayout&fontset='.NextendRequest::getInt('fontset', 0).'&sliderid='.$sliderid.'&layout='.$id); ?>">Preview</a>
     81        <img src="<?php echo NextendUri::pathToUri(NextendFilesystem::translateToMediaPath($image)) ?>" />
     82    </div>
     83    <?php
     84}
     85
     86function generateDynamicSliderThumbs($controller, $image, $sliderid, $id, $data){
     87    global $layout, $sliderpreset;
     88    ?>
     89    <div class="smartslider-dynamic-thumb <?php echo ($sliderpreset == $id ? 'selected' : 'notselected') ?>" onclick="location.href='<?php echo $controller->route('controller=sliders&view=sliders_slider&action=changedynamiclayout&fontset='.NextendRequest::getInt('fontset', 0).'&sliderid='.$sliderid.'&sliderpreset='.($sliderpreset == $id ? '' : $id).'&layout='.$layout); ?>'">
     90        <div><?php echo $data['title']; ?></div>
     91        <img src="<?php echo NextendUri::pathToUri(NextendFilesystem::translateToMediaPath($image)) ?>" />
    7092    </div>
    7193    <?php
     
    7496
    7597?>
    76 <div class="smartslider-button smartslider-cancel" onclick="window.nextendsave=true;location.href='<?php echo $this->route('controller=sliders&view=sliders_slider&action=dashboard&sliderid='.$sliderid); ?>';"><?php echo NextendText::_('Skip'); ?></div>
     98<div class="smartslider-button smartslider-save" onclick="setTimeout(function(){njQuery('#smartslider-form').submit();}, 300);"><?php echo NextendText::_('Save'); ?></div>
     99<div class="smartslider-button smartslider-cancel" onclick="window.nextendsave=true;location.href='<?php echo $this->route('controller=sliders&view=sliders_slider&action=dashboard&sliderid='.$sliderid); ?>';"><?php echo NextendText::_('Cancel'); ?></div>
    77100<?php
    78101$this->loadFragment('headerend');
     
    95118    $css->addCssFile(NEXTEND_SMART_SLIDER2_ASSETS . 'admin/css/create.css');
    96119?>
    97 <h2>Choose layout</h2>
     120<form id="smartslider-form" action="" method="post">
     121<?php NextendForm::tokenize(); ?>
     122<input type="hidden" name="layout" value="<?php echo $layout;?>" />
     123<input type="hidden" name="save" value="1" />
     124<h2>Choose slider preset - optional</h2>
     125<div class="blue-container">
     126    <?php
     127    foreach($sliders AS $id => $data){
     128        generateDynamicSliderThumbs($this, $sliders[$id]['image'], $sliderid, $id, $data);
     129    }
     130    ?>
     131    <div style="clear:both;height: 10px; width:100%"></div>
     132</div>
     133
     134<h2>Choose layout - optional</h2>
    98135<div class="blue-container">
    99136    <?php
    100137    foreach($slide AS $id => $data){
    101         generateDynamicThumbs($this, $path, $sliderid, $id, $data);
     138        generateDynamicThumbs($this, $slide[$id]['image'], $sliderid, $id, $data);
    102139    }
    103140    ?>
     141    <div style="clear:both;height: 10px; width:100%"></div>
    104142</div>
     143
     144</form>
    105145
    106146<h2>Preview</h2>
  • smart-slider-2/trunk/library/smartslider/admin/views/sliders_slider/tpl/create.php

    r856428 r874573  
    2929  <table class="pane-table smartslider-slider-create">
    3030    <tr class="smartslider-slider-create-image">
    31         <?php if(!$isMage): ?><td><img src="<?php echo NextendUri::pathToUri(NEXTEND_SMART_SLIDER2_ASSETS . 'admin/images/create-quick.png') ?>" /></td><?php endif; ?>
     31        <td><img src="<?php echo NextendUri::pathToUri(NEXTEND_SMART_SLIDER2_ASSETS . 'admin/images/create-quick.png') ?>" /></td>
    3232        <td><img src="<?php echo NextendUri::pathToUri(NEXTEND_SMART_SLIDER2_ASSETS . 'admin/images/create-manual.png') ?>" /></td>
    3333        <td><img src="<?php echo NextendUri::pathToUri(NEXTEND_SMART_SLIDER2_ASSETS . 'admin/images/create-dynamic.png') ?>" /></td>
    3434    </tr>
    3535    <tr class="smartslider-slider-create-heading">
    36         <?php if(!$isMage): ?><td>Quick slider</td><?php endif; ?>
     36        <td>Quick slider</td>
    3737        <td>Manual slider</td>
    3838        <td>Dynamic slider</td>
    3939    </tr>
    4040    <tr class="smartslider-slider-create-note">
    41         <?php if(!$isMage): ?><td>Fasten your seatbelt, because it was designed to be as simply and fast to setup as it could possibly be. Create an image slider in minutes.</td><?php endif; ?>
     41        <td>Fasten your seatbelt, because it was designed to be as simply and fast to setup as it could possibly be. Create an image slider in minutes.</td>
    4242        <td>Build a new slider from layers and items. Your imagination is the only limit for sliders!  Ideal for homepages, showcases and presentations.</td>
    4343        <td>Generate sliders from external sources. Show the most popular products from your webshop, blog posts from a category or pictures from a folder.</td>
    4444    </tr>
    4545    <tr class="smartslider-slider-create-button">
    46         <?php if(!$isMage): ?><td>
     46        <td>
    4747            <a class="button big b" href="<?php echo $this->route('controller=sliders&view=sliders_slider&action=createquick'); ?>">Start</a>
    48         </td><?php endif; ?>
     48        </td>
    4949        <td>
    5050            <a class="button big b" href="<?php echo $this->route('controller=sliders&view=sliders_slider&action=createmanual'); ?>">Start</a>
  • smart-slider-2/trunk/library/smartslider/admin/views/sliders_slider/tpl/createquick.php

    r856428 r874573  
    3939    <input name="save" value="1" type="hidden" />
    4040</form>
    41 <h2>Selected images</h2>
    42 <div id="selected-images-container" class="blue-container">
    43     <?php
    44     if(nextendIsWordpress()){
    45         add_filter('media_view_strings', 'custom_media_uploader_tabs', 5);
    46         function custom_media_uploader_tabs( $strings ) {
    47             $strings['insertMediaTitle'] = "Image";
    48             $strings['insertIntoPost'] = "Add to slider";
    49             // remove options
    50             if (isset($strings['createGalleryTitle'])) unset($strings['createGalleryTitle']);
    51             if (isset($strings['insertFromUrlTitle'])) unset($strings['insertFromUrlTitle']);
    52             return $strings;
    53         }
    54        
    55             wp_enqueue_style('editor');
    56         if(function_exists( 'wp_enqueue_media' )){
    57             wp_enqueue_media();
    58         }else{
    59             wp_enqueue_style('thickbox');
    60             wp_enqueue_script('media-upload');
    61             wp_enqueue_script('thickbox');
    62         }
    63     ?>
    64     <a title="Add Image" data-editor="content" class="button add-image" href="#">
    65         <span class="wp-media-buttons-icon"></span> Add Image
    66     </a>
    67     <div style="clear: both;"></div>
    68     <?php
    69     }
    70     ?>
    71     <div id="delete-image"></div>
    72     <ul id="selected-images"></ul>
    73     <div style="clear: both;"></div>
    74 </div>
    75 
    76 <?php if(nextendIsJoomla()):
    77         $app = JFactory::getApplication();
    78         $user = JFactory::getUser();
    79         $extension = $app->input->get('option');
    80        
    81     $link = 'index.php?option=com_media&amp;view=images&amp;tmpl=component&amp;e_name=&amp;asset=' . $extension . '&amp;author=' . $user->id;
    82 ?>
    83 <h2>Choose images</h2>
    84 <div class="blue-container">
    85     <iframe frameborder="0" src="<?php echo $link; ?>" id="image-chooser" width="100%" height="0"></iframe>
    86 </div>
    87     <?php elseif(nextendIsMagento()): ?>
    88    
    89     <?php endif; ?>
    90 <script>
    91 njQuery(window).ready(function(){
    92     var $ = njQuery,
    93         images = $('#selected-images'),
    94         deleteimage = $('#delete-image'),
    95         form = $('#smartslider-form');
    96    
    97     function addImageToList(img){
    98         $('<li><img src="'+img+'" /></li>').appendTo(images);
    99         images.sortable( "refresh" );
    100         $(window).trigger('resize');
    101     }
    102    
    103     <?php if(nextendIsJoomla()): ?>
    104     var folder = "<?php echo NextendUri::pathToUri(JPATH_ROOT . '/' . JComponentHelper::getParams('com_media')->get('image_path', 'images'). '/')?>",
    105         iframe = $('#image-chooser'),
    106         frame = $('#image-chooser');
    107    
    108     frame.on('load', function(){
    109         frame = $(this.contentWindow.document);
    110         frame.find('#imageframe').next('.well').remove();
    111         frame.find('#imageframe').next('fieldset').remove();
    112         frame.find('#imageframe').prev('fieldset').find('.fltrt').remove();
    113         frame.find('#imageForm').find('.pull-right').remove();
    114         frame.find('#upbutton').css('verticalAlign', 'top');
    115         this.contentWindow.ImageManager.populateFields = function(file){
    116             addImageToList(folder+file);
    117         }
    118         frame.find('#system-message-container').css('paddingTop', '15px');
    119         frame.find('body').css('overflow', 'hidden').css('padding', '0 15px');
    120         iframe.css('height', frame.find('html').prop('scrollHeight'));
    121         $(window).trigger('resize');
    122     });
    123     <?php elseif(nextendIsWordpress()): ?>
    124             var file_frame;
    125            
    126             jQuery('#smartslider-admin .add-image').on('click', function(event){
    127                 event.preventDefault();
    128    
    129                 // If the media frame already exists, reopen it.
    130                 if ( file_frame ) {
    131                     file_frame.open();
    132                     return;
    133                 }
    134    
    135                 // Create the media frame.
    136                 file_frame = wp.media.frames.file_frame = wp.media({
    137                     multiple: 'add',
    138                     frame: 'post',
    139                     library: {type: 'image'}
    140                 });
    141    
    142                 // When an image is selected, run a callback.
    143                   console.log(file_frame);
    144                 file_frame.on('insert', function() {
    145               console.log('asd');
    146                     var selection = file_frame.state().get('selection');
    147                     var slide_ids = [];
    148      
    149                     selection.map(function(attachment) {
    150                             attachment = attachment.toJSON();
    151                   addImageToList(attachment.url);
    152                     });
    153                 });
    154    
    155                 file_frame.open();
    156    
    157                 // Remove the Media Library tab (media_upload_tabs filter is broken in 3.6)
    158                 jQuery(".media-menu a:contains('Media Library')").remove();
    159             });
    160     <?php elseif(nextendIsMagento()): ?>
    161    
    162     <?php endif; ?>
    163    
    164     $(document.body).css('overflow', 'auto');
    165     images.sortable({
    166         connectWith: deleteimage,
    167         placeholder: "ui-state-highlight",
    168         forcePlaceholderSize: true,
    169         revert: 400,
    170         appendTo: document.body,
    171         tolerance: 'pointer',
    172         over: function(){
    173             $(window).trigger('resize');
    174         },
    175         out: function(){
    176             $(window).trigger('resize');
    177         }
    178     });
    179    
    180     $(window).on('resize', function(){
    181         deleteimage.height(images.height()-14);
    182     });
    183    
    184     deleteimage.sortable({
    185         revert: 200,
    186         tolerance: 'pointer',
    187         appendTo: document.body,
    188         over: function(){
    189             deleteimage.addClass('over');
    190             $(window).trigger('resize');
    191         },
    192         out: function(){
    193             deleteimage.removeClass('over');
    194             $(window).trigger('resize');
    195         },
    196         update: function(event, ui) {
    197             ui.item.remove();
    198             $(window).trigger('resize');
    199         }
    200     });
    201     images.disableSelection();
    202    
    203     form.on('submit', function(){
    204         images.find('img').each(function(){
    205             $('<input type="checkbox" style="display: none;" name="images[]" value="'+this.src+'" checked />').appendTo(form);
    206         });
    207     });
    208 });
    209 </script>
    21041
    21142<?php
  • smart-slider-2/trunk/library/smartslider/admin/views/sliders_slider/tpl/dashboard.php

    r856428 r874573  
    5757    <?php endif; ?>
    5858   
    59     <?php if (!$j15 && $accessSliderEdit): ?>
    60     <div class="smartslider-button smartslider-back smartslider-button-grey smartslider-button-blue-active smartslider-icon-container">
    61         <a href="<?php echo $this->route('controller=sliders&view=sliders_generator&action=generator&sliderid=' . $sliderid); ?>" class="smartslider-button-link"><span class="smartslider-icon smartslider-action-icon smartslider-action-icon-generator"></span><?php echo NextendText::_('Generator'); ?></a>
    62     </div>
    63     <?php endif; ?>
    64    
    65     <?php if (!$j15 && $accessSliderEdit && $generatorParams->get('enabled', 0)): ?>
    66     <div class="smartslider-button smartslider-back smartslider-button-grey smartslider-button-blue-active smartslider-icon-container">
    67         <a href="<?php echo $this->route('controller=sliders&view=sliders_slider&action=changedynamiclayout&sliderid=' . $sliderid); ?>" class="smartslider-button-link"><span class="smartslider-icon smartslider-action-icon smartslider-action-icon-generator-layout"></span><?php echo NextendText::_('Change layout'); ?></a>
    68     </div>
     59    <?php if (!$j15 && $accessSliderEdit):
     60          if($generatorParams->get('enabled', null) === null):
     61    ?>
     62        <div class="smartslider-button smartslider-back smartslider-button-grey smartslider-button-blue-active smartslider-icon-container">
     63            <a href="<?php echo $this->route('controller=sliders&view=sliders_generator&action=generatorstart&sliderid=' . $sliderid); ?>" class="smartslider-button-link"><span class="smartslider-icon smartslider-action-icon smartslider-action-icon-generator"></span><?php echo NextendText::_('Generator'); ?></a>
     64        </div>
     65        <?php endif; ?>
    6966    <?php endif; ?>
    7067   
     
    105102</div>
    106103<div style="clear: both;"></div>
     104   
     105<?php
     106if(!$j15 && $accessSliderEdit && $generatorParams->get('enabled', null) !== null):
     107?>
     108<h2>Generator</h2>
     109<div class="smartslider-button-wrap">
     110    <div class="smartslider-button smartslider-back smartslider-button-grey smartslider-button-blue-active smartslider-icon-container">
     111        <a href="<?php echo $this->route('controller=sliders&view=sliders_generator&action=generatorstart&sliderid=' . $sliderid); ?>" class="smartslider-button-link"><span class="smartslider-icon smartslider-action-icon smartslider-action-icon-generator"></span><?php echo NextendText::_('Change source'); ?></a>
     112    </div>
     113    <div class="smartslider-button smartslider-back smartslider-button-grey smartslider-button-blue-active smartslider-icon-container">
     114        <a href="<?php echo $this->route('controller=sliders&view=sliders_generator&action=generatorsettings&sliderid=' . $sliderid); ?>" class="smartslider-button-link"><span class="smartslider-icon smartslider-action-icon smartslider-action-icon-generator-settings"></span><?php echo NextendText::_('Settings'); ?></a>
     115    </div>
     116    <div class="smartslider-button smartslider-back smartslider-button-grey smartslider-button-blue-active smartslider-icon-container">
     117        <a href="<?php echo $this->route('controller=sliders&view=sliders_generator&action=generatoredit&sliderid=' . $sliderid); ?>" class="smartslider-button-link"><span class="smartslider-icon smartslider-action-icon smartslider-action-icon-generator-edit-layout"></span><?php echo NextendText::_('Edit layout'); ?></a>
     118    </div>
     119   
     120    <?php if ($generatorParams->get('enabled', 0)): ?>
     121    <div class="smartslider-button smartslider-back smartslider-button-grey smartslider-button-blue-active smartslider-icon-container">
     122        <a href="<?php echo $this->route('controller=sliders&view=sliders_slider&action=changedynamiclayout&sliderid=' . $sliderid); ?>" class="smartslider-button-link"><span class="smartslider-icon smartslider-action-icon smartslider-action-icon-generator-layout"></span><?php echo NextendText::_('Change layout'); ?></a>
     123    </div>
     124    <?php endif; ?>
     125</div>
     126<div style="clear: both;"></div>
     127<?php endif; ?>
    107128
    108129<h2>Publish slider</h2>
  • smart-slider-2/trunk/library/smartslider/admin/views/sliders_slider/tpl/fullwordpress.php

    r856428 r874573  
    1818<form method="post" action="" id="smartslider-form">             
    1919    <div class="nextend-form" style="background: #EEF3F8;">
    20     <h2><?php echo NextendText::_('Buy_full_version'); ?></h2>
    21     <div class="ni wrapper">       
    22         <p><?php echo NextendText::_('We_are_very_happy_that_you_tried_out_our_free_version_of_Smart_Slider_2_We_hope_you_have_enjoyed_the_possibilities_also_you_are_convinced_how_good_is_Smart_Slider_2_To_honor_the_effort_that_you_tried_out_our_plugin_we_would_like_to_give_you_a_10_off_coupon_for_Smart_Slider_2_FULL'); ?></p>
    23         <h3 style="float: left; margin-top: 15px;"><?php echo NextendText::_('10_off_coupon_code_TRIAL'); ?></h3>
    24         <p><a class="button g" style="margin: 13px 0 10px 20px;" target="_blank" href="http://www.nextendweb.com/smart-slider/#pricing"><?php echo NextendText::_('Buy_it_now'); ?></a></p>
     20        <h2><?php echo NextendText::_('Buy_full_version'); ?></h2>
     21        <div class="ni wrapper">       
     22            <p><?php echo NextendText::_('We_are_very_happy_that_you_tried_out_our_free_version_of_Smart_Slider_2_We_hope_you_have_enjoyed_the_possibilities_also_you_are_convinced_how_good_is_Smart_Slider_2_To_honor_the_effort_that_you_tried_out_our_plugin_we_would_like_to_give_you_a_10_off_coupon_for_Smart_Slider_2_FULL'); ?></p>
     23            <h3 style="float: left; margin-top: 15px;"><?php echo NextendText::_('10_off_coupon_code_TRIAL'); ?></h3>
     24            <p><a class="button g" style="margin: 13px 0 10px 20px;" target="_blank" href="http://www.nextendweb.com/smart-slider/#pricing"><?php echo NextendText::_('Buy_it_now'); ?></a></p>
    2525
    2626
    27         <h3><?php echo NextendText::_('Why_should_I_upgrade_to_FULL_version_Because_you_get_all'); ?></h3>
    28         <ul>
    29         <li><?php echo NextendText::_('4_slider_types'); ?></li>
    30         <li><?php echo NextendText::_('extra_main_and_background_animations'); ?></li>
    31         <li><?php echo NextendText::_('20_layer_animations'); ?></li>
    32         <li><?php echo NextendText::_('12_items_to_build_better_sliders'); ?></li>
    33         <li><?php echo NextendText::_('8_widgets_to_create_thumbnails_galleries_bars_etc'); ?></li>
    34         <li><?php echo NextendText::_('12_items_to_build_better_sliders'); ?></li>
    35         <li><?php echo NextendText::_('10_slider_generators'); ?></li>
    36         <li><?php echo NextendText::_('also_a_lot_of_extra_feature_and_option'); ?></li>
    37         <li><?php echo NextendText::_('and_last_but_not_least_personal_support'); ?></li>
    38         </ul>
    39         </p>
     27            <h3><?php echo NextendText::_('Why_should_I_upgrade_to_FULL_version_Because_you_get_all'); ?></h3>
     28            <ul>
     29                <li><?php echo NextendText::_('4_slider_types'); ?></li>
     30                <li><?php echo NextendText::_('extra_main_and_background_animations'); ?></li>
     31                <li><?php echo NextendText::_('20_layer_animations'); ?></li>
     32                <li><?php echo NextendText::_('12_items_to_build_better_sliders'); ?></li>
     33                <li><?php echo NextendText::_('8_widgets_to_create_thumbnails_galleries_bars_etc'); ?></li>
     34                <li><?php echo NextendText::_('12_items_to_build_better_sliders'); ?></li>
     35                <li><?php echo NextendText::_('10_slider_generators'); ?></li>
     36                <li><?php echo NextendText::_('also_a_lot_of_extra_feature_and_option'); ?></li>
     37                <li><?php echo NextendText::_('and_last_but_not_least_personal_support'); ?></li>
     38            </ul>
     39            </p>
    4040
    41         <h3><?php echo NextendText::_('Slider_features_and_limitations_in_free_version'); ?></h3>
     41            <h3><?php echo NextendText::_('Slider_features_and_limitations_in_free_version'); ?></h3>
    4242
    43         <p><?php echo NextendText::_('With_this_free_version_your_will_be_able_to_create_new_responsive_sliders_with_simple_slider_type_The_created_slider_main_animation_is_limited_to_the_horizontal_animation_but_also_one_special_background_animation_is_available_for_testing_The_autoplay_function_of_the_Smart_Slider_2_is_only_available_in_the_FULL_version_Free_version_will_allow_you_to_use_arrow_and_bullet_widgets_on_your_slider_the_arrows_are_limited_3_different_arrows_available_in_free_the_full_contains_more_than_35_different_colorizable_arrows_the_bullets_are_not_limited_in_free'); ?></p>
     43            <p><?php echo NextendText::_('With_this_free_version_your_will_be_able_to_create_new_responsive_sliders_with_simple_slider_type_The_created_slider_main_animation_is_limited_to_the_horizontal_animation_but_also_one_special_background_animation_is_available_for_testing_The_autoplay_function_of_the_Smart_Slider_2_is_only_available_in_the_FULL_version_Free_version_will_allow_you_to_use_arrow_and_bullet_widgets_on_your_slider_the_arrows_are_limited_3_different_arrows_available_in_free_the_full_contains_more_than_35_different_colorizable_arrows_the_bullets_are_not_limited_in_free'); ?></p>
    4444
    45         <h3><?php echo NextendText::_('Slide_features_and_limitations_in_free_version'); ?></h3>
     45            <h3><?php echo NextendText::_('Slide_features_and_limitations_in_free_version'); ?></h3>
    4646
    47         <p><?php echo NextendText::_('This_is_the_most_important_part_of_the_Smart_Slider_2_so_we_have_not_limit_any_action_which_related_to_the_user_interaction_on_the_backend_You_can_change_the_title_of_your_slides_and_also_you_can_add_slide_background_images_and_thumbnail_images_In_layer_mode_with_the_free_version_you_can_use_two_layer_animations_Slide_down_and_Roll_in_the_full_version_contains_more_than_20_layer_animations_and_every_other_layer_related_setting_is_available_In_item_mode_with_the_free_version_you_can_use_two_items_Heading_and_Button_items_allowed_in_free_mode_which_give_you_some_experience_with_the_live_slide_editor_Also_in_free_mode_every_slide_contains_our_logo_on_the_bottom_left'); ?></p>
     47            <p><?php echo NextendText::_('This_is_the_most_important_part_of_the_Smart_Slider_2_so_we_have_not_limit_any_action_which_related_to_the_user_interaction_on_the_backend_You_can_change_the_title_of_your_slides_and_also_you_can_add_slide_background_images_and_thumbnail_images_In_layer_mode_with_the_free_version_you_can_use_two_layer_animations_Slide_down_and_Roll_in_the_full_version_contains_more_than_20_layer_animations_and_every_other_layer_related_setting_is_available_In_item_mode_with_the_free_version_you_can_use_two_items_Heading_and_Button_items_allowed_in_free_mode_which_give_you_some_experience_with_the_live_slide_editor_Also_in_free_mode_every_slide_contains_our_logo_on_the_bottom_left'); ?></p>
    4848
    49         <h3><?php echo NextendText::_('Generator_features_and_limitations_in_free_version'); ?></h3>
     49            <h3><?php echo NextendText::_('Generator_features_and_limitations_in_free_version'); ?></h3>
    5050
    51         <p><?php echo NextendText::_('The_free_version_comes_with_the_image_from_folder_generator_You_will_need_to_select_source_folder_which_contains_your_images_and_Smart_Slider_2_will_automatically_create_the_slides_for_you_The_full_version_comes_with_other_integrations_WordPress_posts_and_also_with_social_generators_Facebook_Twitter_Instagram_Flickr_YouTube'); ?></p>
     51            <p><?php echo NextendText::_('The_free_version_comes_with_the_image_from_folder_generator_You_will_need_to_select_source_folder_which_contains_your_images_and_Smart_Slider_2_will_automatically_create_the_slides_for_you_The_full_version_comes_with_other_integrations_WordPress_posts_and_also_with_social_generators_Facebook_Twitter_Instagram_Flickr_YouTube'); ?></p>
    5252
    53         <h3><?php echo NextendText::_('What_comes_with_free_version'); ?></h3>
     53            <h3><?php echo NextendText::_('What_comes_with_free_version'); ?></h3>
    5454
    55         <p><?php echo NextendText::_('If_you_are_trying_the_free_version_you_get_access_to_our_top_notch_support_If_you_experience_any_kind_of_problem_feel_free_to'); ?> <a href="http://www.nextendweb.com/smart-slider#support" target="_blank"><?php echo NextendText::_('contact_with_our_support_staff'); ?></a>. <?php echo NextendText::_('We_will_try_to_resolve_your_problem_as_soon_as_possible'); ?></p>
    56         <p>
    57         <?php echo NextendText::_('You_can_get_20_off_coupon_code_for_the_full_Smart_Slider_2_if_you_find_a_problem_and_report_us_The_todo_list_to_get_the_coupon_code'); ?>
    58         <ul>
    59         <li><?php echo NextendText::_('Describe_the_bug_to'); ?> <a href="http://www.nextendweb.com/smart-slider#support" target="_blank"><?php echo NextendText::_('the_support_staff'); ?></a></li>
    60         <li><?php echo NextendText::_('Cooperate_in_the_resolution_of_the_problem'); ?></li>
    61         </ul>
    62         </p>
     55            <p><?php echo NextendText::_('If_you_are_trying_the_free_version_you_get_access_to_our_top_notch_support_If_you_experience_any_kind_of_problem_feel_free_to'); ?> <a href="http://www.nextendweb.com/smart-slider#support" target="_blank"><?php echo NextendText::_('contact_with_our_support_staff'); ?></a>. <?php echo NextendText::_('We_will_try_to_resolve_your_problem_as_soon_as_possible'); ?></p>
     56            <p>
     57                <?php echo NextendText::_('You_can_get_20_off_coupon_code_for_the_full_Smart_Slider_2_if_you_find_a_problem_and_report_us_The_todo_list_to_get_the_coupon_code'); ?>
     58            <ul>
     59                <li><?php echo NextendText::_('Describe_the_bug_to'); ?> <a href="http://www.nextendweb.com/smart-slider#support" target="_blank"><?php echo NextendText::_('the_support_staff'); ?></a></li>
     60                <li><?php echo NextendText::_('Cooperate_in_the_resolution_of_the_problem'); ?></li>
     61            </ul>
     62            </p>
    6363
    64         <h3><?php echo NextendText::_('Just_to_know'); ?></h3>
    65         <p>
    66         <?php echo NextendText::_('Smart_Slider_2_is_a_free_demo_version_for_our_commercial_Smart_Slider_2'); ?> <strong><?php echo NextendText::_('Smart_Slider_2_free_is_NOT_made_to_use_on_production_site_it_is_tech_demo_which_allows_you_to_try_most_but_not_all_of_the_features_of_Smart_Slider_2_FULL'); ?></strong> <?php echo NextendText::_('This_free_version_helps_you_to_try_it_on_your_system_and_see_how_it_works_and_see_how_much_possibilities_are_in_the_full_version_of_Smart_Slider_2'); ?>
    67         </p>
    68         <p>
    69         <?php echo NextendText::_('Smart_Slider_2_does'); ?>
    70         <ul>
    71         <li><?php echo NextendText::_('NOT_create_home_calls'); ?></li>
    72         <li><?php echo NextendText::_('NOT_track_anything_on_your_site'); ?></li>
    73         <li><?php echo NextendText::_('NOT_mess_up_your_site'); ?></li>
    74         <li><?php echo NextendText::_('what_this_documentation_page_describes_nothing_more_and_nothing_less_For_full_functionality_you_will_still_need_the_commercial'); ?> <a href="http://www.nextendweb.com/smart-slider/#pricing"><?php echo NextendText::_('Smart_Slider_2'); ?></a>.</li>
    75         </ul>
    76         </p>
    77     </div>
     64            <h3><?php echo NextendText::_('Just_to_know'); ?></h3>
     65            <p>
     66                <?php echo NextendText::_('Smart_Slider_2_is_a_free_demo_version_for_our_commercial_Smart_Slider_2'); ?> <strong>
     67            </p>
     68            <p>
     69                <?php echo NextendText::_('Smart_Slider_2_does'); ?>
     70            <ul>
     71                <li><?php echo NextendText::_('NOT_create_home_calls'); ?></li>
     72                <li><?php echo NextendText::_('NOT_track_anything_on_your_site'); ?></li>
     73                <li><?php echo NextendText::_('NOT_mess_up_your_site'); ?></li>
     74                <li><?php echo NextendText::_('what_this_documentation_page_describes_nothing_more_and_nothing_less_For_full_functionality_you_will_still_need_the_commercial'); ?> <a href="http://www.nextendweb.com/smart-slider/#pricing"><?php echo NextendText::_('Smart_Slider_2'); ?></a>.</li>
     75            </ul>
     76            </p>
     77        </div>
    7878</form>
    7979
  • smart-slider-2/trunk/library/smartslider/assets/admin/css/create.css

    r856428 r874573  
    5454    border-bottom-left-radius: 3px;
    5555}
     56
     57.ni .smartslider-dynamic-thumb.selected,
     58.ni .smartslider-dynamic-thumb.notselected{
     59    cursor: pointer;
     60    width: 200px;
     61    margin: 10px 10px 30px;
     62    line-height: 0;
     63}
     64
     65.ni .smartslider-dynamic-thumb.selected img,
     66.ni .smartslider-dynamic-thumb.notselected img{
     67    margin: 0;
     68    width: 100%;
     69}
     70
     71.ni .smartslider-dynamic-thumb.selected div,
     72.ni .smartslider-dynamic-thumb.notselected div{
     73    top: 100%;;
     74    /*bottom: 0;*/
     75    height: auto;
     76}
     77
     78.ni .smartslider-dynamic-thumb.selected div{
     79    background: #000;
     80    background: RGBA(0,0,0,0.65);
     81    background: #1D6ADD;
     82    background-image: -ms-linear-gradient(top, #2A99E7 0%, #1D6ADD 100%);
     83    background-image: -moz-linear-gradient(top, #2A99E7 0%, #1D6ADD 100%);
     84    background-image: -o-linear-gradient(top, #2A99E7 0%, #4A91D6ADD901 100%);
     85    background-image: -webkit-gradient(linear, left top, left bottom, color-stop(0, #2A99E7), color-stop(1, #1D6ADD));
     86    background-image: -webkit-linear-gradient(top, #2A99E7 0%, #1D6ADD 100%);
     87    background-image: linear-gradient(to bottom, #2A99E7 0%, #1D6ADD 100%);
     88}
  • smart-slider-2/trunk/library/smartslider/assets/admin/css/createquick.css

    r856428 r874573  
    11#selected-images-container{
    22    overflow: visible;
     3    margin-bottom: 50px;
    34}
    45
    56#smartslider-admin #selected-images{
    67    margin: 5px 5px 5px 180px;
    7     float: left;
    88    padding: 0;
    99    position: relative;
     
    1414#selected-images-container li{
    1515    position: relative;
    16     float: left;
    1716    display: block;
    18     height: 100px;
    19     width: 162px;
    20     margin: 5px;
     17    /*height: 130px;*/
     18    /*width: 100%;*/
     19    margin: 15px;
    2120    padding: 0;
    2221    list-style: none;
    2322    vertical-align: middle;
    2423    overflow: hidden;
    25     cursor: move;
    2624    border: 2px solid #dadde0;
    2725}
     
    3230
    3331#selected-images img{
    34     width: 100%;
     32    cursor: move;
     33    width: 20%;
     34    float: left;
     35}
     36
     37#selected-images .field-container{
     38    float: left;
     39    margin: 0 20px;
     40    position: relative;
     41    z-index:10;
    3542}
    3643
     
    6572
    6673#smartslider-admin .add-image .wp-media-buttons-icon {
    67     background: url("../../../../../../../../wp-admin/images/media-button.png") no-repeat scroll left top rgba(0, 0, 0, 0);
     74    background: url("../images/media-button.png") no-repeat scroll left top rgba(0, 0, 0, 0);
    6875    display: inline-block;
    6976    height: 16px;
  • smart-slider-2/trunk/library/smartslider/assets/admin/css/icons.css

    r856428 r874573  
    114114    opacity: 1;
    115115    background-position: -44px 0;
     116    cursor: move;
    116117}
    117118
     
    287288    background-position: center -360px;
    288289}
     290
     291.smartslider-action-icon-generator-edit-layout{
     292    background-position: center -400px;
     293}
     294
     295.smartslider-action-icon-generator-settings{
     296    background-position: center -440px;
     297}
  • smart-slider-2/trunk/library/smartslider/assets/admin/css/toolbar.css

    r818184 r874573  
    201201    background-image: linear-gradient(to bottom, #bb6843 0%, #9f3624 100%);
    202202}
     203
     204.smartslider-toolbar .smartslider-toolbar-controllers .smartslider-support{
     205    position: relative;
     206}
     207
     208.smartslider-toolbar .smartslider-toolbar-controllers .smartslider-support .nextend-possibleproblems{
     209  position: absolute;
     210  top: 5px;
     211  right: 5px;
     212  width: 19px;
     213  height: 19px;
     214  border-radius: 50%;
     215  background: #BB533B;
     216  text-align: center;
     217}
  • smart-slider-2/trunk/library/smartslider/assets/admin/js/itemparser.js

    r856428 r874573  
    44            var o = {};
    55            o[name] = data;
    6             o[name+'_esc'] = data.replace(/"/g, '&quot;').replace(/'/g, '&apos;');
     6            //o[name+'_esc'] = data.replace(/"/g, '&quot;').replace(/'/g, '&apos;');
    77            return o;
    88        },
  • smart-slider-2/trunk/library/smartslider/assets/admin/js/slide.item.js

    r856428 r874573  
    77            this.layers = layers;
    88            this.slide = layers.slide;
     9           
     10            if(typeof window.samplegeneratordata !== 'undefined'){
     11                this.fillItemWithSample = this._fillItemWithSample;
     12            }
    913
    1014            this.activeItem = $({});
     
    169173                if (next.length === 1) {
    170174                    next.data('ssoption').before(ui.item.data('ssoption'));
    171                 } else {
     175                } else if(ui.item.parent().length){
    172176                    ui.item.closest('.smart-slider-layer').data('ssoptgroup').append(ui.item.data('ssoption'));
     177                }else{
     178                    ui.item.remove();
    173179                }
    174180            }
     
    290296        },
    291297        updateCurrentItem: function () {
    292             var data = {},
     298            var _this = this,
     299                data = {},
     300                odata = {},
    293301                re = new RegExp('item_' + this.activeItemType + "\\[(.*?)\\]", ""),
    294302                form = this.form[this.activeItemType],
     
    304312                    name = $el.attr('name').match(re)[1];
    305313                data[name] = $el.val();
     314                odata[name] = data[name];
     315                data[name] = _this.fillItemWithSample(data[name]);
    306316                var _data = parser.parse(name, data[name]);
    307317                for (var k in _data) {
     
    314324            var helpers = this.activeItem.find('.ui-helper');
    315325            $('<div />').append(helpers);
    316 
    317326            this.activeItem.html(parser.render($(html
    318327                .replace(/\{\{id\}\}/g, "nextend-smart-slider-0")
    319                 .replace(/\{\{uuid\}\}/g, $.fn.uid())
    320                 .replace(/\\"/g, "&quot;")
    321                 .replace(/\\'/g, "&#039;")), data));
     328                .replace(/\{\{uuid\}\}/g, $.fn.uid())), data));
    322329            this.activeItem.append(helpers);
    323             this.activeItem.ssdata('itemvalues', JSON.stringify(data));
     330            this.activeItem.ssdata('itemvalues', JSON.stringify(odata));
     331        },
     332        fillItemWithSample: function(value){
     333            return value;
     334        },
     335        _fillItemWithSample: function(value){
     336            try{
     337                return value.replace(/(\{nextend\|\|([a-zA-Z0-9,\|\|]+)\()?(\{\|(.*?)\-([0-9]+)\|\})(\)\})?/g, function(){
     338                    var i = parseInt(arguments[5])-1;
     339                    if(typeof window.samplegeneratordata[i] !== 'undefined' && typeof window.samplegeneratordata[i][arguments[4]] !== 'undefined'){
     340                        var s = window.samplegeneratordata[i][arguments[4]];
     341                        if(arguments[1] == ""){
     342                            return s;
     343                        }else{
     344                            var fns = arguments[2].split('||');
     345                            for (var i = fns.length - 1; i >= 0; i--) {
     346                                var fn = fns[i].split(',');
     347                                switch (fn[0]) {
     348                                    case 'cleanhtml':
     349                                        s = strip_tags(s, '<p><a><b><br><br/><i>');
     350                                        break;
     351                                    case 'removehtml':
     352                                        s = strip_tags(s);
     353                                        break;
     354                                    case 'splitbychars':
     355                                        s = s.substr(fn[1], fn[2])
     356                                        break;
     357                                    case 'splitbywords':
     358                                        var len = s.length;
     359                                        var pos = fn[2] > len ? len : s.indexOf(' ', fn[2]);
     360                                        if(pos == -1) pos = len;
     361                                        s = s.substr(0, pos);
     362                                        break;
     363                                    case 'findimage':
     364                                        var index = typeof fn[1] != 'undefined' ? parseInt(fn[1]) - 1 : 0;
     365                                        var re = /<img.*?src=[\'"](.*?)[\'"][^>]*>/gi,
     366                                            r = [],
     367                                            tmp = null;
     368                                        while(tmp = re.exec(s)){
     369                                            r.push(tmp[1]);
     370                                        };
     371                                        if (r.length && typeof r[index] != 'undefined') {
     372                                            s = r[index];
     373                                        } else {
     374                                            s = '';
     375                                        }
     376                                        break;
     377                   
     378                                }
     379                            }
     380                            // Validate not valid HTML
     381                            var nodes = njQuery.parseHTML('<div>'+s+'</div>', document, true);
     382                            return njQuery(nodes).html();
     383                        }
     384                    }
     385                    return arguments[0];
     386                });
     387            }catch(e){
     388                return value;
     389            }
    324390        }
    325391    });
    326392})(njQuery, window);
     393
     394function strip_tags(input, allowed) {
     395  allowed = (((allowed || '') + '')
     396    .toLowerCase()
     397    .match(/<[a-z][a-z0-9]*>/g) || [])
     398    .join(''); // making sure the allowed arg is a string containing only tags in lowercase (<a><b><c>)
     399  var tags = /<\/?([a-z][a-z0-9]*)\b[^>]*>/gi,
     400    commentsAndPhpTags = /<!--[\s\S]*?-->|<\?(?:php)?[\s\S]*?\?>/gi;
     401  return input.replace(commentsAndPhpTags, '')
     402    .replace(tags, function($0, $1) {
     403      return allowed.indexOf('<' + $1.toLowerCase() + '>') > -1 ? $0 : '';
     404    });
     405}
  • smart-slider-2/trunk/library/smartslider/assets/admin/js/slide.js

    r856428 r874573  
    5959            this.$slider = $('#' + id);
    6060           
    61             this.initBG();
    62            
    6361            this.$slide = this.$slider.find('.smart-slider-canvas').eq(active);
    6462            this.editAndList();
    6563            this.ssadminLayers = scope.ssadminLayers = new ssadminLayersClass(this.$slide, this, layouturl);
     64           
     65            this.initBG();
    6666
    6767            $('#smartslider-form').submit(function () {
     
    9393                }else{
    9494                    bgimage.css('display', 'block');
    95                     bgimage.attr('src', s[1]);
     95                    bgimage.attr('src', $this.ssadminLayers.items.fillItemWithSample(s[1]));
    9696                }
    9797                if(s[0].substr(6,8) == '00'){
     
    101101                    canvas.css('background', hex2rgba(s[0]));
    102102                }
    103             });
     103            }).trigger('change');;
    104104        },
    105105        initTopbar: function () {
  • smart-slider-2/trunk/library/smartslider/assets/admin/js/slide.layer.js

    r859428 r874573  
    6363            this.initAdvancedView();
    6464            this.initDeviceView();
     65           
     66            window.getSlide = function(){
     67               return $this.getHTML.call($this);
     68            };
    6569
    6670        },
     
    476480            slide.appendTo($('body'));
    477481            slide.children().removeAttr('aria-disabled');
     482           
     483            var items = slide.find('.smart-slider-items');
     484            items.each(function(){
     485                var $this = $(this);
     486                var shortcode = '[';
     487                shortcode+=$this.data('item');
     488                shortcode+=' values="'+Base64.encode(JSON.stringify($this.data('itemvalues')))+'"';
     489                shortcode+=']';
     490                $this.replaceWith(shortcode);
     491            });
     492           
    478493            var html = slide.html();
    479494            slide.remove();
  • smart-slider-2/trunk/library/smartslider/assets/admin/js/slide.layout.js

    r856428 r874573  
    2424                e.preventDefault();
    2525                if ($this.slide[0].ssanimation === 0) {
    26                     var html = $this.layers.getHTML(),
    27                         base64HTML = Base64.encode(html),
     26                    var base64HTML = Base64.encode($this.layers.getHTML()),
    2827                        title = $('#slidetitle').val();
    2928                    if (title == '') {
     
    4342                            }
    4443                        },
    45                         success: function () {
     44                        success: function (layoutdata) {
    4645                            var dts = $dl.find('> dt');
    4746                            var dt = $('<dt class="'+((dts.length + 1) % 2 ? 'odd' : 'even')+
     
    5049                                '<div class="smartslider-layout-container"></div>' +
    5150                            '</dt>');
    52                             dt.find('.smartslider-layout-container').html(html);
     51                            dt.find('.smartslider-layout-container').html(layoutdata);
    5352                            dt.appendTo($dl);
    5453                            dt.find('.smartslider-load-layout').on('click', function (e) {
  • smart-slider-2/trunk/library/smartslider/assets/js/mainslider.js

    r857895 r874573  
    5353                h: 0
    5454            };
     55            this.ssplay = false;
    5556             
    5657            var _this = this;
     
    8081
    8182            this.slideList = $('.smart-slider-canvas', $el);
    82 
     83           
     84            this._afterInitCheck();
     85        },
     86        _afterInitCheck: function(){
     87            if(this.$slider.parent().is(':visible')){
     88                this.afterInit();
     89            }else{
     90                var _this = this;
     91                setTimeout(function(){
     92                    _this._afterInitCheck();
     93                }, 500);
     94            }
     95        },
     96        afterInit: function(){
     97            var _this = this;
     98           
    8399            this.slideDimension.w = this.slideList.width();
    84100            this.slideDimension.h = this.slideList.height();
     
    111127            }
    112128           
    113             this.slidebgList = $('.nextend-slide-bg', $el);
     129            this.slidebgList = $('.nextend-slide-bg', this.$slider);
    114130            this.slidebgList.width(this.slideDimension.w);
    115131
    116             this._active = this.slideList.index($('.' + this._parent.slideActive, $el));
     132            this._active = this.slideList.index($('.' + this._parent.slideActive, this.$slider));
    117133           
    118134            this.sizeInited();
     
    188204                        });
    189205                    }
     206                    if(typeof jQuery != "undefined" && typeof jQuery.fn.on != "undefined"){
     207                        jQuery(window).on('responsive', function () {
     208                            _this.onResize();
     209                        });
     210                    }
     211                    if(typeof jQuery.fn.fitText != 'undefined') jQuery(window).trigger('resize');
    190212                } else {
    191213                    this.storeDefaults();
     
    300322            }
    301323           
     324           
    302325            for (var k in this.variableEls) {
    303326                for(var i = 0; i < this.variableEls[k].length;i++){
    304327                    var el = this.variableEls[k].eq(i);
    305                     el.css(k, eval(el.data('ss'+k))+'px');
     328                    try{
     329                        el.css(k, eval(el.data('ss'+k))+'px');
     330                    }catch(e){
     331                        alert('Error in widget(#'+el.attr('id')+') position variable: '+e.message);
     332                    }
    306333                }
    307334            }
     
    357384            var delayBetween = 500,
    358385                last = 0;
    359             this.$slider.find('> div').eq(0).swipe({
    360                 tap: function(event, target) {
    361                     var prevent = false;
    362                     var a = null;
    363                     if(target.tagName == 'A') a = $(target);
    364                     else a = $(target).closest('a');
    365                     if(a.length){
    366                         window.open(a.attr('href'),a.attr('target'));
    367                         prevent = true;
    368                     }
    369                    
    370                     if(!prevent){
    371                         var act = _this.slideList.eq(_this._active).trigger('click');
    372                         if(typeof act.attr("onclick") != 'undefined') prevent = true;
    373                     }
    374                     if(prevent){
    375                         event.preventDefault();
    376                         event.stopPropagation();
    377                     }
    378                 },
    379                 swipe: function (event, direction, distance, duration, fingerCount) {
    380                     var c = Date.now();
    381                     if(last < c - delayBetween){
    382                         if (mode == 'horizontal') {
    383                             if (direction == 'right') {
    384                                 _this.previous();
    385                             } else if (direction == 'left') {
    386                                 _this.next();
     386               
     387            if(typeof jQuery != 'undefined' && typeof jQuery.UIkit != 'undefined'){
     388                var el = this.$slider.find('> div').eq(0);
     389                if (mode == 'horizontal') {
     390                    el.on('swipeRight', function(){
     391                        _this.previous();
     392                    }).on('swipeLeft', function(){
     393                        _this.next();
     394                    });
     395                } else if (mode == 'vertical') {
     396                    el.on('swipeDown', function(){
     397                        _this.previous();
     398                    }).on('swipeUp', function(){
     399                        _this.next();
     400                    });
     401                }
     402                el.on('tap', function(e){
     403                        var target = e.target;
     404                        var prevent = false;
     405                        var a = null;
     406                        if(target.tagName == 'A') a = $(target);
     407                        else a = $(target).closest('a');
     408                        if(a.length){
     409                            window.open(a.attr('href'),a.attr('target'));
     410                            prevent = true;
     411                        }
     412                       
     413                        if(!prevent){
     414                            var act = _this.slideList.eq(_this._active).trigger('click');
     415                            if(typeof act.attr("onclick") != 'undefined') prevent = true;
     416                        }
     417                        if(prevent){
     418                            event.preventDefault();
     419                            event.stopPropagation();
     420                        }
     421                });
     422            }else{
     423                this.$slider.find('> div').eq(0).swipe({
     424                    tap: function(event, target) {
     425                        var prevent = false;
     426                        var a = null;
     427                        if(target.tagName == 'A') a = $(target);
     428                        else a = $(target).closest('a');
     429                        if(a.length){
     430                            window.open(a.attr('href'),a.attr('target'));
     431                            prevent = true;
     432                        }
     433                       
     434                        if(!prevent){
     435                            var act = _this.slideList.eq(_this._active).trigger('click');
     436                            if(typeof act.attr("onclick") != 'undefined') prevent = true;
     437                        }
     438                        if(prevent){
     439                            event.preventDefault();
     440                            event.stopPropagation();
     441                        }
     442                    },
     443                    swipe: function (event, direction, distance, duration, fingerCount) {
     444                        var c = Date.now();
     445                        if(last < c - delayBetween){
     446                            if (mode == 'horizontal') {
     447                                if (direction == 'right') {
     448                                    _this.previous();
     449                                } else if (direction == 'left') {
     450                                    _this.next();
     451                                }
     452                            } else if (mode == 'vertical') {
     453                                if (direction == 'down') {
     454                                    _this.previous();
     455                                } else if (direction == 'up') {
     456                                    _this.next();
     457                                }
    387458                            }
    388                         } else if (mode == 'vertical') {
    389                             if (direction == 'down') {
    390                                 _this.previous();
    391                             } else if (direction == 'up') {
    392                                 _this.next();
    393                             }
    394                         }
    395                         last = c;
    396                     }
    397                 },
    398                 fallbackToMouseEvents: false,
    399                 allowPageScroll: (mode == 'horizontal' ? 'vertical' : 'horizontal')
    400             });
     459                            last = c;
     460                        }
     461                    },
     462                    fallbackToMouseEvents: false,
     463                    allowPageScroll: (mode == 'horizontal' ? 'vertical' : 'horizontal')
     464                });
     465            }
    401466           
    402467            if(typeof window.MSGesture !== 'undefined'){
     
    516581                this.slideList.eq(this._active).trigger('ssanimatestop');
    517582            }
     583           
     584            this.ssplay = false;   
    518585
    519586            var _this = this;
     
    659726            if (autoplay.stopautoplay.slideplaying) {
    660727                this.$slider.on('ssplaystarted', function () {
     728                    _this.ssplay = true;
    661729                    _this.pauseAutoPlay();
    662730                });
     
    664732            if (autoplay.resumeautoplay.mouseleave) {
    665733                this.$slider.on('mouseleave', function () {
    666                     if (!_this.autoplayTimer)
    667                         _this.reStartAutoPlay();
    668                 });
    669             }
     734                    if (!_this.autoplayTimer){
     735                        if(!_this.ssplay){
     736                            _this.reStartAutoPlay();
     737                        }
     738                    }
     739                });
     740            }
     741            this.$slider.on('ssplayended', function () {
     742                _this.ssplay = false;
     743            });
    670744            if (autoplay.resumeautoplay.slideplayed) {
    671745                this.$slider.on('ssplayended', function () {
  • smart-slider-2/trunk/library/smartslider/assets/less/clear.less

    r856428 r874573  
    44  position: relative;
    55 
    6   *,
     6  *{
     7      font-size: inherit;
     8      line-height: inherit;
     9  } 
     10 
     11  *,
    712  *:before,
    813  *:after  {
  • smart-slider-2/trunk/library/smartslider/generator.php

    r856428 r874573  
    2424        $this->_sliderid = $sliderid;
    2525
    26         if (class_exists('Tidy')) {
     26        if (class_exists('Tidy', false)) {
    2727            $this->_tidy = true;
    2828        }
     
    4040    }
    4141
    42     function initDatasource($source) {
     42    function initDatasource($source, $forcedGeneratorObj = false) {
    4343        $tmp = $this->_generator->toArray();
    4444        unset($tmp['generateslides']);
     
    7777            );
    7878            NextendSmartSliderStorage::set('generator'.$this->_sliderid, json_encode($cached));
     79            if($forcedGeneratorObj) return $generator;
    7980        }else{
    8081            $this->_datasource = $cached['data'];
     82            if($forcedGeneratorObj){
     83                $v = explode('_', $source);
     84                require_once($this->_list[$v[0]][$source][1] . 'generator.php');
     85       
     86                $class = 'NextendGenerator' . $source;
     87                $generator = new $class($this->_generator);
     88               
     89                return $generator;
     90            }
    8191        }
    8292    }
     
    150160    }
    151161
    152     function replaceText($text) {
     162    function replaceText($text, $parseItems = true) {
     163        if($parseItems) $text = preg_replace_callback("/\[([a-zA-Z]+) values=\"(.*?)\"]/", array($this, 'onParseItem'), $text);
    153164        return preg_replace_callback('/(\{nextend\|\|([a-zA-Z0-9,\|\|]+)\()?(\{\|(.*?)\-([0-9]+)\|\})(\)\})?/msS', array($this, 'onFunctionData'), $text);
    154165    }
     
    160171    function onData($matches) {
    161172        return $this->getData(intval($matches[5]) - 1, $matches[4], $matches[3]);
     173    }
     174   
     175    function onParseItem($matches){
     176        $itemdata = json_decode(base64_decode($matches[2]), true);
     177        return '['.$matches[1].' values="'.base64_encode(json_encode($this->replaceText($itemdata, false))).'"]';
    162178    }
    163179
  • smart-slider-2/trunk/library/smartslider/languages/en/common.ini

    r856428 r874573  
    636636NEXTEND_Drop_the_item_into_a_layer = "Drop the item into a layer"
    637637NEXTEND_Item_dropped_into_the_layer = "Item dropped into the layer"
    638 NEXTEND_The_editor_was_tested_under_Internet_Explorer_10_Firefox_and_Chrome_Please_use_one_of_the_tested_browser = "The editor was tested under Internet Explorer 10, Firefox and Chrome. Please use one of the tested browser!"
     638NEXTEND_The_editor_was_tested_under_Internet_Explorer_10_Firefox_and_Chrome_Please_use_one_of_the_tested_browser = "The editor was tested on Internet Explorer 10/11, Firefox, Safari (OSX) and Chrome. Please use one of the tested browser!"
    639639NEXTEND_Playing_in_animations_edit_and_save_disabled = "Playing in animations - edit and save disabled"
    640640NEXTEND_Playing_out_animations_edit_and_save_disabled = "Playing out animations - edit and save disabled"
     
    10141014NEXTEND_High_res = "High res"
    10151015My photos = My photos
     1016Showcase slider type settings = Showcase slider type settings
  • smart-slider-2/trunk/library/smartslider/languages/fr/common.ini

    r856428 r874573  
     1NEXTEND_Layer_hidden_for_this_device_type = "Calque caché pour ce type d'appareil !"
     2NEXTEND_Hide_layer_click = "Masquer le calque - click"
    13NEXTEND_Sliders = "Sliders"
    24NEXTEND_Layouts = "Mises en page"
     
    8991NEXTEND_Shadow = "Ombre"
    9092NEXTEND_Bar = "Barre"
    91 NEXTEND_Horizontalaccordion = "Type accordéon horizontal"
     93NEXTEND_Horizontalaccordion = "Type accordeon horizontal"
    9294NEXTEND_Simple = "Type Simple"
    93 NEXTEND_Verticalaccordion = "Type accordéon vertical"
     95NEXTEND_Verticalaccordion = "Type accordeon vertical"
    9496NEXTEND_Fullpage = "Type Pleine Page"
    9597NEXTEND_Alt = "Alt"
     
    535537NEXTEND_Playlist = "Playlist"
    536538NEXTEND_Global_font = "Police globale"
     539NEXTEND_General_information = "Information générale"
     540NEXTEND_Version_Number = "Numéro de version"
     541NEXTEND_Read_the_documentation = "Lisez la documentation !"
     542NEXTEND_Write_a_support_ticket = "Écrire un ticket de support!"
    537543NEXTEND_Support = "Support"
     544NEXTEND_Documentation = "Documentation"
     545NEXTEND_Installation_General = "Installation &amp; Generalité"
     546NEXTEND_Install_instruction_for_Joomla = "Instructions pour l'installation dans Joomla"
     547NEXTEND_How_to_create_a_Smart_Slider_2_module = "Comment créer un module Smart Slider 2"
     548NEXTEND_Install_instruction_for_WordPress = "Instructions pour l'installation dans WordPress"
     549NEXTEND_System_requirements_PHP_SQL_etc = "Configuration requise (PHP, SQL, etc.)"
     550NEXTEND_Download_section_cancel_subscription = "Section de téléchargement (annuler l'abonnement)"
     551NEXTEND_Changelog_for_Smart_Slider_2 = "Changelog pour Smart Slider 2"
     552NEXTEND_Known_problems = "Problèmes connus"
     553NEXTEND_Translation = "Traduction"
     554NEXTEND_Basics = "Notions de base"
     555NEXTEND_Slider_and_widgets = "Slider et widgets"
     556NEXTEND_Slide_layers_and_items = "Diapositive &amp; calques et éléments"
     557NEXTEND_Slide_layer_animation = "Animation de diapositives &amp; calque"
     558NEXTEND_Usage = "Usage"
     559NEXTEND_Settings_in_depth = "Réglages approfondis"
     560NEXTEND_Import_and_Export = "Import et Export"
     561NEXTEND_Slider_types = "Types de Slider"
     562NEXTEND_Simple_slider_type = "Slider simple"
     563NEXTEND_Full_page_type = "Pleine page"
     564NEXTEND_Horizontal_accordion_slider_type = "Accordéon horizontal"
     565NEXTEND_Vertical_accordion_slider_type = "Accordéon vertical"
     566NEXTEND_Slider_widgets = "widgets Slider"
     567NEXTEND_More_about_widgets = "Plus d'infos sur les widgets"
     568NEXTEND_Arrows = "Flèches"
     569NEXTEND_Bullets = "Puces"
     570NEXTEND_Autoplay_button = "Lecture automatique (bouton)"
     571NEXTEND_Indicator_autoplay = "Indicateur (lecture automatique)"
     572NEXTEND_Thumbnails = "Images miniatures"
     573NEXTEND_Shadows = "Ombres"
     574NEXTEND_Caption = "Légende"
     575NEXTEND_Iframe = "Iframe"
     576NEXTEND_Paragraph = "Paragraphe"
     577NEXTEND_Generators = "Générateurs"
     578NEXTEND_K2_items = "Éléments K2"
     579NEXTEND_Cobalt_CCK = "Cobalt CCK"
     580NEXTEND_Ignite_Gallery = "Ignite Gallery"
     581NEXTEND_Phoca_Gallery = "Phoca Gallery"
     582NEXTEND_Virtuemart_2 = "Virtuemart 2"
     583NEXTEND_redSHOP = "redSHOP"
     584NEXTEND_JoomShopping = "JoomShopping"
     585NEXTEND_Extra_features = "Fonctionnalités supplémentaires"
     586NEXTEND_JavaScript_API = "JavaScript API"
     587NEXTEND_Advanced_generator_functions = "Fonctions de générateur avancées"
     588NEXTEND_Tutorial_videos = "Tutoriels vidéos"
     589NEXTEND_How_to_start = "Comment démarrer"
     590NEXTEND_Main_navigation = "Navigation principale"
     591NEXTEND_Currently_you_are_on_the_Sliders_page = "Actuellement, vous êtes sur la page des Sliders"
     592NEXTEND_Every_view_in_Smart_Slider_contain_one_or_more_guides_which_can_be_played_anytime_you_need_help = "Chaque vue dans Smart Slider contient un ou plusieurs guides, qui peuvent être joués lorsque vous avez besoin d'aide"
     593NEXTEND_Create_your_first_slider = "Créez votre premier slider"
     594NEXTEND_To_use_Smart_Slider_the_basic_step_is_creating_a_new_slider = "Pour utiliser Smart Slider, l'étape de base est de créer un nouveau slider"
     595NEXTEND_Global_settings = "Paramètres globaux"
     596NEXTEND_If_you_would_like_to_disable_the_guides_completely_or_adjust_the_Smart_Sliders_global_settings_you_can_do_this_in_this_view = "Si vous souhaitez désactiver les guides complètement ou ajuster les paramètres globaux de Smart Slider, vous pouvez le faire dans cette vue."
     597NEXTEND_In = "In"
     598NEXTEND_Out = "Out"
     599NEXTEND_Choose_a_layer = "Choisissez un calque"
     600NEXTEND_copy = "Copier"
     601NEXTEND_Item_selected = "Élément sélectionné"
     602NEXTEND_Layer_created = "Calque créé"
     603NEXTEND_Item_not_selected = "Élément non sélectionné!"
     604NEXTEND_Item_deleted = "Élément supprimé"
     605NEXTEND_Delete_item_click = "Supprimer élément - click"
     606NEXTEND_Showcase = "Showcase"
     607NEXTEND_Keyboard = "Clavier"
     608NEXTEND_Slide_changed = "Diapositive modifiée"
     609NEXTEND_Title_is_empty_Save_failed = "Le titre est vide ! Échec de l'enregistrement..."
     610NEXTEND_Unexpected_error_Saving_failed = "Erreur inattendue. Échec de la sauvegarde ..."
     611NEXTEND_Layer_not_selected = "Calque non sélectionné!"
     612NEXTEND_empty = "vide"
     613NEXTEND_The_editor_was_tested_under_Internet_Explorer_10_Firefox_and_Chrome_Please_use_one_of_the_tested_browser = "L'éditeur a été testé sous Internet Explorer 10, Firefox et Chrome. Veuillez utiliser un des navigateur testé !"
     614NEXTEND_New_slide = "Nouvelle diapositive"
     615NEXTEND_New_slider = "Nouveau slider"
     616NEXTEND_Image_not_available = "Image non disponible"
     617NEXTEND_Here_comes_the_description_text = "Voici le texte de description."
     618NEXTEND_My_HTML_element = "Mon élément HTML"
     619NEXTEND_Empty_paragraph = "Paragraphe vide..."
     620NEXTEND_Done = "Terminé"
     621NEXTEND_Choose_the_file_to_import_a_slider = "Choisissez le fichier pour importer un slider :"
     622NEXTEND_Get_more_sample_sliders = "Obtenez d'autres exemple de sliders"
     623NEXTEND_Download = "Télécharger"
     624NEXTEND_Import_slider = "Importer slider"
     625NEXTEND_Buy_full_version = "Acheter la version complète"
     626NEXTEND_10_off_coupon_code_TRIAL = "10% de réduction, code promo: TRIAL"
     627NEXTEND_Buy_it_now = "Achetez-le maintenant!"
     628NEXTEND_Why_should_I_upgrade_to_FULL_version_Because_you_get_all = "Pourquoi devrais-je passer à la version complète? Parce que vous obtenez tout cela:"
     629NEXTEND_4_slider_types = "4 types de slider"
     630NEXTEND_extra_main_and_background_animations = "animations principales et de fond de page supplémentaires"
     631NEXTEND_20_layer_animations = "20 animations de calque"
     632NEXTEND_8_widgets_to_create_thumbnails_galleries_bars_etc = "8 widgets pour créer des vignettes, galeries, barres, etc."
     633NEXTEND_12_items_to_build_better_sliders = "12 éléments pour construire de meilleurs sliders"
     634NEXTEND_10_slider_generators = "10 générateurs de sliders"
     635NEXTEND_also_a_lot_of_extra_feature_and_option = "également beaucoup de fonctionnalités et d'options supplémentaires"
     636NEXTEND_and_last_but_not_least_personal_support = "Et enfin mais pas le moindre : un support personnel !"
     637NEXTEND_Slider_features_and_limitations_in_free_version = "Caractéristiques du slider et limitations dans la version gratuite"
     638NEXTEND_Slide_features_and_limitations_in_free_version = "Caractéristiques des dispositives et limitations dans la version gratuite"
     639NEXTEND_Generator_features_and_limitations_in_free_version = "Caractéristiques du générateur et limitations dans la version gratuite"
     640NEXTEND_What_comes_with_free_version = "Qu'est ce qui est livré avec la version gratuite ?"
     641NEXTEND_Smart_Slider_2_is_a_free_demo_version_for_our_commercial_Smart_Slider_2 = "Smart Slider 2 est une version gratuite/démo de notre version commerciale de Smart Slider 2."
     642NEXTEND_Smart_Slider_2_free_is_NOT_made_to_use_on_production_site_it_is_tech_demo_which_allows_you_to_try_most_but_not_all_of_the_features_of_Smart_Slider_2_FULL = "Smart Slider 2 free n'est PAS fait pour être utilisé sur le site de production, c'est une démo technique, qui vous permet d'essayer beaucoup (mais pas toutes) des fonctionnalités de Smart Slider 2 COMPLETE."
     643NEXTEND_Smart_Slider_2_does = "Smart Slider 2"
     644NEXTEND_NOT_create_home_calls = "NE fait PAS d'appel extérieur"
     645NEXTEND_NOT_track_anything_on_your_site = "NE traque RIEN sur votre site"
     646NEXTEND_NOT_mess_up_your_site = "NE salit PAS votre site"
     647NEXTEND_what_this_documentation_page_describes_nothing_more_and_nothing_less_For_full_functionality_you_will_still_need_the_commercial = "fait strictement ce que la documentation décrit, rien de plus, rien de moins. Pour des les fonctionnalité complète vous aurez besoin du commercial"
     648NEXTEND_Smart_Slider_2 = "Smart Slider 2"
     649NEXTEND_1_Slider_imported = "1 Slider importé!"
     650NEXTEND_Success = "Succès"
     651NEXTEND_Slides_imported = "Diapositive(s) importée(s) !"
     652NEXTEND_1_font_set_imported = "1 jeu de polices importé!"
     653NEXTEND_Error = "Erreur"
     654NEXTEND_There_was_an_error_in_the_uploaded_file = "Il y a eu une erreur dans le fichier téléchargé"
     655NEXTEND_Unable_to_move_the_file_to_the_temporary_location = "Impossible de déplacer le fichier dans l'emplacement temporaire : "
     656NEXTEND_Contents_by_category = "Contenus par catégorie"
     657NEXTEND_Subcategories_by_category = "Sous-catégories par catégorie"
     658NEXTEND_for = "pour"
     659NEXTEND_record_in_group = "enregistrer dans le group"
     660NEXTEND_Posts_by_page = "Posts par page"
     661NEXTEND_From_folder = "Du dossier"
     662NEXTEND_My_feed = "Mon flux"
     663NEXTEND_Timeline = "Chronologie"
     664NEXTEND_settings = "paramètres"
     665NEXTEND_Unexpected_error_in_Facebook_plugin = "Erreur inattendue dans le plug-in Facebook ..."
     666NEXTEND_Unexpected_error_in_Instagram_plugin = "Erreur inattendue dans le plugin Instagram..."
     667NEXTEND_Unexpected_error_in_Twitter_plugin = "Erreur inattendue dans le plugin Twitter..."
     668NEXTEND_By_search = "Par recherche"
     669NEXTEND_By_playlist = "Par playlist"
     670NEXTEND_Records = "Enregistrements"
     671NEXTEND_Posts = "Posts"
    538672NEXTEND_Items = "Éléments"
     673NEXTEND_Images = "Images"
     674NEXTEND_Products = "Produits"
     675NEXTEND_ID_of_the_article = "ID de l'article"
     676NEXTEND_Title_of_the_article = "Titre de l'article"
     677NEXTEND_Url_of_the_article = "Url de l'article"
     678NEXTEND_Alias_of_the_article = "Alias de l'article"
     679NEXTEND_Intro_of_the_article = "Intro de l'article"
     680NEXTEND_Text_of_the_article = "Texte de l'article"
     681NEXTEND_Id_of_the_article_s_category = "Id de la catégorie de l'article"
     682NEXTEND_Title_of_the_article_s_category = "Titre de la catégorie de l'article"
     683NEXTEND_Url_to_the_article_s_category_with_list_layout = "URL vers la catégorie de l'article avec la disposition de liste"
     684NEXTEND_Url_to_the_article_s_category_with_blog_layout = "URL vers la catégorie de l'article avec la disposition de blog"
     685NEXTEND_ID_of_the_category = "ID de la catégorie"
     686NEXTEND_Title_of_the_category = "Titre de la catégorie"
     687NEXTEND_Alias_of_the_category = "Alias de la catégorie"
     688NEXTEND_Description_of_the_category = "Description de la catégorie"
     689NEXTEND_Image_of_the_category = "Image de la catégorie"
     690NEXTEND_The_title_of_the_post = "Le titre du post"
     691NEXTEND_Source_of_the_image = "Source de l'image"
     692NEXTEND_Image_original_size = "Taille de l'image originale"
     693NEXTEND_Image_960_longest_side = "Image (côté le plus long 960)"
     694NEXTEND_Image_720_longest_side = "Image (côté le plus long 720)"
     695NEXTEND_Image_600_longest_side = "Image (côté le plus long 600)"
     696NEXTEND_Image_480_longest_side = "Image (côté le plus long 480)"
     697NEXTEND_Image_320_longest_side = "Image (côté le plus long 320)"
     698NEXTEND_Image_215_longest_side = "Image (côté le plus long 215)"
     699NEXTEND_Image_130_longest_side = "Image (côté le plus long 130)"
     700NEXTEND_Image_75_width = "Image (75 largeur)"
     701NEXTEND_Url_of_post = "URL du post"
     702NEXTEND_Message_of_the_post = "Message du post"
     703NEXTEND_Picture_of_the_post = "Image du post"
     704NEXTEND_Link_to_the_article = "Lien vers l'article"
     705NEXTEND_ID_of_the_photo = "ID de la photo"
     706NEXTEND_Title_of_the_photo = "Titre de la photo"
     707NEXTEND_Description_of_the_photo = "Description de la photo"
     708NEXTEND_Real_name_of_the_photo_s_owner = "Nom réel du propriétaire de la photo"
     709NEXTEND_Username_of_the_photo_s_owner = "Nom d'utilisateur du propriétaire de la photo"
    539710NEXTEND_Source = "Source"
    540711NEXTEND_Canvas_size = "Taille du canevas"
    541712NEXTEND_Border_radius = "Border radius"
     713NEXTEND_Rotate_X = "Rotation X"
     714NEXTEND_Rotate_Y = "Rotation Y"
     715NEXTEND_Rotate_Z = "Rotation Z"
     716NEXTEND_Default = "Par défaut"
     717NEXTEND_0 = "0"
     718NEXTEND_1 = "1"
     719NEXTEND_2 = "2"
     720NEXTEND_3 = "3"
     721NEXTEND_240p = "240p"
     722NEXTEND_360p = "360p"
     723NEXTEND_480p = "480p"
     724NEXTEND_720p = "720p"
     725NEXTEND_1080p = "1080p"
     726NEXTEND_High_res = "Haute résolution"
     727My photos = Mes photos
  • smart-slider-2/trunk/library/smartslider/languages/hu/common.ini

    r856428 r874573  
    668668NEXTEND_With_this_free_version_your_will_be_able_to_create_new_responsive_sliders_with_simple_slider_type_The_created_slider_main_animation_is_limited_to_the_horizontal_animation_but_also_one_special_background_animation_is_available_for_testing_The_autoplay_function_of_the_Smart_Slider_2_is_only_available_in_the_FULL_version_Free_version_will_allow_you_to_use_arrow_and_bullet_widgets_on_your_slider_the_arrows_are_limited_3_different_arrows_available_in_free_the_full_contains_more_than_35_different_colorizable_arrows_the_bullets_are_not_limited_in_free = "Ezzel az ingyenes verzióban létre tudsz hozni új reszponzív slidereket egyszerű slider típussal. A létrehozott slider fő animációi le vannak korlátozva a vízszintes animációra, de még egy speciális háttér animáció is elérhető tesztelésre. Az automatikus lejátszás funkció csak a TELJES verzióban érhető el. Az ingyenes verzióban használhatod a nyíl és a golyó widgetet a slidereden, a nyilak le vannak korlátozva(3 különböző nyíl érhető el az ingyenes verzióban, a teljesben több mint 35 különböző színezhető nyíl van), a golyók nem korlátozottak az ingyenesben."
    669669NEXTEND_Slide_features_and_limitations_in_free_version = "Slide funkciók és korlátozások az ingyenes verzióban"
     670NEXTEND_This_is_the_most_important_part_of_the_Smart_Slider_2_so_we_have_not_limit_any_action_which_related_to_the_user_interaction_on_the_backend_You_can_change_the_title_of_your_slides_and_also_you_can_add_slide_background_images_and_thumbnail_images_In_layer_mode_with_the_free_version_you_can_use_two_layer_animations_Slide_down_and_Roll_in_the_full_version_contains_more_than_20_layer_animations_and_every_other_layer_related_setting_is_available_In_item_mode_with_the_free_version_you_can_use_two_items_Heading_and_Button_items_allowed_in_free_mode_which_give_you_some_experience_with_the_live_slide_editor_Also_in_free_mode_every_slide_contains_our_logo_on_the_bottom_left = "Ez a Smart Slider 2 legfontosabb része, nem korlátoztuk le egyik műveletet sem, amelynek a felhasználói interakcióhoz köze van a backenden. Meg tudod változtatni a slide-jaid címét, és még tudsz háttérképet és bélyegképet adni hozzájuk. A réteg módban az ingyenes verzóban két réteg animációt tudsz használni (Lefelé csúszás és Begurulás, a teljes verzó több mint 20 réteg animációt tartalmaz) és minden más réteget befolyásoló beállítás is elérhető. Elem módban az ingyenes verzóban két elemet tudsz használni (Cím és Gomb elemet), amelyekkel egy kis gyakorlatra tehetsz szert a slide szerkesztőben. Az ingyenes verzióban minden slide tartalmazza a logónkat a bal alsó sarkon."
    670671NEXTEND_Generator_features_and_limitations_in_free_version = "Generátor funkciók és korlátozások az ingyenes verzióban"
    671 NEXTEND_Posts = "Postok"
     672NEXTEND_The_free_version_comes_with_the_image_from_folder_generator_You_will_need_to_select_source_folder_which_contains_your_images_and_Smart_Slider_2_will_automatically_create_the_slides_for_you_The_full_version_comes_with_other_integrations_WordPress_posts_and_also_with_social_generators_Facebook_Twitter_Instagram_Flickr_YouTube = "Az ingyenes verzió a Kép mappából generátort tartalmazza. Választanod kell egy forrás mappát, amely tartalmazza a képeidet és a Smart Slider 2 automatikusan le fogja generálni a slide-jaidat. A teljes verzióban más generátorok is vannak ( WordPress bejegyzések ) és még más közösségi oldal generátorokkal ( Facebook, Twitter, Instagram, Flickr, YouTube )."
     673NEXTEND_What_comes_with_free_version = "Mi jön az ingyenes verzióval?"
     674NEXTEND_If_you_are_trying_the_free_version_you_get_access_to_our_top_notch_support_If_you_experience_any_kind_of_problem_feel_free_to = "Hogyha kipróbálod az ingyenes verziót, akkor hozzáférhetsz a világklasszis támogatókhoz. Hogyha bármilyen problémát észlelnél, nyugodtan "
     675NEXTEND_contact_with_our_support_staff = "írj a támogatói csapatnak"
     676NEXTEND_We_will_try_to_resolve_your_problem_as_soon_as_possible = "Majd megpróbáljuk megoldani a problémádat olyan hamar, ahogy csak tudjuk."
     677NEXTEND_You_can_get_20_off_coupon_code_for_the_full_Smart_Slider_2_if_you_find_a_problem_and_report_us_The_todo_list_to_get_the_coupon_code = "Kaphatsz egy 20%os kupont a teljes verzióhoz, hogyha találsz egy hibát és megírod nekünk. Ezeket kell csinálnod, hogy megkapd a kupon kódot:"
     678NEXTEND_Describe_the_bug_to = "Írd le a hibát"
     679NEXTEND_the_support_staff = "a támogatói csapatnak"
     680NEXTEND_Cooperate_in_the_resolution_of_the_problem = "Működj közre a megoldásában"
     681NEXTEND_Just_to_know = "Csak, hogy tudd"
     682NEXTEND_Smart_Slider_2_is_a_free_demo_version_for_our_commercial_Smart_Slider_2 = "Smart Slider 2 egy ingyenes/demo verziója a kereskedelmi Smart Slider 2-nek."
     683NEXTEND_Smart_Slider_2_free_is_NOT_made_to_use_on_production_site_it_is_tech_demo_which_allows_you_to_try_most_but_not_all_of_the_features_of_Smart_Slider_2_FULL = "Az ingyenes Smart Slider 2 NEM azért lett készítve, hogy azt használják az oldalakon, hanem azért, hogy ki lehessen próbálni a teljes Smart Slider 2-nek a legtöbb részét."
     684NEXTEND_This_free_version_helps_you_to_try_it_on_your_system_and_see_how_it_works_and_see_how_much_possibilities_are_in_the_full_version_of_Smart_Slider_2 = "Ez az ingyenes verzió segít abban, hogy láthassad a Smart Slidert a rendszeredben és, hogy kitapasztald, hogy hogyan működik és hogy lásd, hogy mennyi lehetőség van a teljes verzióban."
     685NEXTEND_Smart_Slider_2_does = "A Smart Slider 2"
     686NEXTEND_NOT_create_home_calls = "NEM telefonál neked"
     687NEXTEND_NOT_track_anything_on_your_site = "NEM követ semmit sem az oldaladon"
     688NEXTEND_NOT_mess_up_your_site = "NEM rontja el az oldaladat"
     689NEXTEND_what_this_documentation_page_describes_nothing_more_and_nothing_less_For_full_functionality_you_will_still_need_the_commercial = "amit ez a dokumentáció oldal magyaráz, az se több, se kevesebb. A teljes funkcionalitásért a teljes verzióra lesz szükséged a"
     690NEXTEND_Smart_Slider_2 = "Smart Slider 2-ből"
     691NEXTEND_1_Slider_imported = "1 Slider importálva!"
     692NEXTEND_Success = "Sikeres"
     693NEXTEND_Slides_imported = "Slide(-ok) importálva!"
     694NEXTEND_1_font_set_imported = "1 betűtípus beállítás importálva!"
     695NEXTEND_Error = "Hiba"
     696NEXTEND_There_was_an_error_in_the_uploaded_file = "Hiba volt a feltöltött fájlban"
     697NEXTEND_Unable_to_unzip_the_file_Error_code = "Nem lehet kicsomagolni a fájlt. Hiba kód: "
     698NEXTEND_Unable_to_move_the_file_to_the_temporary_location = "Nem lehet a fájlt átrakni az ideiglenes helyére: "
     699NEXTEND_Contents_by_category = "Tartalom kategóriák szerint"
     700NEXTEND_Subcategories_by_category = "Alkategóriák kategóriák szerint"
     701NEXTEND_for = "annak"
     702NEXTEND_record_in_group = "rekord a csoportban"
     703NEXTEND_Posts_by_page = "Bejegyzés oldal alapján"
     704NEXTEND_Posts = "Bejegyzések"
    672705NEXTEND_Items = "Elemek"
     706NEXTEND_The_title_of_the_post = "A bejegyzés címe"
     707NEXTEND_The_main_part_of_the_post_If_there_is_no_Read_more_section_this_contains_the_entire_post_otherwise_it_contains_the_intro_part_of_it = "A bejegyzés fő része. Hogyha nincsen 'Read more' szekció, akkor az egész bejegyzést tartalmazza, különben csak az intro részét -"
     708NEXTEND_The_rest_of_the_post_If_the_post_is_divided_by_a_Read_more_tag_this_contains_the_section_placed_after_it_empty_otherwise = "A bejegyzés maradék része. Hogyha a bejegyzés el van választva egy 'Read more' taggal, akkor ez tartalmazza az utána lévő részt, különben üres -"
     709NEXTEND_Represents_the_username_of_the_post_creator = "A bejegyzés létrehozójának a felhasználóneve"
     710NEXTEND_The_title_of_the_EasyBlog_category_that_contains_the_post = "Annak az EasyBlog kategóriának a címe, amely a bejegyzést tartalmazza -"
     711NEXTEND_URL_of_the_image_that_is_associated_with_your_blog_post_Suggested_to_insert_as_an_image_item = "A blog bejegyzésedhez kapcsolódó kép URL-je. Tanácsoljuk, hogy kép elemként használd -"
     712NEXTEND_URL_of_the_icon_of_the_image_that_is_associated_with_your_blog_post_Suggested_to_insert_as_an_image_item = "A blog bejegyzésedhez kapcsolódó kép ikonjának az URL-je. Tanácsoljuk, hogy kép elemként használd -"
     713NEXTEND_URL_of_the_current_EasyBlog_post = "A jelenlegi EasyBlog bejegyzés URL-je"
     714NEXTEND_Url_to_the_image_post = "Url a kép bejegyzéshez"
     715NEXTEND_Url_of_post = "A bejegyzés url-je"
    673716NEXTEND_Source = "Forrás"
    674717NEXTEND_Canvas_size = "Vászon méret"
  • smart-slider-2/trunk/library/smartslider/plugin/slideritem.php

    r856428 r874573  
    11<?php
     2
     3nextendimport('nextend.parse.parse');
    24
    35class plgNextendSliderItemAbstract extends NextendPluginBase {
     
    1113    }
    1214   
     15    function onNextendSliderItemShortcode(&$list){
     16        $list[$this->_identifier] = $this;
     17    }
     18   
    1319    /*
    1420     * Here comes the HTML source of the item. {param_name} are identifier for the parameters in the configuration.xml params(linked with the parameter name).
     
    1723    function getTemplate(){
    1824        return "{nothing}";
     25    }
     26   
     27    function render($data, $id, $sliderid){
     28        return $this->_render($data, $id, $sliderid);
     29    }
     30   
     31    function renderAdmin($data, $id, $sliderid){
     32        global $slidegenerator;
     33       
     34        $json = $data->toJson();
     35        if($slidegenerator){
     36            /*
     37            This happens when we have to fill out data from the generator in the editor view with variables.
     38            */
     39            $slidegenerator->_slidePointer = 0;
     40            $data->loadArray($slidegenerator->createSlide(0, $data->toArray(), true));
     41        }
     42        return '<div class="smart-slider-items" data-item="'.$this->_identifier.'" data-itemvalues="'.htmlspecialchars($json, ENT_QUOTES).'">'.$this->_renderAdmin($data, $id, $sliderid).'</div>';
     43    }
     44   
     45    function _render($data, $id, $sliderid){
     46        return $this->getTemplate();
     47    }
     48   
     49    function _renderAdmin($data, $id, $sliderid){
     50        return $this->getTemplate();
    1951    }
    2052   
     
    3163   
    3264    /*
    33      * Default values, which are the same which available for the getTemplate method's template.
     65     * Default values, which will be parsed by JS on the admin for default values. It should contain only the fields from the configuration.xml.
    3466     */
    3567    function getValues(){
  • smart-slider-2/trunk/library/smartslider/plugin/widget.php

    r856428 r874573  
    11<?php
     2
     3nextendimport('nextend.parse.parse');
    24
    35class plgNextendSliderWidgetAbstract extends NextendPluginBase {
  • smart-slider-2/trunk/library/smartslider/slider.php

    r859428 r874573  
    33nextendimportsmartslider2('nextend.smartslider.settings');
    44nextendimportsmartslider2('nextend.smartslider.widgets');
     5nextendimportsmartslider2('nextend.smartslider.items');
    56
    67class NextendSlider {
     
    105106
    106107            $where = '';
     108            $date = '';
     109            if(nextendIsWordpress()){                       
     110                $date = current_time( 'mysql');
     111            }else{
     112                $date = date('Y-m-d H:i:s');
     113            }
    107114            if ($this->_backend) {
    108                 $where = " AND ((published = 1 AND (publish_up = '0000-00-00 00:00:00' OR publish_up < '".date( 'Y-m-d H:i:s')."') AND (publish_down = '0000-00-00 00:00:00' OR publish_down > '".date( 'Y-m-d H:i:s')."')) OR id = " . NextendRequest::getInt('slideid') . ") ";
    109             } else {
    110                 $where = " AND published = 1 AND (publish_up = '0000-00-00 00:00:00' OR publish_up < '".date( 'Y-m-d H:i:s')."') AND (publish_down = '0000-00-00 00:00:00' OR publish_down > '".date( 'Y-m-d H:i:s')."') ";
     115                $where = " AND ((published = 1 AND (publish_up = '0000-00-00 00:00:00' OR publish_up < '".$date."') AND (publish_down = '0000-00-00 00:00:00' OR publish_down > '".$date."')) OR id = " . NextendRequest::getInt('slideid') . ") ";
     116            } else {               
     117                $where = " AND published = 1 AND (publish_up = '0000-00-00 00:00:00' OR publish_up < '".$date."') AND (publish_down = '0000-00-00 00:00:00' OR publish_down > '".$date."') ";
    111118            }
    112119
     
    150157            }
    151158
    152             if (NextendRequest::getCmd('action') == 'generator') {
     159            if (NextendRequest::getCmd('action') == 'generatoredit') {
    153160                global $smartslidergeneratorslide;
    154161                if (!$smartslidergeneratorslide) $smartslidergeneratorslide = array();
     
    219226           
    220227            $link = $params->get('link', '');
    221             if(!$this->_backend && $link){
    222                 $link = (array)NextendParse::parse($link);
     228            $link = (array)NextendParse::parse($link);
     229            if(!$this->_backend && $link && isset($link[0]) && $link[0] != '' && $link[0] != '#'){
    223230                if(!isset($link[1])) $link[1] = '_self';
    224231                $slides[$i]['link'] = ' onclick="'.htmlspecialchars(
     
    247254
    248255        $jquery = NextendSmartSliderSettings::get('jquery', 1);
    249         if(!$jquery && !$this->_backend){
     256        if(!$jquery && !class_exists('NextendSmartsliderAdminController', false)){
    250257            $js = NextendJavascript::getInstance();
    251258            $js->_loadedLibraries['jquery']->removeJsLibraryFile('jQuery.js');
     
    275282       
    276283        $size = $this->addCSS();
     284       
     285        $backgroundresize = $this->_sliderParams->get('backgroundresize', 0);
     286        if($backgroundresize != '0'){
     287            $works = nextend_try_to_test_memory_limit();
     288            if($works){
     289                $canvasWidth = $size[4];
     290                $canvasHeight = $size[5];
     291                $resizeremote = intval(NextendSmartSliderSettings::get('resizeremote', 0));
     292                nextendimport('nextend.cache.image');
     293                $imageCache = new NextendCacheImage();
     294                for($i = 0; $i < count($this->_slides); $i++){
     295                    $imageCache->setBackground(substr($this->_slides[$i]['background'],0,6));
     296                    $this->_slides[$i]['bg'] = $imageCache->resizeImage($this->_slides[$i]['bg'], $canvasWidth, $canvasHeight, $backgroundresize, $resizeremote);
     297                }
     298            }else if(NextendSmartSliderSettings::get('debugmessages', 1)){
     299                echo "It seems like the <a href='http://php.net/manual/en/ini.core.php#ini.memory-limit'>memory_limit</a> on the server is too low for the background resize. Please set it minimum 60M and reload the page! You can disable this message in <a href='http://www.nextendweb.com/wiki/smart-slider-documentation/global-settings/'>global configuration</a> 'Frontend debug message' option.";
     300            }
     301        }
     302       
    277303        $css = NextendCss::getInstance();
    278304       
     
    286312        $slider = ob_get_clean();
    287313       
    288 
     314        $items = new NextendSliderItems($id, $this->_backend);
     315        $slider = $items->render($slider);
    289316       
    290317        if(!$this->_backend){
     
    331358       
    332359        if( !$this->_backend && $fadeonload[0] && ((isset($responsive[0]) && $responsive[0]) || (isset($responsive[1]) && $responsive[1]))){
    333             if($size[0]+$size[3] > 0 && $size[1] > 0 && function_exists('imagecreatetruecolor')){
    334                 echo '<div id="'.$id.'-placeholder" >';
    335                
    336                 $im = imagecreatetruecolor($size[0]+$size[3], $size[1]);
    337                 imagesavealpha($im, true);
    338                 imagealphablending($im, false);
    339                 $trans = imagecolorallocatealpha($im, 255, 0, 0, 127);
    340                 imagefilledrectangle($im, 0, 0, $size[0]+$size[3], $size[1], $trans);
    341                 ob_start();
    342                 imagepng($im);
    343                 imagedestroy($im);
    344                 $img = base64_encode(ob_get_clean());
    345                 echo '<img alt="" style="width:100%; max-width: '.(intval($this->_sliderParams->get('simpleresponsivemaxwidth', 30000))+$size[3]).'px;" src="data:image/png;base64,'.$img.'" />';
    346                
    347                 if($size[2] > 0){
    348                     $im = imagecreatetruecolor($size[0]+$size[3], $size[2]);
     360            $works = nextend_try_to_test_memory_limit();
     361            if($works){
     362                if($size[0]+$size[3] > 0 && $size[1] > 0 && function_exists('imagecreatetruecolor')){
     363                    echo '<div id="'.$id.'-placeholder" >';
     364                   
     365                    $im = imagecreatetruecolor($size[0]+$size[3], $size[1]);
    349366                    imagesavealpha($im, true);
    350367                    imagealphablending($im, false);
    351368                    $trans = imagecolorallocatealpha($im, 255, 0, 0, 127);
    352                     imagefilledrectangle($im, 0, 0, $size[0]+$size[3], $size[2], $trans);
     369                    imagefilledrectangle($im, 0, 0, $size[0]+$size[3], $size[1], $trans);
    353370                    ob_start();
    354371                    imagepng($im);
    355372                    imagedestroy($im);
    356373                    $img = base64_encode(ob_get_clean());
    357                     echo '<img alt="" style="width:100%;" src="data:image/png;base64,'.$img.'" />';
    358                 }
    359                
    360                 echo '</div>';
    361             }else{
    362                 $css->addCssFile('#'.$id.' .nextend-slider-fadeload{position: relative !important;}', $this->getId());
     374                    echo '<img alt="" style="width:100%; max-width: '.(intval($this->_sliderParams->get('simpleresponsivemaxwidth', 30000))+$size[3]).'px;" src="data:image/png;base64,'.$img.'" />';
     375                   
     376                    if($size[2] > 0){
     377                        $im = imagecreatetruecolor($size[0]+$size[3], $size[2]);
     378                        imagesavealpha($im, true);
     379                        imagealphablending($im, false);
     380                        $trans = imagecolorallocatealpha($im, 255, 0, 0, 127);
     381                        imagefilledrectangle($im, 0, 0, $size[0]+$size[3], $size[2], $trans);
     382                        ob_start();
     383                        imagepng($im);
     384                        imagedestroy($im);
     385                        $img = base64_encode(ob_get_clean());
     386                        echo '<img alt="" style="width:100%;" src="data:image/png;base64,'.$img.'" />';
     387                    }
     388                   
     389                    echo '</div>';
     390                }else{
     391                    $css->addCssFile('#'.$id.' .nextend-slider-fadeload{position: relative !important;}', $this->getId());
     392                }
     393            }else if(NextendSmartSliderSettings::get('debugmessages', 1)){
     394                echo "It seems like the <a href='http://php.net/manual/en/ini.core.php#ini.memory-limit'>memory_limit</a> on the server is too low for the fade on load feature. Please set it minimum 60M and reload the page! You can disable this message in <a href='http://www.nextendweb.com/wiki/smart-slider-documentation/global-settings/'>global configuration</a> 'Frontend debug message' option.";
    363395            }
    364396        }else{
     
    453485            'upscale' => intval($responsive[1]),
    454486            'maxwidth' => intval($this->_sliderParams->get('simpleresponsivemaxwidth', 3000)),
    455             'basedon' => NextendSmartSliderSettings::get('responsivebasedon', 'device'),
     487            'basedon' => NextendSmartSliderSettings::get('responsivebasedon', 'combined'),
    456488            'screenwidth' => array(
    457489                'tablet' => intval($responsivescreenwidth[0]),
     
    509541                $context['font' . $fonts] = '~".' . $matches[0] . '"';
    510542               
    511                 if(json_decode($v)===null) $v = base64_decode($v);
     543                $tmp = json_decode($v);
     544                if($tmp===null || $tmp == $v) $v = base64_decode($v);
    512545               
    513546                $font = new NextendParseFont($v);
     
    545578                }
    546579            }
    547        
    548         return array(intval($context['width']),intval($context['height']), $m[0]+$m[2], $m[1]+$m[3]);
     580        return array(intval($context['width']),intval($context['height']), $m[0]+$m[2], $m[1]+$m[3], intval($context['canvaswidth']), intval($context['canvasheight']));
    549581    }
    550582   
     
    573605            $js->addLibraryJsLibraryFile('jquery', 'jquery.mousewheel.js');
    574606        }
    575         if($controls[1]){
     607        if($controls[1] || $this->_sliderParams->get('improvedtouch', 0)){
    576608            $js->addLibraryJsLibraryFile('jquery', 'jquery.touchSwipe.js');
    577609        }
     
    587619        $js->addLibraryJsFile('jquery', NEXTEND_SMART_SLIDER2_ASSETS . 'js' . DIRECTORY_SEPARATOR . 'motions' . DIRECTORY_SEPARATOR . 'no.js');
    588620        $js->addLibraryJsFile('jquery', NEXTEND_SMART_SLIDER2_ASSETS . 'js' . DIRECTORY_SEPARATOR . 'motions' . DIRECTORY_SEPARATOR . 'fade.js');
     621        $js->addLibraryJsFile('jquery', NEXTEND_SMART_SLIDER2_ASSETS . 'js' . DIRECTORY_SEPARATOR . 'motions' . DIRECTORY_SEPARATOR . 'fadestatic.js');
    589622
    590623        $js->addLibraryJsFile('jquery', NEXTEND_SMART_SLIDER2_ASSETS . 'js' . DIRECTORY_SEPARATOR . 'motions' . DIRECTORY_SEPARATOR . 'slide.js');
     624        $js->addLibraryJsFile('jquery', NEXTEND_SMART_SLIDER2_ASSETS . 'js' . DIRECTORY_SEPARATOR . 'motions' . DIRECTORY_SEPARATOR . 'slidestatic.js');
    591625
    592626        $js->addLibraryJsFile('jquery', NEXTEND_SMART_SLIDER2_ASSETS .  'js' . DIRECTORY_SEPARATOR . 'motions' . DIRECTORY_SEPARATOR . 'transit.js');
     
    594628
    595629}
     630
     631function nextend_try_to_test_memory_limit(){
     632    $works = true;
     633    if(function_exists('ini_get')){
     634        $memory_limit = @ini_get('memory_limit');
     635        if($memory_limit && $memory_limit != ''){
     636            $ok = nextend_setting_to_bytes($memory_limit) >= 0x3C00000;
     637            if(!$ok) $works = false;
     638        }
     639    }
     640    return $works;
     641}
     642
     643function nextend_setting_to_bytes($setting)
     644{
     645    static $short = array('k' => 0x400,
     646                          'm' => 0x100000,
     647                          'g' => 0x40000000);
     648
     649    $setting = (string)$setting;
     650    if (!($len = strlen($setting))) return NULL;
     651    $last    = strtolower($setting[$len - 1]);
     652    $numeric = 0 + $setting;
     653    $numeric *= isset($short[$last]) ? $short[$last] : 1;
     654    return $numeric;
     655}
  • smart-slider-2/trunk/library/smartslider/slidercache.php

    r857895 r874573  
    22
    33class NextendSliderCache {
    4    
     4
    55    var $slider = null;
    6    
    7     function NextendSliderCache($slider){
     6
     7    function NextendSliderCache($slider) {
    88        nextendimportsmartslider2('nextend.smartslider.check');
    99        nextendimport('nextend.css.css');
    1010        nextendimport('nextend.javascript.javascript');
    1111        nextendimport('nextend.fonts.google');
    12        
     12
    1313        $this->slider = $slider;
    14        
     14
    1515        $sliderid = $slider->_sliderid;
    16        
     16
    1717        $recache = false;
    18         $cached = json_decode(NextendSmartSliderStorage::get('slidercache'.$sliderid), true);
    19        
    20         if(is_array($cached)){
    21             if(NextendSmartSliderStorage::get('sliderchanged'.$sliderid) == 1){
     18        $cached = json_decode(NextendSmartSliderStorage::get('slidercache' . $sliderid), true);
     19
     20        if (is_array($cached)) {
     21            if (NextendSmartSliderStorage::get('sliderchanged' . $sliderid) == 1) {
    2222                $recache = true;
    23             }else if(isset($cached['time']) && isset($cached['expire']) && $cached['time'] < time()-$cached['expire']*60*60){
    24                 $recache = true; 
     23            } else if (isset($cached['time']) && isset($cached['expire']) && $cached['time'] < time() - $cached['expire'] * 60 * 60) {
     24                $recache = true;
    2525            }
    26         }else{
    27             $recache = true; 
     26        } else {
     27            $recache = true;
    2828        }
    29        
    30         if(!$recache){
     29
     30        if (!$recache) {
    3131            $data = $cached['data'];
    32             if(isset($data['css'])){
    33                 if(!NextendFilesystem::fileexists(NextendFilesystem::absoluteURLToPath($data['css']))){
     32            if (isset($data['css'])) {
     33                if (!NextendFilesystem::fileexists(NextendFilesystem::absoluteURLToPath($data['css']))) {
    3434                    $recache = true;
    3535                }
    36             }else{
     36            } else {
    3737                $recache = true;
    3838            }
    39            
    40             if(!isset($data['libraries']) || !isset($data['libraries']['jquery']) || !isset($data['libraries']['jquery']['jsfiles']) || count($data['libraries']['jquery']['jsfiles']) == 0){
     39
     40            if (!isset($data['libraries']) || !isset($data['libraries']['jquery']) || !isset($data['libraries']['jquery']['jsfiles']) || count($data['libraries']['jquery']['jsfiles']) == 0) {
    4141                $recache = true;
    4242            }
    4343        }
    44        
     44
    4545        //$recache = true;
    46         if($recache){
     46        if ($recache) {
    4747            $data = $this->render();
    4848            $cached = array(
     
    5050                'data' => $data
    5151            );
    52             if($this->slider->_generatorParams->get('enabled', 0)){         
    53                 $generatorcached = json_decode(NextendSmartSliderStorage::get('generator'.$sliderid), true);
    54                 if(is_array($generatorcached)){
     52            if ($this->slider->_generatorParams->get('enabled', 0)) {
     53                $generatorcached = json_decode(NextendSmartSliderStorage::get('generator' . $sliderid), true);
     54                if (is_array($generatorcached)) {
    5555                    $cached['time'] = $generatorcached['time'];
    5656                    $cached['expire'] = $this->slider->_generatorParams->get('cachetime', '24');
    5757                }
    5858            }
    59            
    60             NextendSmartSliderStorage::set('slidercache'.$sliderid, json_encode($cached));
    61             NextendSmartSliderStorage::set('sliderchanged'.$sliderid, '0');
    62         }       
    63        
     59
     60            NextendSmartSliderStorage::set('slidercache' . $sliderid, json_encode($cached));
     61            NextendSmartSliderStorage::set('sliderchanged' . $sliderid, '0');
     62        }
     63
    6464        $this->cssurl = $data['css'];
    65         if(nextendIsWordPress()){
    66             add_action('nextend_css', array( $this, 'addCSS'));
    67         }elseif(nextendIsMagento()){
     65        if (nextendIsWordPress()) {
     66            add_action('nextend_css', array($this, 'addCSS'));
     67        } elseif (nextendIsMagento()) {
    6868            Nextend_SmartSlider2_Model_Observer::$sliders[] = array($this, 'addCSS');
    69         }else{
     69        } else {
    7070            $this->addCSS();
    7171        }
    72        
     72
    7373        $js = NextendJavascript::getInstance();
    74         foreach($data['js']['core'] AS $j){
     74        foreach ($data['js']['core'] AS $j) {
    7575            $js->addJsFile($j);
    7676        }
    77         if(isset($data['libraries']) && count($data['libraries'])){
    78             foreach($data['libraries'] AS $library => $jss){
     77        if (isset($data['libraries']) && count($data['libraries'])) {
     78            foreach ($data['libraries'] AS $library => $jss) {
    7979                $js->loadLibrary($library);
    80                 if(!empty($jss['js'])) $js->addLibraryJs($library, $jss['js']);
    81                 if(count($jss['jsfiles'])){
    82                     foreach($jss['jsfiles'] AS $j){
     80                if (!empty($jss['js']))
     81                    $js->addLibraryJs($library, $jss['js']);
     82                if (count($jss['jsfiles'])) {
     83                    foreach ($jss['jsfiles'] AS $j) {
    8384                        $js->addLibraryJsFile($library, $j);
    8485                    }
     
    8687            }
    8788        }
    88        
    89         if(isset($data['fonts']) && count($data['fonts'])){
     89
     90        if (isset($data['fonts']) && count($data['fonts'])) {
    9091            $google = NextendFontsGoogle::getInstance();
    91             foreach($data['fonts'] AS $k => $v){
     92            foreach ($data['fonts'] AS $k => $v) {
    9293                $style = explode(',', $v[0]);
    9394                $subset = explode(',', $v[1]);
    94                 for($i = 0; $i < count($style); $i++){
     95                for ($i = 0; $i < count($style); $i++) {
    9596                    $google->addFont($k, $style[$i], $subset[$i]);
    9697                }
    9798            }
    9899        }
    99        
     100
    100101        echo $data['html'];
    101102    }
    102    
    103     function render(){
     103
     104    function render() {
    104105        $data = array(
    105106            'css' => '',
    106107            'js' => array(),
    107108            'fonts' => array(),
    108             'html' => '' 
     109            'html' => ''
    109110        );
    110        
     111
    111112        $this->css = $css = NextendCss::getInstance();
    112113        $tmpCSScacheTime = $css->_cache->_cacheTime;
    113114        $css->_cache->_cacheTime = 'static';
    114115        $cssFiles = $css->_cssFiles;
    115        
     116        $css->_cssFiles = array();
     117
    116118        $js = NextendJavascript::getInstance();
    117119        $jsFiles = array();
    118120        $jsFiles['core'] = $js->_jsFiles;
     121        $js->_jsFiles = array();
    119122        $jsFiles['libraries'] = array();
    120         foreach($js->_loadedLibraries AS $k => $v){
     123        foreach ($js->_loadedLibraries AS $k => $v) {
    121124            $jsFiles['libraries'][$k] = array();
    122125            $jsFiles['libraries'][$k]['jsfiles'] = $v->_jsFiles;
    123126            $jsFiles['libraries'][$k]['js'] = $v->_js;
     127
     128            $js->_loadedLibraries[$k]->_jsFiles = array();
     129            $js->_loadedLibraries[$k]->_js = '';
    124130        }
    125        
     131
    126132        $google = NextendFontsGoogle::getInstance();
    127133        $fonts = $google->_fonts;
    128        
     134        $google->_fonts = array();
     135
    129136        ob_start();
    130137        $this->slider->render(true);
    131138        $this->id = $this->slider->getId();
    132         $data['html'] = preg_replace_callback('/<style.*?>(.*?)<\/style>/s',array($this, 'inlineCSS'),ob_get_clean());
    133         $data['fonts'] = array_diff($google->_fonts, $fonts);
    134        
    135        
    136         $extracssfiles = array_diff($css->_cssFiles, $cssFiles);
     139        $data['html'] = preg_replace_callback('/<style.*?>(.*?)<\/style>/s', array($this, 'inlineCSS'), ob_get_clean());
     140
     141        $data['fonts'] = $google->_fonts;
     142        $google->_fonts = $fonts;
     143
     144
     145        $extracssfiles = $css->_cssFiles;
    137146        $css->_cssFiles = $cssFiles;
    138        
    139         foreach($extracssfiles AS $f){
     147
     148        foreach ($extracssfiles AS $f) {
    140149            $css->addCssFile($f, $this->id);
    141         }       
    142        
     150        }
     151
    143152        $css->_cacheGroup[$this->id]->_cacheTime = 'static';
    144        
     153
    145154        $data['css'] = $css->generateCSS($this->id, false);
    146        
     155
    147156        $css->_cache->_cacheTime = $tmpCSScacheTime;
    148        
    149         $data['js']['core'] = array_diff($js->_jsFiles, $jsFiles['core']);
    150         foreach($js->_loadedLibraries AS $k => $v){
    151             if(isset($jsFiles['libraries'][$k])){
    152                 $data['libraries'][$k]['jsfiles'] = array_diff($v->_jsFiles, $jsFiles['libraries'][$k]['jsfiles']);
    153                 $data['libraries'][$k]['js'] = str_replace($data['libraries'][$k]['js'], '', $v->_js);
    154             }else{
    155                 $data['libraries'][$k]['jsfiles'] = $v->_jsFiles;
    156                 $data['libraries'][$k]['js'] = $v->_js;
     157
     158        $data['js']['core'] = $js->_jsFiles;
     159        $js->_jsFiles = $jsFiles['core'];
     160
     161        foreach ($js->_loadedLibraries AS $k => $v) {
     162
     163            $data['libraries'][$k]['jsfiles'] = $v->_jsFiles;
     164            $data['libraries'][$k]['js'] = $v->_js;
     165
     166            if (isset($jsFiles['libraries'][$k])) {
     167                $js->_loadedLibraries[$k]->_jsFiles = $jsFiles['libraries'][$k]['jsfiles'];
     168                $js->_loadedLibraries[$k]->_js = $jsFiles['libraries'][$k]['js'];
    157169            }
    158170        }
    159        
     171
    160172        return $data;
    161173    }
    162    
    163     function addCSS(){
     174
     175    function addCSS() {
    164176        $css = NextendCss::getInstance();
    165177        $css->serveCSSFile($this->cssurl);
    166178    }
    167    
    168     function inlineCSS($matches){
     179
     180    function inlineCSS($matches) {
    169181        $this->css->addCssFile($matches[1], $this->id);
    170182        return '';
    171183    }
     184
    172185}
  • smart-slider-2/trunk/library/smartslider/storage.php

    r807568 r874573  
    2424        $sql = '';
    2525        if(self::get($key) === null){
    26             $sql = "INSERT INTO #__nextend_smartslider_storage VALUES (NULL , ".$db->quote($key).", ".$db->quote($value).")";
     26            $db->insert('#__nextend_smartslider_storage', array(
     27                'key' => $key,
     28                'value' => $value
     29            ));
    2730        }else{
    28             $sql = "UPDATE #__nextend_smartslider_storage SET " . $db->quoteName('value') . " = ".$db->quote($value)." WHERE " . $db->quoteName('key') . " = ".$db->quote($key);
     31            $db->update('#__nextend_smartslider_storage', array(
     32                'value' => $value
     33            ), $db->quoteName('key') . " = ".$db->quote($key));
    2934        }
    30         $db->setQuery($sql);
    31         $db->query();
    3235        self::$cache[$key] = $value;
    3336    }
  • smart-slider-2/trunk/library/smartslider/widgets.php

    r856428 r874573  
    3232            if(nextendIsJoomla()) JPluginHelper::importPlugin('nextendsliderwidget'.$k);
    3333            $class = 'plgNextendSliderWidget'.$k.$v;
    34             if(class_exists($class)) $this->_widgets[$k] = call_user_func(array($class, 'render'), $slider, $id, $params);
     34            if(class_exists($class, false)) $this->_widgets[$k] = call_user_func(array($class, 'render'), $slider, $id, $params);
    3535        }
    3636
  • smart-slider-2/trunk/library/smartslider/wordpress/slider.php

    r856428 r874573  
    2929       
    3030        $class = 'plgNextendSlidertype' . $type;
    31         if (!class_exists($class)) {
     31        if (!class_exists($class, false)) {
    3232            echo 'Error in slider type!';
    3333            return false;
  • smart-slider-2/trunk/nextend/assets/js/element/subform.js

    r807568 r874573  
    5353                mode: 'subform'
    5454            });
     55            var newd = {};
     56            for(k in d){
     57                if(typeof d[k] == 'string' || typeof d[k] == 'number') newd[k] = d[k];
     58            }
     59           
    5560            var xhrArgs = {
    5661                url: this.form.url,
    5762                handleAs: 'json',
    58                 content: d,
     63                content: newd,
    5964                load: dojo.hitch(this, 'load'),
    6065                error: dojo.hitch(this, 'error')
  • smart-slider-2/trunk/nextend/assets/js/sortable.js

    r785118 r874573  
    3535                    //if (innermostContainer && $.contains(this.containers[i].element[0], innermostContainer.element[0])) {
    3636                    if (innermostContainer && parseInt(this.containers[i].element.css('zIndex')) < parseInt(innermostContainer.element.css('zIndex'))) {
    37                         if(window.ssdrag){
    38                             innermostContainer = window.dummySortable;
    39                             innermostIndex = this.containers.indexOf(innermostContainer);
    40                         }
    4137                        continue;
    4238                    }
     
    5248                    }
    5349                }
    54 
    5550            }
    5651            // if no intersecting containers found, return
    5752            if (!innermostContainer) {
    5853                return;
     54            }
     55            if(typeof event.processed == 'undefined' && innermostContainer != window.dummySortable){
     56                event.processed = true;
     57            }else{
     58                innermostContainer = window.dummySortable;
     59                innermostIndex = this.containers.indexOf(innermostContainer);
     60               
    5961            }
    6062
  • smart-slider-2/trunk/nextend/cache/cache.php

    r856428 r874573  
    3434        if(NextendFilesystem::existsFolder($path)) return;
    3535        if(NextendFilesystem::createFolder($path)) return;
    36         echo NextendText::sprintf('Couldn\'t create the required cache dir: %s. Please make sure that the folder writeable by PHP!', $path);
     36        echo '<br />'.NextendText::sprintf('Couldn\'t create the required cache dir: %s. Please make sure that the folder writeable by PHP!', $path);
    3737        exit;
    3838    }
     
    122122    }
    123123   
     124    function createHashFromArray($array){
     125        return md5($this->parseHash(implode($array, ',')));
     126    }
     127   
    124128    function parseHash($hash){
    125129        return $hash;
  • smart-slider-2/trunk/nextend/configuration.php

    r792816 r874573  
    66    'cachepath' => null,
    77    'gzip' => 0,
    8     'debuglng' => 0
     8    'debuglng' => 0,
     9    'logproblems' => 1
    910);
    1011
  • smart-slider-2/trunk/nextend/css/css.php

    r856428 r874573  
    120120
    121121    function generateCSS($group = null, $serve = true) {
    122         if (!$group && class_exists('NextendFontsGoogle')) {
     122        if (!$group && class_exists('NextendFontsGoogle', false)) {
    123123            $fonts = NextendFontsGoogle::getInstance();
    124124            $fonts->generateFonts();
  • smart-slider-2/trunk/nextend/data/data.php

    r856428 r874573  
    1212   
    1313    function loadJSON($json) {
    14 
    1514        $this->_data = json_decode($json, true);
     15        if(!is_array($this->_data)) $this->_data = array();
    1616    }
    1717   
  • smart-slider-2/trunk/nextend/database/database.php

    r785118 r874573  
    1010        }
    1111        return $instance;
     12    }
     13
     14    function insert($table, $params) {
     15        $columns = array();
     16        $values = array();
     17        foreach($params AS $k => $p){
     18            $columns[] = $this->quoteName($k);
     19            $values[] = $this->quote($p);
     20        }
     21        $sql = "INSERT INTO ".$table." (".implode(',',$columns).") VALUES (".implode(',',$values).")";
     22        $this->setQuery($sql);
     23        $this->query();
     24    }
     25
     26    function update($table, $params, $where = null) {
     27        $s = array();
     28        foreach($params AS $k => $p){
     29            $s[] = $this->quoteName($k). '='.$this->quote($p);
     30        }
     31        if($where != null) $where = ' WHERE '.$where;
     32        $sql = "UPDATE ".$table." SET ".implode(',',$s).$where;
     33        $this->setQuery($sql);
     34        $this->query();
    1235    }
    1336}
  • smart-slider-2/trunk/nextend/externals/mobiledetect.php

    r785118 r874573  
    3232 * @version     2.6.3
    3333 */
    34 if(!class_exists('Mobile_Detect')){
     34if(!class_exists('Mobile_Detect', false)){
    3535    class Mobile_Detect {
    3636   
  • smart-slider-2/trunk/nextend/filesystem/filesystem.php

    r856428 r874573  
    8888    }
    8989   
     90    static function is_writable($path){
     91        return is_writable($path);
     92    }
     93   
    9094    static function createFolder($path){
    9195        return mkdir($path, 0777, true);
  • smart-slider-2/trunk/nextend/fonts/google.php

    r856428 r874573  
    33class NextendFontsGoogle {
    44   
    5     var $_fonts;
     5    var $_fonts = array();
    66   
    77    function NextendFontsGoogle() {
     
    6464        $subset = explode(',',$subset);
    6565        $subset = array_filter(array_unique($subset));
    66         $url.='&amp;subset='.implode(',', $subset);
     66        $url.='&subset='.implode(',', $subset);
    6767        return $url;
    6868    }
  • smart-slider-2/trunk/nextend/form/element/folders.php

    r785118 r874573  
    1515                $folder = wp_upload_dir();
    1616                $folder = $folder['basedir'].'/';
     17            }else if(nextendIsMagento()){
     18                $folder = Mage::getBaseDir('media').'/';
    1719            }
    1820        }
  • smart-slider-2/trunk/nextend/form/element/image.php

    r856428 r874573  
    4242              </script>
    4343              ';
     44        }else if (nextendIsMagento()) {
     45            static $loaded;
     46            ob_start();
     47            if($loaded == null){
     48                $html.= '<script type="text/javascript" src="'.Mage::getBaseUrl(Mage_Core_Model_Store::URL_TYPE_JS).'extjs/ext-tree.js"></script>';
     49                $html.= '<script type="text/javascript" src="'.Mage::getBaseUrl(Mage_Core_Model_Store::URL_TYPE_JS).'extjs/ext-tree-checkbox.js"></script>';
     50                $html.= '<script type="text/javascript" src="'.Mage::getBaseUrl(Mage_Core_Model_Store::URL_TYPE_JS).'extjs/fix-defer.js"></script>';
     51                $html.= '<script type="text/javascript" src="'.Mage::getBaseUrl(Mage_Core_Model_Store::URL_TYPE_JS).'mage/adminhtml/variables.js"></script>';
     52                $html.= '<script type="text/javascript" src="'.Mage::getBaseUrl(Mage_Core_Model_Store::URL_TYPE_JS).'mage/adminhtml/wysiwyg/widget.js"></script>';
     53                $html.= '<script type="text/javascript" src="'.Mage::getBaseUrl(Mage_Core_Model_Store::URL_TYPE_JS).'lib/flex.js"></script>';
     54                $html.= '<script type="text/javascript" src="'.Mage::getBaseUrl(Mage_Core_Model_Store::URL_TYPE_JS).'lib/FABridge.js"></script>';
     55                $html.= '<script type="text/javascript" src="'.Mage::getBaseUrl(Mage_Core_Model_Store::URL_TYPE_JS).'mage/adminhtml/flexuploader.js"></script>';
     56                $html.= '<script type="text/javascript" src="'.Mage::getBaseUrl(Mage_Core_Model_Store::URL_TYPE_JS).'mage/adminhtml/browser.js"></script>';
     57                $html.= '<script type="text/javascript" src="'.Mage::getBaseUrl(Mage_Core_Model_Store::URL_TYPE_JS).'prototype/window.js"></script>';
     58               
     59                $html.= '<link rel="stylesheet" type="text/css" href="'.Mage::getBaseUrl(Mage_Core_Model_Store::URL_TYPE_JS).'prototype/windows/themes/default.css" media="screen"/>';
     60                $html.= '<link rel="stylesheet" type="text/css" href="'.Mage::getBaseUrl(Mage_Core_Model_Store::URL_TYPE_SKIN).'adminhtml/default/default/lib/prototype/windows/themes/magento.css" media="screen"/>';
     61            ?>
     62<script type="text/javascript">
     63njQuery(window).ready(function(){
     64Mediabrowser.prototype.insert = Mediabrowser.prototype.insert.wrap(function(parentMethod, event) {
     65    var div;
     66    if (event != undefined) {
     67        div = $(Event.findElement(event, 'DIV'));
     68    } else {
     69        $$('div.selected').each(function (e) {
     70            div = jQuery('#'+e.id);
     71        });
     72    }
     73    if (div.length == 0) {
     74        return false;
     75    }
     76    var targetEl = this.getTargetElement();
     77    if (! targetEl) {
     78        alert("Target element not found for content update");
     79        Windows.close('browser_window');
     80        return;
     81    }
     82    div = div[0];
     83    var params = {filename:div.id, node:this.currentNode.id, store:this.storeId};
     84
     85    if (targetEl.tagName.toLowerCase() == 'textarea') {
     86        params.as_is = 1;
     87    }
     88
     89    new Ajax.Request(this.onInsertUrl, {
     90        parameters: params,
     91        onSuccess: function(transport) {
     92            try {
     93                this.onAjaxSuccess(transport);
     94                if (this.getMediaBrowserOpener()) {
     95                    self.blur();
     96                }
     97                Windows.close('browser_window');
     98                if (targetEl.tagName.toLowerCase() == 'input') {
     99                    targetEl.value = transport.responseText;
     100                    NfireEvent(targetEl, 'change');
     101                    // AntoineK overload START
     102                    if (varienGlobalEvents) {
     103                        varienGlobalEvents.fireEvent('mediachooserChange' + targetEl.id, transport.responseText);
     104                    }
     105                    // AntoineK overload END
     106
     107                } else {
     108                    updateElementAtCursor(targetEl, transport.responseText);
     109                    if (varienGlobalEvents) {
     110                        varienGlobalEvents.fireEvent('tinymceChange');
     111                    }
     112                }
     113            } catch (e) {
     114                alert(e.message);
     115            }
     116        }.bind(this)
     117    });
     118});
     119});
     120</script>
     121<?php
     122$loaded = true;
     123}
     124?>
     125<script type="text/javascript">
     126    njQuery(window).ready(function(){
     127        jQuery('#<?php echo $this->_id; ?>_button').on('click', function(event){
     128            event.preventDefault();
     129            MediabrowserUtility.openDialog('<?php echo Mage::helper("adminhtml")->getUrl('adminhtml/cms_wysiwyg_images_chooser/index', array('target_element_id' => $this->_id, 'store' => 'undefined', 'type' => 'image')); ?>');
     130        });
     131    });
     132</script>
     133            <?php
     134            $html.= ob_get_clean();
     135            $html.= '<a id="'.$this->_id.'_button" title="Add Image" data-editor="content" class="button add-image" href="#">
     136                <span class="wp-media-buttons-icon"></span> Add Image
     137            </a>';
    44138        }
    45139        return $html;
  • smart-slider-2/trunk/nextend/form/element/mixed.php

    r856428 r874573  
    3131
    3232            $class = 'NextendElement' . $type;
    33             if (!class_exists($class)) {
     33            if (!class_exists($class, false)) {
    3434                if (!nextendimportpath($this->_form->_xmlfolder . 'element/' . $type)) {
    3535                    nextendimport('nextend.form.element.' . $type);
  • smart-slider-2/trunk/nextend/form/element/wordpressmenu.php

    r785118 r874573  
    88        $ids = array();
    99       
    10         for($i = 0; $i < count($menus); $i++){
    11             $this->_xml->addChild('option', htmlspecialchars($menus[$i]->name))->addAttribute('value', $menus[$i]->term_id);
    12             $ids[] = $menus[$i]->term_id;
     10        foreach($menus AS $menu){
     11            $this->_xml->addChild('option', ($menu->name))->addAttribute('value', $menu->term_id);
     12            $ids[] = $menu->term_id;
    1313        }
    1414       
  • smart-slider-2/trunk/nextend/form/tab.php

    r785118 r874573  
    3030            $name = NextendXmlGetAttribute($element, 'name');
    3131            $class = 'NextendElement' . $type;
    32             if (!class_exists($class)) {
     32            if (!class_exists($class, false)) {
    3333                if (!nextendimportpath($this->_form->_xmlfolder . 'element/' . $type)) {
    3434                    nextendimport('nextend.form.element.' . $type);
  • smart-slider-2/trunk/nextend/javascript/jquery/1.9.1/jquery.mousewheel.js

    r785118 r874573  
    1313(function (jQuery) {
    1414    (function (factory) {
    15         if ( typeof define === 'function' && define.amd ) {
    16             // AMD. Register as an anonymous module.
    17             define(['jquery'], factory);
    18         } else if (typeof exports === 'object') {
    19             // Node/CommonJS style for Browserify
    20             module.exports = factory;
    21         } else {
    22             // Browser globals
    23             factory(jQuery);
    24         }
     15       factory(jQuery);
    2516    }(function ($) {
    2617   
  • smart-slider-2/trunk/nextend/javascript/modernizr/modernizr.js

    r859428 r874573  
    3737        body.insertBefore(element, null);
    3838        for (var i in properties) {
    39             if (element.style[i] !== undefined) {
     39            if (typeof element.style[i] != 'undefined') {
    4040                element.style[i] = value;
    4141            }
     
    5454                        });
    5555                    }
    56                     return el.currentStyle[prop] ? el.currentStyle[prop] : null;
     56                    try{
     57                        return el.currentStyle[prop] ? el.currentStyle[prop] : null;
     58                    }catch(e){
     59                        return null; // IE fix
     60                    }
    5761                };
    5862                return this;
  • smart-slider-2/trunk/nextend/json/external/json.php

    r785118 r874573  
    768768    function isError($data, $code = null)
    769769    {
    770         if (class_exists('pear')) {
     770        if (class_exists('pear', false)) {
    771771            return PEAR::isError($data, $code);
    772772        } elseif (is_object($data) && (get_class($data) == 'services_json_error' ||
     
    779779}
    780780
    781 if (class_exists('PEAR_Error')) {
     781if (class_exists('PEAR_Error', false)) {
    782782
    783783    class Services_JSON_Error extends PEAR_Error
  • smart-slider-2/trunk/nextend/language/language.php

    r818184 r874573  
    2727           
    2828            if(NextendFilesystem::fileexists($f)){
    29                 self::$translated = parse_ini_file($f) + self::$translated;
     29                self::$translated = self::parse_ini_file($f) + self::$translated;
    3030                self::$loadedfiles[$f] = true;
    3131            }else{
     
    5454        }
    5555        echo $res;
     56    }
     57   
     58    static function parse_ini_file($file){
     59        if(function_exists('parse_ini_file')){
     60            return parse_ini_file($file);
     61        }
     62        nextendimport('nextend.parse.ini');
     63        return NextendIni::parse($file);
    5664    }
    5765}
  • smart-slider-2/trunk/nextend/library.php

    r818184 r874573  
    2323
    2424function nextendIsJoomla() {
    25     return (!defined('ABSPATH') || class_exists('wpj_loader')) && defined('_JEXEC');
     25    return (!defined('ABSPATH') || class_exists('wpj_loader', false)) && defined('_JEXEC');
    2626}
    2727
     
    3131
    3232function nextendIsMagento() {
    33     return class_exists('Mage');
     33    return class_exists('Mage', false);
    3434}
    3535
  • smart-slider-2/trunk/nextend/wordpress/configuration.xml

    r818184 r874573  
    88        <param type="text" name="cachepath" label="Cache path" default="cache/" description="" />
    99       
    10         <param type="onoff" name="safemode" default="0" label="Load CSS and Javascript in safe mode" description="Safe mode solves a problem when the stylesheet is missing, but it could cause flickering." />
     10        <param type="radio" name="safemode" default="0" label="CSS and Javascript load mode" description="Safe mode solves a problem when the stylesheet is missing, but it could cause flickering.">
     11            <option value="0">Normal</option>
     12            <option value="2">Alternative #1</option>
     13            <option value="1">Safe mode</option>
     14        </param>
    1115        <param type="onoff" name="debuglng" label="Debug_language" default="0" />
     16        <param type="onoff" name="logproblems" label="Log possible problems" default="1" />
    1217    </params>
    1318</root>
  • smart-slider-2/trunk/nextend/wp-library.php

    r856428 r874573  
    11<?php
    22
    3 global $nextend_head, $nextend_body;
     3if (!defined('NEXTENDLIBRARY')) {
     4    global $nextend_head, $nextend_body, $nextend_wp_head, $nextend_wp_footer;
    45
    5 $nextend_head = '';
    6 $nextend_body = '';
    7 
    8 if (!defined('NEXTENDLIBRARY')) {
     6    $nextend_head = '';
     7    $nextend_body = '';
     8    $nextend_wp_head = false;
     9    $nextend_wp_footer = false;
     10   
    911    require_once(dirname(__FILE__) . DIRECTORY_SEPARATOR . 'library.php');
    1012
     
    1416    add_action('admin_footer', 'nextend_generate');
    1517    function nextend_generate() {
    16         global $nextend_head, $nextend_body;
     18        global $nextend_head, $nextend_body, $nextend_wp_footer;
     19        $nextend_wp_footer = true;
     20       
    1721        if (class_exists('NextendCss', false) || class_exists('NextendJavascript', false)) {
    1822            ob_start();
     
    5458            $nextend_body = ob_get_clean();
    5559        }
    56         if(getNextend('safemode', 0)) echo $nextend_head.$nextend_body;
     60        if(getNextend('safemode', 0) == 1) echo $nextend_head.$nextend_body;
    5761        return true;
    5862    }
     
    7175    if(is_admin()){
    7276        add_action('admin_init', 'nextend_wp_loaded', 3000);
     77    }else if(getNextend('safemode', 0) == 0){
     78        add_action('wp', 'nextend_wp_loaded', 30000);
    7379    }else{
    74         add_action('wp', 'nextend_wp_loaded', 3000); // fix for gzip ob_starts
     80        add_action('wp_head', 'nextend_wp_loaded');
    7581    }
    7682    function nextend_wp_loaded() {
    77         setNextend('safemode', 0);
    78         if(!getNextend('safemode', 0)){
     83        global $nextend_wp_head;
     84        $nextend_wp_head = true;
     85        //setNextend('safemode', 0);
     86        if(getNextend('safemode', 0) != 1){
    7987            ob_start("nextend_render_end");
    8088            ob_start();
    8189        }
    8290    }
     91   
     92    if(getNextend('logproblems')){
     93        function nextend_error_checker(){
     94            global $nextend_wp_head, $nextend_wp_footer;
     95            if (class_exists('NextendCss', false) || class_exists('NextendJavascript', false)) {
     96                if((!defined('DOING_AJAX') || !DOING_AJAX) && !is_admin()){
     97                    if($nextend_wp_head === false){
     98                        nextend_add_error('missinghead');
     99                    }else if($nextend_wp_footer === false){
     100                        nextend_add_error('missingfooter');
     101                    }
     102                }
     103            }
     104        }
     105       
     106        function nextend_add_error($key){
     107            static $nextenderror = null;
     108            if(!$nextenderror){
     109                $nextenderror = get_option( 'nextend_error' );
     110                if ( $nextenderror === false ){
     111                    $nextenderror = array();
     112                }
     113            }
     114            if(!is_array($nextenderror[$key])) $nextenderror[$key] = array();
     115            $nextenderror[$key][] = $_SERVER["REQUEST_URI"];
     116            $nextenderror[$key] = array_unique($nextenderror[$key]);
     117            update_option( 'nextend_error' , $nextenderror);
     118        }
     119       
     120        register_shutdown_function('nextend_error_checker');
     121    }
    83122}
  • smart-slider-2/trunk/plugins/nextendslidergenerator/facebook/facebook.php

    r856428 r874573  
    11<?php
    22nextendimportsmartslider2('nextend.smartslider.settings');
     3nextendimportsmartslider2('nextend.smartslider.check');
    34
    45class plgNextendSliderGeneratorFacebook extends NextendPluginBase {
  • smart-slider-2/trunk/plugins/nextendslidergenerator/flickr/flickr.php

    r856428 r874573  
    11<?php
    22nextendimportsmartslider2('nextend.smartslider.settings');
     3nextendimportsmartslider2('nextend.smartslider.check');
    34
    45class plgNextendSliderGeneratorFlickr extends NextendPluginBase {
  • smart-slider-2/trunk/plugins/nextendslidergenerator/imagefromfolder/fromfolder/generator.php

    r856428 r874573  
    88        parent::__construct($data);
    99        $this->_variables = array(
    10             'image_url' => NextendText::_('Url_to_the_image'),
    11             'file_name' => NextendText::_('Name_of_the_image_file')
     10            'image' => NextendText::_('Url_to_the_image'),
     11            'title' => NextendText::_('Name_of_the_image_file')
    1212        );
    1313    }
     
    2424            if ($ext == 'jpg' || $ext == 'jpeg' || $ext == 'png') {
    2525                $data[$j] = array();
    26                 $data[$j]['image_url'] = NextendUri::pathToUri($folder.$files[$i]);
    27                 $data[$j]['file_name'] = $files[$i];
     26                $data[$j]['thumbnail'] = $data[$j]['image'] = $data[$j]['image_url'] = NextendUri::pathToUri($folder.$files[$i]);
     27                $data[$j]['title'] = $data[$j]['file_name'] = $files[$i];
    2828                $j++;
    2929            }
  • smart-slider-2/trunk/plugins/nextendslidergenerator/imagefromfolder/imagefromfolder.php

    r856428 r874573  
    11<?php
     2
     3nextendimportsmartslider2('nextend.smartslider.check');
    24
    35class plgNextendSliderGeneratorImageFromFolder extends NextendPluginBase {
     
    911
    1012        if (!isset($list[$this->_group])) $list[$this->_group] = array();
    11         $list[$this->_group][$this->_group . '_fromfolder'] = array(NextendText::_('From_folder'), $this->getPath() . 'fromfolder' . DIRECTORY_SEPARATOR, true, false, true);
     13        $list[$this->_group][$this->_group . '_fromfolder'] = array(NextendText::_('From_folder'), $this->getPath() . 'fromfolder' . DIRECTORY_SEPARATOR, true, false, true, 'image');
    1214    }
    1315
  • smart-slider-2/trunk/plugins/nextendslidergenerator/instagram/instagram.php

    r856428 r874573  
    11<?php
    22nextendimportsmartslider2('nextend.smartslider.settings');
     3nextendimportsmartslider2('nextend.smartslider.check');
    34
    45class plgNextendSliderGeneratorInstagram extends NextendPluginBase {
  • smart-slider-2/trunk/plugins/nextendslidergenerator/nextgengallery/nextgengallery.php

    r856428 r874573  
    11<?php
     2
     3nextendimportsmartslider2('nextend.smartslider.check');
    24
    35class plgNextendSliderGeneratorNextgenGallery extends NextendPluginBase {
     
    79    function onNextendSliderGeneratorList(&$group, &$list, $showall = false) {
    810        if($showall || smartsliderIsFull()){
    9             $installed = (class_exists('nggGallery') || class_exists('C_Component_Registry'));
     11            $installed = (class_exists('nggGallery', false) || class_exists('C_Component_Registry', false));
    1012            if ($showall || $installed) {
    1113                $group[$this->_group] = 'Nextgen';
    1214       
    1315                if (!isset($list[$this->_group])) $list[$this->_group] = array();
    14                 $list[$this->_group][$this->_group . '_gallery'] = array('Nextgen Gallery', $this->getPath() . 'gallery' . DIRECTORY_SEPARATOR, true, true, $installed ? true : 'http://wordpress.org/plugins/nextgen-gallery/');
     16                $list[$this->_group][$this->_group . '_gallery'] = array('Nextgen Gallery', $this->getPath() . 'gallery' . DIRECTORY_SEPARATOR, true, true, $installed ? true : 'http://wordpress.org/plugins/nextgen-gallery/', 'image');
    1517            }
    1618        }
  • smart-slider-2/trunk/plugins/nextendslidergenerator/posts/posts.php

    r856428 r874573  
    11<?php
     2
     3nextendimportsmartslider2('nextend.smartslider.check');
    24
    35class plgNextendSliderGeneratorPosts extends NextendPluginBase {
     
    1012   
    1113            if (!isset($list[$this->_group])) $list[$this->_group] = array();
    12             $list[$this->_group][$this->_group . '_posts'] = array('By filter', $this->getPath() . 'posts' . DIRECTORY_SEPARATOR, true, true, true);
     14            $list[$this->_group][$this->_group . '_posts'] = array('By filter', $this->getPath() . 'posts' . DIRECTORY_SEPARATOR, true, true, true, 'article');
    1315        }
    1416    }
  • smart-slider-2/trunk/plugins/nextendslidergenerator/twitter/twitter.php

    r856428 r874573  
    11<?php
    22nextendimportsmartslider2('nextend.smartslider.settings');
     3nextendimportsmartslider2('nextend.smartslider.check');
    34
    45class plgNextendSliderGeneratorTwitter extends NextendPluginBase {
  • smart-slider-2/trunk/plugins/nextendslidergenerator/youtube/youtube.php

    r856428 r874573  
    11<?php
    22nextendimportsmartslider2('nextend.smartslider.settings');
     3nextendimportsmartslider2('nextend.smartslider.check');
    34
    45class plgNextendSliderGeneratorYoutube extends NextendPluginBase {
  • smart-slider-2/trunk/plugins/nextendslideritem/button/button.php

    r856428 r874573  
    1111    function getTemplate(){
    1212        return "
    13 <div class=\"nextend-smartslider-button-{buttonclass}-container {fontclass}\" style=\"cursor:pointer; width: 100%;\" data-click=\"{onmouseclick_esc}\" data-enter=\"{onmouseenter_esc}\" data-leave=\"{onmouseleave_esc}\">
    14     <a href=\"{url}\" onclick='if(this.getAttribute(\'href\') == \'#\') return false;'  target=\"{target}\" style=\"display: block;\" class=\"nextend-smartslider-button-{buttonclass} {class}\">
     13<div class=\"nextend-smartslider-button-{buttonclass}-container {fontclass}\" style=\"cursor:pointer; width: 100%;\">
     14    <a href=\"{url}\" target=\"{target}\" style=\"display: block;\" class=\"nextend-smartslider-button-{buttonclass} {class}\">
    1515      {content}
    1616    </a>
     
    3030    }
    3131   
     32    function _render($data, $id, $sliderid){
     33        $link = (array)NextendParse::parse($data->get('link', ''));
     34        if(!isset($link[1])) $link[1] = '';
     35       
     36        $attr = '';
     37        $click = $data->get('onmouseclick', '');
     38        if(!empty($click)) $attr.= ' data-click="'.htmlspecialchars($click).'"';
     39        $enter = $data->get('onmouseenter', '');
     40        if(!empty($enter)) $attr.= ' data-enter="'.htmlspecialchars($enter).'"';
     41        $leave = $data->get('onmouseleave', '');
     42        if(!empty($leave)) $attr.= ' data-leave="'.htmlspecialchars($leave).'"';
     43       
     44        return
     45'<div class="nextend-smartslider-button-'.$data->get('buttonclass', '').'-container '.$data->get('fontclass', '').'" style="cursor:pointer; width: 100%;" '.$attr.'>
     46    <a href="'.$link[0].'" '.($link[0] == '#' ? 'onclick="return false;" ' : '').'target="'.$link[1].'" style="display: block;" class="nextend-smartslider-button-'.$data->get('buttonclass', '').' '.$data->get('class', '').'">
     47        '.$data->get('content', '').'
     48    </a>
     49</div>
     50<style type="text/css">
     51    div#nextend-smart-slider-0 div.nextend-smartslider-button-'.$data->get('buttonclass', '').'-container a.nextend-smartslider-button-'.$data->get('buttonclass', '').'{
     52        '.$data->get('css', '').'
     53    }
     54   
     55    div#nextend-smart-slider-0 div.nextend-smartslider-button-'.$data->get('buttonclass', '').'-container a.nextend-smartslider-button-'.$data->get('buttonclass', '').':HOVER,
     56    div#nextend-smart-slider-0 div.nextend-smartslider-button-'.$data->get('buttonclass', '').'-container a.nextend-smartslider-button-'.$data->get('buttonclass', '').':FOCUS,
     57    div#nextend-smart-slider-0 div.nextend-smartslider-button-'.$data->get('buttonclass', '').'-container a.nextend-smartslider-button-'.$data->get('buttonclass', '').':ACTIVE{
     58        '.$data->get('csshover', '').'
     59    }
     60</style>';
     61    }
     62   
     63    function _renderAdmin($data, $id, $sliderid){
     64        $link = (array)NextendParse::parse($data->get('link', ''));
     65        if(!isset($link[1])) $link[1] = '';
     66       
     67        return
     68'<div class="nextend-smartslider-button-'.$data->get('buttonclass', '').'-container '.$data->get('fontclass', '').'" style="cursor:pointer; width: 100%;">
     69    <a href="'.$link[0].'" '.($link[0] == '#' ? 'onclick="return false;" ' : '').' style="display: block;" class="nextend-smartslider-button-'.$data->get('buttonclass', '').' '.$data->get('class', '').'">
     70        '.$data->get('content', '').'
     71    </a>
     72</div>
     73<style type="text/css">
     74    div#nextend-smart-slider-0 div.nextend-smartslider-button-'.$data->get('buttonclass', '').'-container a.nextend-smartslider-button-'.$data->get('buttonclass', '').'{
     75        '.$data->get('css', '').'
     76    }
     77   
     78    div#nextend-smart-slider-0 div.nextend-smartslider-button-'.$data->get('buttonclass', '').'-container a.nextend-smartslider-button-'.$data->get('buttonclass', '').':HOVER,
     79    div#nextend-smart-slider-0 div.nextend-smartslider-button-'.$data->get('buttonclass', '').'-container a.nextend-smartslider-button-'.$data->get('buttonclass', '').':FOCUS,
     80    div#nextend-smart-slider-0 div.nextend-smartslider-button-'.$data->get('buttonclass', '').'-container a.nextend-smartslider-button-'.$data->get('buttonclass', '').':ACTIVE{
     81        '.$data->get('csshover', '').'
     82    }
     83</style>';
     84    }
     85   
    3286    function getValues(){
    33         return array(       
    34             'class' => '',            
    35             'link' => '#|*|_self',
    36             'url' => '',
    37             'target' => '_self',
    38             'content' => NextendText::_('Button'),
     87        return array(   
     88            'content' => NextendText::_('Button'),     
     89            'link' => '#|*|_self', 
     90            'buttonclass' => 'blue-transition-rounded-button',
     91            'css' => "padding: 8px 10px;\nbox-shadow: 0 1px 1px RGBA(0,0,0,0.2);\ntext-transform: uppercase;\n-webkit-border-radius: 2px;\n-moz-border-radius: 2px;\nborder-radius: 2px;\nbackground: #2381e2;\n-webkit-transition: all 0.4s ease-out 0s;\n-moz-transition: all 0.4s ease-out 0s;\n-ms-transition: all 0.4s ease-out 0s;\n-o-transition: all 0.4s ease-out 0s;\ntransition: all 0.4s ease-out 0s;",
     92            'csshover' => "background: #1e70c5;\n-webkit-border-radius: 25px;\n-moz-border-radius: 25px;\nborder-radius: 25px;",
    3993            'fontclass' => 'sliderfont11',
    40             'css' => 'padding: 8px 10px;
    41 box-shadow: 0 1px 1px RGBA(0,0,0,0.2);
    42 text-transform: uppercase;
    43 -webkit-border-radius: 2px;
    44 -moz-border-radius: 2px;
    45 border-radius: 2px;
    46 background: #2381e2;
    47 -webkit-transition: all 0.4s ease-out 0s;
    48 -moz-transition: all 0.4s ease-out 0s;
    49 -ms-transition: all 0.4s ease-out 0s;
    50 -o-transition: all 0.4s ease-out 0s;
    51 transition: all 0.4s ease-out 0s;',
    52             'csshover' => 'background: #1e70c5;
    53 -webkit-border-radius: 25px;
    54 -moz-border-radius: 25px;
    55 border-radius: 25px;',
    56             'buttonclass' => 'blue-transition-rounded-button',
    57             'skins' => '',
    58             'skin' => '',
     94            'class' => '',
    5995            'onmouseclick' => '',
    6096            'onmouseenter' => '',
  • smart-slider-2/trunk/plugins/nextendslideritem/fade/fade/configuration.xml

    r818184 r874573  
    1313        <param name="width" type="text" label="Width" default="100%"/>
    1414        <param name="css" type="textarea" label="CSS" default=""/>
    15         <param name="fadeclass" type="text" label="Class" default=""/>
    16         <param name="class" type="text" label="Custom_css_class" default=""/>
     15        <param name="fadeclass" type="text" label="Custom_css_class" default=""/>
    1716       
    1817        <param name="onmouseenter" type="text" label="Event_on_mouseenter" description="JavaScript_code_to_run_on_the_event" default=""/>
  • smart-slider-2/trunk/plugins/nextendslideritem/flipper/flipper/configuration.xml

    r818184 r874573  
    1313        <param name="width" type="text" label="Width" default="100%"/>
    1414        <param name="css" type="textarea" label="CSS" default=""/>
    15         <param name="flipclass" type="text" label="Class" default=""/>
    16         <param name="class" type="text" label="Custom_css_class" default=""/>
     15        <param name="flipclass" type="text" label="Custom_css_class" default=""/>
    1716       
    1817        <param name="onmouseenter" type="text" label="Event_on_mouseenter" description="JavaScript_code_to_run_on_the_event" default=""/>
  • smart-slider-2/trunk/plugins/nextendslideritem/heading/heading.php

    r856428 r874573  
    1010    function getTemplate() {
    1111        return "
    12             <h{priority} class='{fontclass} {class}' style=\"{fontsizer}{fontcolorr}{css_esc}\" data-click=\"{onmouseclick_esc}\" data-enter=\"{onmouseenter_esc}\" data-leave=\"{onmouseleave_esc}\">
    13                 <a href='{url}' target='{target}' style='{fontcolorr}'>
     12            <h{priority} class='{fontclass} {class}' style=\"{fontsizer}{fontcolorr}{css_esc}\">
     13                <a href='{url}' style='{fontcolorr}'>
    1414                  {heading}
    1515                </a>
     
    1717        ";
    1818    }
     19   
     20    function _render($data, $id, $sliderid){
     21        $link = (array)NextendParse::parse($data->get('link', ''));
     22        if(!isset($link[1])) $link[1] = '';
     23       
     24        $fontsize = $data->get('fontsize', '');
     25        if(!empty($fontsize)) $fontsize = 'font-size:'.$fontsize.'%;';
     26       
     27        $fontcolors = (array)NextendParse::parse($data->get('fontcolor', ''));
     28        $fontcolor = '';
     29        if(isset($fontcolors[0]) && $fontcolors[0]){
     30            if(!empty($fontcolors[1])) $fontcolor = 'color:#'.$fontcolors[1].';';
     31        }
     32       
     33        $attr = '';
     34        $click = $data->get('onmouseclick', '');
     35        if(!empty($click)) $attr.= ' data-click="'.htmlspecialchars($click).'"';
     36        $enter = $data->get('onmouseenter', '');
     37        if(!empty($enter)) $attr.= ' data-enter="'.htmlspecialchars($enter).'"';
     38        $leave = $data->get('onmouseleave', '');
     39        if(!empty($leave)) $attr.= ' data-leave="'.htmlspecialchars($leave).'"';
     40       
     41        return '
     42            <h'.$data->get('priority', 1).' class="'.$data->get('fontclass', 'sliderfont2').' '.$data->get('class', '').'" style="'.$fontsize.$fontcolor.htmlspecialchars($data->get('css', '')).'" '.$attr.'>
     43                '.($link[0] != '#' ? '<a href="'.$link[0].'" target="'.$link[1].'" style="'.$fontcolor.'">' : '').'
     44                  '.($data->get('heading', '')).'
     45                '.($link[0] != '#' ? '</a>' : '').'
     46            </h'.$data->get('priority', 1).'>
     47        ';
     48    }
     49   
     50    function _renderAdmin($data, $id, $sliderid){
     51        $link = (array)NextendParse::parse($data->get('link', ''));
     52        if(!isset($link[1])) $link[1] = '';
     53       
     54        $fontsize = $data->get('fontsize', '');
     55        if(!empty($fontsize)) $fontsize = 'font-size:'.$fontsize.'%;';
     56       
     57        $fontcolors = (array)NextendParse::parse($data->get('fontcolor', ''));
     58        $fontcolor = '';
     59        if(isset($fontcolors[0]) && $fontcolors[0]){
     60            if(!empty($fontcolors[1])) $fontcolor = 'color:#'.$fontcolors[1].';';
     61        }
     62       
     63        return '
     64            <h'.$data->get('priority', 1).' class="'.$data->get('fontclass', 'sliderfont2').' '.$data->get('class', '').'" style="'.$fontsize.$fontcolor.htmlspecialchars($data->get('css', '')).'">
     65                '.($link[0] != '#' ? '<a href="'.$link[0].'" target="'.$link[1].'" style="'.$fontcolor.'">' : '').'
     66                  '.($data->get('heading', '')).'
     67                '.($link[0] != '#' ? '</a>' : '').'
     68            </h'.$data->get('priority', 1).'>
     69        ';
     70    }
    1971
    2072    function getValues() {
    2173        return array(
    22             'fontsizer' => '',
    23             'fontcolorr' => '',
    2474            'priority' => '1',
    2575            'heading' =>  NextendText::_('Heading'),
    2676            'link' => '#|*|_self',
    27             'url' => '',
    28             'target' => '_self',
    2977            'fontclass' => 'sliderfont2',
     78            'fontsize' => 'auto',
     79            'fontcolor' => '0|*|000000',
     80            'css' => "padding: 0;\nmargin: 0;\nbackground: none;\nbox-shadow: none;",
    3081            'class' => '',
    31             'css' => 'padding: 0;
    32                       margin: 0;
    33                       background: none;
    34                       box-shadow: none;',
     82            'onmouseenter' => '',
    3583            'onmouseclick' => '',
    36             'onmouseenter' => '',
    37             'onmouseleave' => ''
     84            'onmouseleave' => '',
    3885        );
    3986    }
  • smart-slider-2/trunk/plugins/nextendslideritem/heading/heading/parser.js

    r785118 r874573  
    77                o.url = _d[0];
    88                o.target = _d[1];
    9                 o.cursor = _d[2];
    109                delete o.size;
    1110            }else if(name === 'fontsize'){
     
    2221                    o.fontcolorr = '';
    2322                }
     23            }else if(name === 'css'){
     24                o[name+'_esc'] = data.replace(/"/g, '&quot;').replace(/'/g, '&apos;');
    2425            }
    2526            return o;
  • smart-slider-2/trunk/plugins/nextendslideritem/image/image.php

    r856428 r874573  
    1010
    1111    function getTemplate() {
    12         return '<div data-click="{onmouseclick_esc}" data-enter="{onmouseenter_esc}" data-leave="{onmouseleave_esc}"><a href="{url}" target="{target}" style="display: block;background: none !important;" >
    13           <img id="{{uuid}}" src="{image}" style="display: block; max-width: 100%; {css};width:{width};height:{height};" class="{kenburnsclass}" alt="{alt_esc}" title="{title_esc}" />
    14         </a></div>';
     12        return '<div>
     13          <a href="{url}" style="display: block;background: none !important;" >
     14              <img src="{image}" style="display: block; max-width: 100%; {css};width:{width};height:{height};" class="{kenburnsclass}" />
     15              <style>
     16              .haskenburns{
     17                  width: 100% !important;
     18              }
     19              </style>
     20          </a>
     21        </div>';
     22    }
     23   
     24    function _render($data, $id, $sliderid){
     25        $link = (array)NextendParse::parse($data->get('link', ''));
     26        if(!isset($link[1])) $link[1] = '';
     27       
     28        $attr = '';
     29        $click = $data->get('onmouseclick', '');
     30        if(!empty($click)) $attr.= ' data-click="'.htmlspecialchars($click).'"';
     31        $enter = $data->get('onmouseenter', '');
     32        if(!empty($enter)) $attr.= ' data-enter="'.htmlspecialchars($enter).'"';
     33        $leave = $data->get('onmouseleave', '');
     34        if(!empty($leave)) $attr.= ' data-leave="'.htmlspecialchars($leave).'"';
     35       
     36       
     37        $size = (array)NextendParse::parse($data->get('size', ''));
     38        if(!isset($size[0])) $size[0] = 'auto';
     39        if(!isset($size[1])) $size[1] = 'auto';
     40       
     41        $kenburns = (array)NextendParse::parse($data->get('kenburns', ''));
     42       
     43        $style = '';
     44       
     45        if(isset($kenburns[0]) && $kenburns[0]){
     46           
     47            $size[0] = '100';
     48            $size[1] = 'auto';
     49           
     50            $duration = intval($kenburns[1])/1000;
     51            $targetWidth = intval($kenburns[2]);
     52            $snap = explode('-', $kenburns[3]);
     53            $delay = isset($kenburns[4]) ? intval($kenburns[4])/1000 : 0;
     54           
     55            $r = $targetWidth/100;
     56           
     57            $snapstyle = '';
     58            switch($snap[0]){
     59                case 'lt':
     60                    $snapstyle='position:absolute;left:0;top:0;right:auto;bottom:auto;';
     61                    break;
     62                case 'rt':
     63                    $snapstyle='position:absolute;left:auto;top:0;right:0;bottom:auto;';
     64                    break;
     65                case 'lb':
     66                    $snapstyle='position:absolute;left:0;top:auto;right:auto;bottom:0;';
     67                    break;
     68                case 'rb':
     69                    $snapstyle='position:absolute;left:auto;top:auto;right:0;bottom:0;';
     70                    break;
     71            }
     72           
     73            $style = '
     74            <style type="text/css">
     75                #nextend-smart-slider-0 #'.$id.'{
     76                    width:100%;
     77                    max-width:none !important;
     78                    -webkit-transition: -webkit-transform '.$duration.'s '.$delay.'s;
     79                    -moz-transition: -moz-transform '.$duration.'s '.$delay.'s;
     80                    -o-transition: -o-transform '.$duration.'s '.$delay.'s;
     81                    -ms-transition: -ms-transform '.$duration.'s '.$delay.'s;
     82                    transition: transform '.$duration.'s '.$delay.'s;
     83                    -moz-transform-origin:'.$snap[1].';
     84                    -ms-transform-origin:'.$snap[1].';
     85                    -webkit-transform-origin:'.$snap[1].';
     86                    transform-origin:'.$snap[1].';
     87                    '.$snapstyle.'
     88                }
     89               
     90                .x-ready #nextend-smart-slider-0.nextend-loaded .smart-slider-slide-active #'.$id.'{
     91                    width: '.$targetWidth.'%;
     92                }
     93               
     94                .nextend-csstransforms.x-ready #nextend-smart-slider-0.nextend-loaded .smart-slider-slide-active #'.$id.'{
     95                    width:100%;
     96                    -moz-transform: scale('.$r.','.$r.');
     97                    -ms-transform: scale('.$r.','.$r.');
     98                    -webkit-transform: scale('.$r.','.$r.');
     99                    transform: scale('.$r.','.$r.');
     100                }
     101            </style>
     102            ';
     103        }
     104        return $style.'<div '.$attr.'>
     105            '.($link[0] != '#' ? '<a href="'.$link[0].'" target="'.$link[1].'" style="display: block;background: none !important;">' : '').'
     106                <img id="'.$id.'" src="'.$data->get('image', '').'" style="display: block; max-width: 100%; '.htmlspecialchars($data->get('css', '')).';width:'.$size[0].';height:'.$size[1].';" class="'.$data->get('kenburnsclass', '').'" alt="'.htmlspecialchars($data->get('alt', '')).'" title="'.htmlspecialchars($data->get('title', '')).'" />
     107            '.($link[0] != '#' ? '</a>' : '').'
     108        </div>';
     109    }
     110   
     111    function _renderAdmin($data, $id, $sliderid){
     112   
     113        $link = (array)NextendParse::parse($data->get('link', ''));
     114        if(!isset($link[1])) $link[1] = '';
     115       
     116        $attr = '';
     117        $click = $data->get('onmouseclick', '');
     118        if(!empty($click)) $attr = ' data-click="'.htmlspecialchars($click).'"';
     119        $enter = $data->get('onmouseenter', '');
     120        if(!empty($enter)) $attr = ' data-enter="'.htmlspecialchars($enter).'"';
     121        $leave = $data->get('onmouseleave', '');
     122        if(!empty($leave)) $attr = ' data-leave="'.htmlspecialchars($leave).'"';
     123       
     124       
     125        $size = (array)NextendParse::parse($data->get('size', ''));
     126        if(!isset($size[0])) $size[0] = 'auto';
     127        if(!isset($size[1])) $size[1] = 'auto';
     128       
     129        $kenburns = (array)NextendParse::parse($data->get('kenburns', ''));
     130       
     131        $style = '';
     132       
     133        if(isset($kenburns[0]) && $kenburns[0]){
     134            $data->set('kenburnsclass','haskenburns');
     135        }
     136       
     137        return $style.'<div '.$attr.'>
     138            '.($link[0] != '#' ? '<a href="'.$link[0].'" style="display: block;background: none !important;">' : '').'
     139                <img id="'.$id.'" src="'.$data->get('image', '').'" style="display: block; max-width: 100%; '.htmlspecialchars($data->get('css', '')).';width:'.$size[0].';height:'.$size[1].';" class="'.$data->get('kenburnsclass', '').'" />
     140            '.($link[0] != '#' ? '</a>' : '').'
     141        </div>';
    15142    }
    16143
     
    18145        return array(
    19146            'image' => NextendSmartSliderSettings::get('placeholder'),
    20             'size' => '100%|*|',
    21             'link' => '#|*|_self',
    22             'url' => '',
    23             'target' => '_self',
    24             'width' => '100%',
    25             'height' => 'auto',
    26             'css' => '',
    27147            'alt' => NextendText::_('Image_not_available'),
    28148            'title' => '',
     149            'link' => '#|*|_self',
     150            'size' => '100%|*|auto',
     151            'css' => '',
     152            'onmouseenter' => '',
    29153            'onmouseclick' => '',
    30             'onmouseenter' => '',
    31154            'onmouseleave' => '',
    32             'kenburns' => 0,
    33             'kenburnsclass' => ''
     155            'kenburns' => '0|*|10000|*|115|*|0-50% 50%|*|0'
    34156        );
    35157    }
  • smart-slider-2/trunk/plugins/nextendslideritem/image/image/configuration.xml

    r856428 r874573  
    2020        <param name="onmouseleave" type="text" label="Event_on_mouseleave" description="JavaScript_code_to_run_on_the_event" default=""/>
    2121       
    22         <param name="kenburns" type="mixed" label="Ken burns" default="0|*|10000|*|115|*|0-50% 50%">
     22        <param name="kenburns" type="mixed" label="Ken burns" default="0|*|10000|*|115|*|0-50% 50%|*|0">
    2323            <param type="onoff" label="Enabled" />
    2424            <param type="text" label="Duration" style="width:40px;">
     
    3939                <option value="rb-100% 100%">Right-bottom</option>
    4040            </param>
     41            <param type="text" label="Delay" style="width:40px;">
     42                <unit>ms</unit>
     43            </param>
    4144        </param>
    4245    </params>
  • smart-slider-2/trunk/plugins/nextendslideritem/image/image/parser.js

    r856428 r874573  
    1313                o.url = _d[0];
    1414                o.target = _d[1];
    15                 o.cursor = _d[2];
    1615                delete o.size;
    1716            }else if(name === 'kenburns'){
     
    2221                    o.kenburnsclass = '';
    2322                }
    24                 o.kenburnsduration = parseInt(_d[1])/1000;
    25                 o.kenburnswidth = parseInt(_d[2]);
    26                 o.kenburnssnap = _d[3];
    2723            }
    2824            return o;
     
    3228                node.html(node.children('a').html());
    3329            }
    34             if(data.kenburnsclass != ''){
    35                 var img = node.find('img');
    36                 var id = img.attr('id');
    37                
    38                 img.css('width', "").css('height', "");
    39                
    40                 var snap = data.kenburnssnap.split('-');
    41                
    42                 var style = '<style type="text/css">';
    43                 style+='#nextend-smart-slider-0 #'+id+'{width:100%; max-width:none !important; -webkit-transition: all '+data.kenburnsduration+'s;-moz-transition: all '+data.kenburnsduration+'s;-o-transition: all '+data.kenburnsduration+'s;-ms-transition: all '+data.kenburnsduration+'s;transition: none all '+data.kenburnsduration+'s;  -moz-transform-origin:'+snap[1]+'; -ms-transform-origin:'+snap[1]+'; -webkit-transform-origin:'+snap[1]+'; transform-origin:'+snap[1]+';';
    44                
    45                 var fn1 = function(){
    46                     setTimeout(function(){
    47                         node.closest('.smart-slider-items').css('height', '');
    48                     }, 100);
    49                 },
    50                 fn2 = function(){
    51                     setTimeout(function(){
    52                         node.closest('.smart-slider-items').css('height', '100%');
    53                     }, 100);
    54                 };
    55                 switch(snap[0]){
    56                     case '0':
    57                         fn1();
    58                         break;
    59                     case 'lt':
    60                         style+='position:absolute;left:0;top:0;right:auto;bottom:auto;';
    61                         fn2();
    62                         break;
    63                     case 'rt':
    64                         style+='position:absolute;left:auto;top:0;right:0;bottom:auto;';
    65                         fn2();
    66                         break;
    67                     case 'lb':
    68                         style+='position:absolute;left:0;top:auto;right:auto;bottom:0;';
    69                         fn2();
    70                         break;
    71                     case 'rb':
    72                         style+='position:absolute;left:auto;top:auto;right:0;bottom:0;';
    73                         fn2();
    74                         break;
    75                 }
    76                 style+='}';
    77                
    78                 var r = data.kenburnswidth/100;
    79                 style+='#smartslider-form #nextend-smart-slider-0 #'+id+'{ transition: none; width:100%; }';
    80                 style+='.x-ready #nextend-smart-slider-0.nextend-loaded .smart-slider-slide-active #'+id+'{ width: '+data.kenburnswidth+'%; }';
    81                 style+='.nextend-csstransforms.x-ready #nextend-smart-slider-0.nextend-loaded .smart-slider-slide-active #'+id+'{ width:100%; -moz-transform: scale('+r+','+r+'); -ms-transform: scale('+r+','+r+'); -webkit-transform: scale('+r+','+r+'); transform: scale('+r+','+r+'); }';
    82                
    83                
    84                 style+='</style>';
    85                 node.append(style);
    86             }
    8730            return node;
    8831        }
  • smart-slider-2/trunk/plugins/nextendslidertype/simple/simple/flux.jquery.js

    r859428 r874573  
    371371                    'cursor': 'auto'
    372372                };
     373            if(typeof img1 == 'undefined') return false;
    373374
    374375            // Does this image have an associated link?
  • smart-slider-2/trunk/plugins/nextendslidertype/simple/simple/slider.js

    r856428 r874573  
    88
    99            this._super(parent, $el, options);
    10 
    11             this.smartsliderborder2 = $el.find('.smart-slider-border2');
     10        },
     11        afterInit: function(){
     12            var _this = this;
     13            this._super();
     14            this.smartsliderborder2 = this.$slider.find('.smart-slider-border2');
     15            this.slideList.not(this.slideList.eq(this._active)).css('left', '-1000%');
    1216
    1317            this.$this.on('mainanimationoutend', function () {
    1418                var $slide = this.slideList.eq(_this._lastActive);
    15                 $slide.css('display', 'none');
     19                //$slide.css('display', 'none');
    1620            });
    1721            $(this).on('load.firstsub', function () {
     
    2024        },
    2125        sizeInited: function () {
     26            if(njQuery('#'+this.id+' .nextend-flux img').length != this.slideList.length) this.options.flux[0] = 0;
    2227            if (this.options.flux[0]) {
    2328                this.flux = new flux.slider('#'+this.id+' .nextend-flux', {
     
    331336
    332337            var option = this._animationOptions.next;
    333             return ssAnimationManager.getAnimation((reversed && option.parallax >= 1) ? 'slidelefttoright' : 'sliderighttoleft', $slide, {
     338            return ssAnimationManager.getAnimation((reversed && option.parallax >= 1) ? 'slidestaticlefttoright' : 'slidestaticrighttoleft', $slide, {
    334339                width: this.slideDimension.w,
    335340                height: this.slideDimension.h,
     
    351356                target = option.parallax < 1 ? {width: this.smartsliderborder2.width() * option.parallax} : {};
    352357
    353             return ssAnimationManager.getAnimation((reversed && option.parallax >= 1) ? 'slidelefttoright' : 'sliderighttoleft', $slide, {
     358            return ssAnimationManager.getAnimation((reversed && option.parallax >= 1) ? 'slidestaticlefttoright' : 'slidestaticrighttoleft', $slide, {
    354359                width: this.slideDimension.w,
    355360                height: this.slideDimension.h,
     
    369374
    370375            var option = this._animationOptions.next;
    371             return ssAnimationManager.getAnimation((reversed && option.parallax >= 1) ? 'slidetoptobottom' : 'slidebottomtotop', $slide, {
     376            return ssAnimationManager.getAnimation((reversed && option.parallax >= 1) ? 'slidestatictoptobottom' : 'slidestaticbottomtotop', $slide, {
    372377                width: this.slideDimension.w,
    373378                height: this.slideDimension.h,
     
    389394                target = option.parallax < 1 ? {height: this.smartsliderborder2.height() * option.parallax} : {};
    390395
    391             return ssAnimationManager.getAnimation((reversed && option.parallax >= 1) ? 'slidetoptobottom' : 'slidebottomtotop', $slide, {
     396            return ssAnimationManager.getAnimation((reversed && option.parallax >= 1) ? 'slidestatictoptobottom' : 'slidestaticbottomtotop', $slide, {
    392397                width: this.slideDimension.w,
    393398                height: this.slideDimension.h,
     
    407412
    408413            var option = this._animationOptions.next;
    409             return ssAnimationManager.getAnimation('fade', $slide, {
     414            return ssAnimationManager.getAnimation('fadestatic', $slide, {
    410415                width: this.slideDimension.w,
    411416                height: this.slideDimension.h,
     
    424429            var option = this._animationOptions.current;
    425430
    426             return ssAnimationManager.getAnimation('fade', $slide, {
     431            return ssAnimationManager.getAnimation('fadestatic', $slide, {
    427432                width: this.slideDimension.w,
    428433                height: this.slideDimension.h,
     
    437442        },
    438443        initTouch: function () {
    439             if((this.options.touchanimation != 'horizontal' && this.options.touchanimation != 'vertical')){
     444            if((this.options.touchanimation != 'horizontal' && this.options.touchanimation != 'vertical') || (typeof jQuery != 'undefined' && typeof jQuery.UIkit != 'undefined')){
    440445                this._super();
    441446                return;
     
    472477                            if (next === _this.slideList.length) next = 0;
    473478                            _this.slideList.eq(active).css('left', -distance);
    474                             _this.slideList.eq(next).css('left', _this.slideDimension.w-distance).css('display', 'block');
     479                            _this.slideList.eq(next).css('left', _this.slideDimension.w-distance)/*.css('display', 'block')*/;
    475480                        }else if(direction == 'right'){
    476481                            next = active - 1;
    477482                            if (next < 0) next = _this.slideList.length - 1;
    478483                            _this.slideList.eq(active).css('left', distance);
    479                             _this.slideList.eq(next).css('left', -_this.slideDimension.w+distance).css('display', 'block');
     484                            _this.slideList.eq(next).css('left', -_this.slideDimension.w+distance)/*.css('display', 'block')*/;
    480485                        }
    481486                       
     
    484489                            if(distance < 75){
    485490                                _this.slideList.eq(active).css('left', 0);
    486                                 _this.slideList.eq(next).css('left', 0).css('display', 'none');
     491                                if(next !== null) _this.slideList.eq(next).css('left', '-1000%');
    487492                            }
    488493                        }
     
    492497                            if (next === _this.slideList.length) next = 0;
    493498                            _this.slideList.eq(active).css('top', -distance);
    494                             _this.slideList.eq(next).css('top', _this.slideDimension.h-distance).css('display', 'block');
     499                            _this.slideList.eq(next).css('top', _this.slideDimension.h-distance).css('left', '0')/*.css('display', 'block')*/;
    495500                        }else if(direction == 'down'){
    496501                            next = active - 1;
    497502                            if (next < 0) next = _this.slideList.length - 1;
    498503                            _this.slideList.eq(active).css('top', distance);
    499                             _this.slideList.eq(next).css('top', -_this.slideDimension.h+distance).css('display', 'block');
     504                            _this.slideList.eq(next).css('top', -_this.slideDimension.h+distance).css('left', '0')/*.css('display', 'block')*/;
    500505                        }
    501506                       
     
    504509                            if(distance < 75){
    505510                                _this.slideList.eq(active).css('top', 0);
    506                                 if(next !== null) _this.slideList.eq(next).css('top', 0).css('display', 'none');
     511                                if(next !== null) _this.slideList.eq(next).css('left', '-1000%')/*.css('display', 'none')*/;
    507512                            }
    508513                        }
     
    644649                duration: 300,
    645650                complete: function(){
    646                     $(this).css('display', 'none').css(prop, 0);
     651                    $(this).css(prop, 0).css('left', '-1000%');
    647652                    _this.$this.trigger('mainanimationoutend');
    648653                    _this.mainanimationended();
  • smart-slider-2/trunk/plugins/nextendslidertype/simple/simple/slider.php

    r856428 r874573  
    1010$flux = (array)NextendParse::parse($this->_sliderParams->get('simplebackgroundanimation', '0|*|bars||blocks'));
    1111$flux[0] = $this->_backend ? 0 : intval($flux[0]);
     12foreach($this->_slides AS $slide){
     13    if ($slide['bg'] == ''){
     14        $flux[0] = 0;
     15        break;
     16    }
     17}
     18
    1219if (!isset($flux[1])) $flux[1] = 'bars';
    1320$flux[1] = (array)$flux[1];
     
    2633                <div class="nextend-flux">
    2734                    <?php foreach ($this->_slides AS $slide): ?>
    28                         <?php if ($slide['bg']): ?>
    29                             <img src="<?php echo $slide['bg']; ?>" class="nextend-slide-bg"<?php if ($slide['first']) echo ' style="z-index:2;position: absolute; top: 0px; left: 0px;" '; ?>/>
    30                         <?php endif; ?>
     35                        <img src="<?php echo $slide['bg']; ?>" class="nextend-slide-bg"<?php if ($slide['first']) echo ' style="z-index:2;position: absolute; top: 0px; left: 0px;" '; ?>/>
    3136                    <?php endforeach; ?>
    3237                </div>
     
    3944                    <?php endif; ?>
    4045                    <?php if ($this->_backend && strpos($slide['classes'], 'smart-slider-slide-active') !== false): ?>
    41                         <img src="<?php echo $slide['bg']; ?>" class="nextend-slide-bg"/>
     46                        <img src="<?php echo ($slide['bg'] ? $slide['bg'] : 'data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7'); ?>" class="nextend-slide-bg"/>
    4247                    <?php endif; ?>
    4348                    <div class="smart-slider-canvas-inner">
  • smart-slider-2/trunk/plugins/nextendslidertype/simple/simple/style.less

    r785118 r874573  
    88  height: @height;
    99  float: left;
     10 
     11  .x-rtl &{
     12      float: right;
     13  }
    1014
    1115  .smart-slider-border1 {
     
    4650    height: @canvasheight;
    4751    z-index: 2;
    48     display: none;
     52    display: block;
     53    -webkit-backface-visibility:hidden;
    4954  }
    5055
     
    5762  .smart-slider-slide-active {
    5863    z-index: 3;
    59     display: block;
     64    /*display: block;*/
    6065  }
    6166
  • smart-slider-2/trunk/readme.txt

    r859428 r874573  
    55Requires at least: 3.0
    66Tested up to: 3.8
    7 Stable tag: 2.3.5
     7Stable tag: 2.3.7
    88License: GPLv3 or later
    99License URI: http://www.gnu.org/licenses/gpl-3.0.html
     
    114114== Changelog ==
    115115
     116= 2.3.7 =
     117* Feature: Quick image generator with extended fields
     118* Feature: Generator step-by-step view
     119* Feature: Layout normalization for generators
     120* Feature: Slider presets for generated sliders
     121* Feature: Background image resize modes: cover and contain
     122* Feature: WordPress error checker added: checks for wp_head and wp_footer
     123* Feature: Memory limit check for background image resize and fade in on load.
     124* Feature: New universal unzip method to give import wider PHP support
     125* Fix: parse_ini_file function alternative added when the function disabled
     126* Fix: Custom zip algorithm for import and export
     127* Fix: Item optimizations
     128* Fix: Generator field name normalization. Older field names are still available for compatibility, but better to use new ones as they are supported by the generator layouts.
     129
    116130= 2.3.5 =
    117131* Feature: Layer background color added
  • smart-slider-2/trunk/smart-slider-2.php

    r859428 r874573  
    44Plugin URI: http://nextendweb.com/
    55Description: The perfect all-in-one responsive slider solution for WordPress.
    6 Version: 2.3.5
     6Version: 2.3.7
    77Author: Nextend
    88Author URI: http://www.nextendweb.com
  • smart-slider-2/trunk/tinymce/shortcode.php

    r856428 r874573  
    6161                 
    6262              function addToEditor(id){
    63                   ED.execCommand('mceInsertContent', false, '[smartslider2 slider="'+id+'"]');
     63                  ED.execCommand('mceInsertContent', false, '<div>[smartslider2 slider="'+id+'"]</div>');
    6464              }
    6565             
Note: See TracChangeset for help on using the changeset viewer.