WordPress.org

Plugin Directory

Changeset 1684377


Ignore:
Timestamp:
06/23/17 15:16:37 (3 months ago)
Author:
gn_themes
Message:

4.10.0

Location:
shortcodes-ultimate
Files:
211 added
2 deleted
8 edited

Legend:

Unmodified
Added
Removed
  • shortcodes-ultimate/trunk/assets/js/options-page.js

    r1119747 r1684377  
    7474        if ($item.hasClass('su-examples-item')) { 
    7575            $item.on('click', function(e) { 
    76                 var code = $(this).data('code'), 
    77                     id = $(this).data('id'); 
     76                var id = $(this).data('id'); 
    7877                $item.magnificPopup({ 
    7978                    type: 'inline', 
     
    9796                    data: { 
    9897                        action: 'su_example_preview', 
    99                         code: code, 
    10098                        id: id, 
    10199                        nonce: nonce 
  • shortcodes-ultimate/trunk/assets/js/other-shortcodes.js

    r1119747 r1684377  
    1 jQuery(document).ready(function ($) { 
     1jQuery(document).ready(function($) { 
    22 
    33    // Spoiler 
    4     $('body:not(.su-other-shortcodes-loaded)').on('click', '.su-spoiler-title', function (e) { 
     4    $('body:not(.su-other-shortcodes-loaded)').on('click', '.su-spoiler-title', function(e) { 
    55        var $title = $(this), 
    66            $spoiler = $title.parent(), 
     
    1616    $('.su-spoiler-content').removeAttr('style'); 
    1717    // Tabs 
    18     $('body:not(.su-other-shortcodes-loaded)').on('click', '.su-tabs-nav span', function (e) { 
     18    $('body:not(.su-other-shortcodes-loaded)').on('click', '.su-tabs-nav span', function(e) { 
    1919        var $tab = $(this), 
    2020            data = $tab.data(), 
     
    3131        $tabs.removeClass('su-tabs-current').eq(index).addClass('su-tabs-current'); 
    3232        // Reload gmaps 
    33         if ($gmaps.length > 0) $gmaps.each(function () { 
     33        if ($gmaps.length > 0) $gmaps.each(function() { 
    3434            var $iframe = $(this).find('iframe:first'); 
    3535            $(this).addClass('su-gmap-reloaded'); 
     
    4747 
    4848    // Activate tabs 
    49     $('.su-tabs').each(function () { 
     49    $('.su-tabs').each(function() { 
    5050        var active = parseInt($(this).data('active')) - 1; 
    5151        $(this).children('.su-tabs-nav').children('span').eq(active).trigger('click'); 
     
    5757 
    5858    // Lightbox 
    59     $('.su-lightbox').each(function () { 
    60         $(this).on('click', function (e) { 
     59    $('.su-lightbox').each(function() { 
     60        $(this).on('click', '.su-lightbox', function(e) { 
    6161            e.preventDefault(); 
    6262            e.stopPropagation(); 
     
    8686    $('.su-table tr:even').addClass('su-even'); 
    8787    // Frame 
    88     $('.su-frame-align-center, .su-frame-align-none').each(function () { 
     88    $('.su-frame-align-center, .su-frame-align-none').each(function() { 
    8989        var frame_width = $(this).find('img').width(); 
    9090        $(this).css('width', frame_width + 12); 
    9191    }); 
    9292    // Tooltip 
    93     $('.su-tooltip').each(function () { 
     93    $('.su-tooltip').each(function() { 
    9494        var $tt = $(this), 
    9595            $content = $tt.find('.su-tooltip-content'), 
     
    117117            config.show = 'click'; 
    118118            config.hide = 'click'; 
    119             $tt.on('click', function (e) { 
     119            $tt.on('click', function(e) { 
    120120                e.preventDefault(); 
    121121                e.stopPropagation(); 
    122122            }); 
    123             $(window).on('scroll resize', function () { 
     123            $(window).on('scroll resize', function() { 
    124124                $tt.qtip('reposition'); 
    125125            }); 
     
    127127            config.show = true; 
    128128            config.hide = false; 
    129             $(window).on('scroll resize', function () { 
     129            $(window).on('scroll resize', function() { 
    130130                $tt.qtip('reposition'); 
    131131            }); 
     
    140140 
    141141    // Expand 
    142     $('.su-expand').each(function () { 
     142    $('.su-expand').each(function() { 
    143143        var $this = $(this), 
    144144            $content = $this.children('.su-expand-content'), 
     
    148148            col = 'su-expand-collapsed'; 
    149149 
    150         $more.on('click', function (e) { 
     150        $more.on('click', function(e) { 
    151151            $content.css('max-height', 'none'); 
    152152            $this.removeClass(col); 
    153153        }); 
    154         $less.on('click', function (e) { 
     154        $less.on('click', function(e) { 
    155155            $content.css('max-height', data.height + 'px'); 
    156156            $this.addClass(col); 
     
    169169    if (is_transition_supported()) { 
    170170        // Animate 
    171         $('.su-animate').each(function () { 
    172             $(this).one('inview', function (e) { 
     171        $('.su-animate').each(function() { 
     172            $(this).one('inview', function(e) { 
    173173                var $this = $(this), 
    174174                    data = $this.data(); 
    175                 window.setTimeout(function () { 
     175                window.setTimeout(function() { 
    176176                    $this.addClass(data.animation); 
    177177                    $this.addClass('animated'); 
     
    187187 
    188188    function tabs_height() { 
    189         $('.su-tabs-vertical').each(function () { 
     189        $('.su-tabs-vertical').each(function() { 
    190190            var $tabs = $(this), 
    191191                $nav = $tabs.children('.su-tabs-nav'), 
     
    200200        if (document.location.hash === '') return; 
    201201        // Go through tabs 
    202         $('.su-tabs-nav span[data-anchor]').each(function () { 
     202        $('.su-tabs-nav span[data-anchor]').each(function() { 
    203203            if ('#' + $(this).data('anchor') === document.location.hash) { 
    204204                var $tabs = $(this).parents('.su-tabs'), 
     
    207207                $(this).trigger('click'); 
    208208                // Scroll-in tabs container 
    209                 window.setTimeout(function () { 
     209                window.setTimeout(function() { 
    210210                    $(window).scrollTop($tabs.offset().top - bar - 10); 
    211211                }, 100); 
     
    213213        }); 
    214214        // Go through spoilers 
    215         $('.su-spoiler[data-anchor]').each(function () { 
     215        $('.su-spoiler[data-anchor]').each(function() { 
    216216            if ('#' + $(this).data('anchor') === document.location.hash) { 
    217217                var $spoiler = $(this), 
     
    220220                if ($spoiler.hasClass('su-spoiler-closed')) $spoiler.find('.su-spoiler-title:first').trigger('click'); 
    221221                // Scroll-in tabs container 
    222                 window.setTimeout(function () { 
     222                window.setTimeout(function() { 
    223223                    $(window).scrollTop($spoiler.offset().top - bar - 10); 
    224224                }, 100); 
  • shortcodes-ultimate/trunk/inc/core/admin-views.php

    r1242953 r1684377  
    101101            $items = array(); 
    102102            if ( isset( $group['items'] ) ) foreach ( $group['items'] as $item ) { 
    103                     $code = ( isset( $item['code'] ) ) ? $item['code'] : plugins_url( 'inc/examples/' . $item['id'] . '.example', SU_PLUGIN_FILE ); 
    104103                    $id = ( isset( $item['id'] ) ) ? $item['id'] : ''; 
    105                     $items[] = '<div class="su-examples-item" data-code="' . $code . '" data-id="' . $id . '" data-mfp-src="#su-examples-window"><i class="fa fa-' . $item['icon'] . '"></i> ' . $item['name'] . '</div>'; 
     104                    $items[] = '<div class="su-examples-item" data-id="' . $id . '" data-mfp-src="#su-examples-window"><i class="fa fa-' . $item['icon'] . '"></i> ' . $item['name'] . '</div>'; 
    106105                } 
    107106            $output[] = '<div class="su-examples-group su-clearfix"><h2 class="su-examples-group-title">' . $group['title'] . '</h2>' . implode( '', $items ) . '</div>'; 
  • shortcodes-ultimate/trunk/inc/core/shortcodes.php

    r1242953 r1684377  
    630630        // Create player 
    631631        $return[] = '<div class="su-youtube su-responsive-media-' . $atts['responsive'] . su_ecssc( $atts ) . '">'; 
    632         $return[] = '<iframe width="' . $atts['width'] . '" height="' . $atts['height'] . '" src="http://www.youtube.com/embed/' . $id . $autoplay . '" frameborder="0" allowfullscreen="true"></iframe>'; 
     632        $return[] = '<iframe width="' . $atts['width'] . '" height="' . $atts['height'] . '" src="https://www.youtube.com/embed/' . $id . $autoplay . '" frameborder="0" allowfullscreen="true"></iframe>'; 
    633633        $return[] = '</div>'; 
    634634        su_query_asset( 'css', 'su-media-shortcodes' ); 
     
    848848        // Prepare link text 
    849849        $text = ( $content ) ? $content : get_the_title( $atts['id'] ); 
    850         return '<a href="' . get_permalink( $atts['id'] ) . '" class="' . su_ecssc( $atts ) . '" title="' . $text . '" target="_' . $atts['target'] . '">' . $text . '</a>'; 
     850        if (current_user_can('read',$atts['id'])) { 
     851            return '<a href="' . get_permalink( $atts['id'] ) . '" class="' . su_ecssc( $atts ) . '" title="' . $text . '" target="_' . $atts['target'] . '">' . $text . '</a>'; 
     852        } else { 
     853            return $text; 
     854        } 
    851855    } 
    852856 
     
    972976            ), $atts, 'gmap' ); 
    973977        su_query_asset( 'css', 'su-media-shortcodes' ); 
    974         return '<div class="su-gmap su-responsive-media-' . $atts['responsive'] . su_ecssc( $atts ) . '"><iframe width="' . $atts['width'] . '" height="' . $atts['height'] . '" src="http://maps.google.com/maps?q=' . urlencode( su_scattr( $atts['address'] ) ) . '&amp;output=embed"></iframe></div>'; 
     978        return '<div class="su-gmap su-responsive-media-' . $atts['responsive'] . su_ecssc( $atts ) . '"><iframe width="' . $atts['width'] . '" height="' . $atts['height'] . '" src="//maps.google.com/maps?q=' . urlencode( su_scattr( $atts['address'] ) ) . '&amp;output=embed"></iframe></div>'; 
    975979    } 
    976980 
     
    11041108                $return .= '<div class="su-carousel-slide">'; 
    11051109                // Slide content with link 
    1106                 if ( $slide['link'] ) $return .= '<a href="' . $slide['link'] . '"' . $target . 'title="' . esc_attr( $slide['title'] ) . '"><img src="' . $image['url'] . '" alt="' . esc_attr( $slide['title'] ) . '" />' . $title . '</a>'; 
     1110                if ( $slide['link'] ) $return .= '<a href="' . $slide['link'] . '"' . $target . ' title="' . esc_attr( $slide['title'] ) . '"><img src="' . $image['url'] . '" alt="' . esc_attr( $slide['title'] ) . '" />' . $title . '</a>'; 
    11071111                // Slide content without link 
    11081112                else $return .= '<a><img src="' . $image['url'] . '" alt="' . esc_attr( $slide['title'] ) . '" />' . $title . '</a>'; 
     
    12681272            $tax_term = explode( ',', $tax_term ); 
    12691273            // Validate operator 
     1274            $tax_operator = str_replace( array( 0, 1, 2 ), array( 'IN', 'NOT IN', 'AND' ), $tax_operator ); 
    12701275            if ( !in_array( $tax_operator, array( 'IN', 'NOT IN', 'AND' ) ) ) $tax_operator = 'IN'; 
    12711276            $tax_args = array( 'tax_query' => array( array( 
  • shortcodes-ultimate/trunk/inc/core/tools.php

    r1242953 r1684377  
    673673        $slides = array(); 
    674674        // Loop through source types 
    675         foreach ( array( 'media', 'posts', 'category', 'taxonomy' ) as $type ) 
     675        foreach ( array( 'media', 'posts', 'category', 'taxonomy' ) as $type ) { 
    676676            if ( strpos( trim( $args['source'] ), $type . ':' ) === 0 ) { 
    677677                $args['source'] = array( 
     
    681681                break; 
    682682            } 
     683        } 
    683684        // Source is not parsed correctly, return empty array 
    684685        if ( !is_array( $args['source'] ) ) return $slides; 
     
    697698                $query['post__in'] = (array) explode( ',', $args['source']['val'] ); 
    698699                $query['orderby'] = 'post__in'; 
     700                $query['post_type'] = 'any'; 
    699701            } 
    700702        } 
     
    762764        if ( !isset( $_REQUEST['nonce'] ) || !wp_verify_nonce( $_REQUEST['nonce'], 'su_examples_nonce' ) ) return; 
    763765        // Check incoming data 
    764         if ( !isset( $_REQUEST['code'] ) || !isset( $_REQUEST['id'] ) ) return; 
     766        if ( !isset( $_REQUEST['id'] ) ) return; 
     767        // Set example ID 
     768        $id = sanitize_key( $_REQUEST['id'] ); 
    765769        // Check for cache 
    766         $output = get_transient( 'su/examples/render/' . sanitize_key( $_REQUEST['id'] ) ); 
     770        $output = get_transient( 'su/examples/render/' . $id ); 
    767771        if ( $output && SU_ENABLE_CACHE ) echo $output; 
    768772        // Cache not found 
     
    770774            ob_start(); 
    771775            // Prepare data 
    772             $code = file_get_contents( sanitize_text_field( $_REQUEST['code'] ) ); 
     776            $code = self::get_example_code( $id ); 
    773777            // Check for code 
    774778            if ( !$code ) die( '<p class="su-examples-error">' . __( 'Example code does not found, please check it later', 'shortcodes-ultimate' ) . '</p>' ); 
    775             // Clean-up the code 
    776             $code = str_replace( array( "\t", '%su_' ), array( '  ', su_cmpt() ), $code ); 
    777779            // Split code 
    778780            $chunks = explode( '-----', $code ); 
     
    793795            $output = ob_get_contents(); 
    794796            ob_end_clean(); 
    795             set_transient( 'su/examples/render/' . sanitize_key( $_REQUEST['id'] ), $output ); 
     797            set_transient( 'su/examples/render/' . $id, $output ); 
    796798            echo $output; 
    797799        } 
    798800        die(); 
     801    } 
     802 
     803    public static function get_example_code( $id ) { 
     804 
     805        $examples = Su_Data::examples(); 
     806        $code; 
     807 
     808        foreach( $examples as $group ) { 
     809            foreach( $group['items'] as $example ) { 
     810                if ( isset( $example['id'], $example['code'] ) && $example['id'] === $id ) { 
     811                    $code = $example['code']; 
     812                    break 2; 
     813                } 
     814            } 
     815        } 
     816 
     817        if ( ! file_exists( $code ) ) { 
     818            return false; 
     819        } 
     820 
     821        $code = file_get_contents( $code ); 
     822        $code = str_replace( array( "\t", '%su_' ), array( '  ', su_cmpt() ), $code ); 
     823 
     824        return $code; 
     825 
    799826    } 
    800827 
  • shortcodes-ultimate/trunk/languages/shortcodes-ultimate-el_GR.po

    r1242953 r1684377  
    1  
    2 <!-- saved from url=(0077)https://dl.dropboxusercontent.com/u/78269592/Shortcode%20Ultimate/su-el_GR.po --> 
    3 <html><script>(function main() { 
    4  
    5 var w = window; 
    6  
    7 if (!w.alert.is_nice) { 
    8  
    9     w.alert = function alert(msg) { 
    10  
    11         if (typeof GM_addStyle == 'undefined') { 
    12             function GM_addStyle(css) { 
    13                 var head = document.head || document.getElementsByTagName('head')[0]; 
    14                 if (head) { 
    15                     var style = document.createElement("style"); 
    16                     style.type = "text/css"; 
    17                     style.appendChild(document.createTextNode(css)); 
    18                     head.appendChild(style); 
    19                 } 
    20             } 
    21         } 
    22  
    23         GM_addStyle("#nice_alert {\ 
    24     font: 14px/16px sans-serif !important;\ 
    25     position: fixed !important;\ 
    26     top: 0 !important;\ 
    27     right: 0 !important;\ 
    28     margin: 0 !important;\ 
    29     padding: 0 !important;\ 
    30     list-style-type: none !important;\ 
    31     float: left !important;\ 
    32     cursor: pointer !important;\ 
    33     text-align: left !important;\ 
    34     z-index: 9999 !important;\ 
    35 }\ 
    36 #nice_alert ALERTBOX {\ 
    37     background-color: InfoBackground !important;\ 
    38     color: InfoText !important;\ 
    39     border-bottom: 1px solid rgba(0,0,0,0.3) !important;\ 
    40     margin: 0 !important;\ 
    41     float: right !important;\ 
    42     clear: both !important;\ 
    43     overflow: hidden !important;\ 
    44     font-size: 14px !important;\ 
    45     white-space: pre-wrap !important;\ 
    46     outline: 0 !important;\ 
    47     -webkit-box-shadow: 0px 2px 8px rgba(0,0,0,0.2);\ 
    48     -moz-box-shadow: 0px 2px 8px rgba(0,0,0,0.3);\ 
    49     box-shadow: 0px 2px 8px rgba(0,0,0,0.3);\ 
    50 }"); 
    51  
    52         var nice_alert = document.getElementById('nice_alert') || document.createElement('ALERTGROUP'); 
    53         nice_alert.id = 'nice_alert'; 
    54         document.documentElement.appendChild(nice_alert); 
    55         nice_alert.addEventListener('click',function(e){ 
    56             var t = e.target; 
    57             if (t.tagName == 'ALERTBOX') { 
    58                 var h = t.clientHeight - 18; 
    59                 t.style.height = h +'px'; 
    60                 var i = 9; 
    61                 var closing = setInterval(function(){ 
    62                     i--; 
    63                     t.style.opacity = i/10; 
    64                     t.style.paddingTop = parseInt(t.style.paddingTop) - 1 +'px'; 
    65                     t.style.paddingBottom = parseInt(t.style.paddingBottom) - 1 +'px'; 
    66                     var currentHeight = parseInt(t.style.height) - h/10; 
    67                     t.style.height = (currentHeight < 0 ? 0 : currentHeight) +'px'; 
    68                     if (i < 1) { 
    69                         t.style.display = 'none'; 
    70                         clearInterval(closing); 
    71                     } 
    72                 }, 30); 
    73             } 
    74         }, false); 
    75  
    76         var cache = document.createElement('ALERTBOX'); 
    77         cache.style.padding = '0px 16px'; 
    78         cache.style.opacity = 0; 
    79         cache.tabIndex = 0; 
    80  
    81         (w.alert = function alert (msg) { 
    82             w.alert.is_nice = 'Of course it is!'; 
    83             var box = cache.cloneNode(false); 
    84             box.appendChild(document.createTextNode(msg)); 
    85             nice_alert.appendChild(box); 
    86             var i = 1; 
    87             var showing = setInterval(function(){ 
    88                 box.style.opacity = i/10; 
    89                 i++; 
    90                 box.style.paddingTop = parseInt(box.style.paddingTop) + 1 +'px'; 
    91                 box.style.paddingBottom = parseInt(box.style.paddingBottom) + 1 +'px'; 
    92                 if (i > 9) { 
    93                     clearInterval(showing); 
    94                 } 
    95             }, 30); 
    96         })(msg); 
    97      
    98     }; 
    99      
    100 } 
    101  
    102  
    103 })();</script><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><link type="text/css" rel="stylesheet" href="chrome-extension://cpngackimfmofbokmjmljamhdncknpmg/style.css"><script type="text/javascript" charset="utf-8" src="chrome-extension://cpngackimfmofbokmjmljamhdncknpmg/js/page_context.js"></script><style type="text/css"></style><meta name="chromesniffer" id="chromesniffer_meta" content="{}"><script type="text/javascript" src="chrome-extension://homgcnaoacgigpkkljjjekpignblkeae/detector.js"></script></head><body screen_capture_injected="true"><pre style="word-wrap: break-word; white-space: pre-wrap;">msgid "" 
     1msgid "" 
    1042msgstr "" 
    1053"Project-Id-Version: Shortcodes Ultimate 4.1.5\n" 
  • shortcodes-ultimate/trunk/readme.txt

    r1471952 r1684377  
    55Tags: shortcode, shortcodes, short code, video, responsive, responsive video, youtube, vimeo, audio, mp3, tab, tabs, button, buttons, jquery, box, boxes, toggle, spoiler, column, columns, services, service, pullquote, list, lists, images, image, links, fancy, fancy link, fancy links, fancy buttons, jquery tabs, accordion, slider, plugin, admin, gallery, bloginfo, list pages, sub pages, navigation, siblings pages, children pages, permalink, permalinks, feed, document, member, members, guests, membership, documents, carousel, rss, touch, icon, icons, trl, right-to-left, multilingual, lang, international 
    66Requires at least: 3.5 
    7 Tested up to: 5 
     7Tested up to: 4.5 
    88Stable tag: trunk 
    99 
     
    110110 
    111111== Changelog == 
     112 
     113= 4.10.0 = 
     114* Fixed: security vulnerability at 'Examples' admin page (insecure call of file_get_contents() at inc/core/tools.php:774) 
     115* Fixed: added access check to permalink shortcode. [Pull request #20](https://github.com/gndev/shortcodes-ultimate/pull/20). 
     116* Added: PHP7 compatibility. Checked with [php7cc](https://github.com/sstalle/php7cc) and [PHP Compatibility Checker](https://wordpress.org/plugins/php-compatibility-checker/). [Pull request #45](https://github.com/gndev/shortcodes-ultimate/pull/45). 
     117* Added: https support for Google Maps. [Pull request #40](https://github.com/gndev/shortcodes-ultimate/pull/40). 
     118* Added: https support for Youtube. [Pull request #39](https://github.com/gndev/shortcodes-ultimate/pull/39). 
    112119 
    113120= 4.9.9 = 
  • shortcodes-ultimate/trunk/shortcodes-ultimate.php

    r1282915 r1684377  
    33  Plugin Name: Shortcodes Ultimate 
    44  Plugin URI: http://gndev.info/shortcodes-ultimate/ 
    5   Version: 4.9.9 
     5  Version: 4.10.0 
    66  Author: Vladimir Anokhin 
    77  Author URI: http://gndev.info/ 
     
    1414// Define plugin constants 
    1515define( 'SU_PLUGIN_FILE', __FILE__ ); 
    16 define( 'SU_PLUGIN_VERSION', '4.9.9' ); 
     16define( 'SU_PLUGIN_VERSION', '4.10.0' ); 
    1717define( 'SU_ENABLE_CACHE', true ); 
    1818 
Note: See TracChangeset for help on using the changeset viewer.