WordPress.org

Plugin Directory

Changeset 616155


Ignore:
Timestamp:
10/23/12 12:08:29 (5 years ago)
Author:
charlottegenius
Message:
 
Location:
return-to-top/trunk
Files:
6 added
1 deleted
1 edited

Legend:

Unmodified
Added
Removed
  • return-to-top/trunk/return-to-top.php

    r616088 r616155  
    22/* 
    33Plugin Name: Return to top 
     4Version: 1.8 
    45Plugin URI: http://charlotte.byethost22.com/return-to-top/ 
    5 Description: Return to the top of the page, is easier when scrolling up to the top of the page is automated! 
    66Author: charlottegenius 
    7 Version: 1.7.2 
    87Author URI: http://charlotte.byethost22.com/ 
    9 License: GPLv2 
    10 */ 
    11  
    12 add_action('wp_footer', 'returntotop'); 
    13  
    14  
    15 function wprtt_admin() {   
    16     include('wprtt_import_admin.php');   
    17  
    18  
    19  
    20 function wprtt_admin_actions() {  
    21  
    22     add_options_page("os", "Return to top", 1, "os", "wprtt_admin");   
    23  
    24  
    25  
    26 add_action('admin_menu', 'wprtt_admin_actions'); 
    27  
    28 register_activation_hook(__FILE__, 'theactivate'); 
    29  
     8Description: Return to the top of the page plugin with Custom Options like font size,position and text. Include's smooth scrolling animation is added when the link is clicked. 
     9License: GPL2 
     10*/  
     11 
     12register_activation_hook(__FILE__, 'returntotop_activation_hook'); 
    3013add_action('admin_init', 'wprttplugin_redirect'); 
    3114 
    32  
    33  
    34 /** Redirect after installation */ 
    35  
    36  
    37  
    38 function theactivate() { 
    39         update_option('wprtt_position', "center");   
    40         update_option('wprtt_text', "Return to the top");   
    41         update_option('wprtt_size', "1");   
     15/** Redirect to settings after installation */ 
     16 
     17function returntotop_activation_hook() { 
    4218    add_option('wprttplugin_do_activation_redirect', true); 
    4319 
    4420} 
    4521 
    46  
    47  
    4822function wprttplugin_redirect() { 
    4923 
     
    5226        delete_option('wprttplugin_do_activation_redirect'); 
    5327 
    54         wp_redirect('../wp-admin/options-general.php?page=os'); 
     28        wp_redirect('../wp-admin/options-general.php?page=totop'); 
    5529 
    5630    } 
    5731 
    5832} 
    59 ///////// 
     33 
    6034register_activation_hook( __FILE__,'returntotopwpplugin_activate'); 
    6135register_deactivation_hook( __FILE__,'returntotopwpplugin_deactivate'); 
     
    130104} 
    131105 
    132 ////////// 
    133  
    134  
    135  
    136  
    137 function returntotop() { 
    138 $position = get_option('wprtt_position');   
    139 $text = get_option('wprtt_text');   
    140 $size = get_option('wprtt_size');   
    141 echo '<div align="'; echo $position; echo '"><small><font size="'; echo $size; echo '"><a href="#top">'; echo $text; echo '</a></small></font> ?</p>'; 
     106function returntotop_activation_hook() { 
     107    return returntotop_restore_config(False); 
     108} 
     109 
     110function returntotop_restore_config($force=False) { 
     111     
     112    if ($force or !is_string(get_option('returntotop_enabled'))) 
     113        update_option('returntotop_enabled', 'enabled'); 
     114 
     115    // Button Position 
     116    if ($force or !is_string(get_option('returntotop_position'))) 
     117        update_option('returntotop_position', 'br'); 
     118 
     119    // Button Style 
     120    if ($force or !is_string(get_option('returntotop_style'))) 
     121        update_option('returntotop_style', 'dark'); 
     122} 
     123 
     124add_action('admin_menu', 'returntotop_admin_menu'); 
     125function returntotop_admin_menu() { 
     126    add_submenu_page('options-general.php', 'returntotop Link Options', 'returntotop Link', 8, 'returntotop', 'returntotop_menu'); 
     127} 
     128 
     129function returntotop_menu() { 
     130    if($_REQUEST['clear']) { 
     131        returntotop_restore_config(True); 
     132        echo '<div id="message" class="error fade"><p>The settings have been reset to their defaults.</p></div>'; 
     133    } elseif ($_REQUEST['save']) { 
     134        // update enabled 
     135        update_option('returntotop_enabled', mysql_escape_string($_REQUEST['returntotop_enabled']));         
     136     
     137        // update button position 
     138        update_option('returntotop_position', mysql_escape_string($_REQUEST['returntotop_position'])); 
     139        update_option('returntotop_position_c', $_REQUEST['returntotop_position_c']); 
     140        // update link styles 
     141        update_option('returntotop_style', mysql_escape_string($_REQUEST['returntotop_style'])); 
     142        update_option('returntotop_style_c', mysql_escape_string($_REQUEST['returntotop_style_c'])); 
     143        update_option('returntotop_style_w', mysql_escape_string($_REQUEST['returntotop_style_w'])); 
     144        update_option('returntotop_style_h', mysql_escape_string($_REQUEST['returntotop_style_h'])); 
     145         
     146        update_option('returntotop_scroll_offset', mysql_escape_string($_REQUEST['returntotop_scroll_offset'])); 
     147         
     148        // update text link styles 
     149        update_option('returntotop_link_text', mysql_escape_string($_REQUEST['returntotop_link_text'])); 
     150        update_option('returntotop_link_style1', mysql_escape_string($_REQUEST['returntotop_link_style1'])); 
     151        update_option('returntotop_link_style2', mysql_escape_string($_REQUEST['returntotop_link_style2'])); 
     152     
     153        echo '<div id="message" class="updated fade"><p>The changes have been saved.</p></div>'; 
     154    } 
     155 
     156    // Load the options for display in the form. 
     157    $returntotop_enabled = get_option('returntotop_enabled'); 
     158    $returntotop_position = get_option('returntotop_position'); 
     159    $returntotop_position_c = get_option('returntotop_position_c'); 
     160    $returntotop_style = get_option('returntotop_style'); 
     161    $returntotop_style_c = get_option('returntotop_style_c'); 
     162    $returntotop_style_w = get_option('returntotop_style_w'); 
     163    $returntotop_style_h = get_option('returntotop_style_h'); 
     164    $returntotop_scroll_offset = get_option('returntotop_scroll_offset'); 
     165    $returntotop_link_text = get_option('returntotop_link_text'); 
     166    $returntotop_link_style1 = get_option('returntotop_link_style1'); 
     167    $returntotop_link_style2 = get_option('returntotop_link_style2'); 
     168    ?> 
     169    <style> 
     170        .wrap {border:1px solid #ddd;background:#006699;border-radius:10px;padding:0 20px;} 
     171        .wrap h2 {color:#fff;text-shadow:1px 1px 1px #003366;float:left;} 
     172        .form-table {border:1px solid #ddd;box-shadow:0px 0px 10px #003366;} 
     173        .form-table th {font-weight:bold;background:#eee;border-right:1px solid #ccc;border-bottom:1px solid #ddd;} 
     174        .form-table td {background:#f3f3f3;border-bottom:1px solid #ddd;} 
     175        .form-table td .description {padding:5px;border:1px solid #eee;background:#fff} 
     176        .dbd-credit th {font-weight:bold;background:#ffffdd;border-right:1px solid #ffffdd;vertical-align:middle;} 
     177        .dbd-credit a:link, .dbd-credit a:visited {color:#22AFC5;text-decoration:none;} 
     178        .dbd-credit a:hover, .dbd-credit a:active {color:#ff0000;} 
     179        a.buyusacoffee img {vertical-align:middle;} 
     180        #message {clear:both;} 
     181    </style> 
     182         
     183    <div class="wrap" id="returntotop_options"> 
     184        <div class="icon32" id="icon-options-general"><br></div> 
     185        <h2>Return to top - Settings</h2> 
     186        <form action="<?php echo $_SERVER['REQUEST_URI']; ?>" method="post" id="returntotop_options_form" name="returntotop_options_form"> 
     187                <table class="form-table"> 
     188                    <tbody> 
     189                        <tr valign="top"> 
     190                            <th>Enable / Disable Button</th> 
     191                            <td> 
     192                                <input type="radio" name="returntotop_enabled" id="returntotop_enabled" value="enabled" <?php if($returntotop_enabled=='enabled'){ echo "CHECKED"; } ?>><label for="returntotop_enabled"> Enabled</label> 
     193                                <br /> 
     194                                <input type="radio" name="returntotop_enabled" id="returntotop_disabled" value="disabled" <?php if($returntotop_enabled=='disabled'){ echo "CHECKED"; } ?>><label for="returntotop_disabled"> Disabled</label> 
     195                            </td> 
     196                        </tr> 
     197                         
     198                        <tr valign="top"> 
     199                            <th>Return to top Link Position</th> 
     200                            <td> 
     201                                <select type="select" name="returntotop_position" id="returntotop_position"> 
     202                                    <option value="bl" id="returntotop_bl" <?php if($returntotop_position=='bl'){ echo 'selected="selected"'; } ?>>Bottom Left</option> 
     203                                    <option value="br" id="returntotop_br" <?php if($returntotop_position=='br'){ echo 'selected="selected"'; } ?>>Bottom Right</option> 
     204                                    <option value="bm" id="returntotop_bm" <?php if($returntotop_position=='bm'){ echo 'selected="selected"'; } ?>>Bottom Middle</option> 
     205                                    <option value="tl" id="returntotop_tl" <?php if($returntotop_position=='tl'){ echo 'selected="selected"'; } ?>>Top Left</option> 
     206                                    <option value="tr" id="returntotop_tr" <?php if($returntotop_position=='tr'){ echo 'selected="selected"'; } ?>>Top Right</option> 
     207                                    <option value="tm" id="returntotop_tm" <?php if($returntotop_position=='tm'){ echo 'selected="selected"'; } ?>>Top Middle</option> 
     208                                    <option value="ml" id="returntotop_ml" <?php if($returntotop_position=='ml'){ echo 'selected="selected"'; } ?>>Middle Left</option> 
     209                                    <option value="mr" id="returntotop_mr" <?php if($returntotop_position=='mr'){ echo 'selected="selected"'; } ?>>Middle Right</option> 
     210                                    <option value="custom" id="returntotop_custom" <?php if($returntotop_position=='custom'){ echo 'selected="selected"'; } ?>>Custom</option> 
     211                                </select> 
     212                                <p class="description">With this setting you can choose where you want the returntotop link to be displayed.</p> 
     213                                <p>&nbsp;</p> 
     214                                <p><strong>Custom Offset Position:</strong>&nbsp;&nbsp;&nbsp;&nbsp; 
     215                                    <label for="returntotop_position_c[ct]">Top:</label> <input type="text" name="returntotop_position_c[top]" value="<?php echo $returntotop_position_c['top']; ?>" id="returntotop_position_ct" size="2"> 
     216                                    <label for="returntotop_position_c[cl]">Left:</label> <input type="text" name="returntotop_position_c[left]" value="<?php echo $returntotop_position_c['left']; ?>" id="returntotop_position_cl" size="2"> 
     217                                    <label for="returntotop_position_c[cb]">Bottom:</label> <input type="text" name="returntotop_position_c[bottom]" value="<?php echo $returntotop_position_c['bottom']; ?>" id="returntotop_position_cb" size="2"> 
     218                                    <label for="returntotop_position_c[cr]">Right:</label> <input type="text" name="returntotop_position_c[right]" value="<?php echo $returntotop_position_c['right']; ?>" id="returntotop_position_cr" size="2"> 
     219                                </p> 
     220                                <p class="description">Use the above fields to set the custom offsets for the returntotop image/link. Be sure to only set one horizontal and one vertical position (ie. Top and Left, not Top and Bottom). <em>Leave unused positions blank</em>.</p> 
     221                            </td> 
     222                        </tr>     
     223                         
     224                        <tr valign="top"> 
     225                            <th>Return to top Style</th> 
     226                            <td> 
     227                                <input type="radio" name="returntotop_style" value="light" id="returntotop_light" <?php if($returntotop_style=='light'){ echo "CHECKED"; } ?>><label for="returntotop_light"> Light</label> 
     228                                <br /> 
     229                                <input type="radio" name="returntotop_style" value="dark" id="returntotop_dark" <?php if($returntotop_style=='dark'){ echo "CHECKED"; } ?>><label for="returntotop_dark"> Dark</label> 
     230                                <br /> 
     231                                <input type="radio" name="returntotop_style" value="text" id="returntotop_text" <?php if($returntotop_style=='text'){ echo "CHECKED"; } ?>><label for="returntotop_text"> Text Link</label> 
     232                                <br /> 
     233                                <input type="radio" name="returntotop_style" value="custom" id="returntotop_custom" <?php if($returntotop_style=='custom'){ echo "CHECKED"; } ?>><label for="returntotop_custom"> Custom Image</label> 
     234                                <p class="description">Choose "Light" if your Web site's background colour is a dark colour. Choose "Dark" if your background is a light colour. If you prefer to use your own image, select "Custom", and include the URL to the image in the field below.</p> 
     235                            </td> 
     236                        </tr> 
     237 
     238                        <tr valign="top"> 
     239                            <th>Return to top Scroll Offset</th> 
     240                            <td> 
     241                                <input type="text" name="returntotop_scroll_offset" value="<?php echo $returntotop_scroll_offset; ?>" id="returntotop_scroll_offset" size="3"><label for="returntotop_scroll_offset">px</label>  
     242                                <p class="description">This setting allows you to set how far down the page a user must scroll before the returntotop link appears. <strong>Do not include "px"</strong></p> 
     243                            </td> 
     244                        </tr> 
     245 
     246                        <tr valign="top"> 
     247                            <th>Custom Image</th> 
     248                            <td> 
     249                                <label for="returntotop_style_c">Custom Image URL:</label><br /><input type="text" name="returntotop_style_c" value="<?php echo $returntotop_style_c; ?>" id="returntotop_style_c" style="width:60%;"> 
     250                                <br /> 
     251                                <label for="returntotop_style_w">Custom Image Width:</label> <input type="text" name="returntotop_style_w" value="<?php echo $returntotop_style_w; ?>" id="returntotop_style_w" size="3" > 
     252                                <label for="returntotop_style_h">Custom Image Height:</label> <input type="text" name="returntotop_style_h" value="<?php echo $returntotop_style_h; ?>" id="returntotop_style_h" size="3" > 
     253                                <p class="description">The height and width should auto-populate with the size of the image supplied in the "Custom Image URL" field above. If not, or if you'd like to customize the height and width, please add the values above.</p> 
     254                            </td> 
     255                        </tr> 
     256 
     257 
     258                        <tr valign="top"> 
     259                            <th>Return to top Text Link Config.<br /><small>(Optional)</small></th> 
     260                            <td> 
     261                                <input type="text" name="returntotop_link_text" value="<?php echo $returntotop_link_text; ?>" id="returntotop_link_text"><label for="returntotop_link_text"> Text for Link</label> 
     262                                <p class="description">You can customize the link text displayed. Leave blank for default: <strong><?php _e('Return to Top ▲'); ?></strong></p> 
     263                                <input type="text" name="returntotop_link_style1" value="<?php echo $returntotop_link_style1; ?>" id="returntotop_link_style1"><label for="returntotop_link_style1"> Regular Link Colour</label> 
     264                                <br /> 
     265                                <input type="text" name="returntotop_link_style2" value="<?php echo $returntotop_link_style2; ?>" id="returntotop_link_style2"><label for="returntotop_link_style2"> Hover Link Colour</label> 
     266                                <p class="description">Insert the HEX value with hash symbol (e.g. #336600) for the regular and hover link colours. Leave blank if you wish to use your theme's defaults.</p> 
     267                            </td> 
     268                        </tr> 
     269 
     270                    </tbody> 
     271                </table> 
     272                <p class="submit"> 
     273                    <input name="save" id="save" style='width:100px' value="Save Changes" type="submit" /> 
     274                    <input name="clear" id="reset" style='width:100px' value="Reset Options" type="submit" /> 
     275                     
     276                </p> 
     277        </form> 
     278    </div> 
     279    <script type="text/javascript" language="javascript"> 
     280        jQuery('#returntotop_style_c').change(function() { 
     281            var $cimg = new Image(); 
     282            $cimg.onload = function() { 
     283                if (!jQuery('#returntotop_style_w').val()) { jQuery('#returntotop_style_w').val(this.width); } 
     284                if (!jQuery('#returntotop_style_h').val()) { jQuery('#returntotop_style_h').val(this.height); } 
     285            } 
     286            $cimg.src = jQuery('#returntotop_style_c').val(); 
     287        }); 
     288    </script> 
     289     
     290<?php 
     291} 
     292 
     293// Hook the_content to output html if we should display on any page 
     294$returntotop_enabled = get_option('returntotop_enabled'); 
     295if ($returntotop_enabled == 'enabled' && !is_admin()) { 
     296    $returntotop_position = get_option('returntotop_position'); 
     297    if ($returntotop_position == 'custom') { 
     298        $returntotop_css_vars['pos'] = get_option('returntotop_position_c'); 
     299    } 
     300 
     301    $returntotop_style = get_option('returntotop_style'); 
     302    if ($returntotop_style != 'text') {  
     303        if ($returntotop_style == 'custom') { 
     304            $returntotop_img_src = get_option('returntotop_style_c'); 
     305            $returntotop_css_vars['width'] = get_option('returntotop_style_w'); 
     306            $returntotop_css_vars['height'] = get_option('returntotop_style_h');         
     307        } else { 
     308            $returntotop_img_src = plugin_dir_url(__FILE__).'images/returntotop-'.$returntotop_style.'.png'; 
     309            $returntotop_css_vars['width'] = '40';   
     310            $returntotop_css_vars['height'] = '48';  
     311        } 
     312    } else { 
     313        $returntotop_css_vars['text-style'][0] = get_option('returntotop_link_style1'); 
     314        $returntotop_css_vars['text-style'][1] = get_option('returntotop_link_style2'); 
     315    } 
     316     
     317    add_action('wp_footer', 'returntotop_body_hook'); 
     318    add_action('init','returntotop_init_hook'); 
     319    function returntotop_body_hook() { 
     320        global $returntotop_style; global $returntotop_position; global $returntotop_img_src; global $returntotop_css_vars; 
     321        $returntotop_class = 'returntotop-'.$returntotop_position.' returntotop-'.$returntotop_style; 
     322 
     323        $returntotop_link_text = get_option('returntotop_link_text'); 
     324        $returntotop_scroll_offset = get_option('returntotop_scroll_offset'); 
     325 
     326        $returntotop_link_text = ($returntotop_link_text) ? $returntotop_link_text : __('Return to Top ▲'); 
     327        $returntotop_img = ($returntotop_img_src) ? '<img src="'.$returntotop_img_src.'" alt="'.$returntotop_link_text.'" title="'.$returntotop_link_text.'" width="'.$returntotop_css_vars['width'].'" height="'.$returntotop_css_vars['height'].'" />' : ''; 
     328        echo '<a id="returntotop" title="'.$returntotop_link_text.'" class="'.$returntotop_class.'" rel="'.$returntotop_scroll_offset.'">'.$returntotop_img.'<span>'.$returntotop_link_text.'</span></a>'; 
     329    } 
     330     
     331    function returntotop_init_hook() { 
     332        global $returntotop_css_vars; 
     333        $returntotop_css = '?vars='.base64_encode(serialize($returntotop_css_vars)); 
     334        wp_enqueue_style('returntotop',  plugin_dir_url(__FILE__).'return-to-top.css.php?'.$returntotop_css); 
     335        wp_enqueue_script('jquery'); 
     336        wp_enqueue_script('returntotop', plugin_dir_url(__FILE__).'return-to-top.js','jquery', '', false); 
     337    } 
     338     
    142339} 
    143340 
Note: See TracChangeset for help on using the changeset viewer.