Plugin Directory

Changeset 1393100


Ignore:
Timestamp:
04/12/2016 03:46:22 PM (10 years ago)
Author:
fractal512
Message:

Update trunk with last (1.2) version.

Location:
scroll-tool/trunk
Files:
1 added
1 deleted
3 edited

Legend:

Unmodified
Added
Removed
  • scroll-tool/trunk/js/scroll-tool.js

    r881971 r1393100  
    1 // This is just a patch for Wordpress entities without jQuery autoload.
     1// Scroll-tool front-end functionality
     2
     3jQuery(document).ready(function($) {
     4       
     5        var scrollHeight;
     6        var lastPosition = 0;
     7        var downDirect = false;
     8        var isDown = true;
     9        var scrollPause = false;
     10       
     11        if(scrollToolParams.scrollToolOptions.hide_for_mobile && $( window ).width() < 768){
     12        var showAdjScroll = false;
     13        }
     14        else
     15        {
     16        var showAdjScroll = true;
     17        }
     18       
     19    if(showAdjScroll){
     20        var adjScroll='<div class="'+scrollToolParams.scrollToolClass+'" id="scroll-tool" style="'+scrollToolParams.scrollToolStyle+'">'+scrollToolParams.scrollToolLabel+'</div>';
     21        $( "body" ).append(adjScroll);
     22            if(scrollToolParams.scrollToolOptions.animated_scroll){
     23            $(window).scroll(function () {
     24            scrollHeight = $(document).scrollTop();
     25                if( scrollHeight > 300 && isDown ){
     26                    $( "#scroll-tool" ).stop();
     27                    isDown = false;
     28                    $( "#scroll-tool" ).fadeTo('slow', 0.5);
     29                }
     30                if(scrollHeight > 300 && !scrollPause && !scrollToolParams.scrollToolOptions.disable_down){
     31                downDirect = false;
     32                $('#scroll-tool #label-up').css('display', 'block');
     33                $('#scroll-tool #label-down').css('display', 'none');
     34                $('#scroll-tool').css('background', scrollToolParams.scrollToolOptions.upBg);
     35                }
     36                if( scrollHeight <= 300 && !isDown && scrollToolParams.scrollToolOptions.disable_down ){
     37                    $( "#scroll-tool" ).stop();
     38                    isDown = true;
     39                    $( "#scroll-tool" ).fadeOut('slow');
     40                }
     41            });
     42            }
     43            else
     44            {
     45            $(window).scroll(function () {
     46            scrollHeight = $(document).scrollTop();
     47                if( scrollHeight > 300 && isDown ){
     48                    isDown = false;
     49                    $( "#scroll-tool" ).css('display', 'block');
     50                }
     51                if(scrollHeight > 300 && !scrollPause && !scrollToolParams.scrollToolOptions.disableDown){
     52                downDirect = false;
     53                $('#scroll-tool #label-up').css('display', 'block');
     54                $('#scroll-tool #label-down').css('display', 'none');
     55                $('#scroll-tool').css('background', scrollToolParams.scrollToolOptions.upBg);
     56                }
     57                if( scrollHeight <= 300 && !isDown && scrollToolParams.scrollToolOptions.disableDown ){
     58                    isDown = true;
     59                    $( "#scroll-tool" ).css('display', 'none');
     60                }
     61            });
     62            }
     63       
     64        if(scrollToolParams.scrollToolOptions.animated_scroll && !scrollToolParams.scrollToolOptions.disable_down){
     65           
     66            $( "#scroll-tool" ).mouseenter(function(){
     67                $('#scroll-tool').stop().animate({'opacity':'1'});
     68            });
     69            $( "#scroll-tool" ).mouseleave(function(){
     70                $('#scroll-tool').stop().animate({'opacity':'0.5'});
     71            });
     72        }
     73       
     74        if(scrollToolParams.scrollToolOptions.animated_scroll && scrollToolParams.scrollToolOptions.disable_down){
     75           
     76            $( "#scroll-tool" ).mouseenter(function(){
     77                if(scrollHeight > 300)
     78                $('#scroll-tool').stop().animate({'opacity':'1'});
     79            });
     80            $( "#scroll-tool" ).mouseleave(function(){
     81                if(scrollHeight > 300)
     82                $('#scroll-tool').stop().animate({'opacity':'0.5'});
     83            });
     84        }
     85       
     86        if(scrollToolParams.scrollToolOptions.animated_motion){
     87            if(scrollToolParams.scrollToolOptions.disable_down){
     88                $('#scroll-tool').click(
     89                    function (e) {
     90                        $('html, body').animate({scrollTop: '0px'}, 800);
     91                    }
     92                );
     93            }
     94            else
     95            {
     96                $('#scroll-tool').click(
     97                    function (e) {
     98                        if(!downDirect){
     99                        downDirect = true;
     100                        $('#scroll-tool #label-up').css('display', 'none');
     101                        $('#scroll-tool #label-down').css('display', 'block');
     102                        $('#scroll-tool').css('background', scrollToolParams.scrollToolOptions.downBg);
     103                        lastPosition = $(document).scrollTop();
     104                        scrollPause = true;
     105                        $('html, body').stop().animate({scrollTop: '0px'}, 800, function() {scrollPause = false;});
     106                        }
     107                        else
     108                        {
     109                        downDirect = false;
     110                        $('#scroll-tool #label-up').css('display', 'block');
     111                        $('#scroll-tool #label-down').css('display', 'none');
     112                        $('#scroll-tool').css('background', scrollToolParams.scrollToolOptions.upBg);
     113                        scrollPause = true;
     114                        $('html, body').stop().animate({scrollTop: lastPosition+'px'}, 800, function() {scrollPause = false;});
     115                        }
     116                    }
     117                );
     118            }
     119        }
     120        else
     121        {
     122            if(disableDown){
     123                $('#scroll-tool').click(
     124                    function (e) {
     125                        $( "#scroll-tool" ).css('display', 'none');
     126                        $('html, body').scrollTop(0);
     127                    }
     128                );
     129            }
     130            else
     131            {
     132                $('#scroll-tool').click(
     133                    function (e) {
     134
     135                        if(!downDirect){
     136                        downDirect = true;
     137                        $('#scroll-tool #label-up').css('display', 'none');
     138                        $('#scroll-tool #label-down').css('display', 'block');
     139                        $('#scroll-tool').css('background', scrollToolParams.scrollToolOptions.downBg);
     140                        lastPosition = $(document).scrollTop();
     141                        scrollPause = true;
     142                        $('html, body').scrollTop(0);
     143                        scrollPause = false;
     144                        }
     145                        else
     146                        {
     147                        downDirect = false;
     148                        $('#scroll-tool #label-up').css('display', 'block');
     149                        $('#scroll-tool #label-down').css('display', 'none');
     150                        $('#scroll-tool').css('background', scrollToolParams.scrollToolOptions.upBg);
     151                        scrollPause = true;
     152                        $('html, body').scrollTop(lastPosition);
     153                        scrollPause = false;
     154                        }
     155                    }
     156                );
     157            }
     158        }
     159    }
     160});
  • scroll-tool/trunk/readme.txt

    r1393077 r1393100  
    33Tags: scroll, sidebar, button, top, up, down
    44Requires at least: 3.3
    5 Tested up to: 3.8.1
     5Tested up to: 4.4.2
    66Stable tag: 1.2
    77License: GPLv2 or later
     
    1313
    1414Fully adjustable scroll tool for your site.
    15 Easily adapts to any theme. You can change the size, shape, color, and much more. Dinamicly loads to the page and, thus does not affect SEO. Tested in browsers: Internet Explorer 7 - 10 and last versions of Mozilla Firefox, Google Chrome and Opera.
     15Easily adapts to any theme. You can change the size, shape, color, and much more. Dynamicly loads to the page and, thus does not affect on SEO. This plugin uses Color Picker - jQuery plugin for easy way to change colors of Your button. Tested in browsers: Internet Explorer 7 - 10 and last versions of Mozilla Firefox, Google Chrome and Opera.
    1616
    1717Features:
    1818
    1919* type of scroll (button or sidebar);
    20 * fully customizable view of scroll;
    21 * disable for small mobile screen (option);
     20* fully customizable scroll tool;
     21* disable for small mobile screens (option);
    2222* animated scroll motion (option);
    2323* scroll down to last view position (option).
     24* change colors of the button using Color Picker palette
    2425
    2526== Installation ==
     
    35362. screenshot-2.jpg
    36373. screenshot-3.jpg
     384. screenshot-4.jpg
    3739
    3840== Changelog ==
     
    4042= 1.0 =
    4143Initial release.
     44
     45= 1.1 =
     46Scroll tool frontend js-script moved from the main html-page to the binded js-file.
     47
     48= 1.2 =
     49Inline JavaScript integration improved using wp_localize_script() function. JavaScript is properly escaped and quoted now.
     50Mentioned above function takes care of the required CDATA tags not to break XHTML validation.
  • scroll-tool/trunk/scroll-tool.php

    r881971 r1393100  
    55/*
    66Plugin Name: Scroll Tool
    7 Plugin URI: http://www.eeforyou.com/contact-form/
     7Plugin URI: https://wordpress.org/plugins/scroll-tool/
    88Description: Allows to create scroll tool (button or sidebar) for your blog.
    99Author: fractal512
    10 Version: 1.0
    11 Author URI: http://www.eeforyou.com/contact-form/
     10Version: 1.2
     11Author URI: https://profiles.wordpress.org/fractal512/
    1212*/
    1313
    14 //create and print interface
     14// namespace "lloo" will be used for this plugin
     15// scroll-tool admin's panel
     16
    1517function lloo_echo_interface(){
    1618if(isset($_POST['scroll_tool'])){
     
    291293}
    292294
    293 //add css and js
     295// add css stylesheets and js-scripts to the admin's front-end
     296
    294297function lloo_css_js(){
    295298    if(isset($_GET['page']) && $_GET['page'] == 'scroll-tool'){
     
    300303        $myScriptUrl = plugin_dir_url( __FILE__ ).'js/scroll-tool-colorpicker.js';
    301304        wp_register_script('lloo-colorpicker-script', $myScriptUrl);
    302         wp_enqueue_script('lloo-admin-script', plugin_dir_url( __FILE__ ).'js/scroll-tool-main.js', array('jquery', 'lloo-colorpicker-script'));
     305        wp_enqueue_script('lloo-admin-script', plugin_dir_url( __FILE__ ).'js/scroll-tool-admin.js', array('jquery', 'lloo-colorpicker-script'));
    303306        }
    304307}
     308
     309// add css stylesheet and js-script to the front-end
     310// this is only one place in the current php-script where html will be added to the user's front-end page
    305311
    306312function lloo_frontend_css_js(){
     
    308314wp_register_style('lloo-frontend-style', $myStyleUrl);
    309315wp_enqueue_style( 'lloo-frontend-style');
    310 wp_enqueue_script('lloo-frontend-script', plugin_dir_url( __FILE__ ).'js/scroll-tool.js', array('jquery'));
    311 }
    312 
    313 //hook for include to admin's panel
     316wp_enqueue_script('lloo-frontend-script', plugin_dir_url( __FILE__ ).'js/scroll-tool.js', array('jquery'), false, true);
     317$params = lloo_get_scroll_tool_params();
     318wp_localize_script( 'lloo-frontend-script', 'scrollToolParams', $params );
     319}
     320
     321// display scroll-tool admin's panel
     322
    314323function lloo_admin_menu() {
    315 //this way only for administrator
     324   
     325// this way only for the administrator with the manage options privilege
     326
    316327    add_theme_page('Scroll Tool', 'Scroll Tool', 'manage_options', 'scroll-tool', 'lloo_echo_interface');
    317 }
    318 
    319 function lloo_append_scroll() {
     328
     329}
     330
     331// get scroll-tool parameters from the database and prepare it for the front-end js-script
     332
     333function lloo_get_scroll_tool_params() {
     334
    320335$lloo_op = unserialize(get_option('lloo_options'));
    321336$tplOptions = $lloo_op;
    322337$styles = array();
    323338$pluginUrl = plugin_dir_url( __FILE__ );
     339
    324340if($lloo_op['type'] == 'button'){
    325341        $class = 'scroll_button';
     
    448464$i++;
    449465}
    450 ?>
    451 <script type="text/javascript">
    452 jQuery(document).ready(function($) {
    453        
    454         <?php
    455         if ($tplOptions['hide_for_mobile'] == 1)
    456         echo 'var hideForMobile = true;'."\n";
    457         else
    458         echo 'var hideForMobile = false;'."\n";
    459         if ($tplOptions['animated_scroll'] == 1)
    460         echo 'var animatedScroll = true;'."\n";
    461         else
    462         echo 'var animatedScroll = false;'."\n";
    463         if ($tplOptions['animated_motion'] == 1)
    464         echo 'var animatedMotion = true;'."\n";
    465         else
    466         echo 'var animatedMotion = false;'."\n";
    467         if ($tplOptions['disable_down'] == 1)
    468         echo 'var disableDown = true;'."\n";
    469         else
    470         echo 'var disableDown = false;'."\n";
    471         ?>
    472         var scrollHeight;
    473         var lastPosition = 0;
    474         var downDirect = false;
    475         var isDown = true;
    476         var scrollPause = false;
    477        
    478         if(hideForMobile && $( window ).width() < 768){
    479         var showAdjScroll = false;
    480         }
    481         else
    482         {
    483         var showAdjScroll = true;
    484         }
    485        
    486     if(showAdjScroll){
    487         var adjScroll='<div class="<?php echo $class; ?>" id="scroll-tool" style="<?php echo $style; ?>"><?php if (isset($button_label)) { echo $button_label; } ?></div>';
    488         $( "body" ).append(adjScroll);
    489             if(animatedScroll){
    490             $(window).scroll(function () {
    491             scrollHeight = $(document).scrollTop();
    492                 if( scrollHeight > 300 && isDown ){
    493                     $( "#scroll-tool" ).stop();
    494                     isDown = false;
    495                     $( "#scroll-tool" ).fadeTo('slow', 0.5);
    496                 }
    497                 if(scrollHeight > 300 && !scrollPause && !disableDown){
    498                 downDirect = false;
    499                 $('#scroll-tool #label-up').css('display', 'block');
    500                 $('#scroll-tool #label-down').css('display', 'none');
    501                 $('#scroll-tool').css('background', '<?php echo $tplOptions["upBg"]; ?>');
    502                 }
    503                 if( scrollHeight <= 300 && !isDown && disableDown ){
    504                     $( "#scroll-tool" ).stop();
    505                     isDown = true;
    506                     $( "#scroll-tool" ).fadeOut('slow');
    507                 }
    508             });
    509             }
    510             else
    511             {
    512             $(window).scroll(function () {
    513             scrollHeight = $(document).scrollTop();
    514                 if( scrollHeight > 300 && isDown ){
    515                     isDown = false;
    516                     $( "#scroll-tool" ).css('display', 'block');
    517                 }
    518                 if(scrollHeight > 300 && !scrollPause && !disableDown){
    519                 downDirect = false;
    520                 $('#scroll-tool #label-up').css('display', 'block');
    521                 $('#scroll-tool #label-down').css('display', 'none');
    522                 $('#scroll-tool').css('background', '<?php echo $tplOptions["upBg"]; ?>');
    523                 }
    524                 if( scrollHeight <= 300 && !isDown && disableDown ){
    525                     isDown = true;
    526                     $( "#scroll-tool" ).css('display', 'none');
    527                 }
    528             });
    529             }
    530        
    531         if(animatedScroll && !disableDown){
    532            
    533             $( "#scroll-tool" ).mouseenter(function(){
    534                 $('#scroll-tool').stop().animate({'opacity':'1'});
    535             });
    536             $( "#scroll-tool" ).mouseleave(function(){
    537                 $('#scroll-tool').stop().animate({'opacity':'0.5'});
    538             });
    539         }
    540        
    541         if(animatedScroll && disableDown){
    542            
    543             $( "#scroll-tool" ).mouseenter(function(){
    544                 if(scrollHeight > 300)
    545                 $('#scroll-tool').stop().animate({'opacity':'1'});
    546             });
    547             $( "#scroll-tool" ).mouseleave(function(){
    548                 if(scrollHeight > 300)
    549                 $('#scroll-tool').stop().animate({'opacity':'0.5'});
    550             });
    551         }
    552        
    553         if(animatedMotion){
    554             if(disableDown){
    555                 $('#scroll-tool').click(
    556                     function (e) {
    557                         $('html, body').animate({scrollTop: '0px'}, 800);
    558                     }
    559                 );
    560             }
    561             else
    562             {
    563                 $('#scroll-tool').click(
    564                     function (e) {
    565                         if(!downDirect){
    566                         downDirect = true;
    567                         $('#scroll-tool #label-up').css('display', 'none');
    568                         $('#scroll-tool #label-down').css('display', 'block');
    569                         $('#scroll-tool').css('background', '<?php echo $tplOptions["downBg"]; ?>');
    570                         lastPosition = $(document).scrollTop();
    571                         scrollPause = true;
    572                         $('html, body').stop().animate({scrollTop: '0px'}, 800, function() {scrollPause = false;});
    573                         }
    574                         else
    575                         {
    576                         downDirect = false;
    577                         $('#scroll-tool #label-up').css('display', 'block');
    578                         $('#scroll-tool #label-down').css('display', 'none');
    579                         $('#scroll-tool').css('background', '<?php echo $tplOptions["upBg"]; ?>');
    580                         scrollPause = true;
    581                         $('html, body').stop().animate({scrollTop: lastPosition+'px'}, 800, function() {scrollPause = false;});
    582                         }
    583                     }
    584                 );
    585             }
    586         }
    587         else
    588         {
    589             if(disableDown){
    590                 $('#scroll-tool').click(
    591                     function (e) {
    592                         $( "#scroll-tool" ).css('display', 'none');
    593                         $('html, body').scrollTop(0);
    594                     }
    595                 );
    596             }
    597             else
    598             {
    599                 $('#scroll-tool').click(
    600                     function (e) {
    601 
    602                         if(!downDirect){
    603                         downDirect = true;
    604                         $('#scroll-tool #label-up').css('display', 'none');
    605                         $('#scroll-tool #label-down').css('display', 'block');
    606                         $('#scroll-tool').css('background', '<?php echo $tplOptions["downBg"]; ?>');
    607                         lastPosition = $(document).scrollTop();
    608                         scrollPause = true;
    609                         $('html, body').scrollTop(0);
    610                         scrollPause = false;
    611                         }
    612                         else
    613                         {
    614                         downDirect = false;
    615                         $('#scroll-tool #label-up').css('display', 'block');
    616                         $('#scroll-tool #label-down').css('display', 'none');
    617                         $('#scroll-tool').css('background', '<?php echo $tplOptions["upBg"]; ?>');
    618                         scrollPause = true;
    619                         $('html, body').scrollTop(lastPosition);
    620                         scrollPause = false;
    621                         }
    622                     }
    623                 );
    624             }
    625         }
    626     }
    627 });
    628 </script>
    629 <?php
    630 }
     466
     467// redefine variables for last 4 checkboxes in the admin panel
     468
     469if ($tplOptions['hide_for_mobile'] == 1)
     470$tplOptions['hide_for_mobile'] = true;
     471else
     472$tplOptions['hide_for_mobile'] = false;
     473if ($tplOptions['animated_scroll'] == 1)
     474$tplOptions['animated_scroll'] = true;
     475else
     476$tplOptions['animated_scroll'] = false;
     477if ($tplOptions['animated_motion'] == 1)
     478$tplOptions['animated_motion'] = true;
     479else
     480$tplOptions['animated_motion'] = false;
     481if ($tplOptions['disable_down'] == 1)
     482$tplOptions['disable_down'] = true;
     483else
     484$tplOptions['disable_down'] = false;
     485
     486// check for button text presense
     487
     488if (!isset($button_label)) $button_label = '';
     489
     490// initialize associative array with button custom settings that created by user
     491
     492$params = array(
     493'scrollToolClass' => $class,
     494'scrollToolStyle' => $style,
     495'scrollToolLabel' => $button_label,
     496'scrollToolOptions' => $tplOptions
     497);
     498
     499// return parameters to wp-function wp_localize_script() that will localize it for static js-script placed at js/scroll-tool.js
     500
     501return $params;
     502
     503}// end of lloo_get_scroll_tool_params()
     504
     505
     506// write defaults to the database instantly after plugin activation
    631507
    632508function lloo_install()
     
    635511    $defaults = serialize(lloo_get_options(array()));
    636512    add_option('lloo_options', $defaults);
    637 }
     513
     514}
     515
     516// delete options from the database when plugin deactivated
    638517
    639518function lloo_uninstall()
    640519{
     520
    641521    delete_option('lloo_options');
    642 }
     522
     523}
     524
     525// activation/deactivation hooks
    643526
    644527register_activation_hook( __FILE__, 'lloo_install');
    645528register_deactivation_hook( __FILE__, 'lloo_uninstall');
     529
     530// front-end & admin panel hooks
    646531
    647532add_action('wp_enqueue_scripts', 'lloo_frontend_css_js');
    648533add_action('admin_enqueue_scripts', 'lloo_css_js');
    649534add_action('admin_menu', 'lloo_admin_menu');
    650 add_action('wp_footer', 'lloo_append_scroll');
    651535?>
Note: See TracChangeset for help on using the changeset viewer.