Disable admin notices individually - Version 1.0.6

Version Description

  • Fixed: compatibility with some plugins and themes
Download this release

Release Info

Developer alexkovalevv
Plugin Icon 128x128 Disable admin notices individually
Version 1.0.6
Comparing to
See all releases

Code changes from version 1.0.5 to 1.0.6

Files changed (28) hide show
  1. admin/boot.php +8 -2
  2. admin/options.php +2 -2
  3. admin/pages/notices.php +3 -3
  4. disable-admin-notices.php +3 -2
  5. includes/class.plugin.php +2 -2
  6. includes/classes/class.configurate-notices.php +8 -1
  7. languages/disable-admin-notices-ru_RU.po +422 -422
  8. libs/factory/bootstrap/includes/functions.php +4 -2
  9. libs/factory/clearfy/boot.php +1 -1
  10. libs/factory/clearfy/includes/class.helpers.php +17 -0
  11. libs/factory/clearfy/pages/more-features.php +13 -3
  12. libs/factory/core/includes/base.class.php +2 -2
  13. libs/factory/core/includes/plugin.class.php +21 -17
  14. libs/factory/core/includes/request.class.php +1 -1
  15. libs/factory/forms/boot.php +1 -1
  16. libs/factory/forms/includes/form.class.php +5 -5
  17. libs/factory/forms/includes/providers/meta-value-provider.class.php +74 -64
  18. libs/factory/pages/boot.php +9 -9
  19. libs/factory/pages/includes/admin-page.class.php +6 -6
  20. libs/factory/pages/includes/page.class.php +2 -2
  21. libs/factory/pages/langs/{wbcr_factory_pages_400-fr_FR.mo → wbcr_factory_pages_401-fr_FR.mo} +0 -0
  22. libs/factory/pages/langs/{wbcr_factory_pages_400-fr_FR.po → wbcr_factory_pages_401-fr_FR.po} +0 -0
  23. libs/factory/pages/langs/{wbcr_factory_pages_400-ru_RU.mo → wbcr_factory_pages_401-ru_RU.mo} +0 -0
  24. libs/factory/pages/langs/{wbcr_factory_pages_400-ru_RU.po → wbcr_factory_pages_401-ru_RU.po} +0 -0
  25. libs/factory/pages/pages.php +6 -6
  26. libs/factory/pages/templates/assets/css/impressive.page.template.css +97 -97
  27. libs/factory/pages/templates/impressive-page.class.php +99 -51
  28. readme.txt +5 -2
admin/boot.php CHANGED
@@ -20,7 +20,7 @@
20
  return $page_url;
21
  }
22
 
23
- add_filter('wbcr_factory_imppage_rating_widget_url', 'wbcr_dan_rating_widget_url', 10, 2);
24
 
25
  function wbcr_dan_group_options($options)
26
  {
@@ -48,7 +48,13 @@
48
  function wbcr_dan_set_plugin_meta($links, $file)
49
  {
50
  if( $file == WDN_PLUGIN_BASE ) {
51
- $links[] = '<a href="https://goo.gl/TcMcS4" style="color: #FF5722;font-weight: bold;" target="_blank">' . __('Get ultimate plugin free', 'disable-admin-notices') . '</a>';
 
 
 
 
 
 
52
  }
53
 
54
  return $links;
20
  return $page_url;
21
  }
22
 
23
+ add_filter('wbcr_factory_pages_401_imppage_rating_widget_url', 'wbcr_dan_rating_widget_url', 10, 2);
24
 
25
  function wbcr_dan_group_options($options)
26
  {
48
  function wbcr_dan_set_plugin_meta($links, $file)
49
  {
50
  if( $file == WDN_PLUGIN_BASE ) {
51
+ $url = 'https://clearfy.pro';
52
+
53
+ if( get_locale() == 'ru_RU' ) {
54
+ $url = 'https://ru.clearfy.pro';
55
+ }
56
+ $url .= '?utm_source=wordpress.org&utm_campaign=' . WDN_Plugin::app()->getPluginName();
57
+ $links[] = '<a href="' . $url . '" style="color: #FF5722;font-weight: bold;" target="_blank">' . __('Get ultimate plugin free', 'disable-admin-notices') . '</a>';
58
  }
59
 
60
  return $links;
admin/options.php CHANGED
@@ -87,7 +87,7 @@
87
 
88
  /**
89
  * @param $form
90
- * @param $page FactoryPages400_ImpressiveThemplate
91
  * @return mixed
92
  */
93
  function wbcr_dan_additionally_form_options($form, $page)
@@ -108,7 +108,7 @@
108
  add_filter('wbcr_clr_additionally_form_options', 'wbcr_dan_additionally_form_options', 10, 2);
109
 
110
  /**
111
- * @param $html_builder FactoryForms400_Html
112
  */
113
  function wbcr_dan_reset_notices_button($html_builder)
114
  {
87
 
88
  /**
89
  * @param $form
90
+ * @param $page Wbcr_FactoryPages401_ImpressiveThemplate
91
  * @return mixed
92
  */
93
  function wbcr_dan_additionally_form_options($form, $page)
108
  add_filter('wbcr_clr_additionally_form_options', 'wbcr_dan_additionally_form_options', 10, 2);
109
 
110
  /**
111
+ * @param $html_builder Wbcr_FactoryForms400_Html
112
  */
113
  function wbcr_dan_reset_notices_button($html_builder)
114
  {
admin/pages/notices.php CHANGED
@@ -11,13 +11,13 @@
11
  exit;
12
  }
13
 
14
- class WDN_NoticesPage extends Wbcr_FactoryPages400_ImpressiveThemplate {
15
 
16
  /**
17
  * The id of the page in the admin menu.
18
  *
19
  * Mainly used to navigate between pages.
20
- * @see FactoryPages400_AdminPage
21
  *
22
  * @since 1.0.0
23
  * @var string
@@ -73,7 +73,7 @@
73
  'wbcr_dan_code' => 'interal_error'
74
  ),
75
  'type' => 'danger',
76
- 'message' => __('An error occurred while trying to delete comments. Internal error occured. Please try again later.', 'factory_pages_400')
77
  );*/
78
 
79
  return $notices;
11
  exit;
12
  }
13
 
14
+ class WDN_NoticesPage extends Wbcr_FactoryPages401_ImpressiveThemplate {
15
 
16
  /**
17
  * The id of the page in the admin menu.
18
  *
19
  * Mainly used to navigate between pages.
20
+ * @see FactoryPages401_AdminPage
21
  *
22
  * @since 1.0.0
23
  * @var string
73
  'wbcr_dan_code' => 'interal_error'
74
  ),
75
  'type' => 'danger',
76
+ 'message' => __('An error occurred while trying to delete comments. Internal error occured. Please try again later.', 'factory_pages_401')
77
  );*/
78
 
79
  return $notices;
disable-admin-notices.php CHANGED
@@ -4,9 +4,10 @@
4
  * Plugin URI: https://wordpress.org/plugins/disable-admin-notices/
5
  * Description: Disable admin notices plugin gives you the option to hide updates warnings and inline notices in the admin panel.
6
  * Author: Webcraftic <wordpress.webraftic@gmail.com>
7
- * Version: 1.0.5
8
  * Text Domain: disable-admin-notices
9
  * Domain Path: /languages/
 
10
  */
11
 
12
  // Exit if accessed directly
@@ -48,7 +49,7 @@
48
  'prefix' => 'wbcr_dan_',
49
  'plugin_name' => 'wbcr_dan',
50
  'plugin_title' => __('Webcraftic disable admin notices', 'disable-admin-notices'),
51
- 'plugin_version' => '1.0.5',
52
  'required_php_version' => '5.2',
53
  'required_wp_version' => '4.2',
54
  'plugin_build' => 'free',
4
  * Plugin URI: https://wordpress.org/plugins/disable-admin-notices/
5
  * Description: Disable admin notices plugin gives you the option to hide updates warnings and inline notices in the admin panel.
6
  * Author: Webcraftic <wordpress.webraftic@gmail.com>
7
+ * Version: 1.0.6
8
  * Text Domain: disable-admin-notices
9
  * Domain Path: /languages/
10
+ * Author URI: https://clearfy.pro
11
  */
12
 
13
  // Exit if accessed directly
49
  'prefix' => 'wbcr_dan_',
50
  'plugin_name' => 'wbcr_dan',
51
  'plugin_title' => __('Webcraftic disable admin notices', 'disable-admin-notices'),
52
+ 'plugin_version' => '1.0.6',
53
  'required_php_version' => '5.2',
54
  'required_wp_version' => '4.2',
55
  'plugin_build' => 'free',
includes/class.plugin.php CHANGED
@@ -14,7 +14,7 @@
14
  if( !class_exists('WDN_Plugin') ) {
15
 
16
  if( !class_exists('WDN_PluginFactory') ) {
17
- if( defined('LOADING_CYRLITERA_AS_ADDON') ) {
18
  class WDN_PluginFactory {
19
 
20
  }
@@ -94,7 +94,7 @@
94
  self::app()->load(array(
95
  array('libs/factory/bootstrap', 'factory_bootstrap_400', 'admin'),
96
  array('libs/factory/forms', 'factory_forms_400', 'admin'),
97
- array('libs/factory/pages', 'factory_pages_400', 'admin'),
98
  array('libs/factory/clearfy', 'factory_clearfy_200', 'all')
99
  ));
100
  }
14
  if( !class_exists('WDN_Plugin') ) {
15
 
16
  if( !class_exists('WDN_PluginFactory') ) {
17
+ if( defined('LOADING_DISABLE_ADMIN_NOTICES_AS_ADDON') ) {
18
  class WDN_PluginFactory {
19
 
20
  }
94
  self::app()->load(array(
95
  array('libs/factory/bootstrap', 'factory_bootstrap_400', 'admin'),
96
  array('libs/factory/forms', 'factory_forms_400', 'admin'),
97
+ array('libs/factory/pages', 'factory_pages_401', 'admin'),
98
  array('libs/factory/clearfy', 'factory_clearfy_200', 'all')
99
  ));
100
  }
includes/classes/class.configurate-notices.php CHANGED
@@ -284,7 +284,14 @@
284
  unset($wp_filter['admin_notices']);
285
  }
286
  if( isset($wp_filter['all_admin_notices']) ) {
287
- unset($wp_filter['all_admin_notices']);
 
 
 
 
 
 
 
288
  }
289
  }
290
 
284
  unset($wp_filter['admin_notices']);
285
  }
286
  if( isset($wp_filter['all_admin_notices']) ) {
287
+ foreach($wp_filter['all_admin_notices']->callbacks as $f_key => $f) {
288
+ foreach($f as $c_name => $clback) {
289
+ #Fix for Divi theme
290
+ if( $c_name != 'et_pb_export_layouts_interface' ) {
291
+ unset($wp_filter['all_admin_notices']->callbacks[$f_key][$c_name]);
292
+ }
293
+ }
294
+ }
295
  }
296
  }
297
 
languages/disable-admin-notices-ru_RU.po CHANGED
@@ -1,422 +1,422 @@
1
- msgid ""
2
- msgstr ""
3
- "Project-Id-Version: clearfy\n"
4
- "POT-Creation-Date: 2018-03-14 17:34+0300\n"
5
- "PO-Revision-Date: 2018-03-14 17:34+0300\n"
6
- "Last-Translator: alex.kovalevv@gmail.com <alex.kovalevv@gmail.com>\n"
7
- "Language-Team: Alex Kovalev <alex.kovalevv@gmail.com>\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-Basepath: ..\n"
14
- "Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n"
15
- "%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n"
16
- "X-Poedit-SourceCharset: UTF-8\n"
17
- "X-Poedit-KeywordsList: __;_e;_n:1,2;_x:1,2c;_ex:1,2c\n"
18
- "X-Poedit-SearchPath-0: .\n"
19
- "X-Poedit-SearchPathExcluded-0: libs\n"
20
-
21
- #: admin/ajax/hide-notice.php:19 admin/ajax/restore-notice.php:19
22
- msgid "You don't have enough capability to edit this information."
23
- msgstr "Вы не имеете разрешения на редактирование этого!"
24
-
25
- #: admin/ajax/hide-notice.php:32 admin/ajax/restore-notice.php:28
26
- msgid "Undefinded notice id."
27
- msgstr "Не передан notice id."
28
-
29
- #: admin/ajax/hide-notice.php:46 admin/ajax/restore-notice.php:40
30
- msgid "Success"
31
- msgstr "Успешно"
32
-
33
- #: admin/boot.php:29 admin/options.php:32 admin/pages/notices.php:33
34
- msgid "Hide admin notices"
35
- msgstr "Скрыть уведомления"
36
-
37
- #: admin/boot.php:35 admin/options.php:72
38
- msgid "Enable hidden notices in adminbar"
39
- msgstr "Включить уведомления в админбаре"
40
-
41
- #: admin/boot.php:51
42
- msgid "Get ultimate plugin free"
43
- msgstr "Получите полную версию плагина бесплатно"
44
-
45
- #: admin/options.php:24
46
- msgid "Admin notifications, Update nags"
47
- msgstr "Уведомления администратора, уведомления об обновлении Wordpress"
48
-
49
- #: admin/options.php:24
50
- msgid ""
51
- "Do you know the situation, when some plugin offers you to update to premium, "
52
- "to collect technical data and shows many annoying notices? You are close "
53
- "these notices every now and again but they newly appears and interfere your "
54
- "work with WordPress. Even worse, some plugin’s authors delete “close” button "
55
- "from notices and they shows in your admin panel forever."
56
- msgstr ""
57
- "Вам знакома ситуация, когда какой-то плагин просит вас обновиться до премиум-"
58
- "версии, получить права на сбор данных о вашем сайте и создает много "
59
- "раздражающих уведомлений? Вы закрываете эти уведомления раз за разом, но они "
60
- "вновь появляются и мешают вашей работе с WordPress. Хуже того, некоторые "
61
- "авторы и вовсе удаляют кнопку “закрыть” из уведомлений, и они висят в шапке "
62
- "вашей панели администратора целую вечность."
63
-
64
- #: admin/options.php:36
65
- msgid "All notices"
66
- msgstr "Все уведомления"
67
-
68
- #: admin/options.php:37
69
- msgid "Hide all notices globally."
70
- msgstr "Скрыть все уведомления глобально."
71
-
72
- #: admin/options.php:41
73
- msgid "Only selected"
74
- msgstr "Только выбранные"
75
-
76
- #: admin/options.php:42
77
- msgid ""
78
- "Hide selected notices only. You will see the link \"Hide notification forever"
79
- "\" in each notice. Push it and they will not bother you anymore."
80
- msgstr ""
81
- "Скрывать только выбранные уведомления. В каждом уведомлении вы увидите "
82
- "ссылку \"Скрыть уведомление навсегда\". Нажмите на неё и уведомление будет "
83
- "скрыто навсегда и перестанет вас беспокоить."
84
-
85
- #: admin/options.php:46
86
- msgid "Don't nide"
87
- msgstr "Не скрывать"
88
-
89
- #: admin/options.php:47
90
- msgid ""
91
- "Do not hide notices and do not show “Hide notification forever” link for "
92
- "admin."
93
- msgstr ""
94
- "Не скрывать уведомления и не показывать ссылку \"Скрыть уведомление навсегда"
95
- "\" в уведомлениях администратора."
96
-
97
- #: admin/options.php:51
98
- msgid ""
99
- "Some plugins shows notifications about premium version, data collecting or "
100
- "promote their services. Even if you push close button (that sometimes are "
101
- "impossible), notices are shows again in some time. This option allows you to "
102
- "control notices. Hide them all or each individually. Some plugins shows "
103
- "notifications about premium version, data collecting or promote their "
104
- "services. Even if you push close button (that sometimes are impossible), "
105
- "notices are shows again in some time. This option allows you to control "
106
- "notices. Hide them all or each individually."
107
- msgstr ""
108
- "Зачастую, плагины отображают уведомления о возможности перехода на премиум "
109
- "версию, просят разрешение на сбор данных, рекламируют свои услуги. Даже если "
110
- "вы нажмете кнопку закрыть (что не всегда возможно), уведомления всё равно "
111
- "отобразятся через какое-то время. С помощью этой настройки, вы можете "
112
- "контролировать эти уведомления. Скройте их все сразу или каждое по "
113
- "отдельности."
114
-
115
- #: admin/options.php:74
116
- msgid ""
117
- "By default, the plugin hides all notices, which you specified. If you enable "
118
- "this option, the plugin will collect all hidden notices and show them into "
119
- "the top admin toolbar. It will not disturb you but will allow to look "
120
- "notices at your convenience."
121
- msgstr ""
122
- "По умолчанию, плагин полностью скрывает отключенные вами уведомления. Если "
123
- "включить эту опцию, то плагин будет собирать все скрытые вами уведомления и "
124
- "выводить в верхней панели администратора. Это не будет вас раздражать, но и "
125
- "позволит просматривать уведомления, когда вам это удобно."
126
-
127
- #: admin/options.php:138
128
- msgid "Push reset hidden notices if you need to show hidden notices again."
129
- msgstr "Нажмите кнопку \\\"Сбросить скрытые уведомления\\\""
130
-
131
- #: admin/options.php:147
132
- #, php-format
133
- msgid "Reset hidden notices (%s)"
134
- msgstr "Сбросить скрытые уведомления (%s)"
135
-
136
- #: admin/options.php:149 admin/pages/notices.php:67
137
- msgid "Hidden notices are successfully reset, now you can see them again!"
138
- msgstr ""
139
- "Скрытые уведомления успешно восстановлены, теперь вы можете снова видеть их!"
140
-
141
- #: admin/pages/notices.php:49
142
- msgid "Notices"
143
- msgstr "Уведомления"
144
-
145
- #: admin/pages/notices.php:50
146
- msgid "General"
147
- msgstr "Основные"
148
-
149
- #: disable-admin-notices.php:22
150
- msgid ""
151
- "We found that you have the \"Clearfy - disable unused features\" plugin "
152
- "installed, this plugin already has disable comments functions, so you can "
153
- "deactivate plugin \"Disable admin notices\"!"
154
- msgstr ""
155
- "Мы обнаружили, что у вас установлен плагин «Clearfy - отключить "
156
- "неиспользуемые функции», этот плагин уже имеет функции отключения "
157
- "комментариев, поэтому вы можете отключить плагин «Скрыть уведомления "
158
- "администратора»!"
159
-
160
- #: disable-admin-notices.php:79
161
- msgid "Webcraftic disable admin notices"
162
- msgstr "Webcraftic отключить уведомления администратора"
163
-
164
- #: includes/classes/class.configurate-notices.php:79
165
- #, php-format
166
- msgid "Notifications %s"
167
- msgstr "Уведомления %s"
168
-
169
- #: includes/classes/class.configurate-notices.php:88
170
- msgid "Restore notice"
171
- msgstr "Восстановить уведомление"
172
-
173
- #: includes/classes/class.configurate-notices.php:263
174
- msgid "Hide notification forever"
175
- msgstr "Скрыть уведомление навсегда"
176
-
177
- #~ msgid "Hidden notices"
178
- #~ msgstr "Скрытые уведомления"
179
-
180
- #~ msgid "Disable comments on the entire site"
181
- #~ msgstr "Отключить комментарии на всем сайте"
182
-
183
- #~ msgid "Select post types"
184
- #~ msgstr "Выбрать тип записи"
185
-
186
- #~ msgid "Replace external links in comments on the JavaScript code"
187
- #~ msgstr "Заменить внешние ссылки в комментариях на JavaScript код"
188
-
189
- #~ msgid "Replace external links from comment authors on the JavaScript code"
190
- #~ msgstr "Заменить внешние ссылки от авторов комментариев на код JavaScript"
191
-
192
- #~ msgid "Disable X-Pingback"
193
- #~ msgstr "Убрать ссылку на X-Pingback и возможность спамить pingback-ами"
194
-
195
- #~ msgid "Remove field \"site\" in comment form"
196
- #~ msgstr "Удаляет поле \"Сайт\" в форме комментариев"
197
-
198
- #~ msgid "Disable all comments"
199
- #~ msgstr "Отключить все комментарии"
200
-
201
- #~ msgid "Comments"
202
- #~ msgstr "Комментарии"
203
-
204
- #~ msgid ""
205
- #~ "Hide selected notices only. You will see the link \"Hide notification "
206
- #~ "forever\" in each notice. Push it and they will not bother you anymore. "
207
- #~ "Push <a href=\"%s\">reset hidden notices (%d)</a> if you need to show "
208
- #~ "hidden notices again."
209
- #~ msgstr ""
210
- #~ "Скрывать только выбранные уведомления. В каждом уведомлении вы увидите "
211
- #~ "ссылку \"Скрыть уведомление навсегда\". Нажмите на неё и уведомление "
212
- #~ "будет скрыто навсегда и перестанет вас беспокоить. Нажмите <a href=\"%s"
213
- #~ "\">сбросить скрытые уведомления (%d)</a>, если вам нужно восстановить "
214
- #~ "показ скрытых ранее уведомлений."
215
-
216
- #~ msgid "Webcraftic hide admin notices"
217
- #~ msgstr "Webcraftic скрыть уведомления администратора"
218
-
219
- #~ msgid "Comments tweaks"
220
- #~ msgstr "Инструменты комментариев"
221
-
222
- #~ msgid "All comments have been deleted."
223
- #~ msgstr "Все комментарии были удалены."
224
-
225
- #~ msgid ""
226
- #~ "An error occurred while trying to delete comments. Internal error "
227
- #~ "occured. Please try again later."
228
- #~ msgstr ""
229
- #~ "При попытке удалить комментарии произошла ошибка. Пожалуйста, повторите "
230
- #~ "попытку позже."
231
-
232
- #~ msgid "You are not allowed to view this page."
233
- #~ msgstr "Вам не разрешено просматривать эту страницу."
234
-
235
- #~ msgid "You do not have the selected post types!"
236
- #~ msgstr "Вы не выбрали еще ни одного типа записей!"
237
-
238
- #~ msgid "No comments available for deletion."
239
- #~ msgstr "Нет комментариев для удаления."
240
-
241
- #~ msgid ""
242
- #~ "Are you sure that you desire to delete all comments from the database?"
243
- #~ msgstr "Вы уверены, что хотите удалить все комментарии из базы данных?"
244
-
245
- #~ msgid ""
246
- #~ "Deleting comments will remove existing comment entries in the database "
247
- #~ "and cannot be reverted without a database backup."
248
- #~ msgstr ""
249
- #~ "При удалении комментариев удаляются существующие записи комментариев в "
250
- #~ "базе данных, они не могут быть восстановлены без резервного копирования "
251
- #~ "базы данных."
252
-
253
- #~ msgid "You have %s comments"
254
- #~ msgstr "У вас есть %s комментариев"
255
-
256
- #~ msgid "Yes, I'm sure"
257
- #~ msgstr "Да, я уверен"
258
-
259
- #~ msgid "No, return back"
260
- #~ msgstr "Нет, вернуться"
261
-
262
- #~ msgid ""
263
- #~ "Are you sure that you desire to delete all comments from the database for "
264
- #~ "the selected post types (%s)?"
265
- #~ msgstr ""
266
- #~ "Вы уверены, что хотите удалить все комментарии из базы данных для "
267
- #~ "выбранных типов записей (%s)?"
268
-
269
- #~ msgid "Disable comments"
270
- #~ msgstr "Отключить комментарии"
271
-
272
- #~ msgid "Not disable"
273
- #~ msgstr "Не отключать"
274
-
275
- #~ msgid "Everywhere"
276
- #~ msgstr "Повсюду"
277
-
278
- #~ msgid ""
279
- #~ "You can delete all comments in the database by clicking on this link (<a "
280
- #~ "href=\"%s\">cleaning comments in database</a>)."
281
- #~ msgstr ""
282
- #~ "Вы можете удалить все комментарии в базе данных, нажав на эту ссылку ( <a "
283
- #~ "href=\"%s\">очистка комментариев в базе данных</a> )."
284
-
285
- #~ msgid "On certain post types"
286
- #~ msgstr "Только выбранные типы записей"
287
-
288
- #~ msgid ""
289
- #~ "You can delete all comments for the selected post types. Select the post "
290
- #~ "types below and save the settings. After that, click the link (<a href="
291
- #~ "\"%s\">delete all comments for the selected post types in database</a>)."
292
- #~ msgstr ""
293
- #~ "Вы можете удалить все комментарии для выбранных типов записей. Выберите "
294
- #~ "типы записей ниже и сохраните настройки. После этого нажмите ссылку ( <a "
295
- #~ "href=\"%s\">удалите все комментарии для выбранных типов записей в базе "
296
- #~ "данных</a> )."
297
-
298
- #~ msgid ""
299
- #~ "Everywhere - Warning: This option is global and will affect your entire "
300
- #~ "site. Use it only if you want to disable comments everywhere. A complete "
301
- #~ "description of what this option does is available here"
302
- #~ msgstr ""
303
- #~ "Повсюду - предупреждение: этот параметр является глобальным и повлияет на "
304
- #~ "весь ваш сайт. Используйте его только в том случае, если вы хотите "
305
- #~ "отключить комментарии повсюду. "
306
-
307
- #~ msgid ""
308
- #~ "On certain post types - Disabling comments will also disable trackbacks "
309
- #~ "and pingbacks. All comment-related fields will also be hidden from the "
310
- #~ "edit/quick-edit screens of the affected posts. These settings cannot be "
311
- #~ "overridden for individual posts."
312
- #~ msgstr ""
313
- #~ "В некоторых типах сообщений - отключение комментариев также отключает "
314
- #~ "трекбэки и pingback. Все поля, связанные с комментариями, также будут "
315
- #~ "скрыты от экранов редактирования / быстрого редактирования затронутых "
316
- #~ "сообщений. Эти настройки нельзя переопределять для отдельных сообщений."
317
-
318
- #~ msgid "Select the post types for which comments will be disabled"
319
- #~ msgstr "Выберите типы записей, для которых комментарии будут отключены."
320
-
321
- #~ msgid ""
322
- #~ "Tired of spam in the comments? Do visitors leave \"blank\" comments for "
323
- #~ "the sake of a link to their site?"
324
- #~ msgstr ""
325
- #~ "Надоел спам в комментариях? Посетители оставляют «пустые» комментарии "
326
- #~ "ради ссылки на свой сайт?"
327
-
328
- #~ msgid "Removes the \"Site\" field from the comment form."
329
- #~ msgstr "Убирает поле «Сайт» из формы комментирования."
330
-
331
- #~ msgid ""
332
- #~ "Works with the standard comment form, if the form is manually written in "
333
- #~ "your theme-it probably will not work!"
334
- #~ msgstr ""
335
- #~ "Работает со стандартной формой комментирования, если в Вашей теме форма "
336
- #~ "прописана вручную - скорей всего не сработает!"
337
-
338
- #~ msgid "Recommended"
339
- #~ msgstr "Рекомендовано"
340
-
341
- #~ msgid ""
342
- #~ "Superfluous external links from comments, which can be typed from a dozen "
343
- #~ "and more for one article, do not bring anything good for promotion."
344
- #~ msgstr ""
345
- #~ "Внешние ссылки в комментариях, которых может быть десятки или больше на "
346
- #~ "одной странице, могут ухудшить продвижение вашего сайта."
347
-
348
- #~ msgid "Replaces the links of this kind of %s, on links of this kind %s"
349
- #~ msgstr ""
350
- #~ "Заменяет ссылки %s, на span тег и устанавливает переход с помощью "
351
- #~ "JavaScript %s"
352
-
353
- #~ msgid ""
354
- #~ "Up to 90 percent of comments in the blog can be left for the sake of an "
355
- #~ "external link. Even nofollow from page weight loss here does not help."
356
- #~ msgstr ""
357
- #~ "До 90 процентов комментариев в блоге оставляют ради внешней ссылки. Не "
358
- #~ "поможет даже nofollow от потери веса страницы."
359
-
360
- #~ msgid ""
361
- #~ "Replaces the links of the authors of comments on the JavaScript code, it "
362
- #~ "is impossible to distinguish it from usual links."
363
- #~ msgstr ""
364
- #~ "Заменяет ссылки авторов комментариев на JavaScript код, его невозможно "
365
- #~ "отличить от обычной ссылки."
366
-
367
- #~ msgid "In some Wordpress topics this may not work."
368
- #~ msgstr "В некоторых темах Wordpress это может не сработать."
369
-
370
- #~ msgid "Disable XML-RPC"
371
- #~ msgstr "Отключить XML-RPC"
372
-
373
- #~ msgid ""
374
- #~ "A pingback is basically an automated comment that gets created when "
375
- #~ "another blog links to you. A self-pingback is created when you link to an "
376
- #~ "article within your own blog. Pingbacks are essentially nothing more than "
377
- #~ "spam and simply waste resources."
378
- #~ msgstr ""
379
- #~ "Pingback по-существу автоматизированных комментарий, который создается, "
380
- #~ "когда другой блог ссылается на вас. Self-pingback создается, когда вы "
381
- #~ "оставили ссылку на статью в своем блоге. Pingbacks по существу являются "
382
- #~ "не более чем спам и пустая трата ресурсов вашего сайта."
383
-
384
- #~ msgid "Removes the server responses a reference to the xmlrpc file."
385
- #~ msgstr "Удаляет ссылку на xmlrpc-файл и ответ сервера."
386
-
387
- #~ msgid ""
388
- #~ "We found that you have the \"Clearfy - disable unused features\" plugin "
389
- #~ "installed, this plugin already has disable comments functions, so you can "
390
- #~ "deactivate plugin \"Comments tweaks\"!"
391
- #~ msgstr ""
392
- #~ "Мы обнаружили, что у вас установлен плагин «Clearfy - отключить "
393
- #~ "неиспользуемые функции», этот плагин уже имеет функции отключения "
394
- #~ "комментариев, поэтому вы можете отключить плагин «Инструменты "
395
- #~ "комментариев»!"
396
-
397
- #~ msgid "Webcraftic comments tweaks"
398
- #~ msgstr "Webcraftic инструменты комментариев"
399
-
400
- #~ msgid "Comments are closed."
401
- #~ msgstr "Комментарии Закрыты."
402
-
403
- #~ msgid ""
404
- #~ "Note: The <em>%s</em> plugin is currently active, and comments are "
405
- #~ "completely disabled on: %s. Many of the settings below will not be "
406
- #~ "applicable for those post types."
407
- #~ msgstr ""
408
- #~ "Примечание. Плагин <em>%s</em> в настоящий момент активен, и комментарии "
409
- #~ "полностью отключены: %s. Многие из приведенных ниже настроек не будут "
410
- #~ "применяться для этих типов сообщений."
411
-
412
- #~ msgid ""
413
- #~ "We found that you have the \"Clearfy - disable unused features\" plugin "
414
- #~ "installed, this plugin already has disable comments functions, so you can "
415
- #~ "deactivate plugin \"Disable comments\"!"
416
- #~ msgstr ""
417
- #~ "Мы обнаружили, что у вас установлен плагин «Clearfy - отключить "
418
- #~ "неиспользуемые функции», этот плагин уже имеет функции отключения "
419
- #~ "комментариев, поэтому вы можете отключить плагин «Отключить комментарии»!"
420
-
421
- #~ msgid "Webcraftic Disable comments"
422
- #~ msgstr "Webcraftic отключить комментарии"
1
+ msgid ""
2
+ msgstr ""
3
+ "Project-Id-Version: clearfy\n"
4
+ "POT-Creation-Date: 2018-03-14 17:34+0300\n"
5
+ "PO-Revision-Date: 2018-03-14 17:34+0300\n"
6
+ "Last-Translator: alex.kovalevv@gmail.com <alex.kovalevv@gmail.com>\n"
7
+ "Language-Team: Alex Kovalev <alex.kovalevv@gmail.com>\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-Basepath: ..\n"
14
+ "Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n"
15
+ "%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n"
16
+ "X-Poedit-SourceCharset: UTF-8\n"
17
+ "X-Poedit-KeywordsList: __;_e;_n:1,2;_x:1,2c;_ex:1,2c\n"
18
+ "X-Poedit-SearchPath-0: .\n"
19
+ "X-Poedit-SearchPathExcluded-0: libs\n"
20
+
21
+ #: admin/ajax/hide-notice.php:19 admin/ajax/restore-notice.php:19
22
+ msgid "You don't have enough capability to edit this information."
23
+ msgstr "Вы не имеете разрешения на редактирование этого!"
24
+
25
+ #: admin/ajax/hide-notice.php:32 admin/ajax/restore-notice.php:28
26
+ msgid "Undefinded notice id."
27
+ msgstr "Не передан notice id."
28
+
29
+ #: admin/ajax/hide-notice.php:46 admin/ajax/restore-notice.php:40
30
+ msgid "Success"
31
+ msgstr "Успешно"
32
+
33
+ #: admin/boot.php:29 admin/options.php:32 admin/pages/notices.php:33
34
+ msgid "Hide admin notices"
35
+ msgstr "Скрыть уведомления"
36
+
37
+ #: admin/boot.php:35 admin/options.php:72
38
+ msgid "Enable hidden notices in adminbar"
39
+ msgstr "Включить уведомления в админбаре"
40
+
41
+ #: admin/boot.php:51
42
+ msgid "Get ultimate plugin free"
43
+ msgstr "Получите полную версию плагина бесплатно"
44
+
45
+ #: admin/options.php:24
46
+ msgid "Admin notifications, Update nags"
47
+ msgstr "Уведомления администратора, уведомления об обновлении Wordpress"
48
+
49
+ #: admin/options.php:24
50
+ msgid ""
51
+ "Do you know the situation, when some plugin offers you to update to premium, "
52
+ "to collect technical data and shows many annoying notices? You are close "
53
+ "these notices every now and again but they newly appears and interfere your "
54
+ "work with WordPress. Even worse, some plugin’s authors delete “close” button "
55
+ "from notices and they shows in your admin panel forever."
56
+ msgstr ""
57
+ "Вам знакома ситуация, когда какой-то плагин просит вас обновиться до премиум-"
58
+ "версии, получить права на сбор данных о вашем сайте и создает много "
59
+ "раздражающих уведомлений? Вы закрываете эти уведомления раз за разом, но они "
60
+ "вновь появляются и мешают вашей работе с WordPress. Хуже того, некоторые "
61
+ "авторы и вовсе удаляют кнопку “закрыть” из уведомлений, и они висят в шапке "
62
+ "вашей панели администратора целую вечность."
63
+
64
+ #: admin/options.php:36
65
+ msgid "All notices"
66
+ msgstr "Все уведомления"
67
+
68
+ #: admin/options.php:37
69
+ msgid "Hide all notices globally."
70
+ msgstr "Скрыть все уведомления глобально."
71
+
72
+ #: admin/options.php:41
73
+ msgid "Only selected"
74
+ msgstr "Только выбранные"
75
+
76
+ #: admin/options.php:42
77
+ msgid ""
78
+ "Hide selected notices only. You will see the link \"Hide notification forever"
79
+ "\" in each notice. Push it and they will not bother you anymore."
80
+ msgstr ""
81
+ "Скрывать только выбранные уведомления. В каждом уведомлении вы увидите "
82
+ "ссылку \"Скрыть уведомление навсегда\". Нажмите на неё и уведомление будет "
83
+ "скрыто навсегда и перестанет вас беспокоить."
84
+
85
+ #: admin/options.php:46
86
+ msgid "Don't nide"
87
+ msgstr "Не скрывать"
88
+
89
+ #: admin/options.php:47
90
+ msgid ""
91
+ "Do not hide notices and do not show “Hide notification forever” link for "
92
+ "admin."
93
+ msgstr ""
94
+ "Не скрывать уведомления и не показывать ссылку \"Скрыть уведомление навсегда"
95
+ "\" в уведомлениях администратора."
96
+
97
+ #: admin/options.php:51
98
+ msgid ""
99
+ "Some plugins shows notifications about premium version, data collecting or "
100
+ "promote their services. Even if you push close button (that sometimes are "
101
+ "impossible), notices are shows again in some time. This option allows you to "
102
+ "control notices. Hide them all or each individually. Some plugins shows "
103
+ "notifications about premium version, data collecting or promote their "
104
+ "services. Even if you push close button (that sometimes are impossible), "
105
+ "notices are shows again in some time. This option allows you to control "
106
+ "notices. Hide them all or each individually."
107
+ msgstr ""
108
+ "Зачастую, плагины отображают уведомления о возможности перехода на премиум "
109
+ "версию, просят разрешение на сбор данных, рекламируют свои услуги. Даже если "
110
+ "вы нажмете кнопку закрыть (что не всегда возможно), уведомления всё равно "
111
+ "отобразятся через какое-то время. С помощью этой настройки, вы можете "
112
+ "контролировать эти уведомления. Скройте их все сразу или каждое по "
113
+ "отдельности."
114
+
115
+ #: admin/options.php:74
116
+ msgid ""
117
+ "By default, the plugin hides all notices, which you specified. If you enable "
118
+ "this option, the plugin will collect all hidden notices and show them into "
119
+ "the top admin toolbar. It will not disturb you but will allow to look "
120
+ "notices at your convenience."
121
+ msgstr ""
122
+ "По умолчанию, плагин полностью скрывает отключенные вами уведомления. Если "
123
+ "включить эту опцию, то плагин будет собирать все скрытые вами уведомления и "
124
+ "выводить в верхней панели администратора. Это не будет вас раздражать, но и "
125
+ "позволит просматривать уведомления, когда вам это удобно."
126
+
127
+ #: admin/options.php:138
128
+ msgid "Push reset hidden notices if you need to show hidden notices again."
129
+ msgstr "Нажмите кнопку \\\"Сбросить скрытые уведомления\\\""
130
+
131
+ #: admin/options.php:147
132
+ #, php-format
133
+ msgid "Reset hidden notices (%s)"
134
+ msgstr "Сбросить скрытые уведомления (%s)"
135
+
136
+ #: admin/options.php:149 admin/pages/notices.php:67
137
+ msgid "Hidden notices are successfully reset, now you can see them again!"
138
+ msgstr ""
139
+ "Скрытые уведомления успешно восстановлены, теперь вы можете снова видеть их!"
140
+
141
+ #: admin/pages/notices.php:49
142
+ msgid "Notices"
143
+ msgstr "Уведомления"
144
+
145
+ #: admin/pages/notices.php:50
146
+ msgid "General"
147
+ msgstr "Основные"
148
+
149
+ #: disable-admin-notices.php:22
150
+ msgid ""
151
+ "We found that you have the \"Clearfy - disable unused features\" plugin "
152
+ "installed, this plugin already has disable comments functions, so you can "
153
+ "deactivate plugin \"Disable admin notices\"!"
154
+ msgstr ""
155
+ "Мы обнаружили, что у вас установлен плагин «Clearfy - отключить "
156
+ "неиспользуемые функции», этот плагин уже имеет функции отключения "
157
+ "комментариев, поэтому вы можете отключить плагин «Скрыть уведомления "
158
+ "администратора»!"
159
+
160
+ #: disable-admin-notices.php:79
161
+ msgid "Webcraftic disable admin notices"
162
+ msgstr "Webcraftic отключить уведомления администратора"
163
+
164
+ #: includes/classes/class.configurate-notices.php:79
165
+ #, php-format
166
+ msgid "Notifications %s"
167
+ msgstr "Уведомления %s"
168
+
169
+ #: includes/classes/class.configurate-notices.php:88
170
+ msgid "Restore notice"
171
+ msgstr "Восстановить уведомление"
172
+
173
+ #: includes/classes/class.configurate-notices.php:263
174
+ msgid "Hide notification forever"
175
+ msgstr "Скрыть уведомление навсегда"
176
+
177
+ #~ msgid "Hidden notices"
178
+ #~ msgstr "Скрытые уведомления"
179
+
180
+ #~ msgid "Disable comments on the entire site"
181
+ #~ msgstr "Отключить комментарии на всем сайте"
182
+
183
+ #~ msgid "Select post types"
184
+ #~ msgstr "Выбрать тип записи"
185
+
186
+ #~ msgid "Replace external links in comments on the JavaScript code"
187
+ #~ msgstr "Заменить внешние ссылки в комментариях на JavaScript код"
188
+
189
+ #~ msgid "Replace external links from comment authors on the JavaScript code"
190
+ #~ msgstr "Заменить внешние ссылки от авторов комментариев на код JavaScript"
191
+
192
+ #~ msgid "Disable X-Pingback"
193
+ #~ msgstr "Убрать ссылку на X-Pingback и возможность спамить pingback-ами"
194
+
195
+ #~ msgid "Remove field \"site\" in comment form"
196
+ #~ msgstr "Удаляет поле \"Сайт\" в форме комментариев"
197
+
198
+ #~ msgid "Disable all comments"
199
+ #~ msgstr "Отключить все комментарии"
200
+
201
+ #~ msgid "Comments"
202
+ #~ msgstr "Комментарии"
203
+
204
+ #~ msgid ""
205
+ #~ "Hide selected notices only. You will see the link \"Hide notification "
206
+ #~ "forever\" in each notice. Push it and they will not bother you anymore. "
207
+ #~ "Push <a href=\"%s\">reset hidden notices (%d)</a> if you need to show "
208
+ #~ "hidden notices again."
209
+ #~ msgstr ""
210
+ #~ "Скрывать только выбранные уведомления. В каждом уведомлении вы увидите "
211
+ #~ "ссылку \"Скрыть уведомление навсегда\". Нажмите на неё и уведомление "
212
+ #~ "будет скрыто навсегда и перестанет вас беспокоить. Нажмите <a href=\"%s"
213
+ #~ "\">сбросить скрытые уведомления (%d)</a>, если вам нужно восстановить "
214
+ #~ "показ скрытых ранее уведомлений."
215
+
216
+ #~ msgid "Webcraftic hide admin notices"
217
+ #~ msgstr "Webcraftic скрыть уведомления администратора"
218
+
219
+ #~ msgid "Comments tweaks"
220
+ #~ msgstr "Инструменты комментариев"
221
+
222
+ #~ msgid "All comments have been deleted."
223
+ #~ msgstr "Все комментарии были удалены."
224
+
225
+ #~ msgid ""
226
+ #~ "An error occurred while trying to delete comments. Internal error "
227
+ #~ "occured. Please try again later."
228
+ #~ msgstr ""
229
+ #~ "При попытке удалить комментарии произошла ошибка. Пожалуйста, повторите "
230
+ #~ "попытку позже."
231
+
232
+ #~ msgid "You are not allowed to view this page."
233
+ #~ msgstr "Вам не разрешено просматривать эту страницу."
234
+
235
+ #~ msgid "You do not have the selected post types!"
236
+ #~ msgstr "Вы не выбрали еще ни одного типа записей!"
237
+
238
+ #~ msgid "No comments available for deletion."
239
+ #~ msgstr "Нет комментариев для удаления."
240
+
241
+ #~ msgid ""
242
+ #~ "Are you sure that you desire to delete all comments from the database?"
243
+ #~ msgstr "Вы уверены, что хотите удалить все комментарии из базы данных?"
244
+
245
+ #~ msgid ""
246
+ #~ "Deleting comments will remove existing comment entries in the database "
247
+ #~ "and cannot be reverted without a database backup."
248
+ #~ msgstr ""
249
+ #~ "При удалении комментариев удаляются существующие записи комментариев в "
250
+ #~ "базе данных, они не могут быть восстановлены без резервного копирования "
251
+ #~ "базы данных."
252
+
253
+ #~ msgid "You have %s comments"
254
+ #~ msgstr "У вас есть %s комментариев"
255
+
256
+ #~ msgid "Yes, I'm sure"
257
+ #~ msgstr "Да, я уверен"
258
+
259
+ #~ msgid "No, return back"
260
+ #~ msgstr "Нет, вернуться"
261
+
262
+ #~ msgid ""
263
+ #~ "Are you sure that you desire to delete all comments from the database for "
264
+ #~ "the selected post types (%s)?"
265
+ #~ msgstr ""
266
+ #~ "Вы уверены, что хотите удалить все комментарии из базы данных для "
267
+ #~ "выбранных типов записей (%s)?"
268
+
269
+ #~ msgid "Disable comments"
270
+ #~ msgstr "Отключить комментарии"
271
+
272
+ #~ msgid "Not disable"
273
+ #~ msgstr "Не отключать"
274
+
275
+ #~ msgid "Everywhere"
276
+ #~ msgstr "Повсюду"
277
+
278
+ #~ msgid ""
279
+ #~ "You can delete all comments in the database by clicking on this link (<a "
280
+ #~ "href=\"%s\">cleaning comments in database</a>)."
281
+ #~ msgstr ""
282
+ #~ "Вы можете удалить все комментарии в базе данных, нажав на эту ссылку ( <a "
283
+ #~ "href=\"%s\">очистка комментариев в базе данных</a> )."
284
+
285
+ #~ msgid "On certain post types"
286
+ #~ msgstr "Только выбранные типы записей"
287
+
288
+ #~ msgid ""
289
+ #~ "You can delete all comments for the selected post types. Select the post "
290
+ #~ "types below and save the settings. After that, click the link (<a href="
291
+ #~ "\"%s\">delete all comments for the selected post types in database</a>)."
292
+ #~ msgstr ""
293
+ #~ "Вы можете удалить все комментарии для выбранных типов записей. Выберите "
294
+ #~ "типы записей ниже и сохраните настройки. После этого нажмите ссылку ( <a "
295
+ #~ "href=\"%s\">удалите все комментарии для выбранных типов записей в базе "
296
+ #~ "данных</a> )."
297
+
298
+ #~ msgid ""
299
+ #~ "Everywhere - Warning: This option is global and will affect your entire "
300
+ #~ "site. Use it only if you want to disable comments everywhere. A complete "
301
+ #~ "description of what this option does is available here"
302
+ #~ msgstr ""
303
+ #~ "Повсюду - предупреждение: этот параметр является глобальным и повлияет на "
304
+ #~ "весь ваш сайт. Используйте его только в том случае, если вы хотите "
305
+ #~ "отключить комментарии повсюду. "
306
+
307
+ #~ msgid ""
308
+ #~ "On certain post types - Disabling comments will also disable trackbacks "
309
+ #~ "and pingbacks. All comment-related fields will also be hidden from the "
310
+ #~ "edit/quick-edit screens of the affected posts. These settings cannot be "
311
+ #~ "overridden for individual posts."
312
+ #~ msgstr ""
313
+ #~ "В некоторых типах сообщений - отключение комментариев также отключает "
314
+ #~ "трекбэки и pingback. Все поля, связанные с комментариями, также будут "
315
+ #~ "скрыты от экранов редактирования / быстрого редактирования затронутых "
316
+ #~ "сообщений. Эти настройки нельзя переопределять для отдельных сообщений."
317
+
318
+ #~ msgid "Select the post types for which comments will be disabled"
319
+ #~ msgstr "Выберите типы записей, для которых комментарии будут отключены."
320
+
321
+ #~ msgid ""
322
+ #~ "Tired of spam in the comments? Do visitors leave \"blank\" comments for "
323
+ #~ "the sake of a link to their site?"
324
+ #~ msgstr ""
325
+ #~ "Надоел спам в комментариях? Посетители оставляют «пустые» комментарии "
326
+ #~ "ради ссылки на свой сайт?"
327
+
328
+ #~ msgid "Removes the \"Site\" field from the comment form."
329
+ #~ msgstr "Убирает поле «Сайт» из формы комментирования."
330
+
331
+ #~ msgid ""
332
+ #~ "Works with the standard comment form, if the form is manually written in "
333
+ #~ "your theme-it probably will not work!"
334
+ #~ msgstr ""
335
+ #~ "Работает со стандартной формой комментирования, если в Вашей теме форма "
336
+ #~ "прописана вручную - скорей всего не сработает!"
337
+
338
+ #~ msgid "Recommended"
339
+ #~ msgstr "Рекомендовано"
340
+
341
+ #~ msgid ""
342
+ #~ "Superfluous external links from comments, which can be typed from a dozen "
343
+ #~ "and more for one article, do not bring anything good for promotion."
344
+ #~ msgstr ""
345
+ #~ "Внешние ссылки в комментариях, которых может быть десятки или больше на "
346
+ #~ "одной странице, могут ухудшить продвижение вашего сайта."
347
+
348
+ #~ msgid "Replaces the links of this kind of %s, on links of this kind %s"
349
+ #~ msgstr ""
350
+ #~ "Заменяет ссылки %s, на span тег и устанавливает переход с помощью "
351
+ #~ "JavaScript %s"
352
+
353
+ #~ msgid ""
354
+ #~ "Up to 90 percent of comments in the blog can be left for the sake of an "
355
+ #~ "external link. Even nofollow from page weight loss here does not help."
356
+ #~ msgstr ""
357
+ #~ "До 90 процентов комментариев в блоге оставляют ради внешней ссылки. Не "
358
+ #~ "поможет даже nofollow от потери веса страницы."
359
+
360
+ #~ msgid ""
361
+ #~ "Replaces the links of the authors of comments on the JavaScript code, it "
362
+ #~ "is impossible to distinguish it from usual links."
363
+ #~ msgstr ""
364
+ #~ "Заменяет ссылки авторов комментариев на JavaScript код, его невозможно "
365
+ #~ "отличить от обычной ссылки."
366
+
367
+ #~ msgid "In some Wordpress topics this may not work."
368
+ #~ msgstr "В некоторых темах Wordpress это может не сработать."
369
+
370
+ #~ msgid "Disable XML-RPC"
371
+ #~ msgstr "Отключить XML-RPC"
372
+
373
+ #~ msgid ""
374
+ #~ "A pingback is basically an automated comment that gets created when "
375
+ #~ "another blog links to you. A self-pingback is created when you link to an "
376
+ #~ "article within your own blog. Pingbacks are essentially nothing more than "
377
+ #~ "spam and simply waste resources."
378
+ #~ msgstr ""
379
+ #~ "Pingback по-существу автоматизированных комментарий, который создается, "
380
+ #~ "когда другой блог ссылается на вас. Self-pingback создается, когда вы "
381
+ #~ "оставили ссылку на статью в своем блоге. Pingbacks по существу являются "
382
+ #~ "не более чем спам и пустая трата ресурсов вашего сайта."
383
+
384
+ #~ msgid "Removes the server responses a reference to the xmlrpc file."
385
+ #~ msgstr "Удаляет ссылку на xmlrpc-файл и ответ сервера."
386
+
387
+ #~ msgid ""
388
+ #~ "We found that you have the \"Clearfy - disable unused features\" plugin "
389
+ #~ "installed, this plugin already has disable comments functions, so you can "
390
+ #~ "deactivate plugin \"Comments tweaks\"!"
391
+ #~ msgstr ""
392
+ #~ "Мы обнаружили, что у вас установлен плагин «Clearfy - отключить "
393
+ #~ "неиспользуемые функции», этот плагин уже имеет функции отключения "
394
+ #~ "комментариев, поэтому вы можете отключить плагин «Инструменты "
395
+ #~ "комментариев»!"
396
+
397
+ #~ msgid "Webcraftic comments tweaks"
398
+ #~ msgstr "Webcraftic инструменты комментариев"
399
+
400
+ #~ msgid "Comments are closed."
401
+ #~ msgstr "Комментарии Закрыты."
402
+
403
+ #~ msgid ""
404
+ #~ "Note: The <em>%s</em> plugin is currently active, and comments are "
405
+ #~ "completely disabled on: %s. Many of the settings below will not be "
406
+ #~ "applicable for those post types."
407
+ #~ msgstr ""
408
+ #~ "Примечание. Плагин <em>%s</em> в настоящий момент активен, и комментарии "
409
+ #~ "полностью отключены: %s. Многие из приведенных ниже настроек не будут "
410
+ #~ "применяться для этих типов сообщений."
411
+
412
+ #~ msgid ""
413
+ #~ "We found that you have the \"Clearfy - disable unused features\" plugin "
414
+ #~ "installed, this plugin already has disable comments functions, so you can "
415
+ #~ "deactivate plugin \"Disable comments\"!"
416
+ #~ msgstr ""
417
+ #~ "Мы обнаружили, что у вас установлен плагин «Clearfy - отключить "
418
+ #~ "неиспользуемые функции», этот плагин уже имеет функции отключения "
419
+ #~ "комментариев, поэтому вы можете отключить плагин «Отключить комментарии»!"
420
+
421
+ #~ msgid "Webcraftic Disable comments"
422
+ #~ msgstr "Webcraftic отключить комментарии"
libs/factory/bootstrap/includes/functions.php CHANGED
@@ -122,7 +122,7 @@
122
 
123
  do_action('wbcr_factory_400_bootstrap_enqueue_scripts', $hook);
124
  do_action('wbcr_factory_400_bootstrap_enqueue_scripts_' . $this->plugin->getPluginName(), $hook);
125
-
126
  $dependencies = array();
127
  if( !empty($this->scripts) ) {
128
  $dependencies[] = 'jquery';
@@ -151,7 +151,9 @@
151
  $color_name = get_user_meta($user_id, 'admin_color', true);
152
 
153
  if( $color_name !== 'fresh' ) {
154
- wp_enqueue_style('wbcr-factory-bootstrap-400-colors', FACTORY_BOOTSTRAP_400_URL . '/assets/flat/css/bootstrap.' . $color_name . '.css');
 
 
155
  }
156
 
157
  if( $color_name == 'light' ) {
122
 
123
  do_action('wbcr_factory_400_bootstrap_enqueue_scripts', $hook);
124
  do_action('wbcr_factory_400_bootstrap_enqueue_scripts_' . $this->plugin->getPluginName(), $hook);
125
+
126
  $dependencies = array();
127
  if( !empty($this->scripts) ) {
128
  $dependencies[] = 'jquery';
151
  $color_name = get_user_meta($user_id, 'admin_color', true);
152
 
153
  if( $color_name !== 'fresh' ) {
154
+ if( file_exists(FACTORY_BOOTSTRAP_400_DIR . '/assets/flat/css/bootstrap.' . $color_name . '.css') ) {
155
+ wp_enqueue_style('wbcr-factory-bootstrap-400-colors', FACTORY_BOOTSTRAP_400_URL . '/assets/flat/css/bootstrap.' . $color_name . '.css');
156
+ }
157
  }
158
 
159
  if( $color_name == 'light' ) {
libs/factory/clearfy/boot.php CHANGED
@@ -32,6 +32,6 @@
32
  return;
33
  }
34
 
35
- if( defined('FACTORY_PAGES_400_LOADED') ) {
36
  require(FACTORY_CLEARFY_200_DIR . '/pages/more-features.php');
37
  }
32
  return;
33
  }
34
 
35
+ if( defined('FACTORY_PAGES_401_LOADED') ) {
36
  require(FACTORY_CLEARFY_200_DIR . '/pages/more-features.php');
37
  }
libs/factory/clearfy/includes/class.helpers.php CHANGED
@@ -18,6 +18,23 @@
18
  if( !class_exists('WbcrFactoryClearfy200_Helpers') ) {
19
  class WbcrFactoryClearfy200_Helpers {
20
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
21
  /**
22
  * Display 404 page to bump bots and bad guys
23
  *
18
  if( !class_exists('WbcrFactoryClearfy200_Helpers') ) {
19
  class WbcrFactoryClearfy200_Helpers {
20
 
21
+ /**
22
+ * Is permalink enabled?
23
+ * @global WP_Rewrite $wp_rewrite
24
+ * @since 1.0.0
25
+ * @return bool
26
+ */
27
+ public static function isPermalink()
28
+ {
29
+ global $wp_rewrite;
30
+
31
+ if( !isset($wp_rewrite) || !is_object($wp_rewrite) || !$wp_rewrite->using_permalinks() ) {
32
+ return false;
33
+ }
34
+
35
+ return true;
36
+ }
37
+
38
  /**
39
  * Display 404 page to bump bots and bad guys
40
  *
libs/factory/clearfy/pages/more-features.php CHANGED
@@ -16,7 +16,7 @@
16
 
17
  if( !class_exists('Wbcr_FactoryClearfy200_MoreFeaturesPage') ) {
18
 
19
- class Wbcr_FactoryClearfy200_MoreFeaturesPage extends Wbcr_FactoryPages400_ImpressiveThemplate {
20
 
21
  public $id = "more_features";
22
 
@@ -31,6 +31,8 @@
31
  $this->menu_title = __('More features (<b>free</b>)', 'wbcr_factory_clearfy_200');
32
 
33
  parent::__construct($plugin);
 
 
34
  }
35
 
36
  public function getPageTitle()
@@ -64,7 +66,7 @@
64
  <div class="wbcr-factory-feature-box">
65
  <span class="dashicons dashicons-shield-alt"></span>
66
 
67
- <h3><?php _e('Site ptotection', 'wbcr_factory_clearfy_200')?></h3>
68
 
69
  <p><?php _e('Enables and disables features that improve the protection of your site.', 'wbcr_factory_clearfy_200')?></p>
70
  </div>
@@ -128,7 +130,15 @@
128
  </div>
129
 
130
  <div class="wbcr-factory-buttons-wrap">
131
- <a href="https://goo.gl/TcMcS4" class="wbcr-factory-premium-button" target="_blank">
 
 
 
 
 
 
 
 
132
  <?php _e('Get the ultimate plugin 100% FREE', 'wbcr_factory_clearfy_200')?>
133
  </a>
134
  </div>
16
 
17
  if( !class_exists('Wbcr_FactoryClearfy200_MoreFeaturesPage') ) {
18
 
19
+ class Wbcr_FactoryClearfy200_MoreFeaturesPage extends Wbcr_FactoryPages401_ImpressiveThemplate {
20
 
21
  public $id = "more_features";
22
 
31
  $this->menu_title = __('More features (<b>free</b>)', 'wbcr_factory_clearfy_200');
32
 
33
  parent::__construct($plugin);
34
+
35
+ $this->plugin = $plugin;
36
  }
37
 
38
  public function getPageTitle()
66
  <div class="wbcr-factory-feature-box">
67
  <span class="dashicons dashicons-shield-alt"></span>
68
 
69
+ <h3><?php _e('Site protection', 'wbcr_factory_clearfy_200')?></h3>
70
 
71
  <p><?php _e('Enables and disables features that improve the protection of your site.', 'wbcr_factory_clearfy_200')?></p>
72
  </div>
130
  </div>
131
 
132
  <div class="wbcr-factory-buttons-wrap">
133
+ <?php
134
+ $url = 'https://clearfy.pro';
135
+
136
+ if( get_locale() == 'ru_RU' ) {
137
+ $url = 'https://ru.clearfy.pro';
138
+ }
139
+ $url .= '?utm_source=wordpress.org&utm_campaign=' . $this->plugin->getPluginName();
140
+ ?>
141
+ <a href="<?= $url ?>" class="wbcr-factory-premium-button" target="_blank">
142
  <?php _e('Get the ultimate plugin 100% FREE', 'wbcr_factory_clearfy_200')?>
143
  </a>
144
  </div>
libs/factory/core/includes/base.class.php CHANGED
@@ -22,9 +22,9 @@
22
  protected $prefix;
23
 
24
  /**
25
- * Экзамеляр класса FactoryPages400_Request, необходим управляет http запросами
26
  *
27
- * @var FactoryPages400_Request
28
  */
29
  public $request;
30
 
22
  protected $prefix;
23
 
24
  /**
25
+ * Экзамеляр класса Wbcr_Factory400_Request, необходим управляет http запросами
26
  *
27
+ * @var Wbcr_Factory400_Request
28
  */
29
  public $request;
30
 
libs/factory/core/includes/plugin.class.php CHANGED
@@ -97,11 +97,6 @@
97
  */
98
  protected $updates;
99
 
100
- /**
101
- * @var Wbcr_Factory400_Plugin
102
- */
103
- private static $app;
104
-
105
  /**
106
  * @var array[] Wbcr_Factory400_Plugin
107
  */
@@ -132,8 +127,6 @@
132
  }
133
  }
134
 
135
- self::$app = $this;
136
-
137
  $this->is_admin = is_admin();
138
 
139
  if( empty($this->prefix) || empty($this->plugin_title) || empty($this->plugin_version) || empty($this->plugin_build) ) {
@@ -161,15 +154,6 @@
161
  }
162
  }
163
 
164
-
165
- /**
166
- * @return WHM_Plugin
167
- */
168
- public static function app()
169
- {
170
- return self::$app;
171
- }
172
-
173
  /**
174
  * @return string
175
  */
@@ -270,7 +254,27 @@
270
  if( !class_exists($class_name) ) {
271
  throw new Exception('A class with this name {' . $class_name . '} does not exist.');
272
  }
273
- Wbcr_FactoryPages400::register($this, $class_name);
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
274
  }
275
 
276
  /**
97
  */
98
  protected $updates;
99
 
 
 
 
 
 
100
  /**
101
  * @var array[] Wbcr_Factory400_Plugin
102
  */
127
  }
128
  }
129
 
 
 
130
  $this->is_admin = is_admin();
131
 
132
  if( empty($this->prefix) || empty($this->plugin_title) || empty($this->plugin_version) || empty($this->plugin_build) ) {
154
  }
155
  }
156
 
 
 
 
 
 
 
 
 
 
157
  /**
158
  * @return string
159
  */
254
  if( !class_exists($class_name) ) {
255
  throw new Exception('A class with this name {' . $class_name . '} does not exist.');
256
  }
257
+ Wbcr_FactoryPages401::register($this, $class_name);
258
+ }
259
+
260
+ /**
261
+ * @param string $class_name
262
+ * @param string $path
263
+ */
264
+ public function registerType($class_name, $file_path)
265
+ {
266
+
267
+ if( !file_exists($file_path) ) {
268
+ throw new Exception('The page file was not found by the path {' . $file_path . '} you set.');
269
+ }
270
+
271
+ require_once($file_path);
272
+
273
+ if( !class_exists($class_name) ) {
274
+ throw new Exception('A class with this name {' . $class_name . '} does not exist.');
275
+ }
276
+
277
+ Wbcr_FactoryTypes000::register($class_name, $this);
278
  }
279
 
280
  /**
libs/factory/core/includes/request.class.php CHANGED
@@ -19,7 +19,7 @@
19
  $sanitize_function_name = 'sanitize_text_field';
20
  $method = $_REQUEST;
21
 
22
- switch( mb_strtoupper($method_name) ) {
23
  case 'GET':
24
  $method = $_GET;
25
  break;
19
  $sanitize_function_name = 'sanitize_text_field';
20
  $method = $_REQUEST;
21
 
22
+ switch( strtoupper($method_name) ) {
23
  case 'GET':
24
  $method = $_GET;
25
  break;
libs/factory/forms/boot.php CHANGED
@@ -56,7 +56,7 @@
56
  * @param Wbcr_Factory400_Plugin $plugin
57
  * @throws Exception
58
  */
59
- function wbcr_factory_forms_400_register_default_controls($plugin)
60
  {
61
 
62
  if( $plugin && !isset($plugin->forms) ) {
56
  * @param Wbcr_Factory400_Plugin $plugin
57
  * @throws Exception
58
  */
59
+ function wbcr_factory_forms_400_register_default_controls(Wbcr_Factory400_Plugin $plugin)
60
  {
61
 
62
  if( $plugin && !isset($plugin->forms) ) {
libs/factory/forms/includes/form.class.php CHANGED
@@ -262,18 +262,18 @@
262
  *
263
  * @since 1.0.0
264
  * @param array $options
265
- * @param Wbcr_Factory400_Plugin|null $plugin
266
  */
267
- public function __construct($options = array(), $plugin = null)
268
  {
269
  // register controls once, when the first form is created
270
  if( !Wbcr_FactoryForms400_Manager::$controls_registered ) {
271
 
272
  do_action('wbcr_factory_forms_400_register_controls', $plugin);
273
 
274
- if( !empty($plugin) ) {
275
- do_action('wbcr_factory_forms_400_register_controls_' . $plugin->getPluginName(), $plugin);
276
- }
277
 
278
  Wbcr_FactoryForms400_Manager::$controls_registered = true;
279
  }
262
  *
263
  * @since 1.0.0
264
  * @param array $options
265
+ * @param Wbcr_Factory400_Plugin $plugin
266
  */
267
+ public function __construct(array $options = array(), Wbcr_Factory400_Plugin $plugin)
268
  {
269
  // register controls once, when the first form is created
270
  if( !Wbcr_FactoryForms400_Manager::$controls_registered ) {
271
 
272
  do_action('wbcr_factory_forms_400_register_controls', $plugin);
273
 
274
+ //if( !empty($plugin) ) {
275
+ do_action('wbcr_factory_forms_400_register_controls_' . $plugin->getPluginName(), $plugin);
276
+ //}
277
 
278
  Wbcr_FactoryForms400_Manager::$controls_registered = true;
279
  }
libs/factory/forms/includes/providers/meta-value-provider.class.php CHANGED
@@ -8,14 +8,14 @@
8
  * @package factory-forms
9
  * @since 1.0.0
10
  */
11
-
12
  // Exit if accessed directly
13
  if( !defined('ABSPATH') ) {
14
  exit;
15
  }
16
-
17
  if( !class_exists('Wbcr_FactoryForms400_OptionsValueProvider') ) {
18
-
19
  /**
20
  * Factory Meta Value Provider
21
  *
@@ -26,22 +26,26 @@
26
  */
27
  class Wbcr_FactoryForms400_MetaValueProvider implements Wbcr_IFactoryForms400_ValueProvider {
28
 
 
 
 
 
 
29
  /**
30
  * Values to save $metaName => $metaValue
31
  * @var array
32
  */
33
  private $values = array();
34
-
35
  /**
36
  * Chanched meta keys (indexed array)
37
  * @var array
38
  */
39
  private $keys = array();
40
-
41
  private $meta = array();
42
 
43
- public $scope;
44
-
45
  /**
46
  * Creates a new instance of a meta value provider.
47
  *
@@ -50,57 +54,60 @@
50
  public function __construct($options = array())
51
  {
52
  global $post;
53
-
54
  $this->scope = (isset($options['scope']))
55
  ? $options['scope']
56
  : null;
57
-
58
  $this->scope = preg_replace('/\_meta\_box$/', '', $this->formatCamelCase($this->scope));
59
-
60
- $this->post_id = (isset($options['postId']))
61
- ? $options['postId']
62
  : $post->ID;
63
-
64
  // the second parameter for compatibility with wordpress 3.0
65
- $temp = get_post_meta($this->post_id, '');
66
-
67
  foreach($temp as $key => &$content) {
68
  if( strpos($key, $this->scope) === 0 ) {
69
  $this->meta[$key] = $content;
70
  }
71
- }
72
- }
73
 
 
 
 
74
  /**
75
  * Initizalize an instance of the provider.
76
  * This method should be invoked before the provider usage.
77
  *
78
- * @param bool $postId
79
  */
80
- public function init($postId = false)
81
  {
82
  global $post;
83
-
84
- $this->post_id = $postId
85
- ? $postId
86
  : $post->ID;
87
-
88
  // the second parameter for compatibility with wordpress 3.0
89
- $temp = get_post_meta($this->post_id, '');
 
90
  foreach($temp as $key => &$content) {
91
  if( strpos($key, $this->scope) === 0 ) {
92
  $this->meta[$key] = $content;
93
  }
94
  }
95
  }
96
-
97
  /**
98
  * Saves changes into a database.
99
  * The method is optimized for bulk updates.
100
  */
101
  public function saveChanges()
102
  {
103
-
104
  $this->deleteValues();
105
  $this->insertValues();
106
  /**
@@ -109,7 +116,7 @@
109
  * }
110
  */
111
  }
112
-
113
  /**
114
  * Removes all actual values from a database.
115
  */
@@ -118,18 +125,21 @@
118
  if( count($this->keys) == 0 ) {
119
  return;
120
  }
121
-
122
  global $wpdb;
123
 
124
- $keys = array();
 
 
125
  for($i = 0; $i < count($this->keys); $i++) {
126
- $keys[] = '\'' . $this->keys[$i] . '\'';
 
127
  }
128
 
129
- $clause = implode(',', $keys);
130
- $wpdb->query($wpdb->prepare("DELETE FROM {$wpdb->postmeta} WHERE post_id='%d' AND meta_key IN (%s)", $this->post_id, $clause));
131
  }
132
-
133
  /**
134
  * /**
135
  * Inserts new values by using bulk insert directly into a database.
@@ -139,10 +149,10 @@
139
  private function insertValues()
140
  {
141
  global $wpdb;
142
-
143
  $sql = "INSERT INTO {$wpdb->postmeta} (post_id, meta_key, meta_value) VALUES ";
144
  $rows = array();
145
-
146
  foreach($this->values as $meta_key => $meta_value) {
147
  if( is_array($meta_value) ) {
148
  foreach($meta_value as $value) {
@@ -152,16 +162,16 @@
152
  $rows[] = $wpdb->prepare('(%d,%s,%s)', $this->post_id, $meta_key, $meta_value);
153
  }
154
  }
155
-
156
  if( empty($rows) ) {
157
  return false;
158
  }
159
-
160
  $sql = $sql . implode(',', $rows);
161
-
162
  return $wpdb->query($sql);
163
  }
164
-
165
  /**
166
  * @param string $name
167
  * @param null $default
@@ -171,27 +181,27 @@
171
  public function getValue($name, $default = null, $multiple = false)
172
  {
173
  if( is_array($name) ) {
174
-
175
  $values = array();
176
  $index = 0;
177
-
178
  foreach($name as $item) {
179
  $item_default = ($default && is_array($default) && isset($default[$index]))
180
  ? $default[$index]
181
  : null;
182
-
183
  $values[] = $this->getValueBySingleName($item, $item_default, $multiple);
184
  $index++;
185
  }
186
-
187
  return $values;
188
  }
189
-
190
  $value = $this->getValueBySingleName($name, $default, $multiple);
191
-
192
  return $value;
193
  }
194
-
195
  /**
196
  * @param $single_name
197
  * @param null $default
@@ -200,50 +210,50 @@
200
  */
201
  protected function getValueBySingleName($single_name, $default = null, $multiple = false)
202
  {
203
-
204
  $value = isset($this->meta[$this->scope . '_' . $single_name])
205
  ? ($multiple)
206
  ? $this->meta[$this->scope . '_' . $single_name]
207
  : $this->meta[$this->scope . '_' . $single_name][0]
208
  : $default;
209
-
210
  if( $value === 'true' ) {
211
  $value = 1;
212
  }
213
  if( $value === 'false' ) {
214
  $value = 0;
215
  }
216
-
217
  return $value;
218
  }
219
-
220
  /**
221
  * @param string $name
222
  * @param mixed $value
223
  */
224
  public function setValue($name, $value)
225
  {
226
-
227
  if( is_array($name) ) {
228
  $index = 0;
229
-
230
  foreach($name as $item) {
231
  $itemValue = ($value && is_array($value) && isset($value[$index]))
232
  ? $value[$index]
233
  : null;
234
-
235
  $this->setValueBySingleName($item, $itemValue);
236
  $index++;
237
  }
238
-
239
  return;
240
  }
241
-
242
  $this->setValueBySingleName($name, $value);
243
-
244
  return;
245
  }
246
-
247
  /**
248
  * @param string $single_name
249
  * @param mixed $singe_value
@@ -251,27 +261,27 @@
251
  protected function setValueBySingleName($single_name, $singe_value)
252
  {
253
  $name = $this->scope . '_' . $single_name;
254
-
255
  if( is_array($singe_value) ) {
256
-
257
  foreach($singe_value as $index => $value) {
258
-
259
  $singe_value[$index] = empty($singe_value[$index])
260
  ? $singe_value[$index]
261
  : stripslashes($singe_value[$index]);
262
  }
263
-
264
  $value = $singe_value;
265
  } else {
266
  $value = empty($singe_value)
267
  ? $singe_value
268
  : stripslashes($singe_value);
269
  }
270
-
271
  $this->values[$name] = $value;
272
  $this->keys[] = $name;
273
  }
274
-
275
  /**
276
  * @param string $string
277
  * @return string
@@ -286,7 +296,7 @@
286
  $output .= $char;
287
  }
288
  $output = strtolower($output);
289
-
290
  return $output;
291
  }
292
  }
8
  * @package factory-forms
9
  * @since 1.0.0
10
  */
11
+
12
  // Exit if accessed directly
13
  if( !defined('ABSPATH') ) {
14
  exit;
15
  }
16
+
17
  if( !class_exists('Wbcr_FactoryForms400_OptionsValueProvider') ) {
18
+
19
  /**
20
  * Factory Meta Value Provider
21
  *
26
  */
27
  class Wbcr_FactoryForms400_MetaValueProvider implements Wbcr_IFactoryForms400_ValueProvider {
28
 
29
+
30
+ public $scope;
31
+
32
+ protected $post_id;
33
+
34
  /**
35
  * Values to save $metaName => $metaValue
36
  * @var array
37
  */
38
  private $values = array();
39
+
40
  /**
41
  * Chanched meta keys (indexed array)
42
  * @var array
43
  */
44
  private $keys = array();
45
+
46
  private $meta = array();
47
 
48
+
 
49
  /**
50
  * Creates a new instance of a meta value provider.
51
  *
54
  public function __construct($options = array())
55
  {
56
  global $post;
57
+
58
  $this->scope = (isset($options['scope']))
59
  ? $options['scope']
60
  : null;
61
+
62
  $this->scope = preg_replace('/\_meta\_box$/', '', $this->formatCamelCase($this->scope));
63
+
64
+ /*$this->post_id = (isset($options['post_id']))
65
+ ? $options['post_id']
66
  : $post->ID;
67
+
68
  // the second parameter for compatibility with wordpress 3.0
69
+ $temp = get_post_meta($this->post_id, '', true);
70
+
71
  foreach($temp as $key => &$content) {
72
  if( strpos($key, $this->scope) === 0 ) {
73
  $this->meta[$key] = $content;
74
  }
75
+ }*/
 
76
 
77
+ $this->init();
78
+ }
79
+
80
  /**
81
  * Initizalize an instance of the provider.
82
  * This method should be invoked before the provider usage.
83
  *
84
+ * @param bool $post_id
85
  */
86
+ public function init($post_id = false)
87
  {
88
  global $post;
89
+
90
+ $this->post_id = $post_id
91
+ ? $post_id
92
  : $post->ID;
93
+
94
  // the second parameter for compatibility with wordpress 3.0
95
+ $temp = get_post_meta($this->post_id, '', true);
96
+
97
  foreach($temp as $key => &$content) {
98
  if( strpos($key, $this->scope) === 0 ) {
99
  $this->meta[$key] = $content;
100
  }
101
  }
102
  }
103
+
104
  /**
105
  * Saves changes into a database.
106
  * The method is optimized for bulk updates.
107
  */
108
  public function saveChanges()
109
  {
110
+
111
  $this->deleteValues();
112
  $this->insertValues();
113
  /**
116
  * }
117
  */
118
  }
119
+
120
  /**
121
  * Removes all actual values from a database.
122
  */
125
  if( count($this->keys) == 0 ) {
126
  return;
127
  }
128
+
129
  global $wpdb;
130
 
131
+ $values = array();
132
+ $keys[] = $this->post_id;
133
+
134
  for($i = 0; $i < count($this->keys); $i++) {
135
+ $values[] = '%s';
136
+ $keys[] = $this->keys[$i];
137
  }
138
 
139
+ $clause = implode(',', $values);
140
+ $wpdb->query($wpdb->prepare("DELETE FROM {$wpdb->postmeta} WHERE post_id='%d' AND meta_key IN ($clause)", $keys));
141
  }
142
+
143
  /**
144
  * /**
145
  * Inserts new values by using bulk insert directly into a database.
149
  private function insertValues()
150
  {
151
  global $wpdb;
152
+
153
  $sql = "INSERT INTO {$wpdb->postmeta} (post_id, meta_key, meta_value) VALUES ";
154
  $rows = array();
155
+
156
  foreach($this->values as $meta_key => $meta_value) {
157
  if( is_array($meta_value) ) {
158
  foreach($meta_value as $value) {
162
  $rows[] = $wpdb->prepare('(%d,%s,%s)', $this->post_id, $meta_key, $meta_value);
163
  }
164
  }
165
+
166
  if( empty($rows) ) {
167
  return false;
168
  }
169
+
170
  $sql = $sql . implode(',', $rows);
171
+
172
  return $wpdb->query($sql);
173
  }
174
+
175
  /**
176
  * @param string $name
177
  * @param null $default
181
  public function getValue($name, $default = null, $multiple = false)
182
  {
183
  if( is_array($name) ) {
184
+
185
  $values = array();
186
  $index = 0;
187
+
188
  foreach($name as $item) {
189
  $item_default = ($default && is_array($default) && isset($default[$index]))
190
  ? $default[$index]
191
  : null;
192
+
193
  $values[] = $this->getValueBySingleName($item, $item_default, $multiple);
194
  $index++;
195
  }
196
+
197
  return $values;
198
  }
199
+
200
  $value = $this->getValueBySingleName($name, $default, $multiple);
201
+
202
  return $value;
203
  }
204
+
205
  /**
206
  * @param $single_name
207
  * @param null $default
210
  */
211
  protected function getValueBySingleName($single_name, $default = null, $multiple = false)
212
  {
213
+
214
  $value = isset($this->meta[$this->scope . '_' . $single_name])
215
  ? ($multiple)
216
  ? $this->meta[$this->scope . '_' . $single_name]
217
  : $this->meta[$this->scope . '_' . $single_name][0]
218
  : $default;
219
+
220
  if( $value === 'true' ) {
221
  $value = 1;
222
  }
223
  if( $value === 'false' ) {
224
  $value = 0;
225
  }
226
+
227
  return $value;
228
  }
229
+
230
  /**
231
  * @param string $name
232
  * @param mixed $value
233
  */
234
  public function setValue($name, $value)
235
  {
236
+
237
  if( is_array($name) ) {
238
  $index = 0;
239
+
240
  foreach($name as $item) {
241
  $itemValue = ($value && is_array($value) && isset($value[$index]))
242
  ? $value[$index]
243
  : null;
244
+
245
  $this->setValueBySingleName($item, $itemValue);
246
  $index++;
247
  }
248
+
249
  return;
250
  }
251
+
252
  $this->setValueBySingleName($name, $value);
253
+
254
  return;
255
  }
256
+
257
  /**
258
  * @param string $single_name
259
  * @param mixed $singe_value
261
  protected function setValueBySingleName($single_name, $singe_value)
262
  {
263
  $name = $this->scope . '_' . $single_name;
264
+
265
  if( is_array($singe_value) ) {
266
+
267
  foreach($singe_value as $index => $value) {
268
+
269
  $singe_value[$index] = empty($singe_value[$index])
270
  ? $singe_value[$index]
271
  : stripslashes($singe_value[$index]);
272
  }
273
+
274
  $value = $singe_value;
275
  } else {
276
  $value = empty($singe_value)
277
  ? $singe_value
278
  : stripslashes($singe_value);
279
  }
280
+
281
  $this->values[$name] = $value;
282
  $this->keys[] = $name;
283
  }
284
+
285
  /**
286
  * @param string $string
287
  * @return string
296
  $output .= $char;
297
  }
298
  $output = strtolower($output);
299
+
300
  return $output;
301
  }
302
  }
libs/factory/pages/boot.php CHANGED
@@ -19,22 +19,22 @@
19
  return;
20
  }
21
 
22
- if( defined('FACTORY_PAGES_400_LOADED') ) {
23
  return;
24
  }
25
- define('FACTORY_PAGES_400_LOADED', true);
26
 
27
- define('FACTORY_PAGES_400_DIR', dirname(__FILE__));
28
- define('FACTORY_PAGES_400_URL', plugins_url(null, __FILE__));
29
 
30
  if( !defined('FACTORY_FLAT_ADMIN') ) {
31
  define('FACTORY_FLAT_ADMIN', true);
32
  }
33
 
34
- load_plugin_textdomain('wbcr_factory_pages_400', false, dirname(plugin_basename(__FILE__)) . '/langs');
35
 
36
- require(FACTORY_PAGES_400_DIR . '/pages.php');
37
- require(FACTORY_PAGES_400_DIR . '/includes/page.class.php');
38
- require(FACTORY_PAGES_400_DIR . '/includes/admin-page.class.php');
39
- require(FACTORY_PAGES_400_DIR . '/templates/impressive-page.class.php');
40
 
19
  return;
20
  }
21
 
22
+ if( defined('FACTORY_PAGES_401_LOADED') ) {
23
  return;
24
  }
25
+ define('FACTORY_PAGES_401_LOADED', true);
26
 
27
+ define('FACTORY_PAGES_401_DIR', dirname(__FILE__));
28
+ define('FACTORY_PAGES_401_URL', plugins_url(null, __FILE__));
29
 
30
  if( !defined('FACTORY_FLAT_ADMIN') ) {
31
  define('FACTORY_FLAT_ADMIN', true);
32
  }
33
 
34
+ load_plugin_textdomain('wbcr_factory_pages_401', false, dirname(plugin_basename(__FILE__)) . '/langs');
35
 
36
+ require(FACTORY_PAGES_401_DIR . '/pages.php');
37
+ require(FACTORY_PAGES_401_DIR . '/includes/page.class.php');
38
+ require(FACTORY_PAGES_401_DIR . '/includes/admin-page.class.php');
39
+ require(FACTORY_PAGES_401_DIR . '/templates/impressive-page.class.php');
40
 
libs/factory/pages/includes/admin-page.class.php CHANGED
@@ -14,9 +14,9 @@
14
  exit;
15
  }
16
 
17
- if( !class_exists('Wbcr_FactoryPages400_AdminPage') ) {
18
 
19
- class Wbcr_FactoryPages400_AdminPage extends Wbcr_FactoryPages400_Page {
20
 
21
  /**
22
  * Visible page title.
@@ -51,7 +51,7 @@
51
  * @link http://codex.wordpress.org/Function_Reference/add_menu_page
52
  * @var string
53
  */
54
- public $menuPosition = null;
55
 
56
  /**
57
  * Menu type. Set it to add the page to the specified type menu.
@@ -278,7 +278,7 @@
278
  add_menu_page($this->page_title, $this->menu_title, $this->capabilitiy, $result_id, array(
279
  $this,
280
  'show'
281
- ), null, $this->menuPosition);
282
 
283
  if( !empty($this->menu_sub_title) ) {
284
 
@@ -316,10 +316,10 @@
316
  * @param string $action
317
  * @param array $query_args
318
  */
319
- protected function redirectToAction($action, $query_args = array())
320
  {
321
 
322
- wp_redirect($this->getActionUrl($action, $query_args));
323
  exit;
324
  }
325
 
14
  exit;
15
  }
16
 
17
+ if( !class_exists('Wbcr_FactoryPages401_AdminPage') ) {
18
 
19
+ class Wbcr_FactoryPages401_AdminPage extends Wbcr_FactoryPages401_Page {
20
 
21
  /**
22
  * Visible page title.
51
  * @link http://codex.wordpress.org/Function_Reference/add_menu_page
52
  * @var string
53
  */
54
+ public $menu_position = null;
55
 
56
  /**
57
  * Menu type. Set it to add the page to the specified type menu.
278
  add_menu_page($this->page_title, $this->menu_title, $this->capabilitiy, $result_id, array(
279
  $this,
280
  'show'
281
+ ), null, $this->menu_position);
282
 
283
  if( !empty($this->menu_sub_title) ) {
284
 
316
  * @param string $action
317
  * @param array $query_args
318
  */
319
+ public function redirectToAction($action, $query_args = array())
320
  {
321
 
322
+ wp_safe_redirect($this->getActionUrl($action, $query_args));
323
  exit;
324
  }
325
 
libs/factory/pages/includes/page.class.php CHANGED
@@ -14,9 +14,9 @@
14
  exit;
15
  }
16
 
17
- if( !class_exists('Wbcr_FactoryPages400_Page') ) {
18
 
19
- class Wbcr_FactoryPages400_Page {
20
 
21
  /**
22
  * Page id used to call.
14
  exit;
15
  }
16
 
17
+ if( !class_exists('Wbcr_FactoryPages401_Page') ) {
18
 
19
+ class Wbcr_FactoryPages401_Page {
20
 
21
  /**
22
  * Page id used to call.
libs/factory/pages/langs/{wbcr_factory_pages_400-fr_FR.mo → wbcr_factory_pages_401-fr_FR.mo} RENAMED
File without changes
libs/factory/pages/langs/{wbcr_factory_pages_400-fr_FR.po → wbcr_factory_pages_401-fr_FR.po} RENAMED
File without changes
libs/factory/pages/langs/{wbcr_factory_pages_400-ru_RU.mo → wbcr_factory_pages_401-ru_RU.mo} RENAMED
File without changes
libs/factory/pages/langs/{wbcr_factory_pages_400-ru_RU.po → wbcr_factory_pages_401-ru_RU.po} RENAMED
File without changes
libs/factory/pages/pages.php CHANGED
@@ -14,18 +14,18 @@
14
  exit;
15
  }
16
 
17
- add_action('admin_menu', 'Wbcr_FactoryPages400::actionAdminMenu');
18
 
19
- if( !class_exists('Wbcr_FactoryPages400') ) {
20
  /**
21
  * A base class to manage pages.
22
  *
23
  * @since 1.0.0
24
  */
25
- class Wbcr_FactoryPages400 {
26
 
27
  /**
28
- * @var Wbcr_FactoryPages400_Page[]
29
  */
30
  private static $pages = array();
31
 
@@ -73,14 +73,14 @@
73
  }
74
  }
75
 
76
- if( !function_exists('wbcr_factory_pages_400_get_page_id') ) {
77
  /**
78
  *
79
  * @param Wbcr_Factory400_Plugin $plugin
80
  * @param string $page_id
81
  * @return string
82
  */
83
- function wbcr_factory_pages_400_get_page_id($plugin, $page_id)
84
  {
85
  return $page_id . '-' . $plugin->getPluginName();
86
  }
14
  exit;
15
  }
16
 
17
+ add_action('admin_menu', 'Wbcr_FactoryPages401::actionAdminMenu');
18
 
19
+ if( !class_exists('Wbcr_FactoryPages401') ) {
20
  /**
21
  * A base class to manage pages.
22
  *
23
  * @since 1.0.0
24
  */
25
+ class Wbcr_FactoryPages401 {
26
 
27
  /**
28
+ * @var Wbcr_FactoryPages401_Page[]
29
  */
30
  private static $pages = array();
31
 
73
  }
74
  }
75
 
76
+ if( !function_exists('wbcr_factory_pages_401_get_page_id') ) {
77
  /**
78
  *
79
  * @param Wbcr_Factory400_Plugin $plugin
80
  * @param string $page_id
81
  * @return string
82
  */
83
+ function wbcr_factory_pages_401_get_page_id($plugin, $page_id)
84
  {
85
  return $page_id . '-' . $plugin->getPluginName();
86
  }
libs/factory/pages/templates/assets/css/impressive.page.template.css CHANGED
@@ -8,7 +8,7 @@
8
  #WBCR .error {
9
  display: none !important;
10
  }
11
- #WBCR .wbcr-factory-pages-400-impressive-page-template {
12
  position: relative;
13
  /**
14
  Content sections
@@ -17,124 +17,124 @@
17
  Widget in the sidebar of the plugin
18
  */
19
  }
20
- #WBCR .wbcr-factory-pages-400-impressive-page-template .form-group {
21
  padding: 0 20px;
22
  }
23
- #WBCR .wbcr-factory-pages-400-impressive-page-template .form-group label {
24
  font-weight: normal;
25
  }
26
- #WBCR .wbcr-factory-pages-400-impressive-page-template .form-horizontal .control-label {
27
  max-width: 300px;
28
  }
29
- #WBCR .wbcr-factory-pages-400-impressive-page-template .factory-control-buttons {
30
  text-align: right;
31
  padding-right: 20px;
32
  }
33
- #WBCR .wbcr-factory-pages-400-impressive-page-template .factory-from-control-list label span {
34
  display: inline-block;
35
  vertical-align: bottom;
36
  }
37
- #WBCR .wbcr-factory-pages-400-impressive-page-template .factory-from-control-list label span input[type="checkbox"],
38
- #WBCR .wbcr-factory-pages-400-impressive-page-template .factory-from-control-list label span input[type="checkbox"]:focus {
39
  outline: none;
40
  }
41
- #WBCR .wbcr-factory-pages-400-impressive-page-template .alert {
42
  font-weight: bold;
43
  margin: 0 !important;
44
  border: 0;
45
  border-radius: 0;
46
  padding: 15px;
47
  }
48
- #WBCR .wbcr-factory-pages-400-impressive-page-template .alert + .wbcr-factory-page-group-header {
49
  margin-top: 0 !important;
50
  }
51
- #WBCR .wbcr-factory-pages-400-impressive-page-template .alert.alert-warning {
52
  background: #fff3d0;
53
  }
54
- #WBCR .wbcr-factory-pages-400-impressive-page-template .alert.alert-warning:nth-child(2n+1) {
55
  background: #fffde9;
56
  }
57
- #WBCR .wbcr-factory-pages-400-impressive-page-template .alert.alert-danger {
58
  background: #de716d;
59
  }
60
- #WBCR .wbcr-factory-pages-400-impressive-page-template .alert.alert-danger:nth-child(2n+1) {
61
  background: #ec8c89;
62
  }
63
- #WBCR .wbcr-factory-pages-400-impressive-page-template .alert.alert-success {
64
  background: #d0ecc4;
65
  }
66
- #WBCR .wbcr-factory-pages-400-impressive-page-template .alert.alert-success:nth-child(2n+1) {
67
  background: #e0eadb;
68
  }
69
- #WBCR .wbcr-factory-pages-400-impressive-page-template .hint-warnign-color {
70
  color: #ffeb3b;
71
  }
72
- #WBCR .wbcr-factory-pages-400-impressive-page-template .wbcr-factory-premium-color {
73
  color: #ffc107;
74
  }
75
- #WBCR .wbcr-factory-pages-400-impressive-page-template .wbcr-factory-header {
76
  padding: 20px 20px 40px;
77
  }
78
- #WBCR .wbcr-factory-pages-400-impressive-page-template .wbcr-factory-recomended-text {
79
  display: block;
80
  font-size: 11px;
81
  font-weight: lighter;
82
  color: #179347;
83
  }
84
- #WBCR .wbcr-factory-pages-400-impressive-page-template .wbcr-factory-options,
85
- #WBCR .wbcr-factory-pages-400-impressive-page-template .wbcr-factory-page {
86
  position: relative;
87
  background: #e6e6e6;
88
  overflow: hidden;
89
  }
90
- #WBCR .wbcr-factory-pages-400-impressive-page-template .wbcr-factory-options:after,
91
- #WBCR .wbcr-factory-pages-400-impressive-page-template .wbcr-factory-page:after {
92
  display: block;
93
  content: '';
94
  clear: both;
95
  }
96
- #WBCR .wbcr-factory-pages-400-impressive-page-template .wbcr-factory-page-group-header {
97
  background: #efefef;
98
  padding: 20px 0 10px 20px;
99
  margin: 30px 0;
100
  box-shadow: 0 1px 0 rgba(0, 0, 0, 0.1);
101
  }
102
- #WBCR .wbcr-factory-pages-400-impressive-page-template .wbcr-factory-page-group-header:first-child {
103
  margin-top: 0;
104
  }
105
- #WBCR .wbcr-factory-pages-400-impressive-page-template .wbcr-factory-page-group-header strong {
106
  font-size: 15px;
107
  }
108
- #WBCR .wbcr-factory-pages-400-impressive-page-template .wbcr-factory-page-group-header p {
109
  color: #8c8888;
110
  font-size: 12px;
111
  }
112
- #WBCR .wbcr-factory-pages-400-impressive-page-template .wbcr-factory-page-inner-wrap {
113
  margin-left: 230px;
114
  padding: 80px 0 0 0;
115
  vertical-align: top;
116
  background: #fff;
117
  }
118
- #WBCR .wbcr-factory-pages-400-impressive-page-template .wbcr-factory-page-inner-wrap .nav-tab-wrapper,
119
- #WBCR .wbcr-factory-pages-400-impressive-page-template .wbcr-factory-page-inner-wrap h2.nav-tab-wrapper,
120
- #WBCR .wbcr-factory-pages-400-impressive-page-template .wbcr-factory-page-inner-wrap h1.nav-tab-wrapper {
121
  border: 0;
122
  }
123
- #WBCR .wbcr-factory-pages-400-impressive-page-template .wbcr-factory-page-inner-wrap .nav-tab-active {
124
  background: #efefef;
125
  }
126
- #WBCR .wbcr-factory-pages-400-impressive-page-template .wbcr-factory-page-inner-wrap .nav-tab:first-child {
127
  margin-left: 80px !important;
128
  }
129
- #WBCR .wbcr-factory-pages-400-impressive-page-template .wbcr-factory-page-inner-wrap .nav-tab:hover {
130
  background: #f7f7f7;
131
  }
132
- #WBCR .wbcr-factory-pages-400-impressive-page-template .wbcr-factory-page-inner-wrap .nav-tab:active,
133
- #WBCR .wbcr-factory-pages-400-impressive-page-template .wbcr-factory-page-inner-wrap .nav-tab:focus {
134
  box-shadow: none;
135
  outline: none;
136
  }
137
- #WBCR .wbcr-factory-pages-400-impressive-page-template .wbcr-factory-page-header {
138
  position: absolute;
139
  z-index: 13;
140
  top: 0;
@@ -145,7 +145,7 @@
145
  color: #fff;
146
  border-radius: 5px 5px 0 0;
147
  }
148
- #WBCR .wbcr-factory-pages-400-impressive-page-template .wbcr-factory-page-header .wbcr-factory-header-logo {
149
  float: left;
150
  padding: 25px 0;
151
  font-size: 20px;
@@ -158,11 +158,11 @@
158
  margin-right: 10px;
159
  background: none;
160
  }
161
- #WBCR .wbcr-factory-pages-400-impressive-page-template .wbcr-factory-page-header .wbcr-factory-header-title {
162
  display: inline-block;
163
  vertical-align: middle;
164
  }
165
- #WBCR .wbcr-factory-pages-400-impressive-page-template .wbcr-factory-page-header .wbcr-factory-header-title h2 {
166
  font-size: 18px;
167
  line-height: 30px;
168
  font-weight: 300;
@@ -173,12 +173,12 @@
173
  text-overflow: ellipsis;
174
  color: #fff;
175
  }
176
- #WBCR .wbcr-factory-pages-400-impressive-page-template .wbcr-factory-page-header .wbcr-factory-control {
177
  position: relative;
178
  float: right;
179
  margin: 12px;
180
  }
181
- #WBCR .wbcr-factory-pages-400-impressive-page-template .wbcr-factory-page-header .wbcr-factory-control input[type="submit"] {
182
  display: inline-block;
183
  vertical-align: top;
184
  font-size: 13px;
@@ -200,36 +200,36 @@
200
  outline: none;
201
  z-index: 3;
202
  }
203
- #WBCR .wbcr-factory-pages-400-impressive-page-template .wbcr-factory-page-header .wbcr-factory-control input[type="submit"].wbcr-factory-type-save {
204
  box-shadow: none;
205
  min-width: 200px;
206
  background-color: #8bc34a;
207
  color: #fff;
208
  }
209
- #WBCR .wbcr-factory-pages-400-impressive-page-template .wbcr-factory-page-header .wbcr-factory-control input[type="submit"].wbcr-factory-type-save:hover {
210
  background: #9dbb7b;
211
  color: #fff;
212
  }
213
- #WBCR .wbcr-factory-pages-400-impressive-page-template .wbcr-factory-page-header .wbcr-factory-control input[type="submit"].wbcr-factory-type-save:active {
214
  box-shadow: inset -1px 1px 1px rgba(0, 0, 0, 0.3);
215
  }
216
- #WBCR .wbcr-factory-pages-400-impressive-page-template .wbcr-factory-left-navigation-bar {
217
  float: left;
218
  vertical-align: top;
219
  width: 230px;
220
  background: #e6e6e6;
221
  }
222
- #WBCR .wbcr-factory-pages-400-impressive-page-template .wbcr-factory-left-navigation-bar ul {
223
  padding: 0;
224
  margin-bottom: 0;
225
  margin-top: 80px;
226
  }
227
- #WBCR .wbcr-factory-pages-400-impressive-page-template .wbcr-factory-left-navigation-bar ul .wbcr-factory-nav-tab {
228
  display: block;
229
  background: #efefef;
230
  margin: 1px 0;
231
  }
232
- #WBCR .wbcr-factory-pages-400-impressive-page-template .wbcr-factory-left-navigation-bar ul .wbcr-factory-nav-tab a {
233
  display: block;
234
  width: 100%;
235
  padding: 20px 20px;
@@ -238,57 +238,57 @@
238
  text-decoration: none;
239
  text-transform: uppercase;
240
  }
241
- #WBCR .wbcr-factory-pages-400-impressive-page-template .wbcr-factory-left-navigation-bar ul .wbcr-factory-nav-tab a:hover {
242
  background: #f7f6f6;
243
  }
244
- #WBCR .wbcr-factory-pages-400-impressive-page-template .wbcr-factory-left-navigation-bar ul .wbcr-factory-nav-tab a,
245
- #WBCR .wbcr-factory-pages-400-impressive-page-template .wbcr-factory-left-navigation-bar ul .wbcr-factory-nav-tab a:active,
246
- #WBCR .wbcr-factory-pages-400-impressive-page-template .wbcr-factory-left-navigation-bar ul .wbcr-factory-nav-tab a:hover,
247
- #WBCR .wbcr-factory-pages-400-impressive-page-template .wbcr-factory-left-navigation-bar ul .wbcr-factory-nav-tab a:active,
248
- #WBCR .wbcr-factory-pages-400-impressive-page-template .wbcr-factory-left-navigation-bar ul .wbcr-factory-nav-tab a:focus {
249
  outline: 0 !important;
250
  box-shadow: none !important;
251
  }
252
- #WBCR .wbcr-factory-pages-400-impressive-page-template .wbcr-factory-left-navigation-bar ul .wbcr-factory-nav-tab.wbcr-factory-active-tab {
253
  background: #fff;
254
  }
255
- #WBCR .wbcr-factory-pages-400-impressive-page-template .wbcr-factory-left-navigation-bar ul .wbcr-factory-nav-tab.wbcr-factory-active-tab a {
256
  color: #222;
257
  }
258
- #WBCR .wbcr-factory-pages-400-impressive-page-template .wbcr-factory-content-section,
259
- #WBCR .wbcr-factory-pages-400-impressive-page-template .wbcr-factory-right-sidebar-section {
260
  display: inline-block;
261
  vertical-align: top;
262
  }
263
- #WBCR .wbcr-factory-pages-400-impressive-page-template .wbcr-factory-content-section {
264
  width: 59%;
265
  }
266
- #WBCR .wbcr-factory-pages-400-impressive-page-template .wbcr-factory-content-section.wbcr-fullwidth {
267
  width: 100%;
268
  }
269
- #WBCR .wbcr-factory-pages-400-impressive-page-template .wbcr-factory-content-section .nav-tab-wrapper {
270
  margin-top: 15px;
271
  }
272
- #WBCR .wbcr-factory-pages-400-impressive-page-template .wbcr-factory-content-section .wbcr-factory-content {
273
  background: #f7f7f7;
274
  padding: 0 0 20px 0;
275
  border: 1px solid #dad8d8;
276
  box-shadow: -1px 0px 1px rgba(0, 0, 0, 0.1);
277
  }
278
- #WBCR .wbcr-factory-pages-400-impressive-page-template .wbcr-factory-content-section .wbcr-factory-content > form {
279
  padding-top: 0 !important;
280
  }
281
- #WBCR .wbcr-factory-pages-400-impressive-page-template .wbcr-factory-right-sidebar-section {
282
  width: 40%;
283
  padding: 20px;
284
  margin: -40px 0 -20px;
285
  background-color: #f9f9f9;
286
  box-shadow: -1px 1px 5px rgba(0, 0, 0, 0.1);
287
  }
288
- #WBCR .wbcr-factory-pages-400-impressive-page-template .wbcr-factory-right-sidebar-section .wbcr-factory-sidebar-widget {
289
  margin: 0 0 20px;
290
  }
291
- #WBCR .wbcr-factory-pages-400-impressive-page-template .wbcr-factory-sidebar-widget {
292
  display: inline-block;
293
  min-height: 230px;
294
  width: 100%;
@@ -297,19 +297,19 @@
297
  padding: 20px 15px;
298
  vertical-align: top;
299
  }
300
- #WBCR .wbcr-factory-pages-400-impressive-page-template .wbcr-factory-sidebar-widget.wbcr-factory-hide {
301
  display: none;
302
  }
303
- #WBCR .wbcr-factory-pages-400-impressive-page-template .wbcr-factory-sidebar-widget.wbcr-factory-warning {
304
  background: #fff4d0;
305
  }
306
- #WBCR .wbcr-factory-pages-400-impressive-page-template .wbcr-factory-sidebar-widget.wbcr-factory-danger {
307
  background: #e2ffc0;
308
  }
309
- #WBCR .wbcr-factory-pages-400-impressive-page-template .wbcr-factory-sidebar-widget.wbcr-factory-success {
310
  background: #ffebe9;
311
  }
312
- #WBCR .wbcr-factory-pages-400-impressive-page-template .wbcr-factory-sidebar-widget .wbcr-factory-hint-icon-simple {
313
  display: inline-block;
314
  width: 16px;
315
  height: 16px;
@@ -321,16 +321,16 @@
321
  background: #E91E63;
322
  border-radius: 3px;
323
  }
324
- #WBCR .wbcr-factory-pages-400-impressive-page-template .wbcr-factory-sidebar-widget .wbcr-factory-simple-grey {
325
  background: #E91E63;
326
  }
327
- #WBCR .wbcr-factory-pages-400-impressive-page-template .wbcr-factory-sidebar-widget .wbcr-factory-simple-red {
328
  background: #9e9e9e;
329
  }
330
- #WBCR .wbcr-factory-pages-400-impressive-page-template .wbcr-factory-sidebar-widget .wbcr-factory-simple-green {
331
  background: #8bc34a;
332
  }
333
- #WBCR .wbcr-factory-pages-400-impressive-page-template .wbcr-factory-sidebar-widget .wbcr-factory-icon-5stars {
334
  display: block;
335
  width: 80px;
336
  height: 17px;
@@ -338,23 +338,23 @@
338
  vertical-align: middle;
339
  margin-bottom: 5px;
340
  }
341
- #WBCR .wbcr-factory-pages-400-impressive-page-template .wbcr-factory-sidebar-widget #wbcr-factory-paypal-donation-form input[type="image"] {
342
  display: block;
343
  margin: 30px auto 0;
344
  outline: none;
345
  }
346
- #WBCR .wbcr-factory-pages-400-impressive-page-template .wbcr-factory-sidebar-widget #wbcr-factory-paypal-donation-form input[type="image"] :focus,
347
- #WBCR .wbcr-factory-pages-400-impressive-page-template .wbcr-factory-sidebar-widget #wbcr-factory-paypal-donation-form input[type="image"] :active {
348
  box-shadow: none;
349
  }
350
- #WBCR .wbcr-factory-pages-400-impressive-page-template .wbcr-factory-sidebar-widget #wbcr-factory-paypal-donation-form .wbcr-factory-donation-price {
351
  font-size: 50px;
352
  margin-top: 30px;
353
  text-align: center;
354
  font-weight: 600;
355
  color: #8BC34A;
356
  }
357
- #WBCR .wbcr-factory-pages-400-impressive-page-template .wbcr-factory-page-more_features .wbcr-factory-feature-box {
358
  min-height: 240px;
359
  margin-bottom: 20px;
360
  text-align: center;
@@ -362,24 +362,24 @@
362
  padding: 30px;
363
  border: 1px solid #f3f1e7;
364
  }
365
- #WBCR .wbcr-factory-pages-400-impressive-page-template .wbcr-factory-page-more_features .wbcr-factory-feature-box .dashicons {
366
  width: 50px;
367
  height: 50px;
368
  font-size: 50px;
369
  color: #FFC107;
370
  line-height: normal;
371
  }
372
- #WBCR .wbcr-factory-pages-400-impressive-page-template .wbcr-factory-page-more_features .wbcr-factory-feature-box h3 {
373
  color: #7b6111;
374
  }
375
- #WBCR .wbcr-factory-pages-400-impressive-page-template .wbcr-factory-page-more_features .wbcr-factory-feature-box p {
376
  color: #9e9e9e;
377
  }
378
- #WBCR .wbcr-factory-pages-400-impressive-page-template .wbcr-factory-page-more_features .wbcr-factory-buttons-wrap {
379
  margin-top: 20px;
380
  text-align: center;
381
  }
382
- #WBCR .wbcr-factory-pages-400-impressive-page-template .wbcr-factory-page-more_features .wbcr-factory-premium-button {
383
  display: inline-block;
384
  padding: 20px 60px;
385
  background-color: #FFC107;
@@ -389,39 +389,39 @@
389
  font-weight: bold;
390
  transition: background-color 0.3s, border-color 0.3s, color 0.3s, opacity 0.3s;
391
  }
392
- #WBCR .wbcr-factory-pages-400-impressive-page-template .wbcr-factory-page-more_features .wbcr-factory-premium-button:hover {
393
  background-color: #ffce3a;
394
  }
395
- #WBCR .wbcr-factory-pages-400-impressive-page-template #wbcr-factory-confirm-dialog {
396
  padding: 20px;
397
  background: #ffffff;
398
  }
399
- #WBCR .wbcr-factory-pages-400-impressive-page-template #wbcr-factory-confirm-dialog .updated,
400
- #WBCR .wbcr-factory-pages-400-impressive-page-template #wbcr-factory-confirm-dialog .alert {
401
  display: none;
402
  }
403
- #WBCR .wbcr-factory-pages-400-impressive-page-template #wbcr-factory-confirm-dialog h2 {
404
  font-size: 18px;
405
  margin-top: 10px;
406
  }
407
- #WBCR .wbcr-factory-pages-400-impressive-page-template #wbcr-factory-confirm-dialog .wbcr-factory-confirm-description {
408
  padding: 10px;
409
  background: #ffedeb;
410
  border: 1px solid #ffdfdc;
411
  margin: 15px 0;
412
  }
413
- #WBCR .wbcr-factory-pages-400-impressive-page-template #wbcr-factory-confirm-dialog .wbcr-factory-confirm-hint {
414
  margin-bottom: 15px;
415
  color: #7b7b7b;
416
  }
417
  @media screen and (max-width: 950px) {
418
- #WBCR .wbcr-factory-pages-400-impressive-page-template .wbcr-factory-left-navigation-bar {
419
  width: 70px;
420
  }
421
- #WBCR .wbcr-factory-pages-400-impressive-page-template .wbcr-factory-left-navigation-bar ul .wbcr-factory-nav-tab a {
422
  font-size: 0;
423
  }
424
- #WBCR .wbcr-factory-pages-400-impressive-page-template .wbcr-factory-page-inner-wrap {
425
  margin-left: 70px;
426
  }
427
  }
8
  #WBCR .error {
9
  display: none !important;
10
  }
11
+ #WBCR .wbcr-factory-pages-401-impressive-page-template {
12
  position: relative;
13
  /**
14
  Content sections
17
  Widget in the sidebar of the plugin
18
  */
19
  }
20
+ #WBCR .wbcr-factory-pages-401-impressive-page-template .form-group {
21
  padding: 0 20px;
22
  }
23
+ #WBCR .wbcr-factory-pages-401-impressive-page-template .form-group label {
24
  font-weight: normal;
25
  }
26
+ #WBCR .wbcr-factory-pages-401-impressive-page-template .form-horizontal .control-label {
27
  max-width: 300px;
28
  }
29
+ #WBCR .wbcr-factory-pages-401-impressive-page-template .factory-control-buttons {
30
  text-align: right;
31
  padding-right: 20px;
32
  }
33
+ #WBCR .wbcr-factory-pages-401-impressive-page-template .factory-from-control-list label span {
34
  display: inline-block;
35
  vertical-align: bottom;
36
  }
37
+ #WBCR .wbcr-factory-pages-401-impressive-page-template .factory-from-control-list label span input[type="checkbox"],
38
+ #WBCR .wbcr-factory-pages-401-impressive-page-template .factory-from-control-list label span input[type="checkbox"]:focus {
39
  outline: none;
40
  }
41
+ #WBCR .wbcr-factory-pages-401-impressive-page-template .alert {
42
  font-weight: bold;
43
  margin: 0 !important;
44
  border: 0;
45
  border-radius: 0;
46
  padding: 15px;
47
  }
48
+ #WBCR .wbcr-factory-pages-401-impressive-page-template .alert + .wbcr-factory-page-group-header {
49
  margin-top: 0 !important;
50
  }
51
+ #WBCR .wbcr-factory-pages-401-impressive-page-template .alert.alert-warning {
52
  background: #fff3d0;
53
  }
54
+ #WBCR .wbcr-factory-pages-401-impressive-page-template .alert.alert-warning:nth-child(2n+1) {
55
  background: #fffde9;
56
  }
57
+ #WBCR .wbcr-factory-pages-401-impressive-page-template .alert.alert-danger {
58
  background: #de716d;
59
  }
60
+ #WBCR .wbcr-factory-pages-401-impressive-page-template .alert.alert-danger:nth-child(2n+1) {
61
  background: #ec8c89;
62
  }
63
+ #WBCR .wbcr-factory-pages-401-impressive-page-template .alert.alert-success {
64
  background: #d0ecc4;
65
  }
66
+ #WBCR .wbcr-factory-pages-401-impressive-page-template .alert.alert-success:nth-child(2n+1) {
67
  background: #e0eadb;
68
  }
69
+ #WBCR .wbcr-factory-pages-401-impressive-page-template .hint-warnign-color {
70
  color: #ffeb3b;
71
  }
72
+ #WBCR .wbcr-factory-pages-401-impressive-page-template .wbcr-factory-premium-color {
73
  color: #ffc107;
74
  }
75
+ #WBCR .wbcr-factory-pages-401-impressive-page-template .wbcr-factory-header {
76
  padding: 20px 20px 40px;
77
  }
78
+ #WBCR .wbcr-factory-pages-401-impressive-page-template .wbcr-factory-recomended-text {
79
  display: block;
80
  font-size: 11px;
81
  font-weight: lighter;
82
  color: #179347;
83
  }
84
+ #WBCR .wbcr-factory-pages-401-impressive-page-template .wbcr-factory-options,
85
+ #WBCR .wbcr-factory-pages-401-impressive-page-template .wbcr-factory-page {
86
  position: relative;
87
  background: #e6e6e6;
88
  overflow: hidden;
89
  }
90
+ #WBCR .wbcr-factory-pages-401-impressive-page-template .wbcr-factory-options:after,
91
+ #WBCR .wbcr-factory-pages-401-impressive-page-template .wbcr-factory-page:after {
92
  display: block;
93
  content: '';
94
  clear: both;
95
  }
96
+ #WBCR .wbcr-factory-pages-401-impressive-page-template .wbcr-factory-page-group-header {
97
  background: #efefef;
98
  padding: 20px 0 10px 20px;
99
  margin: 30px 0;
100
  box-shadow: 0 1px 0 rgba(0, 0, 0, 0.1);
101
  }
102
+ #WBCR .wbcr-factory-pages-401-impressive-page-template .wbcr-factory-page-group-header:first-child {
103
  margin-top: 0;
104
  }
105
+ #WBCR .wbcr-factory-pages-401-impressive-page-template .wbcr-factory-page-group-header strong {
106
  font-size: 15px;
107
  }
108
+ #WBCR .wbcr-factory-pages-401-impressive-page-template .wbcr-factory-page-group-header p {
109
  color: #8c8888;
110
  font-size: 12px;
111
  }
112
+ #WBCR .wbcr-factory-pages-401-impressive-page-template .wbcr-factory-page-inner-wrap {
113
  margin-left: 230px;
114
  padding: 80px 0 0 0;
115
  vertical-align: top;
116
  background: #fff;
117
  }
118
+ #WBCR .wbcr-factory-pages-401-impressive-page-template .wbcr-factory-page-inner-wrap .nav-tab-wrapper,
119
+ #WBCR .wbcr-factory-pages-401-impressive-page-template .wbcr-factory-page-inner-wrap h2.nav-tab-wrapper,
120
+ #WBCR .wbcr-factory-pages-401-impressive-page-template .wbcr-factory-page-inner-wrap h1.nav-tab-wrapper {
121
  border: 0;
122
  }
123
+ #WBCR .wbcr-factory-pages-401-impressive-page-template .wbcr-factory-page-inner-wrap .nav-tab-active {
124
  background: #efefef;
125
  }
126
+ #WBCR .wbcr-factory-pages-401-impressive-page-template .wbcr-factory-page-inner-wrap .nav-tab:first-child {
127
  margin-left: 80px !important;
128
  }
129
+ #WBCR .wbcr-factory-pages-401-impressive-page-template .wbcr-factory-page-inner-wrap .nav-tab:hover {
130
  background: #f7f7f7;
131
  }
132
+ #WBCR .wbcr-factory-pages-401-impressive-page-template .wbcr-factory-page-inner-wrap .nav-tab:active,
133
+ #WBCR .wbcr-factory-pages-401-impressive-page-template .wbcr-factory-page-inner-wrap .nav-tab:focus {
134
  box-shadow: none;
135
  outline: none;
136
  }
137
+ #WBCR .wbcr-factory-pages-401-impressive-page-template .wbcr-factory-page-header {
138
  position: absolute;
139
  z-index: 13;
140
  top: 0;
145
  color: #fff;
146
  border-radius: 5px 5px 0 0;
147
  }
148
+ #WBCR .wbcr-factory-pages-401-impressive-page-template .wbcr-factory-page-header .wbcr-factory-header-logo {
149
  float: left;
150
  padding: 25px 0;
151
  font-size: 20px;
158
  margin-right: 10px;
159
  background: none;
160
  }
161
+ #WBCR .wbcr-factory-pages-401-impressive-page-template .wbcr-factory-page-header .wbcr-factory-header-title {
162
  display: inline-block;
163
  vertical-align: middle;
164
  }
165
+ #WBCR .wbcr-factory-pages-401-impressive-page-template .wbcr-factory-page-header .wbcr-factory-header-title h2 {
166
  font-size: 18px;
167
  line-height: 30px;
168
  font-weight: 300;
173
  text-overflow: ellipsis;
174
  color: #fff;
175
  }
176
+ #WBCR .wbcr-factory-pages-401-impressive-page-template .wbcr-factory-page-header .wbcr-factory-control {
177
  position: relative;
178
  float: right;
179
  margin: 12px;
180
  }
181
+ #WBCR .wbcr-factory-pages-401-impressive-page-template .wbcr-factory-page-header .wbcr-factory-control input[type="submit"] {
182
  display: inline-block;
183
  vertical-align: top;
184
  font-size: 13px;
200
  outline: none;
201
  z-index: 3;
202
  }
203
+ #WBCR .wbcr-factory-pages-401-impressive-page-template .wbcr-factory-page-header .wbcr-factory-control input[type="submit"].wbcr-factory-type-save {
204
  box-shadow: none;
205
  min-width: 200px;
206
  background-color: #8bc34a;
207
  color: #fff;
208
  }
209
+ #WBCR .wbcr-factory-pages-401-impressive-page-template .wbcr-factory-page-header .wbcr-factory-control input[type="submit"].wbcr-factory-type-save:hover {
210
  background: #9dbb7b;
211
  color: #fff;
212
  }
213
+ #WBCR .wbcr-factory-pages-401-impressive-page-template .wbcr-factory-page-header .wbcr-factory-control input[type="submit"].wbcr-factory-type-save:active {
214
  box-shadow: inset -1px 1px 1px rgba(0, 0, 0, 0.3);
215
  }
216
+ #WBCR .wbcr-factory-pages-401-impressive-page-template .wbcr-factory-left-navigation-bar {
217
  float: left;
218
  vertical-align: top;
219
  width: 230px;
220
  background: #e6e6e6;
221
  }
222
+ #WBCR .wbcr-factory-pages-401-impressive-page-template .wbcr-factory-left-navigation-bar ul {
223
  padding: 0;
224
  margin-bottom: 0;
225
  margin-top: 80px;
226
  }
227
+ #WBCR .wbcr-factory-pages-401-impressive-page-template .wbcr-factory-left-navigation-bar ul .wbcr-factory-nav-tab {
228
  display: block;
229
  background: #efefef;
230
  margin: 1px 0;
231
  }
232
+ #WBCR .wbcr-factory-pages-401-impressive-page-template .wbcr-factory-left-navigation-bar ul .wbcr-factory-nav-tab a {
233
  display: block;
234
  width: 100%;
235
  padding: 20px 20px;
238
  text-decoration: none;
239
  text-transform: uppercase;
240
  }
241
+ #WBCR .wbcr-factory-pages-401-impressive-page-template .wbcr-factory-left-navigation-bar ul .wbcr-factory-nav-tab a:hover {
242
  background: #f7f6f6;
243
  }
244
+ #WBCR .wbcr-factory-pages-401-impressive-page-template .wbcr-factory-left-navigation-bar ul .wbcr-factory-nav-tab a,
245
+ #WBCR .wbcr-factory-pages-401-impressive-page-template .wbcr-factory-left-navigation-bar ul .wbcr-factory-nav-tab a:active,
246
+ #WBCR .wbcr-factory-pages-401-impressive-page-template .wbcr-factory-left-navigation-bar ul .wbcr-factory-nav-tab a:hover,
247
+ #WBCR .wbcr-factory-pages-401-impressive-page-template .wbcr-factory-left-navigation-bar ul .wbcr-factory-nav-tab a:active,
248
+ #WBCR .wbcr-factory-pages-401-impressive-page-template .wbcr-factory-left-navigation-bar ul .wbcr-factory-nav-tab a:focus {
249
  outline: 0 !important;
250
  box-shadow: none !important;
251
  }
252
+ #WBCR .wbcr-factory-pages-401-impressive-page-template .wbcr-factory-left-navigation-bar ul .wbcr-factory-nav-tab.wbcr-factory-active-tab {
253
  background: #fff;
254
  }
255
+ #WBCR .wbcr-factory-pages-401-impressive-page-template .wbcr-factory-left-navigation-bar ul .wbcr-factory-nav-tab.wbcr-factory-active-tab a {
256
  color: #222;
257
  }
258
+ #WBCR .wbcr-factory-pages-401-impressive-page-template .wbcr-factory-content-section,
259
+ #WBCR .wbcr-factory-pages-401-impressive-page-template .wbcr-factory-right-sidebar-section {
260
  display: inline-block;
261
  vertical-align: top;
262
  }
263
+ #WBCR .wbcr-factory-pages-401-impressive-page-template .wbcr-factory-content-section {
264
  width: 59%;
265
  }
266
+ #WBCR .wbcr-factory-pages-401-impressive-page-template .wbcr-factory-content-section.wbcr-fullwidth {
267
  width: 100%;
268
  }
269
+ #WBCR .wbcr-factory-pages-401-impressive-page-template .wbcr-factory-content-section .nav-tab-wrapper {
270
  margin-top: 15px;
271
  }
272
+ #WBCR .wbcr-factory-pages-401-impressive-page-template .wbcr-factory-content-section .wbcr-factory-content {
273
  background: #f7f7f7;
274
  padding: 0 0 20px 0;
275
  border: 1px solid #dad8d8;
276
  box-shadow: -1px 0px 1px rgba(0, 0, 0, 0.1);
277
  }
278
+ #WBCR .wbcr-factory-pages-401-impressive-page-template .wbcr-factory-content-section .wbcr-factory-content > form {
279
  padding-top: 0 !important;
280
  }
281
+ #WBCR .wbcr-factory-pages-401-impressive-page-template .wbcr-factory-right-sidebar-section {
282
  width: 40%;
283
  padding: 20px;
284
  margin: -40px 0 -20px;
285
  background-color: #f9f9f9;
286
  box-shadow: -1px 1px 5px rgba(0, 0, 0, 0.1);
287
  }
288
+ #WBCR .wbcr-factory-pages-401-impressive-page-template .wbcr-factory-right-sidebar-section .wbcr-factory-sidebar-widget {
289
  margin: 0 0 20px;
290
  }
291
+ #WBCR .wbcr-factory-pages-401-impressive-page-template .wbcr-factory-sidebar-widget {
292
  display: inline-block;
293
  min-height: 230px;
294
  width: 100%;
297
  padding: 20px 15px;
298
  vertical-align: top;
299
  }
300
+ #WBCR .wbcr-factory-pages-401-impressive-page-template .wbcr-factory-sidebar-widget.wbcr-factory-hide {
301
  display: none;
302
  }
303
+ #WBCR .wbcr-factory-pages-401-impressive-page-template .wbcr-factory-sidebar-widget.wbcr-factory-warning {
304
  background: #fff4d0;
305
  }
306
+ #WBCR .wbcr-factory-pages-401-impressive-page-template .wbcr-factory-sidebar-widget.wbcr-factory-danger {
307
  background: #e2ffc0;
308
  }
309
+ #WBCR .wbcr-factory-pages-401-impressive-page-template .wbcr-factory-sidebar-widget.wbcr-factory-success {
310
  background: #ffebe9;
311
  }
312
+ #WBCR .wbcr-factory-pages-401-impressive-page-template .wbcr-factory-sidebar-widget .wbcr-factory-hint-icon-simple {
313
  display: inline-block;
314
  width: 16px;
315
  height: 16px;
321
  background: #E91E63;
322
  border-radius: 3px;
323
  }
324
+ #WBCR .wbcr-factory-pages-401-impressive-page-template .wbcr-factory-sidebar-widget .wbcr-factory-simple-grey {
325
  background: #E91E63;
326
  }
327
+ #WBCR .wbcr-factory-pages-401-impressive-page-template .wbcr-factory-sidebar-widget .wbcr-factory-simple-red {
328
  background: #9e9e9e;
329
  }
330
+ #WBCR .wbcr-factory-pages-401-impressive-page-template .wbcr-factory-sidebar-widget .wbcr-factory-simple-green {
331
  background: #8bc34a;
332
  }
333
+ #WBCR .wbcr-factory-pages-401-impressive-page-template .wbcr-factory-sidebar-widget .wbcr-factory-icon-5stars {
334
  display: block;
335
  width: 80px;
336
  height: 17px;
338
  vertical-align: middle;
339
  margin-bottom: 5px;
340
  }
341
+ #WBCR .wbcr-factory-pages-401-impressive-page-template .wbcr-factory-sidebar-widget #wbcr-factory-paypal-donation-form input[type="image"] {
342
  display: block;
343
  margin: 30px auto 0;
344
  outline: none;
345
  }
346
+ #WBCR .wbcr-factory-pages-401-impressive-page-template .wbcr-factory-sidebar-widget #wbcr-factory-paypal-donation-form input[type="image"] :focus,
347
+ #WBCR .wbcr-factory-pages-401-impressive-page-template .wbcr-factory-sidebar-widget #wbcr-factory-paypal-donation-form input[type="image"] :active {
348
  box-shadow: none;
349
  }
350
+ #WBCR .wbcr-factory-pages-401-impressive-page-template .wbcr-factory-sidebar-widget #wbcr-factory-paypal-donation-form .wbcr-factory-donation-price {
351
  font-size: 50px;
352
  margin-top: 30px;
353
  text-align: center;
354
  font-weight: 600;
355
  color: #8BC34A;
356
  }
357
+ #WBCR .wbcr-factory-pages-401-impressive-page-template .wbcr-factory-page-more_features .wbcr-factory-feature-box {
358
  min-height: 240px;
359
  margin-bottom: 20px;
360
  text-align: center;
362
  padding: 30px;
363
  border: 1px solid #f3f1e7;
364
  }
365
+ #WBCR .wbcr-factory-pages-401-impressive-page-template .wbcr-factory-page-more_features .wbcr-factory-feature-box .dashicons {
366
  width: 50px;
367
  height: 50px;
368
  font-size: 50px;
369
  color: #FFC107;
370
  line-height: normal;
371
  }
372
+ #WBCR .wbcr-factory-pages-401-impressive-page-template .wbcr-factory-page-more_features .wbcr-factory-feature-box h3 {
373
  color: #7b6111;
374
  }
375
+ #WBCR .wbcr-factory-pages-401-impressive-page-template .wbcr-factory-page-more_features .wbcr-factory-feature-box p {
376
  color: #9e9e9e;
377
  }
378
+ #WBCR .wbcr-factory-pages-401-impressive-page-template .wbcr-factory-page-more_features .wbcr-factory-buttons-wrap {
379
  margin-top: 20px;
380
  text-align: center;
381
  }
382
+ #WBCR .wbcr-factory-pages-401-impressive-page-template .wbcr-factory-page-more_features .wbcr-factory-premium-button {
383
  display: inline-block;
384
  padding: 20px 60px;
385
  background-color: #FFC107;
389
  font-weight: bold;
390
  transition: background-color 0.3s, border-color 0.3s, color 0.3s, opacity 0.3s;
391
  }
392
+ #WBCR .wbcr-factory-pages-401-impressive-page-template .wbcr-factory-page-more_features .wbcr-factory-premium-button:hover {
393
  background-color: #ffce3a;
394
  }
395
+ #WBCR .wbcr-factory-pages-401-impressive-page-template #wbcr-factory-confirm-dialog {
396
  padding: 20px;
397
  background: #ffffff;
398
  }
399
+ #WBCR .wbcr-factory-pages-401-impressive-page-template #wbcr-factory-confirm-dialog .updated,
400
+ #WBCR .wbcr-factory-pages-401-impressive-page-template #wbcr-factory-confirm-dialog .alert {
401
  display: none;
402
  }
403
+ #WBCR .wbcr-factory-pages-401-impressive-page-template #wbcr-factory-confirm-dialog h2 {
404
  font-size: 18px;
405
  margin-top: 10px;
406
  }
407
+ #WBCR .wbcr-factory-pages-401-impressive-page-template #wbcr-factory-confirm-dialog .wbcr-factory-confirm-description {
408
  padding: 10px;
409
  background: #ffedeb;
410
  border: 1px solid #ffdfdc;
411
  margin: 15px 0;
412
  }
413
+ #WBCR .wbcr-factory-pages-401-impressive-page-template #wbcr-factory-confirm-dialog .wbcr-factory-confirm-hint {
414
  margin-bottom: 15px;
415
  color: #7b7b7b;
416
  }
417
  @media screen and (max-width: 950px) {
418
+ #WBCR .wbcr-factory-pages-401-impressive-page-template .wbcr-factory-left-navigation-bar {
419
  width: 70px;
420
  }
421
+ #WBCR .wbcr-factory-pages-401-impressive-page-template .wbcr-factory-left-navigation-bar ul .wbcr-factory-nav-tab a {
422
  font-size: 0;
423
  }
424
+ #WBCR .wbcr-factory-pages-401-impressive-page-template .wbcr-factory-page-inner-wrap {
425
  margin-left: 70px;
426
  }
427
  }
libs/factory/pages/templates/impressive-page.class.php CHANGED
@@ -14,15 +14,15 @@
14
  exit;
15
  }
16
 
17
- if( !class_exists('Wbcr_FactoryPages400_ImpressiveThemplate') ) {
18
  /**
19
- * Class Wbcr_FactoryPages400_ImpressiveThemplate
20
  *
21
  * @method string getInfoWidget() - get widget content information
22
  * @method string getRatingWidget(array $args = array()) - get widget content rating
23
  * @method string getDonateWidget() - get widget content donate
24
  */
25
- abstract class Wbcr_FactoryPages400_ImpressiveThemplate extends Wbcr_FactoryPages400_AdminPage {
26
 
27
  //public $menu_target = 'options-general.php';
28
 
@@ -71,7 +71,7 @@
71
  */
72
  public function __construct(Wbcr_Factory400_Plugin $plugin)
73
  {
74
- $this->menuIcon = FACTORY_PAGES_400_URL . '/templates/assets/img/webcraftic-plugin-icon.png';
75
 
76
  parent::__construct($plugin);
77
 
@@ -81,7 +81,7 @@
81
  ? ' ' . $this->page_menu_dashicon
82
  : '';
83
 
84
- $this->title_plugin_action_link = __('Settings', 'wbcr_factory_pages_400');
85
 
86
  //if( $this->type == 'options' ) {
87
  //$this->show_right_sidebar_in_options = true;
@@ -118,7 +118,7 @@
118
  /**
119
  * Requests assets (js and css) for the page.
120
  *
121
- * @see FactoryPages400_AdminPage
122
  *
123
  * @since 1.0.0
124
  * @return void
@@ -142,7 +142,7 @@
142
  'control.checkbox'
143
  ), 'bootstrap');
144
 
145
- $this->styles->add(FACTORY_PAGES_400_URL . '/templates/assets/css/impressive.page.template.css');
146
  //$this->styles->add('https://maxcdn.bootstrapcdn.com/font-awesome/4.7.0/css/font-awesome.min.css');
147
  }
148
 
@@ -241,11 +241,19 @@
241
  $GLOBALS['wp_fastest_cache']->deleteCache();
242
  }
243
 
244
- do_action('wbcr_factory_400_imppage_flush_cache', $this->plugin->getPluginName(), $this->getResultId());
 
 
 
 
 
 
 
 
245
 
246
  $this->afterFormSave();
247
 
248
- $this->redirectToAction('index', apply_filters('wbcr_factory_400_imppage_flush_redirect_args', array(
249
  $this->plugin->getPluginName() . '_saved' => 1
250
  )));
251
  }
@@ -257,7 +265,7 @@
257
  protected function warningNotice()
258
  {
259
  /*if( WP_CACHE ) {
260
- $this->printWarningNotice(__("It seems that a caching/performance plugin is active on this site. Please manually invalidate that plugin's cache after making any changes to the settings below.", 'wbcr_factory_pages_400'));
261
  }*/
262
  // Метод предназначен для вызова в дочернем классе
263
  }
@@ -308,21 +316,32 @@
308
  // Метод предназначен для вызова в дочернем классе
309
  }
310
 
311
- protected function printWarningNotice($message)
312
  {
313
  echo '<div class="alert alert-warning wbcr-factory-warning-notice"><p><span class="dashicons dashicons-warning"></span> ' . $message . '</p></div>';
314
  }
315
 
316
- protected function printErrorNotice($message)
317
  {
318
  echo '<div class="alert alert-danger wbcr-factory-warning-notice"><p><span class="dashicons dashicons-dismiss"></span> ' . $message . '</p></div>';
319
  }
320
 
321
- protected function printSuccessNotice($message)
322
  {
323
  echo '<div class="alert alert-success wbcr-factory-warning-notice"><p><span class="dashicons dashicons-plus"></span> ' . $message . '</p></div>';
324
  }
325
 
 
 
 
 
 
 
 
 
 
 
 
326
  private function showActionsNotice()
327
  {
328
  $notices = array(
@@ -331,13 +350,13 @@
331
  $this->plugin->getPluginName() . '_saved' => '1'
332
  ),
333
  'type' => 'success',
334
- 'message' => __('The settings have been updated successfully!', 'wbcr_factory_pages_400') . (WP_CACHE
335
- ? '<br>' . __("It seems that a caching/performance plugin is active on this site. Please manually invalidate that plugin's cache after making any changes to the settings below.", 'wbcr_factory_pages_400')
336
  : '')
337
  )
338
  );
339
 
340
- $notices = apply_filters('wbcr_factory_pages_400_imppage_actions_notice', $notices, $this->plugin, $this->id);
341
  $notices = $this->getActionNotices($notices);
342
 
343
  foreach($notices as $key => $notice) {
@@ -500,7 +519,7 @@
500
  <?php endif; ?>
501
  <?php if( $this->type == 'options' ): ?>
502
  <div class="wbcr-factory-control">
503
- <input name="<?= $this->plugin->getPluginName() ?>_save_action" class="wbcr-factory-type-save" type="submit" value="<?php _e('Save settings', 'wbcr_factory_pages_400'); ?>">
504
  <?php wp_nonce_field('wbcr_factory_' . $this->getResultId() . '_save_action'); ?>
505
  </div><?php endif; ?>
506
  </div>
@@ -509,11 +528,7 @@
509
 
510
  protected function showRightSidebar()
511
  {
512
- $widgets = apply_filters('wbcr_factory_pages_400_imppage_right_sidebar_widgets', array(
513
- 'info_widget' => $this->getInfoWidget(),
514
- 'rating_widget' => $this->getRatingWidget(),
515
- 'donate_widget' => $this->getDonateWidget()
516
- ), $this->getResultId());
517
 
518
  if( empty($widgets) ) {
519
  return;
@@ -526,12 +541,7 @@
526
 
527
  protected function showBottomSidebar()
528
  {
529
-
530
- $widgets = apply_filters('wbcr_factory_pages_400_imppage_bottom_sidebar_widgets', array(
531
- 'info_widget' => $this->getInfoWidget(),
532
- 'rating_widget' => $this->getRatingWidget(),
533
- 'donate_widget' => $this->getDonateWidget()
534
- ), $this->getResultId());
535
 
536
  if( empty($widgets) ) {
537
  return;
@@ -547,6 +557,33 @@
547
  </div>
548
  <?php
549
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
550
 
551
  /**
552
  *
@@ -567,10 +604,10 @@
567
 
568
  if( isset($options[0]) && isset($options[0]['items']) && is_array($options[0]['items']) ) {
569
 
570
- array_unshift($options[0]['items'], array(
571
  'type' => 'html',
572
- 'html' => array($this, 'warningNotice')
573
- ));
574
 
575
  foreach($options[0]['items'] as $key => $value) {
576
 
@@ -606,17 +643,28 @@
606
  check_admin_referer('wbcr_factory_' . $this->getResultId() . '_save_action');
607
 
608
  if( !current_user_can('administrator') && !current_user_can($this->capabilitiy) ) {
609
- wp_die(__('You do not have permission to edit page.', 'wbcr_factory_pages_400'));
610
  exit;
611
  }
612
-
613
- do_action('wbcr_factory_400_imppage_before_save', $form, $this->plugin->getPluginName());
 
 
 
 
 
614
 
615
  $this->beforeFormSave();
616
 
617
  $form->save();
 
 
 
 
 
618
 
619
- do_action('wbcr_factory_400_imppage_saved', $form, $this->plugin->getPluginName());
 
620
  $this->formSaved();
621
 
622
  $this->redirectToAction('flush-cache-and-rules', array(
@@ -626,7 +674,7 @@
626
 
627
  ?>
628
  <div id="WBCR" class="wrap">
629
- <div class="wbcr-factory-pages-400-impressive-page-template factory-bootstrap-400 factory-fontawesome-000">
630
  <div class="wbcr-factory-options wbcr-factory-options-<?= esc_attr($this->id) ?>">
631
  <div class="wbcr-factory-left-navigation-bar">
632
  <?php $this->showPageMenu() ?>
@@ -645,7 +693,7 @@
645
  <div class="wbcr-factory-content" style="min-height:<?= $min_height ?>px">
646
  <form method="post" class="form-horizontal">
647
  <?php $this->showHeader(); ?>
648
- <?php $this->showActionsNotice(); ?>
649
  <?php $form->html(); ?>
650
  </form>
651
  </div>
@@ -676,7 +724,7 @@
676
  global $factory_impressive_page_menu;
677
  ?>
678
  <div id="WBCR" class="wrap">
679
- <div class="wbcr-factory-pages-400-impressive-page-template factory-bootstrap-400 factory-fontawesome-000">
680
  <div class="wbcr-factory-page wbcr-factory-page-<?= $this->id ?>">
681
  <?php $this->showHeader(); ?>
682
 
@@ -695,7 +743,7 @@
695
  <div class="wbcr-factory-content-section<?php if( !$this->show_right_sidebar_in_options ): echo ' wbcr-fullwidth'; endif ?>">
696
  <?php $this->showPageSubMenu() ?>
697
  <div class="wbcr-factory-content" style="min-height:<?= $min_height ?>px">
698
- <?php $this->showActionsNotice(); ?>
699
  <?php $this->showPageContent() ?>
700
  </div>
701
  </div>
@@ -726,24 +774,24 @@
726
  <span class="wbcr-factory-hint-icon-simple wbcr-factory-simple-red">
727
  <img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAkAAAAJCAQAAABKmM6bAAAAUUlEQVQIHU3BsQ1AQABA0X/komIrnQHYwyhqQ1hBo9KZRKL9CBfeAwy2ri42JA4mPQ9rJ6OVt0BisFM3Po7qbEliru7m/FkY+TN64ZVxEzh4ndrMN7+Z+jXCAAAAAElFTkSuQmCC" alt=""/>
728
  </span>
729
- - <?php _e('A neutral setting that can not harm your site, but you must be sure that you need to use it.', 'wbcr_factory_pages_400'); ?>
730
  </li>
731
  <li>
732
  <span class="wbcr-factory-hint-icon-simple wbcr-factory-simple-grey">
733
  <img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAkAAAAJCAQAAABKmM6bAAAAUUlEQVQIHU3BsQ1AQABA0X/komIrnQHYwyhqQ1hBo9KZRKL9CBfeAwy2ri42JA4mPQ9rJ6OVt0BisFM3Po7qbEliru7m/FkY+TN64ZVxEzh4ndrMN7+Z+jXCAAAAAElFTkSuQmCC" alt=""/>
734
  </span>
735
- - <?php _e('When set this option, you must be careful. Plugins and themes may depend on this function. You must be sure that you can disable this feature for the site.', 'wbcr_factory_pages_400'); ?>
736
  </li>
737
  <li>
738
  <span class="wbcr-factory-hint-icon-simple wbcr-factory-simple-green">
739
  <img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAkAAAAJCAQAAABKmM6bAAAAUUlEQVQIHU3BsQ1AQABA0X/komIrnQHYwyhqQ1hBo9KZRKL9CBfeAwy2ri42JA4mPQ9rJ6OVt0BisFM3Po7qbEliru7m/FkY+TN64ZVxEzh4ndrMN7+Z+jXCAAAAAElFTkSuQmCC" alt=""/>
740
  </span>
741
- - <?php _e('Absolutely safe setting, We recommend to use.', 'wbcr_factory_pages_400'); ?>
742
  </li>
743
  </ul>
744
  ----------<br>
745
 
746
- <p><?php _e('Hover to the icon to get help for the feature you selected.', 'wbcr_factory_pages_400'); ?></p>
747
  </div>
748
  <?php
749
  }
@@ -756,22 +804,22 @@
756
  $page_url = $args[0];
757
  }
758
 
759
- $page_url = apply_filters('wbcr_factory_pages_400_imppage_rating_widget_url', $page_url, $this->plugin->getPluginName(), $this->getResultId());
760
 
761
  ?>
762
  <div class="wbcr-factory-sidebar-widget">
763
  <p>
764
- <strong><?php _e('Do you want the plugin to improved and update?', 'wbcr_factory_pages_400'); ?></strong>
765
  </p>
766
 
767
- <p><?php _e('Help the author, leave a review on wordpress.org. Thanks to feedback, I will know that the plugin is really useful to you and is needed.', 'wbcr_factory_pages_400'); ?></p>
768
 
769
- <p><?php _e('And also write your ideas on how to extend or improve the plugin.', 'wbcr_factory_pages_400'); ?></p>
770
 
771
  <p>
772
  <i class="wbcr-factory-icon-5stars"></i>
773
  <a href="<?= $page_url ?>" title="Go rate us" target="_blank">
774
- <strong><?php _e('Go rate us and push ideas', 'wbcr_factory_pages_400'); ?></strong>
775
  </a>
776
  </p>
777
  </div>
@@ -783,7 +831,7 @@
783
  ?>
784
  <div class="wbcr-factory-sidebar-widget">
785
  <p>
786
- <strong><?php _e('Donation for plugin development', 'wbcr_factory_pages_400'); ?></strong>
787
  </p>
788
 
789
  <?php if( get_locale() !== 'ru_RU' ): ?>
@@ -792,7 +840,7 @@
792
  <input type="hidden" name="hosted_button_id" value="VDX7JNTQPNPFW">
793
 
794
  <div class="wbcr-factory-donation-price">5$</div>
795
- <input type="image" src="<?= FACTORY_PAGES_400_URL ?>/templates/assets/img/paypal-donate.png" border="0" name="submit" alt="PayPal – The safer, easier way to pay online!">
796
  </form>
797
  <?php else: ?>
798
  <iframe frameborder="0" allowtransparency="true" scrolling="no" src="https://money.yandex.ru/embed/donate.xml?account=410011242846510&quickpay=donate&payment-type-choice=on&mobile-payment-type-choice=on&default-sum=300&targets=%D0%9D%D0%B0+%D0%BF%D0%BE%D0%B4%D0%B4%D0%B5%D1%80%D0%B6%D0%BA%D1%83+%D0%BF%D0%BB%D0%B0%D0%B3%D0%B8%D0%BD%D0%B0+%D0%B8+%D1%80%D0%B0%D0%B7%D1%80%D0%B0%D0%B1%D0%BE%D1%82%D0%BA%D1%83+%D0%BD%D0%BE%D0%B2%D1%8B%D1%85+%D1%84%D1%83%D0%BD%D0%BA%D1%86%D0%B8%D0%B9.+&target-visibility=on&project-name=Webcraftic&project-site=&button-text=05&comment=on&hint=%D0%9A%D0%B0%D0%BA%D1%83%D1%8E+%D1%84%D1%83%D0%BD%D0%BA%D1%86%D0%B8%D1%8E+%D0%BD%D1%83%D0%B6%D0%BD%D0%BE+%D0%B4%D0%BE%D0%B1%D0%B0%D0%B2%D0%B8%D1%82%D1%8C+%D0%B2+%D0%BF%D0%BB%D0%B0%D0%B3%D0%B8%D0%BD%3F&mail=on&successURL=" width="508" height="187"></iframe>
@@ -811,7 +859,7 @@
811
  {
812
  ?>
813
  <div id="WBCR" class="wrap">
814
- <div class="wbcr-factory-pages-400-impressive-page-template factory-bootstrap-400 factory-fontawesome-000">
815
  <div id="wbcr-factory-confirm-dialog">
816
  <h2><?php echo $data['title'] ?></h2>
817
 
14
  exit;
15
  }
16
 
17
+ if( !class_exists('Wbcr_FactoryPages401_ImpressiveThemplate') ) {
18
  /**
19
+ * Class Wbcr_FactoryPages401_ImpressiveThemplate
20
  *
21
  * @method string getInfoWidget() - get widget content information
22
  * @method string getRatingWidget(array $args = array()) - get widget content rating
23
  * @method string getDonateWidget() - get widget content donate
24
  */
25
+ abstract class Wbcr_FactoryPages401_ImpressiveThemplate extends Wbcr_FactoryPages401_AdminPage {
26
 
27
  //public $menu_target = 'options-general.php';
28
 
71
  */
72
  public function __construct(Wbcr_Factory400_Plugin $plugin)
73
  {
74
+ $this->menuIcon = FACTORY_PAGES_401_URL . '/templates/assets/img/webcraftic-plugin-icon.png';
75
 
76
  parent::__construct($plugin);
77
 
81
  ? ' ' . $this->page_menu_dashicon
82
  : '';
83
 
84
+ $this->title_plugin_action_link = __('Settings', 'wbcr_factory_pages_401');
85
 
86
  //if( $this->type == 'options' ) {
87
  //$this->show_right_sidebar_in_options = true;
118
  /**
119
  * Requests assets (js and css) for the page.
120
  *
121
+ * @see FactoryPages401_AdminPage
122
  *
123
  * @since 1.0.0
124
  * @return void
142
  'control.checkbox'
143
  ), 'bootstrap');
144
 
145
+ $this->styles->add(FACTORY_PAGES_401_URL . '/templates/assets/css/impressive.page.template.css');
146
  //$this->styles->add('https://maxcdn.bootstrapcdn.com/font-awesome/4.7.0/css/font-awesome.min.css');
147
  }
148
 
241
  $GLOBALS['wp_fastest_cache']->deleteCache();
242
  }
243
 
244
+ wbcr_factory_400_do_action_deprecated('wbcr_factory_400_imppage_flush_cache', array(
245
+ $this->plugin->getPluginName(),
246
+ $this->getResultId()
247
+ ), '4.0.1', 'wbcr_factory_400_imppage_after_form_save');
248
+
249
+ /**
250
+ * @since 4.0.1
251
+ */
252
+ do_action('wbcr_factory_400_imppage_after_form_save', $this->plugin, $this);
253
 
254
  $this->afterFormSave();
255
 
256
+ $this->redirectToAction('index', apply_filters('wbcr_factory_400_imppage_after_form_save_redirect_args', array(
257
  $this->plugin->getPluginName() . '_saved' => 1
258
  )));
259
  }
265
  protected function warningNotice()
266
  {
267
  /*if( WP_CACHE ) {
268
+ $this->printWarningNotice(__("It seems that a caching/performance plugin is active on this site. Please manually invalidate that plugin's cache after making any changes to the settings below.", 'wbcr_factory_pages_401'));
269
  }*/
270
  // Метод предназначен для вызова в дочернем классе
271
  }
316
  // Метод предназначен для вызова в дочернем классе
317
  }
318
 
319
+ public function printWarningNotice($message)
320
  {
321
  echo '<div class="alert alert-warning wbcr-factory-warning-notice"><p><span class="dashicons dashicons-warning"></span> ' . $message . '</p></div>';
322
  }
323
 
324
+ public function printErrorNotice($message)
325
  {
326
  echo '<div class="alert alert-danger wbcr-factory-warning-notice"><p><span class="dashicons dashicons-dismiss"></span> ' . $message . '</p></div>';
327
  }
328
 
329
+ public function printSuccessNotice($message)
330
  {
331
  echo '<div class="alert alert-success wbcr-factory-warning-notice"><p><span class="dashicons dashicons-plus"></span> ' . $message . '</p></div>';
332
  }
333
 
334
+ protected function printAllNotices()
335
+ {
336
+ $this->warningNotice();
337
+ $this->showActionsNotice();
338
+
339
+ /**
340
+ * @since 4.0.1
341
+ */
342
+ do_action('wbcr_factory_pages_401_imppage_print_all_notices', $this->plugin, $this);
343
+ }
344
+
345
  private function showActionsNotice()
346
  {
347
  $notices = array(
350
  $this->plugin->getPluginName() . '_saved' => '1'
351
  ),
352
  'type' => 'success',
353
+ 'message' => __('The settings have been updated successfully!', 'wbcr_factory_pages_401') . (WP_CACHE
354
+ ? '<br>' . __("It seems that a caching/performance plugin is active on this site. Please manually invalidate that plugin's cache after making any changes to the settings below.", 'wbcr_factory_pages_401')
355
  : '')
356
  )
357
  );
358
 
359
+ $notices = apply_filters('wbcr_factory_pages_401_imppage_actions_notice', $notices, $this->plugin, $this->id);
360
  $notices = $this->getActionNotices($notices);
361
 
362
  foreach($notices as $key => $notice) {
519
  <?php endif; ?>
520
  <?php if( $this->type == 'options' ): ?>
521
  <div class="wbcr-factory-control">
522
+ <input name="<?= $this->plugin->getPluginName() ?>_save_action" class="wbcr-factory-type-save" type="submit" value="<?php _e('Save settings', 'wbcr_factory_pages_401'); ?>">
523
  <?php wp_nonce_field('wbcr_factory_' . $this->getResultId() . '_save_action'); ?>
524
  </div><?php endif; ?>
525
  </div>
528
 
529
  protected function showRightSidebar()
530
  {
531
+ $widgets = $this->getPageWidgets('right');
 
 
 
 
532
 
533
  if( empty($widgets) ) {
534
  return;
541
 
542
  protected function showBottomSidebar()
543
  {
544
+ $widgets = $this->getPageWidgets('bottom');
 
 
 
 
 
545
 
546
  if( empty($widgets) ) {
547
  return;
557
  </div>
558
  <?php
559
  }
560
+
561
+ protected function getPageWidgets($position = 'bottom')
562
+ {
563
+ wbcr_factory_400_apply_filters_deprecated('wbcr_factory_pages_401_imppage_right_sidebar_widgets', array(
564
+ array(
565
+ 'info_widget' => $this->getInfoWidget(),
566
+ 'rating_widget' => $this->getRatingWidget(),
567
+ 'donate_widget' => $this->getDonateWidget()
568
+ ),
569
+ $this->getResultId()
570
+ ), '4.0.1', 'wbcr_factory_pages_401_imppage_get_widgets');
571
+
572
+ wbcr_factory_400_apply_filters_deprecated('wbcr_factory_pages_401_imppage_bottom_sidebar_widgets', array(
573
+ array(
574
+ 'info_widget' => $this->getInfoWidget(),
575
+ 'rating_widget' => $this->getRatingWidget(),
576
+ 'donate_widget' => $this->getDonateWidget()
577
+ ),
578
+ $this->getResultId()
579
+ ), '4.0.1', 'wbcr_factory_pages_401_imppage_get_widgets');
580
+
581
+ return apply_filters('wbcr_factory_pages_401_imppage_get_widgets', array(
582
+ 'info_widget' => $this->getInfoWidget(),
583
+ 'rating_widget' => $this->getRatingWidget(),
584
+ 'donate_widget' => $this->getDonateWidget()
585
+ ), $position, $this->plugin, $this);
586
+ }
587
 
588
  /**
589
  *
604
 
605
  if( isset($options[0]) && isset($options[0]['items']) && is_array($options[0]['items']) ) {
606
 
607
+ /*array_unshift($options[0]['items'], array(
608
  'type' => 'html',
609
+ 'html' => array($this, 'printAllNotices')
610
+ ));*/
611
 
612
  foreach($options[0]['items'] as $key => $value) {
613
 
643
  check_admin_referer('wbcr_factory_' . $this->getResultId() . '_save_action');
644
 
645
  if( !current_user_can('administrator') && !current_user_can($this->capabilitiy) ) {
646
+ wp_die(__('You do not have permission to edit page.', 'wbcr_factory_pages_401'));
647
  exit;
648
  }
649
+
650
+ wbcr_factory_400_do_action_deprecated('wbcr_factory_400_imppage_before_save', array(
651
+ $form,
652
+ $this->plugin->getPluginName()
653
+ ), '4.0.1', 'wbcr_factory_400_imppage_before_form_save');
654
+
655
+ do_action('wbcr_factory_400_imppage_before_form_save', $form, $this->plugin, $this);
656
 
657
  $this->beforeFormSave();
658
 
659
  $form->save();
660
+
661
+ wbcr_factory_400_do_action_deprecated('wbcr_factory_400_imppage_saved', array(
662
+ $form,
663
+ $this->plugin->getPluginName()
664
+ ), '4.0.1', 'wbcr_factory_400_imppage_form_saved');
665
 
666
+ do_action('wbcr_factory_400_imppage_form_saved', $form, $this->plugin, $this);
667
+
668
  $this->formSaved();
669
 
670
  $this->redirectToAction('flush-cache-and-rules', array(
674
 
675
  ?>
676
  <div id="WBCR" class="wrap">
677
+ <div class="wbcr-factory-pages-401-impressive-page-template factory-bootstrap-400 factory-fontawesome-000">
678
  <div class="wbcr-factory-options wbcr-factory-options-<?= esc_attr($this->id) ?>">
679
  <div class="wbcr-factory-left-navigation-bar">
680
  <?php $this->showPageMenu() ?>
693
  <div class="wbcr-factory-content" style="min-height:<?= $min_height ?>px">
694
  <form method="post" class="form-horizontal">
695
  <?php $this->showHeader(); ?>
696
+ <?php $this->printAllNotices(); ?>
697
  <?php $form->html(); ?>
698
  </form>
699
  </div>
724
  global $factory_impressive_page_menu;
725
  ?>
726
  <div id="WBCR" class="wrap">
727
+ <div class="wbcr-factory-pages-401-impressive-page-template factory-bootstrap-400 factory-fontawesome-000">
728
  <div class="wbcr-factory-page wbcr-factory-page-<?= $this->id ?>">
729
  <?php $this->showHeader(); ?>
730
 
743
  <div class="wbcr-factory-content-section<?php if( !$this->show_right_sidebar_in_options ): echo ' wbcr-fullwidth'; endif ?>">
744
  <?php $this->showPageSubMenu() ?>
745
  <div class="wbcr-factory-content" style="min-height:<?= $min_height ?>px">
746
+ <?php $this->printAllNotices(); ?>
747
  <?php $this->showPageContent() ?>
748
  </div>
749
  </div>
774
  <span class="wbcr-factory-hint-icon-simple wbcr-factory-simple-red">
775
  <img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAkAAAAJCAQAAABKmM6bAAAAUUlEQVQIHU3BsQ1AQABA0X/komIrnQHYwyhqQ1hBo9KZRKL9CBfeAwy2ri42JA4mPQ9rJ6OVt0BisFM3Po7qbEliru7m/FkY+TN64ZVxEzh4ndrMN7+Z+jXCAAAAAElFTkSuQmCC" alt=""/>
776
  </span>
777
+ - <?php _e('A neutral setting that can not harm your site, but you must be sure that you need to use it.', 'wbcr_factory_pages_401'); ?>
778
  </li>
779
  <li>
780
  <span class="wbcr-factory-hint-icon-simple wbcr-factory-simple-grey">
781
  <img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAkAAAAJCAQAAABKmM6bAAAAUUlEQVQIHU3BsQ1AQABA0X/komIrnQHYwyhqQ1hBo9KZRKL9CBfeAwy2ri42JA4mPQ9rJ6OVt0BisFM3Po7qbEliru7m/FkY+TN64ZVxEzh4ndrMN7+Z+jXCAAAAAElFTkSuQmCC" alt=""/>
782
  </span>
783
+ - <?php _e('When set this option, you must be careful. Plugins and themes may depend on this function. You must be sure that you can disable this feature for the site.', 'wbcr_factory_pages_401'); ?>
784
  </li>
785
  <li>
786
  <span class="wbcr-factory-hint-icon-simple wbcr-factory-simple-green">
787
  <img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAkAAAAJCAQAAABKmM6bAAAAUUlEQVQIHU3BsQ1AQABA0X/komIrnQHYwyhqQ1hBo9KZRKL9CBfeAwy2ri42JA4mPQ9rJ6OVt0BisFM3Po7qbEliru7m/FkY+TN64ZVxEzh4ndrMN7+Z+jXCAAAAAElFTkSuQmCC" alt=""/>
788
  </span>
789
+ - <?php _e('Absolutely safe setting, We recommend to use.', 'wbcr_factory_pages_401'); ?>
790
  </li>
791
  </ul>
792
  ----------<br>
793
 
794
+ <p><?php _e('Hover to the icon to get help for the feature you selected.', 'wbcr_factory_pages_401'); ?></p>
795
  </div>
796
  <?php
797
  }
804
  $page_url = $args[0];
805
  }
806
 
807
+ $page_url = apply_filters('wbcr_factory_pages_401_imppage_rating_widget_url', $page_url, $this->plugin->getPluginName(), $this->getResultId());
808
 
809
  ?>
810
  <div class="wbcr-factory-sidebar-widget">
811
  <p>
812
+ <strong><?php _e('Do you want the plugin to improved and update?', 'wbcr_factory_pages_401'); ?></strong>
813
  </p>
814
 
815
+ <p><?php _e('Help the author, leave a review on wordpress.org. Thanks to feedback, I will know that the plugin is really useful to you and is needed.', 'wbcr_factory_pages_401'); ?></p>
816
 
817
+ <p><?php _e('And also write your ideas on how to extend or improve the plugin.', 'wbcr_factory_pages_401'); ?></p>
818
 
819
  <p>
820
  <i class="wbcr-factory-icon-5stars"></i>
821
  <a href="<?= $page_url ?>" title="Go rate us" target="_blank">
822
+ <strong><?php _e('Go rate us and push ideas', 'wbcr_factory_pages_401'); ?></strong>
823
  </a>
824
  </p>
825
  </div>
831
  ?>
832
  <div class="wbcr-factory-sidebar-widget">
833
  <p>
834
+ <strong><?php _e('Donation for plugin development', 'wbcr_factory_pages_401'); ?></strong>
835
  </p>
836
 
837
  <?php if( get_locale() !== 'ru_RU' ): ?>
840
  <input type="hidden" name="hosted_button_id" value="VDX7JNTQPNPFW">
841
 
842
  <div class="wbcr-factory-donation-price">5$</div>
843
+ <input type="image" src="<?= FACTORY_PAGES_401_URL ?>/templates/assets/img/paypal-donate.png" border="0" name="submit" alt="PayPal – The safer, easier way to pay online!">
844
  </form>
845
  <?php else: ?>
846
  <iframe frameborder="0" allowtransparency="true" scrolling="no" src="https://money.yandex.ru/embed/donate.xml?account=410011242846510&quickpay=donate&payment-type-choice=on&mobile-payment-type-choice=on&default-sum=300&targets=%D0%9D%D0%B0+%D0%BF%D0%BE%D0%B4%D0%B4%D0%B5%D1%80%D0%B6%D0%BA%D1%83+%D0%BF%D0%BB%D0%B0%D0%B3%D0%B8%D0%BD%D0%B0+%D0%B8+%D1%80%D0%B0%D0%B7%D1%80%D0%B0%D0%B1%D0%BE%D1%82%D0%BA%D1%83+%D0%BD%D0%BE%D0%B2%D1%8B%D1%85+%D1%84%D1%83%D0%BD%D0%BA%D1%86%D0%B8%D0%B9.+&target-visibility=on&project-name=Webcraftic&project-site=&button-text=05&comment=on&hint=%D0%9A%D0%B0%D0%BA%D1%83%D1%8E+%D1%84%D1%83%D0%BD%D0%BA%D1%86%D0%B8%D1%8E+%D0%BD%D1%83%D0%B6%D0%BD%D0%BE+%D0%B4%D0%BE%D0%B1%D0%B0%D0%B2%D0%B8%D1%82%D1%8C+%D0%B2+%D0%BF%D0%BB%D0%B0%D0%B3%D0%B8%D0%BD%3F&mail=on&successURL=" width="508" height="187"></iframe>
859
  {
860
  ?>
861
  <div id="WBCR" class="wrap">
862
+ <div class="wbcr-factory-pages-401-impressive-page-template factory-bootstrap-400 factory-fontawesome-000">
863
  <div id="wbcr-factory-confirm-dialog">
864
  <h2><?php echo $data['title'] ?></h2>
865
 
readme.txt CHANGED
@@ -28,10 +28,12 @@ We used some useful functions from plugins <strong>Clearfy – disable unused fe
28
 
29
  We invite you to check out a few other related free plugins that our team has also produced that you may find especially useful:
30
 
31
- * [Clearfy – WordPress optimization plugin and disable ultimate tweaker](https://wordpress.org/plugins/gonzales/)
32
  * [Disable updates, Updates manager, Disable automatic updates](https://wordpress.org/plugins/gonzales/)
33
  * [Disable Comments for Any Post Types (Remove Comments)](https://wordpress.org/plugins/comments-plus/)
 
34
  * [Disable updates, Disable automatic updates, Updates manager](https://wordpress.org/plugins/webcraftic-updates-manager/)
 
35
 
36
  == Translations ==
37
 
@@ -52,9 +54,10 @@ If you want to help with the translation, please contact me through this site or
52
  3. Notifications panel (optional)
53
 
54
  == Changelog ==
 
 
55
  = 1.0.5 =
56
  * Fixed: Prefix bug
57
-
58
  = 1.0.4 =
59
  * Fixed: Compatibility with Clearfy plugin
60
  * ADDED: Plugin options caching to reduce database queries for 90%. Clearfy became lighter and faster.
28
 
29
  We invite you to check out a few other related free plugins that our team has also produced that you may find especially useful:
30
 
31
+ * [Clearfy – WordPress optimization plugin and disable ultimate tweaker](https://wordpress.org/plugins/clearfy/)
32
  * [Disable updates, Updates manager, Disable automatic updates](https://wordpress.org/plugins/gonzales/)
33
  * [Disable Comments for Any Post Types (Remove Comments)](https://wordpress.org/plugins/comments-plus/)
34
+ * [Cyrlitera – transliteration of links and file names](https://wordpress.org/plugins/cyrlitera/)
35
  * [Disable updates, Disable automatic updates, Updates manager](https://wordpress.org/plugins/webcraftic-updates-manager/)
36
+ * [Hide login page, Hide wp admin – stop attack on login page](https://wordpress.org/plugins/hide-login-page//)
37
 
38
  == Translations ==
39
 
54
  3. Notifications panel (optional)
55
 
56
  == Changelog ==
57
+ = 1.0.6 =
58
+ * Fixed: compatibility with some plugins and themes
59
  = 1.0.5 =
60
  * Fixed: Prefix bug
 
61
  = 1.0.4 =
62
  * Fixed: Compatibility with Clearfy plugin
63
  * ADDED: Plugin options caching to reduce database queries for 90%. Clearfy became lighter and faster.