Version Description
- Optimized client side performance. Detection of page changes is now based on MutationObserver API. Widget parameters recount is fired only when needed! Refresh interval option used only for campatibility with old browsers (no MutationObserver API support).
- Improved compatibility with caching plugins (W3TC, Autoptimize and etc.). No need to exclude jQuery and plugin files from cache!
- Async/Defer script load method support
- Added
Disable Width
option
Download this release
Release Info
Developer | Max Bond |
Plugin | Q2W3 Fixed Widget |
Version | 5.0 |
Comparing to | |
See all releases |
Code changes from version 4.1 to 5.0
- js/q2w3-fixed-widget.js +113 -50
- js/q2w3-fixed-widget.min.js +1 -1
- lang/q2w3-fixed-widget-ru_RU.mo +0 -0
- lang/q2w3-fixed-widget-ru_RU.po +147 -95
- q2w3-fixed-widget.php +57 -64
- readme.txt +30 -33
- screenshot-1.jpg +0 -0
- screenshot-2.jpg +0 -0
- screenshot-3.jpg +0 -0
- screenshot-4.jpg +0 -0
js/q2w3-fixed-widget.js
CHANGED
@@ -1,20 +1,78 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
function q2w3_sidebar(options) {
|
2 |
|
|
|
|
|
3 |
if ( !options.widgets) return false;
|
4 |
|
5 |
if ( options.widgets.length < 1) return false;
|
6 |
|
7 |
if ( !options.sidebar) options.sidebar = 'q2w3-default-sidebar';
|
8 |
-
|
9 |
function widget() {} // widget class
|
10 |
|
11 |
var widgets = new Array();
|
12 |
|
13 |
var window_height = jQuery(window).height();
|
14 |
var document_height = jQuery(document).height();
|
15 |
-
var fixed_margin_top = options.margin_top
|
16 |
-
|
17 |
-
if (jQuery('#wpadminbar').is(
|
18 |
fixed_margin_top = options.margin_top + jQuery('#wpadminbar').height();
|
19 |
}
|
20 |
|
@@ -54,13 +112,14 @@ function q2w3_sidebar(options) {
|
|
54 |
next_widgets_height += widgets[i].height;
|
55 |
if ( !widget_parent_container ) {
|
56 |
widget_parent_container = widget_obj.parent();
|
|
|
57 |
widget_parent_container.css('height','');
|
58 |
widget_parent_container.height(widget_parent_container.height());
|
59 |
}
|
60 |
}
|
61 |
}
|
62 |
|
63 |
-
jQuery(window).off('load.' + options.sidebar + ' scroll.' + options.sidebar);
|
64 |
|
65 |
for ( var i = 0; i < widgets.length; i++ ) {
|
66 |
if (widgets[i]) fixed_widget(widgets[i]);
|
@@ -71,68 +130,72 @@ function q2w3_sidebar(options) {
|
|
71 |
var trigger_top = widget.offset_top - widget.fixed_margin_top;
|
72 |
var trigger_bottom = document_height - options.margin_bottom;
|
73 |
|
74 |
-
if ( options.stop_id ) {
|
75 |
trigger_bottom = jQuery('#' + options.stop_id).offset().top - options.margin_bottom;
|
76 |
}
|
77 |
-
|
78 |
var widget_width; if ( options.width_inherit ) widget_width = 'inherit'; else widget_width = widget.obj.css('width');
|
79 |
|
80 |
var style_applied_top = false;
|
81 |
var style_applied_bottom = false;
|
82 |
var style_applied_normal = false;
|
83 |
|
84 |
-
jQuery(window).on('scroll.' + options.sidebar, function
|
85 |
-
|
86 |
-
|
87 |
-
if ( !style_applied_bottom ) {
|
88 |
-
widget.obj.css('position', 'fixed');
|
89 |
-
widget.obj.css('top', '');
|
90 |
-
widget.obj.css('width', widget_width);
|
91 |
-
if(jQuery('#'+widget.clone_id).length <= 0) widget.obj.before(widget.clone);
|
92 |
-
style_applied_bottom = true;
|
93 |
-
style_applied_top = false;
|
94 |
-
style_applied_normal = false;
|
95 |
-
}
|
96 |
-
widget.obj.css('bottom', scroll + window_height + widget.next_widgets_height - trigger_bottom);
|
97 |
-
} else if ( scroll >= trigger_top ) { // fixed top
|
98 |
-
if ( !style_applied_top ) {
|
99 |
-
widget.obj.css('position', 'fixed');
|
100 |
-
widget.obj.css('top', widget.fixed_margin_top);
|
101 |
-
widget.obj.css('bottom', '');
|
102 |
-
widget.obj.css('width', widget_width);
|
103 |
-
if(jQuery('#'+widget.clone_id).length <= 0) widget.obj.before(widget.clone);
|
104 |
-
style_applied_top = true;
|
105 |
-
style_applied_bottom = false;
|
106 |
-
style_applied_normal = false;
|
107 |
-
}
|
108 |
-
} else { // normal
|
109 |
-
if ( !style_applied_normal ) {
|
110 |
widget.obj.css('position', '');
|
111 |
widget.obj.css('top', '');
|
|
|
112 |
widget.obj.css('width', '');
|
113 |
-
|
|
|
|
|
|
|
114 |
style_applied_normal = true;
|
115 |
style_applied_top = false;
|
116 |
-
style_applied_bottom = false;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
117 |
}
|
118 |
}
|
119 |
}).trigger('scroll.' + options.sidebar);
|
120 |
|
121 |
-
jQuery(window).on('resize', function() {
|
122 |
-
if ( jQuery(window).width() <= options.screen_max_width ) { // jQuery(window).width() - 17px - browser scroll width ???
|
123 |
-
jQuery(window).off('load.' + options.sidebar + ' scroll.' + options.sidebar);
|
124 |
-
widget.obj.css('position', '');
|
125 |
-
widget.obj.css('top', '');
|
126 |
-
widget.obj.css('width', '');
|
127 |
-
widget.obj.css('margin', '');
|
128 |
-
widget.obj.css('padding', '');
|
129 |
-
if(jQuery('#'+widget.clone_id).length > 0) jQuery('#'+widget.clone_id).remove();
|
130 |
-
style_applied_normal = true;
|
131 |
-
style_applied_top = false;
|
132 |
-
style_applied_bottom = false;
|
133 |
-
}
|
134 |
-
}).trigger('resize');
|
135 |
-
|
136 |
}
|
137 |
|
138 |
}
|
1 |
+
if ( q2w3_sidebar_options && q2w3_sidebar_options.length > 0 ) {
|
2 |
+
if ( window.jQuery ) {
|
3 |
+
var q2w3Refresh = false;
|
4 |
+
for ( var i = 0; i < q2w3_sidebar_options.length; i++ ) {
|
5 |
+
if ( q2w3_sidebar_options[i].window_load_hook ) {
|
6 |
+
var init = 'jQuery(window).load(function(){q2w3_sidebar_init(q2w3_sidebar_options[' + i + '])});';
|
7 |
+
} else {
|
8 |
+
var init = 'jQuery(document).ready(function(){q2w3_sidebar_init(q2w3_sidebar_options[' + i + '])});';
|
9 |
+
}
|
10 |
+
}
|
11 |
+
eval(init);
|
12 |
+
} else {
|
13 |
+
console.log('jQuery is not loaded!');
|
14 |
+
}
|
15 |
+
}
|
16 |
+
|
17 |
+
function q2w3_sidebar_init(options) {
|
18 |
+
q2w3_sidebar(options);
|
19 |
+
jQuery(window).on('resize', function(){q2w3_sidebar(options)});
|
20 |
+
var MutationObserver = (function(){
|
21 |
+
var prefixes = ['WebKit', 'Moz', 'O', 'Ms', ''];
|
22 |
+
for ( var i=0; i < prefixes.length; i++ ) {
|
23 |
+
if ( prefixes[i] + 'MutationObserver' in window ) {
|
24 |
+
return window[prefixes[i] + 'MutationObserver'];
|
25 |
+
}
|
26 |
+
}
|
27 |
+
return false;
|
28 |
+
}());
|
29 |
+
if ( MutationObserver ) {
|
30 |
+
var htmlObserver = new MutationObserver(function(mutations) {
|
31 |
+
q2w3Refresh = false
|
32 |
+
mutations.forEach( function(mutation) {
|
33 |
+
if ( q2w3_exclude_mutations_array(options.widgets).indexOf(mutation.target.id) == -1 && mutation.target.className.indexOf('q2w3-fixed-widget-container') == -1 ) {
|
34 |
+
q2w3Refresh = true;
|
35 |
+
}
|
36 |
+
});
|
37 |
+
});
|
38 |
+
htmlObserver.observe(document.body, {childList: true, attributes: true, attributeFilter:['style', 'class'], subtree: true});
|
39 |
+
setInterval(function(){
|
40 |
+
if ( q2w3Refresh ) { q2w3_sidebar(options); q2w3Refresh = false; } // console.log('Q2W3 counter:' + i++);
|
41 |
+
}, 1000);
|
42 |
+
} else {
|
43 |
+
console.log('MutationObserver not supported!');
|
44 |
+
if ( options.refresh_interval > 0 ) setInterval(function(){q2w3_sidebar(options)}, options.refresh_interval);
|
45 |
+
}
|
46 |
+
}
|
47 |
+
|
48 |
+
function q2w3_exclude_mutations_array(widgets) {
|
49 |
+
var out = new Array();
|
50 |
+
for ( var i = 0; i < widgets.length; i++ ) {
|
51 |
+
out.push(widgets[i]);
|
52 |
+
out.push(widgets[i] + '_clone');
|
53 |
+
}
|
54 |
+
return out;
|
55 |
+
}
|
56 |
+
|
57 |
function q2w3_sidebar(options) {
|
58 |
|
59 |
+
if ( !options ) return false;
|
60 |
+
|
61 |
if ( !options.widgets) return false;
|
62 |
|
63 |
if ( options.widgets.length < 1) return false;
|
64 |
|
65 |
if ( !options.sidebar) options.sidebar = 'q2w3-default-sidebar';
|
66 |
+
|
67 |
function widget() {} // widget class
|
68 |
|
69 |
var widgets = new Array();
|
70 |
|
71 |
var window_height = jQuery(window).height();
|
72 |
var document_height = jQuery(document).height();
|
73 |
+
var fixed_margin_top = options.margin_top;
|
74 |
+
|
75 |
+
if ( jQuery('#wpadminbar').is(':visible') ) { // WordPress admin bar
|
76 |
fixed_margin_top = options.margin_top + jQuery('#wpadminbar').height();
|
77 |
}
|
78 |
|
112 |
next_widgets_height += widgets[i].height;
|
113 |
if ( !widget_parent_container ) {
|
114 |
widget_parent_container = widget_obj.parent();
|
115 |
+
widget_parent_container.addClass('q2w3-fixed-widget-container');
|
116 |
widget_parent_container.css('height','');
|
117 |
widget_parent_container.height(widget_parent_container.height());
|
118 |
}
|
119 |
}
|
120 |
}
|
121 |
|
122 |
+
jQuery(window).off('load.' + options.sidebar + ' scroll.' + options.sidebar); //+ ' resize.' + options.sidebar
|
123 |
|
124 |
for ( var i = 0; i < widgets.length; i++ ) {
|
125 |
if (widgets[i]) fixed_widget(widgets[i]);
|
130 |
var trigger_top = widget.offset_top - widget.fixed_margin_top;
|
131 |
var trigger_bottom = document_height - options.margin_bottom;
|
132 |
|
133 |
+
if ( options.stop_id && jQuery('#' + options.stop_id).length ) {
|
134 |
trigger_bottom = jQuery('#' + options.stop_id).offset().top - options.margin_bottom;
|
135 |
}
|
136 |
+
|
137 |
var widget_width; if ( options.width_inherit ) widget_width = 'inherit'; else widget_width = widget.obj.css('width');
|
138 |
|
139 |
var style_applied_top = false;
|
140 |
var style_applied_bottom = false;
|
141 |
var style_applied_normal = false;
|
142 |
|
143 |
+
jQuery(window).on('scroll.' + options.sidebar, function(event) {
|
144 |
+
if ( jQuery(window).width() <= options.screen_max_width || jQuery(window).height() <= options.screen_max_height ) {
|
145 |
+
if ( ! style_applied_normal ) {
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
146 |
widget.obj.css('position', '');
|
147 |
widget.obj.css('top', '');
|
148 |
+
widget.obj.css('bottom', '');
|
149 |
widget.obj.css('width', '');
|
150 |
+
widget.obj.css('margin', '');
|
151 |
+
widget.obj.css('padding', '');
|
152 |
+
widget_obj.parent().css('height','');
|
153 |
+
if ( jQuery('#'+widget.clone_id).length > 0 ) jQuery('#'+widget.clone_id).remove();
|
154 |
style_applied_normal = true;
|
155 |
style_applied_top = false;
|
156 |
+
style_applied_bottom = false;
|
157 |
+
}
|
158 |
+
//console.log('jQuery(window).width() <= options.screen_max_width');
|
159 |
+
} else {
|
160 |
+
var scroll = jQuery(this).scrollTop();
|
161 |
+
//console.log('Srcoll: ' + scroll + ' | Trigger top: ' + trigger_top + ' | Trigger bottom: ' + trigger_bottom);
|
162 |
+
if ( scroll + widget.fixed_margin_bottom >= trigger_bottom ) { // fixed bottom
|
163 |
+
if ( !style_applied_bottom ) {
|
164 |
+
widget.obj.css('position', 'fixed');
|
165 |
+
widget.obj.css('top', '');
|
166 |
+
widget.obj.css('width', widget_width);
|
167 |
+
if(jQuery('#'+widget.clone_id).length <= 0) widget.obj.before(widget.clone);
|
168 |
+
style_applied_bottom = true;
|
169 |
+
style_applied_top = false;
|
170 |
+
style_applied_normal = false;
|
171 |
+
}
|
172 |
+
widget.obj.css('bottom', scroll + window_height + widget.next_widgets_height - trigger_bottom);
|
173 |
+
} else if ( scroll >= trigger_top ) { // fixed top
|
174 |
+
if ( !style_applied_top ) {
|
175 |
+
widget.obj.css('position', 'fixed');
|
176 |
+
widget.obj.css('top', widget.fixed_margin_top);
|
177 |
+
widget.obj.css('bottom', '');
|
178 |
+
widget.obj.css('width', widget_width);
|
179 |
+
if(jQuery('#'+widget.clone_id).length <= 0) widget.obj.before(widget.clone);
|
180 |
+
style_applied_top = true;
|
181 |
+
style_applied_bottom = false;
|
182 |
+
style_applied_normal = false;
|
183 |
+
}
|
184 |
+
} else { // normal
|
185 |
+
if ( !style_applied_normal ) {
|
186 |
+
widget.obj.css('position', '');
|
187 |
+
widget.obj.css('top', '');
|
188 |
+
widget.obj.css('bottom', '');
|
189 |
+
widget.obj.css('width', '');
|
190 |
+
if(jQuery('#'+widget.clone_id).length > 0) jQuery('#'+widget.clone_id).remove();
|
191 |
+
style_applied_normal = true;
|
192 |
+
style_applied_top = false;
|
193 |
+
style_applied_bottom = false;
|
194 |
+
}
|
195 |
}
|
196 |
}
|
197 |
}).trigger('scroll.' + options.sidebar);
|
198 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
199 |
}
|
200 |
|
201 |
}
|
js/q2w3-fixed-widget.min.js
CHANGED
@@ -1 +1 @@
|
|
1 |
-
function q2w3_sidebar(
|
1 |
+
function q2w3_sidebar_init(a){q2w3_sidebar(a),jQuery(window).on("resize",function(){q2w3_sidebar(a)});var b=function(){for(var a=["WebKit","Moz","O","Ms",""],b=0;b<a.length;b++)if(a[b]+"MutationObserver"in window)return window[a[b]+"MutationObserver"];return!1}();if(b){var c=new b(function(b){q2w3Refresh=!1,b.forEach(function(b){q2w3_exclude_mutations_array(a.widgets).indexOf(b.target.id)==-1&&b.target.className.indexOf("q2w3-fixed-widget-container")==-1&&(q2w3Refresh=!0)})});c.observe(document.body,{childList:!0,attributes:!0,attributeFilter:["style","class"],subtree:!0}),setInterval(function(){q2w3Refresh&&(q2w3_sidebar(a),q2w3Refresh=!1)},1e3)}else console.log("MutationObserver not supported!"),a.refresh_interval>0&&setInterval(function(){q2w3_sidebar(a)},a.refresh_interval)}function q2w3_exclude_mutations_array(a){for(var b=new Array,c=0;c<a.length;c++)b.push(a[c]),b.push(a[c]+"_clone");return b}function q2w3_sidebar(a){function b(){}function j(b){var c=b.offset_top-b.fixed_margin_top,f=e-a.margin_bottom;a.stop_id&&jQuery("#"+a.stop_id).length&&(f=jQuery("#"+a.stop_id).offset().top-a.margin_bottom);var g;g=a.width_inherit?"inherit":b.obj.css("width");var h=!1,i=!1,j=!1;jQuery(window).on("scroll."+a.sidebar,function(e){if(jQuery(window).width()<=a.screen_max_width||jQuery(window).height()<=a.screen_max_height)j||(b.obj.css("position",""),b.obj.css("top",""),b.obj.css("bottom",""),b.obj.css("width",""),b.obj.css("margin",""),b.obj.css("padding",""),widget_obj.parent().css("height",""),jQuery("#"+b.clone_id).length>0&&jQuery("#"+b.clone_id).remove(),j=!0,h=!1,i=!1);else{var k=jQuery(this).scrollTop();k+b.fixed_margin_bottom>=f?(i||(b.obj.css("position","fixed"),b.obj.css("top",""),b.obj.css("width",g),jQuery("#"+b.clone_id).length<=0&&b.obj.before(b.clone),i=!0,h=!1,j=!1),b.obj.css("bottom",k+d+b.next_widgets_height-f)):k>=c?h||(b.obj.css("position","fixed"),b.obj.css("top",b.fixed_margin_top),b.obj.css("bottom",""),b.obj.css("width",g),jQuery("#"+b.clone_id).length<=0&&b.obj.before(b.clone),h=!0,i=!1,j=!1):j||(b.obj.css("position",""),b.obj.css("top",""),b.obj.css("bottom",""),b.obj.css("width",""),jQuery("#"+b.clone_id).length>0&&jQuery("#"+b.clone_id).remove(),j=!0,h=!1,i=!1)}}).trigger("scroll."+a.sidebar)}if(!a)return!1;if(!a.widgets)return!1;if(a.widgets.length<1)return!1;a.sidebar||(a.sidebar="q2w3-default-sidebar");var c=new Array,d=jQuery(window).height(),e=jQuery(document).height(),f=a.margin_top;jQuery("#wpadminbar").is(":visible")&&(f=a.margin_top+jQuery("#wpadminbar").height()),jQuery(".q2w3-widget-clone-"+a.sidebar).remove();for(var g=0;g<a.widgets.length;g++)widget_obj=jQuery("#"+a.widgets[g]),widget_obj.css("position",""),widget_obj.attr("id")?(c[g]=new b,c[g].obj=widget_obj,c[g].clone=widget_obj.clone(),c[g].clone.children().remove(),c[g].clone_id=widget_obj.attr("id")+"_clone",c[g].clone.addClass("q2w3-widget-clone-"+a.sidebar),c[g].clone.attr("id",c[g].clone_id),c[g].clone.css("height",widget_obj.height()),c[g].clone.css("visibility","hidden"),c[g].offset_top=widget_obj.offset().top,c[g].fixed_margin_top=f,c[g].height=widget_obj.outerHeight(!0),c[g].fixed_margin_bottom=f+c[g].height,f+=c[g].height):c[g]=!1;for(var i,h=0,g=c.length-1;g>=0;g--)c[g]&&(c[g].next_widgets_height=h,c[g].fixed_margin_bottom+=h,h+=c[g].height,i||(i=widget_obj.parent(),i.addClass("q2w3-fixed-widget-container"),i.css("height",""),i.height(i.height())));jQuery(window).off("load."+a.sidebar+" scroll."+a.sidebar);for(var g=0;g<c.length;g++)c[g]&&j(c[g])}if(q2w3_sidebar_options&&q2w3_sidebar_options.length>0)if(window.jQuery){for(var q2w3Refresh=!1,i=0;i<q2w3_sidebar_options.length;i++)if(q2w3_sidebar_options[i].window_load_hook)var init="jQuery(window).load(function(){q2w3_sidebar_init(q2w3_sidebar_options["+i+"])});";else var init="jQuery(document).ready(function(){q2w3_sidebar_init(q2w3_sidebar_options["+i+"])});";eval(init)}else console.log("jQuery is not loaded!");
|
lang/q2w3-fixed-widget-ru_RU.mo
CHANGED
Binary file
|
lang/q2w3-fixed-widget-ru_RU.po
CHANGED
@@ -1,191 +1,242 @@
|
|
1 |
msgid ""
|
2 |
msgstr ""
|
3 |
"Project-Id-Version: Q2W3 Fixed Widget\n"
|
4 |
-
"POT-Creation-Date: 2016-
|
5 |
-
"PO-Revision-Date: 2016-
|
6 |
"Last-Translator: \n"
|
7 |
"Language-Team: \n"
|
8 |
"Language: ru_RU\n"
|
9 |
"MIME-Version: 1.0\n"
|
10 |
"Content-Type: text/plain; charset=UTF-8\n"
|
11 |
"Content-Transfer-Encoding: 8bit\n"
|
12 |
-
"X-Generator: Poedit 1.
|
13 |
"X-Poedit-KeywordsList: _;gettext;gettext_noop;__;_e\n"
|
14 |
"X-Poedit-Basepath: .\n"
|
15 |
-
"X-Poedit-SearchPath-0: c
|
16 |
-
"
|
17 |
|
18 |
-
#: c
|
19 |
-
#: (x86)
|
20 |
msgid "Fixed widget"
|
21 |
msgstr "Зафиксировать виджет"
|
22 |
|
23 |
-
#: c
|
24 |
-
#: (x86)
|
25 |
-
#: (x86)
|
26 |
msgid "Fixed Widget Options"
|
27 |
msgstr "Фикс. Виджеты"
|
28 |
|
29 |
-
#: c
|
30 |
-
#: (x86)
|
31 |
msgid "General Options"
|
32 |
msgstr "Основные настройки"
|
33 |
|
34 |
-
#: c
|
35 |
-
#: (x86)
|
36 |
msgid "Compatibility"
|
37 |
msgstr "Совместимость"
|
38 |
|
39 |
-
#: c
|
40 |
-
#: (x86)
|
41 |
msgid "Custom IDs"
|
42 |
msgstr "Произвольные идентификаторы"
|
43 |
|
44 |
-
#: c
|
45 |
-
#: (x86)
|
46 |
msgid "Help for users"
|
47 |
msgstr "Помощь пользователям"
|
48 |
|
49 |
-
#: c
|
50 |
-
#: (x86)
|
51 |
msgid "Help for developer"
|
52 |
msgstr "Помощь разработчику"
|
53 |
|
54 |
-
#: c
|
55 |
-
#: (x86)
|
56 |
msgid "Settings saved."
|
57 |
msgstr "Настройки сохранены."
|
58 |
|
59 |
-
#: c
|
60 |
-
#: (x86)
|
61 |
msgid "Save Changes"
|
62 |
msgstr "Сохранить"
|
63 |
|
64 |
-
#: c
|
65 |
-
#: (x86)
|
66 |
msgid "Margin Top:"
|
67 |
msgstr "Верхний отступ:"
|
68 |
|
69 |
-
#: c
|
70 |
-
#: (x86)
|
71 |
-
#: (x86)
|
72 |
-
#: (x86)
|
|
|
73 |
msgid "px"
|
74 |
msgstr "пикс."
|
75 |
|
76 |
-
#: c
|
77 |
-
#: (x86)
|
78 |
msgid "Margin Bottom:"
|
79 |
msgstr "Нижний отступ:"
|
80 |
|
81 |
-
#: c
|
82 |
-
#: (x86)
|
83 |
msgid "Stop ID:"
|
84 |
msgstr "Стоп ID:"
|
85 |
|
86 |
-
#: c
|
87 |
-
#: (x86)
|
88 |
-
msgid "
|
|
|
|
|
89 |
msgstr ""
|
90 |
-
"Здесь необходимо
|
91 |
-
"
|
92 |
|
93 |
-
#: c
|
94 |
-
#: (x86)
|
95 |
msgid "Refresh interval:"
|
96 |
msgstr "Интервал обновления:"
|
97 |
|
98 |
-
#: c
|
99 |
-
#: (x86)
|
100 |
msgid "milliseconds"
|
101 |
msgstr "миллисекунды"
|
102 |
|
103 |
-
#: c
|
104 |
-
#: (x86)
|
105 |
-
msgid "
|
106 |
-
|
107 |
-
|
108 |
-
|
109 |
-
|
110 |
-
|
111 |
-
|
112 |
|
113 |
-
#: c
|
114 |
-
#: (x86)
|
115 |
-
msgid "
|
116 |
-
msgstr "
|
117 |
|
118 |
-
#: c
|
119 |
-
#: (x86)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
120 |
msgid "Custom HTML IDs (each one on a new line):"
|
121 |
msgstr ""
|
122 |
-
"HTML-идентификаторы статических виджетов и прочих нестандартных элементов
|
|
|
123 |
|
124 |
-
#: c
|
125 |
-
#: (x86)
|
126 |
msgid "Auto fix widget id:"
|
127 |
msgstr "Автоматически исправлять id виджетов:"
|
128 |
|
129 |
-
#: c
|
130 |
-
#: (x86)
|
131 |
msgid "Enable plugin for logged in users only:"
|
132 |
msgstr "Только зарегистрированные пользователи:"
|
133 |
|
134 |
-
#: c
|
135 |
-
#: (x86)
|
136 |
msgid "Enable this option for debug purposes (frontend problems and etc.)"
|
137 |
msgstr "Используйте для отладки стилей, скриптов"
|
138 |
|
139 |
-
#: c
|
140 |
-
#: (x86)
|
141 |
msgid "Inherit widget width from the parent container:"
|
142 |
-
msgstr "Наследовать ширину
|
143 |
|
144 |
-
#: c
|
145 |
-
#: (x86)
|
146 |
msgid "Enable this option for themes with responsive sidebar"
|
147 |
-
msgstr "
|
|
|
148 |
|
149 |
-
#: c
|
150 |
-
#: (x86)
|
151 |
msgid "Use jQuery(window).load() hook:"
|
152 |
msgstr "Вкл. jQuery(window).load():"
|
153 |
|
154 |
-
#: c
|
155 |
-
#: (x86)
|
156 |
-
msgid "
|
|
|
|
|
157 |
msgstr "Задействуйте эту опцию в случае проблем с другими скриптами"
|
158 |
|
159 |
-
#: c
|
160 |
-
#: (x86)
|
161 |
msgid "widget_display_callback hook priority:"
|
162 |
msgstr "Приоритет хука widget_display_callback:"
|
163 |
|
164 |
-
#: c
|
165 |
-
#: (x86)
|
166 |
msgid "RATE THE PLUGIN"
|
167 |
msgstr "ОЦЕНИТЬ ПЛАГИН"
|
168 |
|
169 |
-
#: c
|
170 |
-
#: (x86)
|
171 |
msgid "Support forums:"
|
172 |
msgstr "Форумы поддержки:"
|
173 |
|
174 |
-
#: c
|
175 |
-
#: (x86)
|
176 |
msgid "English (wordpress.org)"
|
177 |
msgstr "Английский (wordpress.org)"
|
178 |
|
179 |
-
#: c
|
180 |
-
#: (x86)
|
181 |
msgid "Russian (www.q2w3.ru)"
|
182 |
msgstr "Русский (www.q2w3.ru)"
|
183 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
184 |
#~ msgid "Screen Max Width:"
|
185 |
#~ msgstr "Ширина окна браузера:"
|
186 |
|
187 |
-
#~ msgid "
|
188 |
-
#~
|
|
|
|
|
|
|
|
|
189 |
|
190 |
#~ msgid "English"
|
191 |
#~ msgstr "Английский (wordpress.org)"
|
@@ -194,20 +245,21 @@ msgstr "Русский (www.q2w3.ru)"
|
|
194 |
#~ msgstr "Русский (www.q2w3.ru)"
|
195 |
|
196 |
#~ msgid ""
|
197 |
-
#~ "Use this option only if you have problems with <a href=\"http://wordpress.
|
198 |
-
#~ "doesnt-work-with-infinte-scroll-for-widget-scripts\"
|
199 |
-
#~ "javascript code</a>"
|
200 |
#~ msgstr ""
|
201 |
-
#~ "Используйте эту опцию только в случае проблем с <a href=\"http://
|
202 |
-
#~ "doesnt-work-with-infinte-scroll-for-widget-
|
|
|
203 |
|
204 |
#~ msgid "Disable plugin on phone devices:"
|
205 |
#~ msgstr "Отключить плагин на мобильных:"
|
206 |
|
207 |
#~ msgid "Option depricated. Use Screen Max Width instead!"
|
208 |
#~ msgstr ""
|
209 |
-
#~ "Опция устарела и будет удалена в следующей версии! Вместо нее используйте
|
210 |
-
#~ "браузера\""
|
211 |
|
212 |
#~ msgid "Disable plugin on tablet devices:"
|
213 |
#~ msgstr "Отключить плагин на планшетах:"
|
1 |
msgid ""
|
2 |
msgstr ""
|
3 |
"Project-Id-Version: Q2W3 Fixed Widget\n"
|
4 |
+
"POT-Creation-Date: 2016-08-14 18:05+0300\n"
|
5 |
+
"PO-Revision-Date: 2016-08-14 18:08+0300\n"
|
6 |
"Last-Translator: \n"
|
7 |
"Language-Team: \n"
|
8 |
"Language: ru_RU\n"
|
9 |
"MIME-Version: 1.0\n"
|
10 |
"Content-Type: text/plain; charset=UTF-8\n"
|
11 |
"Content-Transfer-Encoding: 8bit\n"
|
12 |
+
"X-Generator: Poedit 1.8.8\n"
|
13 |
"X-Poedit-KeywordsList: _;gettext;gettext_noop;__;_e\n"
|
14 |
"X-Poedit-Basepath: .\n"
|
15 |
+
"X-Poedit-SearchPath-0: c:/Program Files (x86)/Zend/Apache2/htdocs/q2w3.ru-"
|
16 |
+
"dev/wp-content/plugins/q2w3-fixed-widget\n"
|
17 |
|
18 |
+
#: c:/Program Files
|
19 |
+
#: (x86)/Zend/Apache2/htdocs/q2w3.ru-dev/wp-content/plugins/q2w3-fixed-widget/q2w3-fixed-widget.php:180
|
20 |
msgid "Fixed widget"
|
21 |
msgstr "Зафиксировать виджет"
|
22 |
|
23 |
+
#: c:/Program Files
|
24 |
+
#: (x86)/Zend/Apache2/htdocs/q2w3.ru-dev/wp-content/plugins/q2w3-fixed-widget/q2w3-fixed-widget.php:222
|
25 |
+
#: (x86)/Zend/Apache2/htdocs/q2w3.ru-dev/wp-content/plugins/q2w3-fixed-widget/q2w3-fixed-widget.php:320
|
26 |
msgid "Fixed Widget Options"
|
27 |
msgstr "Фикс. Виджеты"
|
28 |
|
29 |
+
#: c:/Program Files
|
30 |
+
#: (x86)/Zend/Apache2/htdocs/q2w3.ru-dev/wp-content/plugins/q2w3-fixed-widget/q2w3-fixed-widget.php:308
|
31 |
msgid "General Options"
|
32 |
msgstr "Основные настройки"
|
33 |
|
34 |
+
#: c:/Program Files
|
35 |
+
#: (x86)/Zend/Apache2/htdocs/q2w3.ru-dev/wp-content/plugins/q2w3-fixed-widget/q2w3-fixed-widget.php:310
|
36 |
msgid "Compatibility"
|
37 |
msgstr "Совместимость"
|
38 |
|
39 |
+
#: c:/Program Files
|
40 |
+
#: (x86)/Zend/Apache2/htdocs/q2w3.ru-dev/wp-content/plugins/q2w3-fixed-widget/q2w3-fixed-widget.php:312
|
41 |
msgid "Custom IDs"
|
42 |
msgstr "Произвольные идентификаторы"
|
43 |
|
44 |
+
#: c:/Program Files
|
45 |
+
#: (x86)/Zend/Apache2/htdocs/q2w3.ru-dev/wp-content/plugins/q2w3-fixed-widget/q2w3-fixed-widget.php:314
|
46 |
msgid "Help for users"
|
47 |
msgstr "Помощь пользователям"
|
48 |
|
49 |
+
#: c:/Program Files
|
50 |
+
#: (x86)/Zend/Apache2/htdocs/q2w3.ru-dev/wp-content/plugins/q2w3-fixed-widget/q2w3-fixed-widget.php:316
|
51 |
msgid "Help for developer"
|
52 |
msgstr "Помощь разработчику"
|
53 |
|
54 |
+
#: c:/Program Files
|
55 |
+
#: (x86)/Zend/Apache2/htdocs/q2w3.ru-dev/wp-content/plugins/q2w3-fixed-widget/q2w3-fixed-widget.php:324
|
56 |
msgid "Settings saved."
|
57 |
msgstr "Настройки сохранены."
|
58 |
|
59 |
+
#: c:/Program Files
|
60 |
+
#: (x86)/Zend/Apache2/htdocs/q2w3.ru-dev/wp-content/plugins/q2w3-fixed-widget/q2w3-fixed-widget.php:350
|
61 |
msgid "Save Changes"
|
62 |
msgstr "Сохранить"
|
63 |
|
64 |
+
#: c:/Program Files
|
65 |
+
#: (x86)/Zend/Apache2/htdocs/q2w3.ru-dev/wp-content/plugins/q2w3-fixed-widget/q2w3-fixed-widget.php:364
|
66 |
msgid "Margin Top:"
|
67 |
msgstr "Верхний отступ:"
|
68 |
|
69 |
+
#: c:/Program Files
|
70 |
+
#: (x86)/Zend/Apache2/htdocs/q2w3.ru-dev/wp-content/plugins/q2w3-fixed-widget/q2w3-fixed-widget.php:364
|
71 |
+
#: (x86)/Zend/Apache2/htdocs/q2w3.ru-dev/wp-content/plugins/q2w3-fixed-widget/q2w3-fixed-widget.php:366
|
72 |
+
#: (x86)/Zend/Apache2/htdocs/q2w3.ru-dev/wp-content/plugins/q2w3-fixed-widget/q2w3-fixed-widget.php:372
|
73 |
+
#: (x86)/Zend/Apache2/htdocs/q2w3.ru-dev/wp-content/plugins/q2w3-fixed-widget/q2w3-fixed-widget.php:374
|
74 |
msgid "px"
|
75 |
msgstr "пикс."
|
76 |
|
77 |
+
#: c:/Program Files
|
78 |
+
#: (x86)/Zend/Apache2/htdocs/q2w3.ru-dev/wp-content/plugins/q2w3-fixed-widget/q2w3-fixed-widget.php:366
|
79 |
msgid "Margin Bottom:"
|
80 |
msgstr "Нижний отступ:"
|
81 |
|
82 |
+
#: c:/Program Files
|
83 |
+
#: (x86)/Zend/Apache2/htdocs/q2w3.ru-dev/wp-content/plugins/q2w3-fixed-widget/q2w3-fixed-widget.php:368
|
84 |
msgid "Stop ID:"
|
85 |
msgstr "Стоп ID:"
|
86 |
|
87 |
+
#: c:/Program Files
|
88 |
+
#: (x86)/Zend/Apache2/htdocs/q2w3.ru-dev/wp-content/plugins/q2w3-fixed-widget/q2w3-fixed-widget.php:368
|
89 |
+
msgid ""
|
90 |
+
"Here you need to provide html tag id. The position of that html element will "
|
91 |
+
"determine margin bottom value."
|
92 |
msgstr ""
|
93 |
+
"Здесь необходимо ввести id html-элемента. Позиция этого html-элемента будет "
|
94 |
+
"динамически определять значение нижнего отступа."
|
95 |
|
96 |
+
#: c:/Program Files
|
97 |
+
#: (x86)/Zend/Apache2/htdocs/q2w3.ru-dev/wp-content/plugins/q2w3-fixed-widget/q2w3-fixed-widget.php:370
|
98 |
msgid "Refresh interval:"
|
99 |
msgstr "Интервал обновления:"
|
100 |
|
101 |
+
#: c:/Program Files
|
102 |
+
#: (x86)/Zend/Apache2/htdocs/q2w3.ru-dev/wp-content/plugins/q2w3-fixed-widget/q2w3-fixed-widget.php:370
|
103 |
msgid "milliseconds"
|
104 |
msgstr "миллисекунды"
|
105 |
|
106 |
+
#: c:/Program Files
|
107 |
+
#: (x86)/Zend/Apache2/htdocs/q2w3.ru-dev/wp-content/plugins/q2w3-fixed-widget/q2w3-fixed-widget.php:370
|
108 |
+
msgid ""
|
109 |
+
"Time interval used to recalculate sticky widget parameters. Set 0 to "
|
110 |
+
"completely disable."
|
111 |
+
msgstr ""
|
112 |
+
"Интервал пересчета параметров виджета. Чем меньше интервал, тем больше "
|
113 |
+
"нагрузка на производительность браузера. Не рекомендуется значения меньше "
|
114 |
+
"1000. Установите 0, чтобы отключить пересчет."
|
115 |
|
116 |
+
#: c:/Program Files
|
117 |
+
#: (x86)/Zend/Apache2/htdocs/q2w3.ru-dev/wp-content/plugins/q2w3-fixed-widget/q2w3-fixed-widget.php:372
|
118 |
+
msgid "Disable Width:"
|
119 |
+
msgstr "Ширина отключения:"
|
120 |
|
121 |
+
#: c:/Program Files
|
122 |
+
#: (x86)/Zend/Apache2/htdocs/q2w3.ru-dev/wp-content/plugins/q2w3-fixed-widget/q2w3-fixed-widget.php:372
|
123 |
+
msgid ""
|
124 |
+
"Use this option to disable plugin on portable devices. When the browser "
|
125 |
+
"screen width is less then specified value, the plugin is disabled!"
|
126 |
+
msgstr ""
|
127 |
+
"Используйте эту опцию для отключения плагина на мобильных устройствах. Если "
|
128 |
+
"ширина окна браузера меньше или равна указанной величине, плагин будет "
|
129 |
+
"отключен!"
|
130 |
+
|
131 |
+
#: c:/Program Files
|
132 |
+
#: (x86)/Zend/Apache2/htdocs/q2w3.ru-dev/wp-content/plugins/q2w3-fixed-widget/q2w3-fixed-widget.php:374
|
133 |
+
msgid "Disable Height:"
|
134 |
+
msgstr "Высота отключения:"
|
135 |
+
|
136 |
+
#: c:/Program Files
|
137 |
+
#: (x86)/Zend/Apache2/htdocs/q2w3.ru-dev/wp-content/plugins/q2w3-fixed-widget/q2w3-fixed-widget.php:374
|
138 |
+
msgid "Works the same way as Disable Width option."
|
139 |
+
msgstr "Работает аналогично опции \"Ширина отключения\""
|
140 |
+
|
141 |
+
#: c:/Program Files
|
142 |
+
#: (x86)/Zend/Apache2/htdocs/q2w3.ru-dev/wp-content/plugins/q2w3-fixed-widget/q2w3-fixed-widget.php:380
|
143 |
msgid "Custom HTML IDs (each one on a new line):"
|
144 |
msgstr ""
|
145 |
+
"HTML-идентификаторы статических виджетов и прочих нестандартных элементов "
|
146 |
+
"(каждый на новой строке):"
|
147 |
|
148 |
+
#: c:/Program Files
|
149 |
+
#: (x86)/Zend/Apache2/htdocs/q2w3.ru-dev/wp-content/plugins/q2w3-fixed-widget/q2w3-fixed-widget.php:386
|
150 |
msgid "Auto fix widget id:"
|
151 |
msgstr "Автоматически исправлять id виджетов:"
|
152 |
|
153 |
+
#: c:/Program Files
|
154 |
+
#: (x86)/Zend/Apache2/htdocs/q2w3.ru-dev/wp-content/plugins/q2w3-fixed-widget/q2w3-fixed-widget.php:388
|
155 |
msgid "Enable plugin for logged in users only:"
|
156 |
msgstr "Только зарегистрированные пользователи:"
|
157 |
|
158 |
+
#: c:/Program Files
|
159 |
+
#: (x86)/Zend/Apache2/htdocs/q2w3.ru-dev/wp-content/plugins/q2w3-fixed-widget/q2w3-fixed-widget.php:388
|
160 |
msgid "Enable this option for debug purposes (frontend problems and etc.)"
|
161 |
msgstr "Используйте для отладки стилей, скриптов"
|
162 |
|
163 |
+
#: c:/Program Files
|
164 |
+
#: (x86)/Zend/Apache2/htdocs/q2w3.ru-dev/wp-content/plugins/q2w3-fixed-widget/q2w3-fixed-widget.php:390
|
165 |
msgid "Inherit widget width from the parent container:"
|
166 |
+
msgstr "Наследовать ширину родительского контейнера:"
|
167 |
|
168 |
+
#: c:/Program Files
|
169 |
+
#: (x86)/Zend/Apache2/htdocs/q2w3.ru-dev/wp-content/plugins/q2w3-fixed-widget/q2w3-fixed-widget.php:390
|
170 |
msgid "Enable this option for themes with responsive sidebar"
|
171 |
+
msgstr ""
|
172 |
+
"Задействуйте эту опцию, если ширина сайдбара вашей темы меняется динамически"
|
173 |
|
174 |
+
#: c:/Program Files
|
175 |
+
#: (x86)/Zend/Apache2/htdocs/q2w3.ru-dev/wp-content/plugins/q2w3-fixed-widget/q2w3-fixed-widget.php:392
|
176 |
msgid "Use jQuery(window).load() hook:"
|
177 |
msgstr "Вкл. jQuery(window).load():"
|
178 |
|
179 |
+
#: c:/Program Files
|
180 |
+
#: (x86)/Zend/Apache2/htdocs/q2w3.ru-dev/wp-content/plugins/q2w3-fixed-widget/q2w3-fixed-widget.php:392
|
181 |
+
msgid ""
|
182 |
+
"Enable this option only if you have problems with other scroll oriented "
|
183 |
+
"javascript code"
|
184 |
msgstr "Задействуйте эту опцию в случае проблем с другими скриптами"
|
185 |
|
186 |
+
#: c:/Program Files
|
187 |
+
#: (x86)/Zend/Apache2/htdocs/q2w3.ru-dev/wp-content/plugins/q2w3-fixed-widget/q2w3-fixed-widget.php:394
|
188 |
msgid "widget_display_callback hook priority:"
|
189 |
msgstr "Приоритет хука widget_display_callback:"
|
190 |
|
191 |
+
#: c:/Program Files
|
192 |
+
#: (x86)/Zend/Apache2/htdocs/q2w3.ru-dev/wp-content/plugins/q2w3-fixed-widget/q2w3-fixed-widget.php:400
|
193 |
msgid "RATE THE PLUGIN"
|
194 |
msgstr "ОЦЕНИТЬ ПЛАГИН"
|
195 |
|
196 |
+
#: c:/Program Files
|
197 |
+
#: (x86)/Zend/Apache2/htdocs/q2w3.ru-dev/wp-content/plugins/q2w3-fixed-widget/q2w3-fixed-widget.php:408
|
198 |
msgid "Support forums:"
|
199 |
msgstr "Форумы поддержки:"
|
200 |
|
201 |
+
#: c:/Program Files
|
202 |
+
#: (x86)/Zend/Apache2/htdocs/q2w3.ru-dev/wp-content/plugins/q2w3-fixed-widget/q2w3-fixed-widget.php:410
|
203 |
msgid "English (wordpress.org)"
|
204 |
msgstr "Английский (wordpress.org)"
|
205 |
|
206 |
+
#: c:/Program Files
|
207 |
+
#: (x86)/Zend/Apache2/htdocs/q2w3.ru-dev/wp-content/plugins/q2w3-fixed-widget/q2w3-fixed-widget.php:412
|
208 |
msgid "Russian (www.q2w3.ru)"
|
209 |
msgstr "Русский (www.q2w3.ru)"
|
210 |
|
211 |
+
#~ msgid "Set 0 to disable."
|
212 |
+
#~ msgstr "Установите 0, чтобы отключить пересчет параметров."
|
213 |
+
|
214 |
+
#~ msgid "Disable screen width:"
|
215 |
+
#~ msgstr "Ширина отключения:"
|
216 |
+
|
217 |
+
#~ msgid ""
|
218 |
+
#~ "HTML ID where the widget should stop floating, for example a footer. # - "
|
219 |
+
#~ "not needed"
|
220 |
+
#~ msgstr ""
|
221 |
+
#~ "Здесь необходимо указать значение атрибута id html-элемента на уровне "
|
222 |
+
#~ "которого необходимо остановить виджет. ID указывается без знака #! "
|
223 |
+
|
224 |
+
#~ msgid "Disable plugin if screen width less then:"
|
225 |
+
#~ msgstr "Отключить плагин, если размер окна меньше чем:"
|
226 |
+
|
227 |
+
#~ msgid "Use this option to disable plugin on portable devices"
|
228 |
+
#~ msgstr ""
|
229 |
+
#~ "Используйте эту опцию для отключения плагина на мобильных устройствах"
|
230 |
+
|
231 |
#~ msgid "Screen Max Width:"
|
232 |
#~ msgstr "Ширина окна браузера:"
|
233 |
|
234 |
+
#~ msgid ""
|
235 |
+
#~ "Plugin will be disabled when browser window width equals or less then "
|
236 |
+
#~ "specified value"
|
237 |
+
#~ msgstr ""
|
238 |
+
#~ "Плагин будет отключен, если ширина окна браузера меньше указанного "
|
239 |
+
#~ "значения"
|
240 |
|
241 |
#~ msgid "English"
|
242 |
#~ msgstr "Английский (wordpress.org)"
|
245 |
#~ msgstr "Русский (www.q2w3.ru)"
|
246 |
|
247 |
#~ msgid ""
|
248 |
+
#~ "Use this option only if you have problems with <a href=\"http://wordpress."
|
249 |
+
#~ "org/support/topic/doesnt-work-with-infinte-scroll-for-widget-scripts\" "
|
250 |
+
#~ "target=\"_blank\">other scroll oriented javascript code</a>"
|
251 |
#~ msgstr ""
|
252 |
+
#~ "Используйте эту опцию только в случае проблем с <a href=\"http://"
|
253 |
+
#~ "wordpress.org/support/topic/doesnt-work-with-infinte-scroll-for-widget-"
|
254 |
+
#~ "scripts\" target=\"_blank\">другими скриптами</a>"
|
255 |
|
256 |
#~ msgid "Disable plugin on phone devices:"
|
257 |
#~ msgstr "Отключить плагин на мобильных:"
|
258 |
|
259 |
#~ msgid "Option depricated. Use Screen Max Width instead!"
|
260 |
#~ msgstr ""
|
261 |
+
#~ "Опция устарела и будет удалена в следующей версии! Вместо нее используйте "
|
262 |
+
#~ "опцию \"Ширина окна браузера\""
|
263 |
|
264 |
#~ msgid "Disable plugin on tablet devices:"
|
265 |
#~ msgstr "Отключить плагин на планшетах:"
|
q2w3-fixed-widget.php
CHANGED
@@ -5,7 +5,7 @@ Plugin URI: http://www.q2w3.ru/q2w3-fixed-widget-wordpress-plugin/
|
|
5 |
Description: Fixes positioning of the selected widgets, when the page is scrolled down.
|
6 |
Text Domain: q2w3-fixed-widget
|
7 |
Author: Max Bond
|
8 |
-
Version:
|
9 |
Author URI: http://www.q2w3.ru/
|
10 |
*/
|
11 |
|
@@ -17,14 +17,13 @@ class q2w3_fixed_widget { // Plugin class
|
|
17 |
|
18 |
const ID = 'q2w3_fixed_widget';
|
19 |
|
20 |
-
const VERSION = '
|
21 |
|
22 |
protected static $sidebars_widgets;
|
23 |
|
24 |
protected static $fixed_widgets;
|
25 |
|
26 |
protected static $settings_page_hook;
|
27 |
-
|
28 |
|
29 |
|
30 |
public static function init() {
|
@@ -36,16 +35,16 @@ class q2w3_fixed_widget { // Plugin class
|
|
36 |
if ( is_admin() ) {
|
37 |
|
38 |
self::load_language();
|
39 |
-
|
40 |
add_action('in_widget_form', array( __CLASS__, 'add_widget_option' ), 10, 3);
|
41 |
|
42 |
add_filter('widget_update_callback', array( __CLASS__, 'update_widget_option' ), 10, 3);
|
43 |
|
44 |
add_action('admin_init', array( __CLASS__, 'register_settings' ));
|
45 |
|
46 |
-
add_action('admin_menu', array( __CLASS__, 'admin_menu' ));
|
47 |
|
48 |
-
add_action(
|
49 |
|
50 |
} else {
|
51 |
|
@@ -55,13 +54,21 @@ class q2w3_fixed_widget { // Plugin class
|
|
55 |
|
56 |
add_action('wp_loaded', array( __CLASS__, 'custom_ids' ));
|
57 |
|
58 |
-
add_action('wp_footer', array( __CLASS__, '
|
59 |
|
60 |
-
|
61 |
|
62 |
}
|
63 |
|
64 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
65 |
|
66 |
public static function is_widget_fixed($instance, $widget, $args){
|
67 |
|
@@ -121,50 +128,36 @@ class q2w3_fixed_widget { // Plugin class
|
|
121 |
|
122 |
}
|
123 |
|
124 |
-
public static function
|
125 |
|
126 |
$options = self::load_options();
|
127 |
|
128 |
if ( is_array(self::$fixed_widgets) && !empty(self::$fixed_widgets) ) {
|
129 |
|
130 |
-
echo '<script type="text/javascript">'
|
131 |
|
132 |
-
|
133 |
-
|
134 |
-
echo 'jQuery(window).load(function(){'.PHP_EOL;
|
135 |
-
|
136 |
-
} else {
|
137 |
|
138 |
-
|
139 |
-
|
140 |
-
}
|
141 |
|
|
|
|
|
|
|
|
|
142 |
$i = 0;
|
143 |
|
144 |
foreach ( self::$fixed_widgets as $sidebar => $widgets ) {
|
145 |
|
146 |
-
$i++;
|
147 |
-
|
148 |
-
if ( isset($options['width-inherit']) && $options['width-inherit'] ) $width_inherit = 'true'; else $width_inherit = 'false';
|
149 |
-
|
150 |
$widgets_array = implode(',', $widgets);
|
151 |
|
152 |
-
echo '
|
153 |
|
154 |
-
|
155 |
-
|
156 |
-
if ( $options['refresh-interval'] > 0 ) {
|
157 |
-
|
158 |
-
echo ' setInterval(function () { q2w3_sidebar(q2w3_sidebar_'. $i .'_options); }, '. $options['refresh-interval'] .');'.PHP_EOL;
|
159 |
-
|
160 |
-
}
|
161 |
|
162 |
}
|
163 |
-
|
164 |
-
echo '});'.PHP_EOL;
|
165 |
|
166 |
echo '</script>'.PHP_EOL;
|
167 |
-
|
168 |
}
|
169 |
|
170 |
}
|
@@ -203,23 +196,15 @@ class q2w3_fixed_widget { // Plugin class
|
|
203 |
|
204 |
$languages_path = plugin_basename( dirname(__FILE__).'/lang' );
|
205 |
|
206 |
-
load_plugin_textdomain( 'q2w3-fixed-widget',
|
207 |
-
|
208 |
-
/*$currentLocale = get_locale();
|
209 |
-
|
210 |
-
if (!empty($currentLocale)) {
|
211 |
-
|
212 |
-
$moFile = dirname(__FILE__).'/lang/'.$currentLocale.".mo";
|
213 |
-
|
214 |
-
if (@file_exists($moFile) && is_readable($moFile)) load_textdomain('q2w3-fixed-widget', $moFile);
|
215 |
-
|
216 |
-
}*/
|
217 |
|
218 |
}
|
219 |
|
220 |
public static function admin_menu() {
|
221 |
|
222 |
-
|
|
|
|
|
223 |
|
224 |
}
|
225 |
|
@@ -229,10 +214,14 @@ class q2w3_fixed_widget { // Plugin class
|
|
229 |
|
230 |
$d['margin-bottom'] = 0;
|
231 |
|
|
|
|
|
232 |
$d['refresh-interval'] = 1500;
|
233 |
|
234 |
$d['screen-max-width'] = 0;
|
235 |
|
|
|
|
|
236 |
$d['fix-widget-id'] = 'yes';
|
237 |
|
238 |
$d['window-load-enabled'] = false;
|
@@ -243,17 +232,17 @@ class q2w3_fixed_widget { // Plugin class
|
|
243 |
|
244 |
$d['widget_display_callback_priority'] = 30;
|
245 |
|
246 |
-
$d['stop-id'] = '';
|
247 |
-
|
248 |
return $d;
|
249 |
|
250 |
}
|
251 |
|
252 |
protected static function load_options() {
|
253 |
|
254 |
-
$options = get_option(self::ID);
|
|
|
|
|
255 |
|
256 |
-
return array_merge(self::defaults(), (array)$options);
|
257 |
|
258 |
}
|
259 |
|
@@ -273,6 +262,8 @@ class q2w3_fixed_widget { // Plugin class
|
|
273 |
|
274 |
$input['screen-max-width'] = (int)$input['screen-max-width'];
|
275 |
|
|
|
|
|
276 |
$input['custom-ids'] = trim(wp_strip_all_tags($input['custom-ids']));
|
277 |
|
278 |
$input['stop-id'] = trim(wp_strip_all_tags($input['stop-id']));
|
@@ -308,9 +299,9 @@ class q2w3_fixed_widget { // Plugin class
|
|
308 |
add_meta_box(self::ID.'-custom-ids', __('Custom IDs', 'q2w3-fixed-widget'), array( __CLASS__, 'settings_page_custom_ids_box' ), $screen, 'normal');
|
309 |
|
310 |
add_meta_box(self::ID.'-help', __('Help for users', 'q2w3-fixed-widget'), array( __CLASS__, 'settings_page_help_box' ), $screen, 'side');
|
311 |
-
|
312 |
add_meta_box(self::ID.'-donate', __('Help for developer', 'q2w3-fixed-widget'), array( __CLASS__, 'settings_page_donate_box' ), $screen, 'side');
|
313 |
-
|
314 |
$options = self::load_options();
|
315 |
|
316 |
echo '<div class="wrap"><div id="icon-themes" class="icon32"><br /></div><h2>'. __('Fixed Widget Options', 'q2w3-fixed-widget') .'</h2>'.PHP_EOL;
|
@@ -361,12 +352,14 @@ class q2w3_fixed_widget { // Plugin class
|
|
361 |
|
362 |
echo '<p><span style="display: inline-block; width: 150px;">'. __('Margin Bottom:', 'q2w3-fixed-widget') .'</span><input type="text" name="'. self::ID .'[margin-bottom]" value="'. $options['margin-bottom'] .'" style="width: 50px; text-align: center;" /> '. __('px', 'q2w3-fixed-widget') .'</p>'.PHP_EOL;
|
363 |
|
364 |
-
echo '<p><span style="display: inline-block; width: 150px;">'. __('Stop ID:', 'q2w3-fixed-widget') .'</span><input type="text" name="'. self::ID .'[stop-id]" value="'. $options['stop-id'] .'" style="width: 150px;"> '. __('
|
365 |
|
366 |
-
echo '<p><span style="display: inline-block; width: 150px;">'. __('Refresh interval:', 'q2w3-fixed-widget') .'</span><input type="text" name="'. self::ID .'[refresh-interval]" value="'. $options['refresh-interval'] .'" style="width: 50px; text-align: center;" /> '. __('milliseconds', 'q2w3-fixed-widget') .' / '. __('Set 0 to disable.', 'q2w3-fixed-widget') .'</p>'.PHP_EOL;
|
|
|
|
|
|
|
|
|
367 |
|
368 |
-
echo '<p><span style="display: inline-block; width: 150px;">'. __('Disable plugin if screen width less then:', 'q2w3-fixed-widget') .'</span><input type="text" name="'. self::ID .'[screen-max-width]" value="'. $options['screen-max-width'] .'" style="width: 50px; text-align: center;" /> '. __('px', 'q2w3-fixed-widget') .' / '. __('Use this option to disable plugin on portable devices', 'q2w3-fixed-widget') .'</p>'.PHP_EOL;
|
369 |
-
|
370 |
}
|
371 |
|
372 |
public static function settings_page_custom_ids_box($options) {
|
@@ -389,14 +382,6 @@ class q2w3_fixed_widget { // Plugin class
|
|
389 |
|
390 |
}
|
391 |
|
392 |
-
public static function settings_page_donate_box($options) {
|
393 |
-
|
394 |
-
echo '<p style="text-align: center"><a href="http://wordpress.org/support/view/plugin-reviews/q2w3-fixed-widget/" target="_blank">'. __('RATE THE PLUGIN', 'q2w3-fixed-widget') .'</a></p>';
|
395 |
-
|
396 |
-
echo '<p style="text-align: center"><a href="https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=Q36H2MHNVVP7U" target="_blank"><img src="https://www.paypalobjects.com/en_US/i/btn/btn_donateCC_LG.gif" border="0" alt="PayPal - The safer, easier way to pay online!" /></a></p>'.PHP_EOL;
|
397 |
-
|
398 |
-
}
|
399 |
-
|
400 |
public static function settings_page_help_box($options) {
|
401 |
|
402 |
echo '<p>'. __('Support forums:', 'q2w3-fixed-widget') .'</p>';
|
@@ -407,6 +392,14 @@ class q2w3_fixed_widget { // Plugin class
|
|
407 |
|
408 |
}
|
409 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
410 |
public static function registered_sidebars_filter() {
|
411 |
|
412 |
global $wp_registered_sidebars;
|
@@ -473,4 +466,4 @@ class q2w3_fixed_widget { // Plugin class
|
|
473 |
|
474 |
} // registered_sidebars_filter()
|
475 |
|
476 |
-
} //
|
5 |
Description: Fixes positioning of the selected widgets, when the page is scrolled down.
|
6 |
Text Domain: q2w3-fixed-widget
|
7 |
Author: Max Bond
|
8 |
+
Version: 5.0
|
9 |
Author URI: http://www.q2w3.ru/
|
10 |
*/
|
11 |
|
17 |
|
18 |
const ID = 'q2w3_fixed_widget';
|
19 |
|
20 |
+
const VERSION = '5.0';
|
21 |
|
22 |
protected static $sidebars_widgets;
|
23 |
|
24 |
protected static $fixed_widgets;
|
25 |
|
26 |
protected static $settings_page_hook;
|
|
|
27 |
|
28 |
|
29 |
public static function init() {
|
35 |
if ( is_admin() ) {
|
36 |
|
37 |
self::load_language();
|
38 |
+
|
39 |
add_action('in_widget_form', array( __CLASS__, 'add_widget_option' ), 10, 3);
|
40 |
|
41 |
add_filter('widget_update_callback', array( __CLASS__, 'update_widget_option' ), 10, 3);
|
42 |
|
43 |
add_action('admin_init', array( __CLASS__, 'register_settings' ));
|
44 |
|
45 |
+
add_action('admin_menu', array( __CLASS__, 'admin_menu' ), 5);
|
46 |
|
47 |
+
add_action('admin_enqueue_scripts', array( __CLASS__, 'settings_page_js' ));
|
48 |
|
49 |
} else {
|
50 |
|
54 |
|
55 |
add_action('wp_loaded', array( __CLASS__, 'custom_ids' ));
|
56 |
|
57 |
+
add_action('wp_footer', array( __CLASS__, 'js_settings' ), 1);
|
58 |
|
59 |
+
add_action('wp_enqueue_scripts', array( __CLASS__, 'enqueue_scripts' ));
|
60 |
|
61 |
}
|
62 |
|
63 |
}
|
64 |
+
|
65 |
+
public static function enqueue_scripts() {
|
66 |
+
|
67 |
+
wp_enqueue_script('jquery');
|
68 |
+
|
69 |
+
wp_enqueue_script(self::ID, plugin_dir_url( __FILE__ ) . 'js/q2w3-fixed-widget.min.js', array('jquery'), self::VERSION, true);
|
70 |
+
|
71 |
+
}
|
72 |
|
73 |
public static function is_widget_fixed($instance, $widget, $args){
|
74 |
|
128 |
|
129 |
}
|
130 |
|
131 |
+
public static function js_settings() {
|
132 |
|
133 |
$options = self::load_options();
|
134 |
|
135 |
if ( is_array(self::$fixed_widgets) && !empty(self::$fixed_widgets) ) {
|
136 |
|
137 |
+
echo '<script type="text/javascript">';
|
138 |
|
139 |
+
echo 'var q2w3_sidebar_options = new Array(); ';
|
|
|
|
|
|
|
|
|
140 |
|
141 |
+
if ( isset($options['window-load-enabled']) && $options['window-load-enabled'] == 'yes' ) $window_load_hook = 'true'; else $window_load_hook = 'false';
|
|
|
|
|
142 |
|
143 |
+
if ( isset($options['width-inherit']) && $options['width-inherit'] ) $width_inherit = 'true'; else $width_inherit = 'false';
|
144 |
+
|
145 |
+
if ( $options['refresh-interval'] > 0 ) $refresh_interval = $options['refresh-interval']; else $refresh_interval = 0;
|
146 |
+
|
147 |
$i = 0;
|
148 |
|
149 |
foreach ( self::$fixed_widgets as $sidebar => $widgets ) {
|
150 |
|
|
|
|
|
|
|
|
|
151 |
$widgets_array = implode(',', $widgets);
|
152 |
|
153 |
+
echo 'q2w3_sidebar_options['. $i .'] = { "sidebar" : "'. $sidebar .'", "margin_top" : '. $options['margin-top'] .', "margin_bottom" : '. $options['margin-bottom'] .', "stop_id" : "' . $options['stop-id'] .'", "screen_max_width" : '. $options['screen-max-width'] .', "screen_max_height" : '. $options['screen-max-height'] .', "width_inherit" : '. $width_inherit .', "refresh_interval" : '. $refresh_interval .', "window_load_hook" : '. $window_load_hook .', "widgets" : ['. $widgets_array .'] };'.PHP_EOL;
|
154 |
|
155 |
+
$i++;
|
|
|
|
|
|
|
|
|
|
|
|
|
156 |
|
157 |
}
|
|
|
|
|
158 |
|
159 |
echo '</script>'.PHP_EOL;
|
160 |
+
|
161 |
}
|
162 |
|
163 |
}
|
196 |
|
197 |
$languages_path = plugin_basename( dirname(__FILE__).'/lang' );
|
198 |
|
199 |
+
load_plugin_textdomain( 'q2w3-fixed-widget', false, $languages_path );
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
200 |
|
201 |
}
|
202 |
|
203 |
public static function admin_menu() {
|
204 |
|
205 |
+
remove_action('admin_menu', array( 'q2w3_fixed_widget', 'admin_menu' )); // Remove free version plugin
|
206 |
+
|
207 |
+
self::$settings_page_hook = add_submenu_page( 'themes.php', __('Fixed Widget Options', 'q2w3-fixed-widget'), __('Fixed Widget Options', 'q2w3-fixed-widget'), 'activate_plugins', self::ID, array( __CLASS__, 'settings_page' ) );
|
208 |
|
209 |
}
|
210 |
|
214 |
|
215 |
$d['margin-bottom'] = 0;
|
216 |
|
217 |
+
$d['stop-id'] = '';
|
218 |
+
|
219 |
$d['refresh-interval'] = 1500;
|
220 |
|
221 |
$d['screen-max-width'] = 0;
|
222 |
|
223 |
+
$d['screen-max-height'] = 0;
|
224 |
+
|
225 |
$d['fix-widget-id'] = 'yes';
|
226 |
|
227 |
$d['window-load-enabled'] = false;
|
232 |
|
233 |
$d['widget_display_callback_priority'] = 30;
|
234 |
|
|
|
|
|
235 |
return $d;
|
236 |
|
237 |
}
|
238 |
|
239 |
protected static function load_options() {
|
240 |
|
241 |
+
$options = get_option(self::ID);
|
242 |
+
|
243 |
+
$options_old = get_option('q2w3_fixed_widget');
|
244 |
|
245 |
+
return array_merge(self::defaults(), (array)$options_old, (array)$options);
|
246 |
|
247 |
}
|
248 |
|
262 |
|
263 |
$input['screen-max-width'] = (int)$input['screen-max-width'];
|
264 |
|
265 |
+
$input['screen-max-height'] = (int)$input['screen-max-height'];
|
266 |
+
|
267 |
$input['custom-ids'] = trim(wp_strip_all_tags($input['custom-ids']));
|
268 |
|
269 |
$input['stop-id'] = trim(wp_strip_all_tags($input['stop-id']));
|
299 |
add_meta_box(self::ID.'-custom-ids', __('Custom IDs', 'q2w3-fixed-widget'), array( __CLASS__, 'settings_page_custom_ids_box' ), $screen, 'normal');
|
300 |
|
301 |
add_meta_box(self::ID.'-help', __('Help for users', 'q2w3-fixed-widget'), array( __CLASS__, 'settings_page_help_box' ), $screen, 'side');
|
302 |
+
|
303 |
add_meta_box(self::ID.'-donate', __('Help for developer', 'q2w3-fixed-widget'), array( __CLASS__, 'settings_page_donate_box' ), $screen, 'side');
|
304 |
+
|
305 |
$options = self::load_options();
|
306 |
|
307 |
echo '<div class="wrap"><div id="icon-themes" class="icon32"><br /></div><h2>'. __('Fixed Widget Options', 'q2w3-fixed-widget') .'</h2>'.PHP_EOL;
|
352 |
|
353 |
echo '<p><span style="display: inline-block; width: 150px;">'. __('Margin Bottom:', 'q2w3-fixed-widget') .'</span><input type="text" name="'. self::ID .'[margin-bottom]" value="'. $options['margin-bottom'] .'" style="width: 50px; text-align: center;" /> '. __('px', 'q2w3-fixed-widget') .'</p>'.PHP_EOL;
|
354 |
|
355 |
+
echo '<p><span style="display: inline-block; width: 150px;">'. __('Stop ID:', 'q2w3-fixed-widget') .'</span><input type="text" name="'. self::ID .'[stop-id]" value="'. $options['stop-id'] .'" style="width: 150px;"> '. __('Here you need to provide html tag id. The position of that html element will determine margin bottom value.', 'q2w3-fixed-widget') .'</p>'.PHP_EOL;
|
356 |
|
357 |
+
echo '<p><span style="display: inline-block; width: 150px;">'. __('Refresh interval:', 'q2w3-fixed-widget') .'</span><input type="text" name="'. self::ID .'[refresh-interval]" value="'. $options['refresh-interval'] .'" style="width: 50px; text-align: center;" /> '. __('milliseconds', 'q2w3-fixed-widget') .' / '. __('Used only for compatibility with browsers without MutationObserver API support! Set 0 to completely disable.', 'q2w3-fixed-widget') .'</p>'.PHP_EOL;
|
358 |
+
|
359 |
+
echo '<p><span style="display: inline-block; width: 150px;">'. __('Disable Width:', 'q2w3-fixed-widget') .'</span><input type="text" name="'. self::ID .'[screen-max-width]" value="'. $options['screen-max-width'] .'" style="width: 50px; text-align: center;" /> '. __('px', 'q2w3-fixed-widget') .' / '. __('Use this option to disable plugin on portable devices. When the browser screen width is less then specified value, the plugin is disabled!', 'q2w3-fixed-widget') .'</p>'.PHP_EOL;
|
360 |
+
|
361 |
+
echo '<p><span style="display: inline-block; width: 150px;">'. __('Disable Height:', 'q2w3-fixed-widget') .'</span><input type="text" name="'. self::ID .'[screen-max-height]" value="'. $options['screen-max-height'] .'" style="width: 50px; text-align: center;" /> '. __('px', 'q2w3-fixed-widget') .' / '. __('Works the same way as Disable Width option.', 'q2w3-fixed-widget') .'</p>'.PHP_EOL;
|
362 |
|
|
|
|
|
363 |
}
|
364 |
|
365 |
public static function settings_page_custom_ids_box($options) {
|
382 |
|
383 |
}
|
384 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
385 |
public static function settings_page_help_box($options) {
|
386 |
|
387 |
echo '<p>'. __('Support forums:', 'q2w3-fixed-widget') .'</p>';
|
392 |
|
393 |
}
|
394 |
|
395 |
+
public static function settings_page_donate_box($options) {
|
396 |
+
|
397 |
+
echo '<p style="text-align: center"><a href="http://wordpress.org/support/view/plugin-reviews/q2w3-fixed-widget/" target="_blank">'. __('RATE THE PLUGIN', 'q2w3-fixed-widget') .'</a></p>';
|
398 |
+
|
399 |
+
echo '<p style="text-align: center"><a href="https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=Q36H2MHNVVP7U" target="_blank"><img src="https://www.paypalobjects.com/en_US/i/btn/btn_donateCC_LG.gif" border="0" alt="PayPal - The safer, easier way to pay online!" /></a></p>'.PHP_EOL;
|
400 |
+
|
401 |
+
}
|
402 |
+
|
403 |
public static function registered_sidebars_filter() {
|
404 |
|
405 |
global $wp_registered_sidebars;
|
466 |
|
467 |
} // registered_sidebars_filter()
|
468 |
|
469 |
+
} // q2w3_fixed_widget_pro class
|
readme.txt
CHANGED
@@ -1,25 +1,30 @@
|
|
1 |
-
=== Q2W3 Fixed Widget
|
2 |
Contributors: Max Bond
|
3 |
-
|
4 |
-
Tags: sidebar, widget, scroll, scrolling, fixed, floating, sticky, russian, q2w3
|
5 |
Requires at least: 4.0
|
6 |
-
Tested up to: 4.
|
7 |
-
Stable tag:
|
8 |
|
9 |
Fixes positioning of the selected widgets, when the page is scrolled down.
|
10 |
|
11 |
== Description ==
|
12 |
|
13 |
-
Enable "Fixed widget" option in the widget settings
|
14 |
-
and it will be always in sight when page is scrolled down or up. There is no problem to "Fix" or "Stick" more than one widget even located in different sidebars!
|
15 |
|
16 |
-
[
|
17 |
|
18 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
19 |
|
20 |
* jQuery 1.7 required. jQuery 1.8.3 (or later) is recommended.
|
21 |
* No JavaScript errors, coused by other plugins and scripts.
|
22 |
* `wp_head()` and `wp_footer()` functions in header.php and footer.php files.
|
|
|
23 |
|
24 |
In some cases (widget "jumping" during scroll and etc.) theme CSS changes may be required.
|
25 |
|
@@ -35,8 +40,9 @@ Supported languages:
|
|
35 |
|
36 |
1. Follow standard WordPress plugin installation procedure
|
37 |
2. Activate the plugin through the Plugins menu in WordPress
|
38 |
-
3. Go to Appearance -> Widgets, enable "Fixed Widget" option on any active widget
|
39 |
-
4. Fine tune
|
|
|
40 |
|
41 |
== Frequently Asked Questions ==
|
42 |
|
@@ -56,39 +62,30 @@ Check your CSS files for these two instructions:
|
|
56 |
-webkit-transform: translate3d(0,0,0);`
|
57 |
If found, disable them and see the result.
|
58 |
|
59 |
-
= I have a responsive theme. How can I make the plugin compatible with it? =
|
60 |
-
|
61 |
-
There are several options to accomplish this task.
|
62 |
-
First, is to enable "Screen Max Width" option.
|
63 |
-
For example you have a responsive styles: `@media screen and (max-width: 940px) {...}`. Set "Screen Max Width" = 940 - to disable plugin in responsive mode.
|
64 |
-
Second, use "Inherit widget width from the parent container" option.
|
65 |
-
|
66 |
= How to prevent overlapping with the footer? =
|
67 |
|
68 |
-
|
69 |
-
|
70 |
-
= Refresh Interval option =
|
71 |
-
|
72 |
-
This option defines (in milliseconds, 1 sec = 1000 ms) how often plugin recalculates sticky widgets parameters. Required by sites with dynamic content (infinite scroll, image lazy load and other javascript stuff). The option have impact on the site performance (client side). Recommended values: 250 - 1500 milliseconds. If you don't have dynamic content, set Refresh interval = 0.
|
73 |
|
74 |
-
=
|
|
|
75 |
|
76 |
-
Send me email from this page: [http://www.q2w3.ru/contacts/](http://www.q2w3.ru/contacts/)
|
77 |
-
|
78 |
-
== Screenshots ==
|
79 |
-
|
80 |
-
1. Widget with enabled "Fixed widget" option
|
81 |
-
2. Fixed Widget Options
|
82 |
-
3. Margin top
|
83 |
-
4. Margin bottom
|
84 |
|
85 |
== Other Notes ==
|
86 |
|
|
|
|
|
87 |
* [Code Insert Manager](http://wordpress.org/extend/plugins/q2w3-inc-manager/)
|
88 |
-
|
89 |
|
90 |
== Changelog ==
|
91 |
|
|
|
|
|
|
|
|
|
|
|
|
|
92 |
= 4.1 =
|
93 |
* Added `Stop ID` option. Use it when you cannot specify `Margin Bottom` value. Solution provided by [Julian_Kingman](https://wordpress.org/support/profile/julian_kingman)!
|
94 |
* Now the plugin is aware of the Wordpress admin bar presence!
|
1 |
+
=== Q2W3 Fixed Widget Pro ===
|
2 |
Contributors: Max Bond
|
3 |
+
Tags: sidebar, widget, scroll, scrolling, fixed, fixed widget, floating, floating widget, sticky, sticky widget, russian, q2w3
|
|
|
4 |
Requires at least: 4.0
|
5 |
+
Tested up to: 4.6
|
6 |
+
Stable tag: 5.0
|
7 |
|
8 |
Fixes positioning of the selected widgets, when the page is scrolled down.
|
9 |
|
10 |
== Description ==
|
11 |
|
12 |
+
Enable "Fixed widget" option in the widget settings and it will be always in sight when page is scrolled down or up. There is no problem to "fix" or "stick" more than one widget even located in different sidebars!
|
|
|
13 |
|
14 |
+
[Live demo!](http://q2w3.ru/fixed-widget-demo/)
|
15 |
|
16 |
+
New in version 5.0:
|
17 |
+
1. Optimized client side performance. Detection of page changes is now based on MutationObserver API. Widget parameters recount is fired only when needed! Refresh interval option used only for campatibility with old browsers (no MutationObserver API support).
|
18 |
+
2. Improved compatibility with caching plugins (W3TC, Autoptimize and etc.). No need to exclude jQuery and plugin files from cache!
|
19 |
+
3. Async/Defer script load method support
|
20 |
+
4. Added `Disable Width` option
|
21 |
+
|
22 |
+
Compatibility note. The plugin is not working with all themes! Theme requirements:
|
23 |
|
24 |
* jQuery 1.7 required. jQuery 1.8.3 (or later) is recommended.
|
25 |
* No JavaScript errors, coused by other plugins and scripts.
|
26 |
* `wp_head()` and `wp_footer()` functions in header.php and footer.php files.
|
27 |
+
* Widgets must have an id attribute.
|
28 |
|
29 |
In some cases (widget "jumping" during scroll and etc.) theme CSS changes may be required.
|
30 |
|
40 |
|
41 |
1. Follow standard WordPress plugin installation procedure
|
42 |
2. Activate the plugin through the Plugins menu in WordPress
|
43 |
+
3. Go to Appearance -> Widgets, enable "Fixed Widget" option on any active widget
|
44 |
+
4. Fine tune plugin parameters on Appearance -> Fixed Widget Options page
|
45 |
+
|
46 |
|
47 |
== Frequently Asked Questions ==
|
48 |
|
62 |
-webkit-transform: translate3d(0,0,0);`
|
63 |
If found, disable them and see the result.
|
64 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
65 |
= How to prevent overlapping with the footer? =
|
66 |
|
67 |
+
Go to WP admin area, Appearance -> Fixed Widget Options. Here you can define top and bottom margins. Set bottom margin value >= footer height. Check the result.
|
68 |
+
If your footer height is changing from page to page it is better to use `Stop ID` option. Here you need to provide html tag id. The position of that html element will determine margin bottom value. For example let's take Twenty Sixteen default theme. Theme's footer container has an id="colophon". In the `Stop ID` option I need to enter just colophon, without any other symbols!
|
|
|
|
|
|
|
69 |
|
70 |
+
= How to disable the plugin on mobile devices? =
|
71 |
+
There are two options: `Disable Width` and `Disable Height`. They works the same way. If browser window width/height is less then or equals specified value - the plugin is disabled.
|
72 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
73 |
|
74 |
== Other Notes ==
|
75 |
|
76 |
+
Other Q2W3 plugins:
|
77 |
+
|
78 |
* [Code Insert Manager](http://wordpress.org/extend/plugins/q2w3-inc-manager/)
|
79 |
+
|
80 |
|
81 |
== Changelog ==
|
82 |
|
83 |
+
= 5.0 =
|
84 |
+
* Optimized client side performance. Detection of page changes is now based on MutationObserver API. Widget parameters recount is fired only when needed! Refresh interval option used only for campatibility with old browsers (no MutationObserver API support).
|
85 |
+
* Improved compatibility with caching plugins (W3TC, Autoptimize and etc.). No need to exclude jQuery and plugin files from cache!
|
86 |
+
* Async/Defer script load method support
|
87 |
+
* Added `Disable Width` option
|
88 |
+
|
89 |
= 4.1 =
|
90 |
* Added `Stop ID` option. Use it when you cannot specify `Margin Bottom` value. Solution provided by [Julian_Kingman](https://wordpress.org/support/profile/julian_kingman)!
|
91 |
* Now the plugin is aware of the Wordpress admin bar presence!
|
screenshot-1.jpg
DELETED
Binary file
|
screenshot-2.jpg
DELETED
Binary file
|
screenshot-3.jpg
DELETED
Binary file
|
screenshot-4.jpg
DELETED
Binary file
|