RSS for Yandex Turbo - Version 1.32

Version Description

(10.02.2022) =

  • ( ).
  • .
  • ( ).
  • .
Download this release

Release Info

Developer Flector
Plugin Icon 128x128 RSS for Yandex Turbo
Version 1.32
Comparing to
See all releases

Code changes from version 1.31 to 1.32

Files changed (5) hide show
  1. inc/Contents.php +347 -378
  2. inc/yturbo-css.css +11 -1
  3. inc/yturbo-script.js +948 -948
  4. readme.txt +8 -2
  5. rss-for-yandex-turbo.php +3698 -3666
inc/Contents.php CHANGED
@@ -1,428 +1,397 @@
1
  <?php
2
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
3
 
4
- /**
5
- * Содержание (оглавление) для больших постов.
6
- *
7
- * оригинал от камы, переименовано так как изменена разметка
8
- * @author: Kama
9
- * @info: http://wp-kama.ru/?p=1513
10
- * @version: 3.18
11
- *
12
- * @changelog: https://github.com/doiftrue/Kama_Contents/blob/master/CHANGELOG.md
13
- */
14
- class YTurbo_Contents {
15
-
16
- public $opt = [
17
- // Отступ слева у подразделов в px.
18
- 'margin' => 40,
19
- // Теги по умолчанию по котором будет строиться оглавление. Порядок имеет значение.
20
- // Кроме тегов, можно указать атрибут classа: array('h2','.class_name'). Можно указать строкой: 'h2 h3 .class_name'
21
- 'selectors' => [ 'h2','h3','h4' ],
22
- // Ссылка на возврат к оглавлению. '' - убрать ссылку
23
- 'to_menu' => 'к содержанию ↑',
24
- // Заголовок. '' - убрать заголовок
25
- 'title' => 'Содержание:',
26
- // Css стили. '' - убрать стили
27
- 'css' => '.kc__gotop{ display:block; text-align:right; }
28
- .kc__title{ font-style:italic; padding:1em 0; }
29
- .kc__anchlink{ color:#ddd!important; position:absolute; margin-left:-1em; }',
30
- // JS код (добавляется после HTML кода)
31
- 'js' => '',
32
- // Минимальное количество найденных тегов, чтобы оглавление выводилось.
33
- 'min_found' => 2,
34
- // Минимальная длина (символов) текста, чтобы оглавление выводилось.
35
- 'min_length' => 2000,
36
- // Ссылка на страницу для которой собирается оглавление. Если оглавление выводиться на другой странице...
37
- 'page_url' => '',
38
- // Название шоткода
39
- 'shortcode' => 'contents',
40
- // Оставлять символы в анкорах
41
- 'spec' => '\'.+$*~=',
42
- // Какой тип анкора использовать: 'a' - <a name="anchor"></a> или 'id' -
43
- 'anchor_type' => 'id',
44
- // Название атрибута тега из значения которого будет браться анкор (если этот атрибут есть у тега). Ставим '', чтобы отключить такую проверку...
45
- 'anchor_attr_name' => 'id',
46
- // Включить микроразметку?
47
- 'markup' => false,
48
- // Добавить 'знак' перед подзаголовком статьи со ссылкой на текущий анкор заголовка. Укажите '#', '&' или что вам нравится :)
49
- 'anchor_link' => '',
50
- // минимальное количество символов между заголовками содержания, для которых нужно выводить ссылку "к содержанию".
51
- // Не имеет смысла, если параметр 'to_menu' отключен. С целью производительности, кириллица считается без учета кодировки.
52
- // Поэтому 800 символов кириллицы - это примерно 1600 символов в этом параметре. 800 - расчет для сайтов на кириллице...
53
- 'tomenu_simcount' => 800,
54
- ];
55
-
56
- public $contents; // collect html (contents)
57
-
58
- private $temp;
59
-
60
- static $inst;
61
-
62
- function __construct( $args = array() ){
63
- $this->set_opt( $args );
64
- return $this;
65
- }
66
 
67
- /**
68
- * Create instance.
69
- *
70
- * @param array $args Options
71
- * @return object Instance
72
- */
73
- static function init( $args = array() ){
74
- is_null( self::$inst ) && self::$inst = new self( $args );
75
- if( $args ) self::$inst->set_opt( $args );
76
- return self::$inst;
77
- }
78
 
79
- function set_opt( $args = array() ){
80
- $this->opt = (object) array_merge( (array) $this->opt, (array) $args );
81
- }
 
 
82
 
83
- /**
84
- * Processes the text, turns the shortcode in it into a table of contents.
85
- *
86
- * @param string $content The text, which has a shortcode.
87
- * @param string $contents_cb Сallback function that will process the contents list.
88
- *
89
- * @return string Processed text with a table of contents, if it has a shotcode.
90
- */
91
- function shortcode( $content, $contents_cb = '' ){
92
- if( false === strpos( $content, '['. $this->opt->shortcode ) )
93
- return $content;
94
 
95
- // get contents data
96
- if( ! preg_match('~^(.*)\['. $this->opt->shortcode .'([^\]]*)\](.*)$~s', $content, $m ) )
97
- return $content;
98
 
99
- $contents = $this->make_contents( $m[3], $m[2] );
 
100
 
101
- if( $contents && $contents_cb && is_callable($contents_cb) )
102
- $contents = $contents_cb( $contents );
103
 
104
- return $m[1] . $contents . $m[3];
105
- }
106
 
107
- /**
108
- * Replaces the headings in the passed text (by ref), creates and returns a table of contents.
109
- *
110
- * @param string $content The text from which you want to create a table of contents.
111
- * @param array|string $tags Array of HTML tags to look for in the passed text.
112
- * You can specify: tag names "h2 h3" or names of CSS classes ".foo .foo2".
113
- * You can add "embed" mark here to get <ul> tag only (without header and wrapper block).
114
- * It can be useful for use contents inside the text as a list.
115
- *
116
- * @return string HTML code of contents.
117
- */
118
- function make_contents( & $content, $tags = '' ){
119
- // return if text is too short
120
- if( mb_strlen( strip_tags($content) ) < $this->opt->min_length )
121
- return '';
122
-
123
- $this->temp = $this->opt;
124
- $this->contents = array();
125
-
126
- if( ! $tags )
127
- $tags = $this->opt->selectors;
128
-
129
- if( is_string($tags) ){
130
- $extra_tags = array();
131
- if( preg_match( '/(as_table)="([^"]+)"/', $tags, $mm ) ){
132
- $extra_tags[ $mm[1] ] = explode( '|', $mm[2] );
133
- $tags = str_replace( " {$mm[0]}", '', $tags ); // cut
134
- }
135
- $tags = array_map( 'trim', preg_split('/[ ,]+/', $tags ) );
136
- $tags += $extra_tags;
137
- }
138
 
139
- $tags = array_filter( $tags ); // del empty
 
140
 
141
- // check tags
142
- foreach( $tags as $key => $tag ){
 
 
143
 
144
- // extra tags
145
- if( in_array( $key, array('as_table'), true ) ){
146
- $this->temp->as_table = $tag;
 
 
147
 
148
- unset( $tags[ $key ] );
149
- continue;
 
 
 
150
  }
151
 
152
- // remove special marker tags and set $args
153
- if( in_array( $tag, array('embed','no_to_menu') ) ){
154
- if( $tag == 'embed' ) $this->temp->embed = true;
155
- if( $tag == 'no_to_menu' ) $this->opt->to_menu = false;
156
-
157
- unset( $tags[ $key ] );
158
- continue;
159
  }
160
 
161
- // remove tag if it's not exists in content
162
- $patt = ( ($tag[0] == '.') ? 'class=[\'"][^\'"]*'. substr($tag, 1) : "<$tag" );
163
- if( ! preg_match("/$patt/i", $content ) ){
164
- unset( $tags[ $key ] );
165
- continue;
166
- }
167
  }
168
 
169
- if( ! $tags )
170
- return '';
171
-
172
- // set patterns from given $tags
173
- // separate classes & tags & set
174
- $class_patt = $tag_patt = $level_tags = array();
175
- foreach( $tags as $tag ){
176
- // class
177
- if( $tag[0] == '.' ){
178
- $tag = substr( $tag, 1 );
179
- $link = & $class_patt;
180
- }
181
- // html tag
182
- else
183
- $link = & $tag_patt;
184
 
185
- $link[] = $tag;
186
- $level_tags[] = $tag;
187
- }
188
-
189
- $this->temp->level_tags = array_flip( $level_tags );
190
-
191
- // replace all titles & collect contents to $this->contents
192
- $patt_in = array();
193
- if( $tag_patt ) $patt_in[] = '(?:<('. implode('|', $tag_patt) .')([^>]*)>(.*?)<\/\1>)';
194
- if( $class_patt ) $patt_in[] = '(?:<([^ >]+) ([^>]*class=["\'][^>]*('. implode('|', $class_patt) .')[^>]*["\'][^>]*)>(.*?)<\/'. ($patt_in?'\4':'\1') .'>)';
195
 
196
- $patt_in = implode('|', $patt_in );
 
197
 
198
- $this->temp->content = $content;
199
-
200
- // collect and replace
201
- $_content = preg_replace_callback("/$patt_in/is", array( $this, '_make_contents_callback'), $content, -1, $count );
 
 
202
 
203
- if( ! $count || $count < $this->opt->min_found ){
204
- unset($this->temp); // clear cache
205
- return '';
206
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
207
 
208
- $this->temp->content = $content = $_content; // $_content was for check reasone
209
-
210
- // html
211
- static $css, $js;
212
- $embed = isset($this->temp->embed);
213
- $_tit = & $this->opt->title;
214
- $_is_tit = ! $embed && $_tit;
215
-
216
- // markup
217
- $ItemList = $this->opt->markup ? ' itemscope itemtype="http://schema.org/ItemList"' : '';
218
-
219
- if( isset($this->temp->as_table) ){
220
- $contents = '
221
- <table class="contents" id="kcmenu"'. ($ItemList ?: '') .'>
222
- <thead>
223
- <tr>
224
- <th>'. esc_html( $this->temp->as_table[0] ) .'</th>
225
- <th>'. esc_html( $this->temp->as_table[1] ) .'</th>
226
- </tr>
227
- </thead>
228
- <tbody>
229
- '. implode('', $this->contents ) .'
230
- </tbody>
231
- </table>';
232
- }
233
- else {
234
- $contents =
235
- ( $_is_tit ? '<h3>'. $_tit .'</h3>'. "\n" : '' ) .
236
- '<ol>'. "\n".
237
- implode('', $this->contents ) .
238
- '</ol>'."\n";
239
  }
240
 
241
- $contents =
242
- ( ( ! $css && $this->opt->css ) ? '<style>'. preg_replace('/[\n\t ]+/', ' ', $this->opt->css ) .'</style>' : '' ) .
243
- $contents .
244
- ( ( ! $js && $this->opt->js ) ? '<script>'. preg_replace('/[\n\t ]+/', ' ', $this->opt->js ) .'</script>' : '' ) ;
245
-
246
- unset( $this->temp ); // clear cache
247
-
248
- return $this->contents = $contents;
249
- }
250
 
251
- ## callback function to replace and collect contents
252
- private function _make_contents_callback( $match ){
253
- $temp = & $this->temp;
254
-
255
- // it's only class selector in pattern
256
- if( count($match) == 5 ){
257
- $tag = $match[1];
258
- $attrs = $match[2];
259
- $tag_txt = $match[4];
260
-
261
- $level_tag = $match[3]; // class_name
262
- }
263
- // it's found tag selector
264
- elseif( count($match) == 4 ){
265
- $tag = $match[1];
266
- $attrs = $match[2];
267
- $tag_txt = $match[3];
 
 
 
 
 
 
 
 
 
 
 
 
 
 
268
 
269
- $level_tag = $tag;
270
  }
271
- // it's found class selector
272
- else{
273
- $tag = $match[4];
274
- $attrs = $match[5];
275
- $tag_txt = $match[7];
276
 
277
- $level_tag = $match[6]; // class_name
278
- }
279
 
280
- if( isset($this->temp->as_table) ){
281
- $tag_desc = '';
282
- //if( preg_match( '/'. preg_quote($match[0], '/') .'\s*<p>((?:.(?!<\/p>))+)./', $this->temp->content, $mm ) ){
283
- if( preg_match( '/'. preg_quote($match[0], '/') .'\s*<p>(.+?)<\/p>/', $this->temp->content, $mm ) ){
284
- $tag_desc = $mm[1];
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
285
  }
286
- }
287
-
288
- $opt = $this->opt; // short love
289
-
290
- // if tag contains id attribute it become anchor
291
- if( $opt->anchor_attr_name && preg_match('/ *('. preg_quote($opt->anchor_attr_name) .')=([\'"])(.+?)\2 */i', $attrs, $id_match) ){
292
- if( in_array($id_match[1], array('id','name')) )
293
- $attrs = str_replace( $id_match[0], '', $attrs ); // delete 'id' or 'name' attr from attrs
294
- $anchor = $this->_sanitaze_anchor( $id_match[3] );
295
- }
296
- else
297
- $anchor = $this->_sanitaze_anchor( $tag_txt );
298
-
299
- $level = @ $temp->level_tags[ $level_tag ];
300
- if( $level > 0 )
301
- $sub = ( $opt->margin ? ' style="margin-left:'. ($level*$opt->margin) .'px;"' : '') . ' class="sub sub_'. $level .'"';
302
- else
303
- $sub = '';
304
-
305
- // collect contents
306
- // markup
307
- $_is_mark = $opt->markup;
308
-
309
- $temp->counter = empty($temp->counter) ? 1 : $temp->counter+1;
310
-
311
- // $tag_txt не может содержать A, IMG теги - удалим если надо...
312
- $cont_elem_txt = $tag_txt;
313
- if( false !== strpos($cont_elem_txt, '</a>') ) $cont_elem_txt = preg_replace('~<a[^>]+>|</a>~', '', $cont_elem_txt );
314
- if( false !== strpos($cont_elem_txt, '<img') ) $cont_elem_txt = preg_replace('~<img[^>]+>~', '', $cont_elem_txt );
315
-
316
- if( isset($this->temp->as_table) ){
317
- $this->contents[] = "\t".'
318
- <tr>
319
- <td '. ($_is_mark?' itemprop="itemListElement" itemscope itemtype="http://schema.org/ListItem"':'') .'>
320
- <a '. ($_is_mark?' itemprop="url"':'') .' href="'. $opt->page_url .'#'. $anchor .'">
321
- '.( $_is_mark ? '<span itemprop="name">'. $cont_elem_txt .'</span>' : $cont_elem_txt ).'
322
- </a>
323
- '.( $_is_mark ? ' <meta itemprop="position" content="'. $temp->counter .'" />':'' ).'
324
- </td>
325
- <td>'. $tag_desc .'</td>
326
- </tr>'. "\n";
327
- }
328
- else {
329
- $this->contents[] = "\t".'
330
- <li'. $sub . ($_is_mark?' itemprop="itemListElement" itemscope itemtype="http://schema.org/ListItem"':'') .'>
331
- <a'. ($_is_mark?' itemprop="url"':'') .' href="'. $opt->page_url .'#'. $anchor .'">
332
- '.( $_is_mark ? '<span itemprop="name">'. $cont_elem_txt .'</span>' : $cont_elem_txt ).'
333
- </a>
334
- '.( $_is_mark ? ' <meta itemprop="position" content="'. $temp->counter .'" />':'' ).'
335
- </li>'. "\n";
336
- }
337
 
338
- if( $opt->anchor_link )
339
- $tag_txt = '<a href="#'. $anchor .'">'. $opt->anchor_link .'</a> ' . $tag_txt;
340
-
341
- // anchor type: 'a' or 'id'
342
- if( $opt->anchor_type === 'a' )
343
- $new_el = '<a name="'. $anchor .'"></a>'."\n<$tag $attrs>$tag_txt</$tag>";
344
- else
345
- $new_el = "\n<$tag id=\"$anchor\"$attrs>$tag_txt</$tag>";
346
-
347
- $to_menu = '';
348
- if( $opt->to_menu ){
349
- // go to contents
350
- $to_menu = '<a href="'. $opt->page_url .'#kcmenu">'. $opt->to_menu .'</a>';
351
-
352
- // remove '$to_menu' if simbols beatween $to_menu too small (< 300)
353
- $pos = strpos( $temp->content, $match[0] ); // mb_strpos( $temp->content, $match[0] ) - в 150 раз медленнее!
354
- if( empty($temp->elpos) ){
355
- $prevpos = 0;
356
- $temp->elpos = array( $pos );
357
- }
358
- else {
359
- $prevpos = end($temp->elpos);
360
- $temp->elpos[] = $pos;
361
- }
362
- $simbols_count = $pos - $prevpos;
363
- if( $simbols_count < $opt->tomenu_simcount ) $to_menu = '';
364
  }
365
 
366
- return $to_menu . $new_el;
367
- }
368
-
369
- ## anchor transliteration
370
- function _sanitaze_anchor( $anch ){
371
- $anch = strip_tags( $anch );
372
-
373
- $anch = apply_filters( 'kama_cont::sanitaze_anchor_before', $anch, $this );
374
 
375
- $iso9 = [
376
- 'А'=>'A', 'Б'=>'B', 'В'=>'V', 'Г'=>'G', 'Д'=>'D', 'Е'=>'E', 'Ё'=>'YO', 'Ж'=>'ZH',
377
- 'З'=>'Z', 'И'=>'I', 'Й'=>'J', 'К'=>'K', 'Л'=>'L', 'М'=>'M', 'Н'=>'N', 'О'=>'O',
378
- 'П'=>'P', 'Р'=>'R', 'С'=>'S', 'Т'=>'T', 'У'=>'U', 'Ф'=>'F', 'Х'=>'H', 'Ц'=>'TS',
379
- 'Ч'=>'CH', 'Ш'=>'SH', 'Щ'=>'SHH', 'Ъ'=>'', 'Ы'=>'Y', 'Ь'=>'', 'Э'=>'E', 'Ю'=>'YU', 'Я'=>'YA',
380
- // small
381
- 'а'=>'a', 'б'=>'b', 'в'=>'v', 'г'=>'g', 'д'=>'d', 'е'=>'e', 'ё'=>'yo', 'ж'=>'zh',
382
- 'з'=>'z', 'и'=>'i', 'й'=>'j', 'к'=>'k', 'л'=>'l', 'м'=>'m', 'н'=>'n', 'о'=>'o',
383
- 'п'=>'p', 'р'=>'r', 'с'=>'s', 'т'=>'t', 'у'=>'u', 'ф'=>'f', 'х'=>'h', 'ц'=>'ts',
384
- 'ч'=>'ch', 'ш'=>'sh', 'щ'=>'shh', 'ъ'=>'', 'ы'=>'y', 'ь'=>'', 'э'=>'e', 'ю'=>'yu', 'я'=>'ya',
385
- // other
386
- 'Ѓ'=>'G', 'Ґ'=>'G', 'Є'=>'YE', 'Ѕ'=>'Z', 'Ј'=>'J', 'І'=>'I', 'Ї'=>'YI', 'Ќ'=>'K', 'Љ'=>'L', 'Њ'=>'N', 'Ў'=>'U', 'Џ'=>'DH',
387
- 'ѓ'=>'g', 'ґ'=>'g', 'є'=>'ye', 'ѕ'=>'z', 'ј'=>'j', 'і'=>'i', 'ї'=>'yi', 'ќ'=>'k', 'љ'=>'l', 'њ'=>'n', 'ў'=>'u', 'џ'=>'dh'
388
- ];
389
 
390
- $anch = strtr( $anch, $iso9 );
391
 
392
- $spec = preg_quote( $this->opt->spec );
393
- $anch = preg_replace( "/[^a-zA-Z0-9_$spec\-]+/", '-', $anch ); // все ненужное на '-'
394
- $anch = strtolower( trim( $anch, '-') );
395
- $anch = substr( $anch, 0, 70 ); // shorten
396
 
397
- $anch = apply_filters( 'kama_cont::sanitaze_anchor', $anch, $this );
 
 
 
 
 
 
 
398
 
399
- $anch = self::_unique_anchor( $anch );
 
 
 
 
400
 
401
- return $anch;
402
- }
 
403
 
404
- ## adds number at the end if this anchor already exists
405
- static function _unique_anchor( $anch ){
406
- static $anchors = [];
 
407
 
408
- // check and unique anchor
409
- if( isset($anchors[ $anch ]) ){
 
 
 
 
410
 
411
- $lastnum = substr( $anch, -1 );
412
- $lastnum = is_numeric($lastnum) ? $lastnum + 1 : 2;
413
 
414
- return self::_unique_anchor( "$anch-$lastnum" );
415
  }
416
- else
417
- $anchors[ $anch ] = 1;
418
-
419
- return $anch;
420
- }
421
 
422
- ## cut the shortcode from the content
423
- function strip_shortcode( $text ){
424
- return preg_replace('~\['. $this->opt->shortcode .'[^\]]*\]~', '', $text );
425
  }
426
-
427
- }
428
-
1
  <?php
2
 
3
+ // класс выдран, переделан и кастрирован из плагина Table of Contents Plus.
4
+ // замена класса от камы, так как он не поддерживает вложенность без css.
5
+
6
+ if ( ! class_exists( 'YTurbo_Contents' ) ) :
7
+ class YTurbo_Contents {
8
+
9
+ private $options;
10
+ private $collision_collector; // keeps a track of used anchors for collision detecting
11
+
12
+ function __construct() {
13
+
14
+ $this->collision_collector = [];
15
+ $yturbo_options = get_option('yturbo_options');
16
+
17
+ $selectors = array();
18
+ if ($yturbo_options['yttoch1']=='enabled'){array_push($selectors, '1');}
19
+ if ($yturbo_options['yttoch2']=='enabled'){array_push($selectors, '2');}
20
+ if ($yturbo_options['yttoch3']=='enabled'){array_push($selectors, '3');}
21
+ if ($yturbo_options['yttoch4']=='enabled'){array_push($selectors, '4');}
22
+ if ($yturbo_options['yttoch5']=='enabled'){array_push($selectors, '5');}
23
+ if ($yturbo_options['yttoch6']=='enabled'){array_push($selectors, '6');}
24
+ if ( ! $selectors ) array_push($selectors, '1');
25
+
26
+ // get options
27
+ $defaults = [ // default options
28
+ 'fragment_prefix' => 'i',
29
+ 'position' => $yturbo_options['yttocmesto'],
30
+ 'start' => $yturbo_options['yttocnumber'],
31
+ 'show_heading_text' => true,
32
+ 'heading_text' => $yturbo_options['yttoczag'],
33
+ 'show_heirarchy' => true,
34
+ 'ordered_list' => true,
35
+ 'lowercase' => true,
36
+ 'hyphenate' => false,
37
+ 'bullet_spacing' => false,
38
+ 'exclude' => esc_attr(stripslashes($yturbo_options['yttocexclude'])),
39
+ 'heading_levels' => $selectors,
40
+ ];
41
+
42
+ $options = '';
43
+ $this->options = wp_parse_args( $options, $defaults );
44
+
45
+ //add_filter( 'yturbo_the_content', [ $this, 'the_content' ], 100 ); // run after shortcodes are interpretted (level 10)
46
 
47
+ }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
48
 
49
+ function __destruct() {}
 
 
 
 
 
 
 
 
 
 
50
 
51
+ /**
52
+ * Returns a clean url to be used as the destination anchor target
53
+ */
54
+ private function url_anchor_target( $title ) {
55
+ $return = false;
56
 
57
+ if ( $title ) {
58
+ $return = trim( strip_tags( $title ) );
 
 
 
 
 
 
 
 
 
59
 
60
+ // convert accented characters to ASCII
61
+ $return = remove_accents( $return );
 
62
 
63
+ // replace newlines with spaces (eg when headings are split over multiple lines)
64
+ $return = str_replace( [ "\r", "\n", "\n\r", "\r\n" ], ' ', $return );
65
 
66
+ // remove &amp;
67
+ $return = str_replace( '&amp;', '', $return );
68
 
69
+ // remove non alphanumeric chars
70
+ $return = preg_replace( '/[^a-zA-Z0-9 \-_]*/', '', $return );
71
 
72
+ // convert spaces to _
73
+ $return = str_replace(
74
+ [ ' ', ' ' ],
75
+ '_',
76
+ $return
77
+ );
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
78
 
79
+ // remove trailing - and _
80
+ $return = rtrim( $return, '-_' );
81
 
82
+ // lowercase everything?
83
+ if ( $this->options['lowercase'] ) {
84
+ $return = strtolower( $return );
85
+ }
86
 
87
+ // if blank, then prepend with the fragment prefix
88
+ // blank anchors normally appear on sites that don't use the latin charset
89
+ if ( ! $return ) {
90
+ $return = ( $this->options['fragment_prefix'] ) ? $this->options['fragment_prefix'] : '_';
91
+ }
92
 
93
+ // hyphenate?
94
+ if ( $this->options['hyphenate'] ) {
95
+ $return = str_replace( '_', '-', $return );
96
+ $return = str_replace( '--', '-', $return );
97
+ }
98
  }
99
 
100
+ if ( array_key_exists( $return, $this->collision_collector ) ) {
101
+ $this->collision_collector[ $return ]++;
102
+ $return .= '-' . $this->collision_collector[ $return ];
103
+ } else {
104
+ $this->collision_collector[ $return ] = 1;
 
 
105
  }
106
 
107
+ return apply_filters( 'toc_url_anchor_target', $return );
 
 
 
 
 
108
  }
109
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
110
 
111
+ private function build_hierarchy( &$matches ) {
112
+ $current_depth = 100; // headings can't be larger than h6 but 100 as a default to be sure
113
+ $html = '';
114
+ $numbered_items = [];
115
+ $numbered_items_min = null;
 
 
 
 
 
116
 
117
+ // reset the internal collision collection
118
+ $this->collision_collector = [];
119
 
120
+ // find the minimum heading to establish our baseline
121
+ for ( $i = 0; $i < count( $matches ); $i++ ) {
122
+ if ( $current_depth > $matches[ $i ][2] ) {
123
+ $current_depth = (int) $matches[ $i ][2];
124
+ }
125
+ }
126
 
127
+ $numbered_items[ $current_depth ] = 0;
128
+ $numbered_items_min = $current_depth;
129
+
130
+ for ( $i = 0; $i < count( $matches ); $i++ ) {
131
+
132
+ if ( $current_depth === (int) $matches[ $i ][2] ) {
133
+ $html .= '<li>';
134
+ }
135
+
136
+ // start lists
137
+ if ( $current_depth !== (int) $matches[ $i ][2] ) {
138
+ for ( $current_depth; $current_depth < (int) $matches[ $i ][2]; $current_depth++ ) {
139
+ $numbered_items[ $current_depth + 1 ] = 0;
140
+ $html .= '<ul><li>';
141
+ }
142
+ }
143
+
144
+ // list item
145
+ if ( in_array( $matches[ $i ][2], $this->options['heading_levels'] ) ) {
146
+ $html .= '<a href="'.get_the_permalink().'#' . $this->url_anchor_target( $matches[ $i ][0] ) . '">';
147
+ if ( $this->options['ordered_list'] ) {
148
+ // attach leading numbers when lower in hierarchy
149
+ $html .= '<span class="toc_number toc_depth_' . ( $current_depth - $numbered_items_min + 1 ) . '">';
150
+ for ( $j = $numbered_items_min; $j < $current_depth; $j++ ) {
151
+ $number = ( $numbered_items[ $j ] ) ? $numbered_items[ $j ] : 0;
152
+ $html .= $number . '.';
153
+ }
154
+
155
+ $html .= ( $numbered_items[ $current_depth ] + 1 ) . '</span> ';
156
+ $numbered_items[ $current_depth ]++;
157
+ }
158
+ $html .= strip_tags( $matches[ $i ][0] ) . '</a>';
159
+ }
160
+
161
+ // end lists
162
+ if ( count( $matches ) - 1 !== $i ) {
163
+ if ( $current_depth > (int) $matches[ $i + 1 ][2] ) {
164
+ for ( $current_depth; $current_depth > (int) $matches[ $i + 1 ][2]; $current_depth-- ) {
165
+ $html .= '</li></ul>';
166
+ $numbered_items[ $current_depth ] = 0;
167
+ }
168
+ }
169
+
170
+ if ( (int) @$matches[ $i + 1 ][2] === $current_depth ) {
171
+ $html .= '</li>';
172
+ }
173
+ } else {
174
+ // this is the last item, make sure we close off all tags
175
+ for ( $current_depth; $current_depth >= $numbered_items_min; $current_depth-- ) {
176
+ $html .= '</li>';
177
+ if ( $current_depth !== $numbered_items_min ) {
178
+ $html .= '</ul>';
179
+ }
180
+ }
181
+ }
182
+ }
183
 
184
+ return $html;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
185
  }
186
 
 
 
 
 
 
 
 
 
 
187
 
188
+ /**
189
+ * Returns a string with all items from the $find array replaced with their matching
190
+ * items in the $replace array. This does a one to one replacement (rather than
191
+ * globally).
192
+ *
193
+ * This function is multibyte safe.
194
+ *
195
+ * $find and $replace are arrays, $string is the haystack. All variables are
196
+ * passed by reference.
197
+ */
198
+ private function mb_find_replace( &$find = false, &$replace = false, &$string = '' ) {
199
+ if ( is_array( $find ) && is_array( $replace ) && $string ) {
200
+ // check if multibyte strings are supported
201
+ if ( function_exists( 'mb_strpos' ) ) {
202
+ for ( $i = 0; $i < count( $find ); $i++ ) {
203
+ $string =
204
+ mb_substr( $string, 0, mb_strpos( $string, $find[ $i ] ) ) . // everything before $find
205
+ $replace[ $i ] . // its replacement
206
+ mb_substr( $string, mb_strpos( $string, $find[ $i ] ) + mb_strlen( $find[ $i ] ) ); // everything after $find
207
+ }
208
+ } else {
209
+ for ( $i = 0; $i < count( $find ); $i++ ) {
210
+ $string = substr_replace(
211
+ $string,
212
+ $replace[ $i ],
213
+ strpos( $string, $find[ $i ] ),
214
+ strlen( $find[ $i ] )
215
+ );
216
+ }
217
+ }
218
+ }
219
 
220
+ return $string;
221
  }
 
 
 
 
 
222
 
 
 
223
 
224
+ /**
225
+ * This function extracts headings from the html formatted $content. It will pull out
226
+ * only the required headings as specified in the options. For all qualifying headings,
227
+ * this function populates the $find and $replace arrays (both passed by reference)
228
+ * with what to search and replace with.
229
+ *
230
+ * Returns a html formatted string of list items for each qualifying heading. This
231
+ * is everything between and NOT including <ul> and </ul>
232
+ */
233
+ public function extract_headings( &$find, &$replace, $content = '' ) {
234
+ $matches = [];
235
+ $anchor = '';
236
+ $items = false;
237
+
238
+ // reset the internal collision collection as the_content may have been triggered elsewhere
239
+ // eg by themes or other plugins that need to read in content such as metadata fields in
240
+ // the head html tag, or to provide descriptions to twitter/facebook
241
+ $this->collision_collector = [];
242
+
243
+ if ( is_array( $find ) && is_array( $replace ) && $content ) {
244
+ // get all headings
245
+ // the html spec allows for a maximum of 6 heading depths
246
+ if ( preg_match_all( '/(<h([1-6]{1})[^>]*>).*<\/h\2>/msuU', $content, $matches, PREG_SET_ORDER ) ) {
247
+
248
+ // remove undesired headings (if any) as defined by heading_levels
249
+ if ( count( $this->options['heading_levels'] ) != 6 ) {
250
+ $new_matches = [];
251
+ for ( $i = 0; $i < count( $matches ); $i++ ) {
252
+ if ( in_array( $matches[ $i ][2], $this->options['heading_levels'] ) ) {
253
+ $new_matches[] = $matches[ $i ];
254
+ }
255
+ }
256
+ $matches = $new_matches;
257
+ }
258
+
259
+ // remove specific headings if provided via the 'exclude' property
260
+ if ( $this->options['exclude'] ) {
261
+ $excluded_headings = explode( '|', $this->options['exclude'] );
262
+ if ( count( $excluded_headings ) > 0 ) {
263
+ for ( $j = 0; $j < count( $excluded_headings ); $j++ ) {
264
+ // escape some regular expression characters
265
+ // others: http://www.php.net/manual/en/regexp.reference.meta.php
266
+ $excluded_headings[ $j ] = str_replace(
267
+ [ '*' ],
268
+ [ '.*' ],
269
+ trim( $excluded_headings[ $j ] )
270
+ );
271
+ }
272
+
273
+ $new_matches = [];
274
+ for ( $i = 0; $i < count( $matches ); $i++ ) {
275
+ $found = false;
276
+ for ( $j = 0; $j < count( $excluded_headings ); $j++ ) {
277
+ if ( @preg_match( '/^' . $excluded_headings[ $j ] . '$/imU', strip_tags( $matches[ $i ][0] ) ) ) {
278
+ $found = true;
279
+ break;
280
+ }
281
+ }
282
+ if ( ! $found ) {
283
+ $new_matches[] = $matches[ $i ];
284
+ }
285
+ }
286
+ if ( count( $matches ) !== count( $new_matches ) ) {
287
+ $matches = $new_matches;
288
+ }
289
+ }
290
+ }
291
+
292
+ // remove empty headings
293
+ $new_matches = [];
294
+ for ( $i = 0; $i < count( $matches ); $i++ ) {
295
+ if ( trim( strip_tags( $matches[ $i ][0] ) ) != false ) {
296
+ $new_matches[] = $matches[ $i ];
297
+ }
298
+ }
299
+ if ( count( $matches ) !== count( $new_matches ) ) {
300
+ $matches = $new_matches;
301
+ }
302
+
303
+ // check minimum number of headings
304
+ if ( count( $matches ) >= $this->options['start'] ) {
305
+
306
+ for ( $i = 0; $i < count( $matches ); $i++ ) {
307
+ // get anchor and add to find and replace arrays
308
+ $anchor = $this->url_anchor_target( $matches[ $i ][0] );
309
+ $find[] = $matches[ $i ][0];
310
+ $replace[] = str_replace(
311
+ [
312
+ $matches[ $i ][1], // start of heading
313
+ '</h' . $matches[ $i ][2] . '>', // end of heading
314
+ ],
315
+ [
316
+ $matches[ $i ][1] . '<test id="' . $anchor . '">',
317
+ '</test></h' . $matches[ $i ][2] . '>',
318
+ ],
319
+ $matches[ $i ][0]
320
+ );
321
+ //по умолчанию toc вставляет span внутрь заголовков, а яндекс этого не понимает
322
+ $pattern = "/<h(.*?)><test id=\"(.*?)\">(.*?)<\/test>/i";
323
+ $replacement = '<h$1 id="$2">$3';
324
+ $replace[$i] = preg_replace($pattern, $replacement, $replace[$i]);
325
+
326
+ // assemble flat list
327
+ if ( ! $this->options['show_heirarchy'] ) {
328
+ $items .= '<li><a href="'.get_the_permalink().'#' . $anchor . '">';
329
+ if ( $this->options['ordered_list'] ) {
330
+ $items .= count( $replace ) . ' ';
331
+ }
332
+ $items .= strip_tags( $matches[ $i ][0] ) . '</a></li>';
333
+ }
334
+ }
335
+
336
+ // build a hierarchical toc?
337
+ // we could have tested for $items but that var can be quite large in some cases
338
+ if ( $this->options['show_heirarchy'] ) {
339
+ $items = $this->build_hierarchy( $matches );
340
+ }
341
+ }
342
+ }
343
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
344
 
345
+ return $items;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
346
  }
347
 
 
 
 
 
 
 
 
 
348
 
349
+ function the_content( $content ) {
350
+ global $post;
351
+ $yturbo_options = get_option('yturbo_options');
352
+ $items = '';
353
+ $find = [];
354
+ $replace = [];
 
 
 
 
 
 
 
 
355
 
356
+ $items = $this->extract_headings( $find, $replace, $content );
357
 
358
+ if ( $items ) {
 
 
 
359
 
360
+ // add container, toc title and list items
361
+ $html = '<div id="toc_container">';
362
+ if ( $this->options['show_heading_text'] && $this->options['heading_text'] ) {
363
+ $toc_title = htmlentities( stripslashes($this->options['heading_text']), ENT_COMPAT, 'UTF-8' );
364
+ $html .= '<h3 class="toc_title">' . $toc_title . '</h3>';
365
+ }
366
+ $html .= '<ul class="toc_list">' . $items . '</ul></div>';
367
+ $html = PHP_EOL . wpautop( $html ) . PHP_EOL;
368
 
369
+ if ( count( $find ) > 0 ) {
370
+ switch ( $yturbo_options['yttocmesto'] ) {
371
+ case 'В начале записи':
372
+ $content = $html . $this->mb_find_replace( $find, $replace, $content );
373
+ break;
374
 
375
+ case 'В конце записи':
376
+ $content = $this->mb_find_replace( $find, $replace, $content ) . $html;
377
+ break;
378
 
379
+ case 'После первого заголовка':
380
+ $replace[0] = $replace[0] . $html;
381
+ $content = $this->mb_find_replace( $find, $replace, $content );
382
+ break;
383
 
384
+ case 'Перед первым заголовком':
385
+ default:
386
+ $replace[0] = $html . $replace[0];
387
+ $content = $this->mb_find_replace( $find, $replace, $content );
388
+ }
389
+ }
390
 
391
+ }
 
392
 
393
+ return $content;
394
  }
 
 
 
 
 
395
 
 
 
 
396
  }
397
+ endif;
 
 
inc/yturbo-css.css CHANGED
@@ -185,10 +185,20 @@ td table {
185
  vertical-align: super;
186
  font-weight: 600;
187
  }
188
- .types, .shortcodes {
189
  margin-bottom: 6px;
190
  display: table;
191
  }
 
 
 
 
 
 
 
 
 
 
192
  .xyztabs {
193
  max-width: 100%;
194
  margin: 0 0 20px;
185
  vertical-align: super;
186
  font-weight: 600;
187
  }
188
+ .types {
189
  margin-bottom: 6px;
190
  display: table;
191
  }
192
+ .ulshortcodes {
193
+ max-width: 850px;
194
+ }
195
+ .ulshortcodes li {
196
+ display: inline-block;
197
+ margin: 0 12px 6px 0;
198
+ }
199
+ .ulshortcodes label {
200
+ vertical-align: initial;
201
+ }
202
  .xyztabs {
203
  max-width: 100%;
204
  margin: 0 0 20px;
inc/yturbo-script.js CHANGED
@@ -1,694 +1,694 @@
1
  jQuery(document).ready(function($) {
2
 
3
- //блок разбития rss begin
4
- $('#ytrazb').change(function() {
5
- if ($('#ytrazb').is(':checked')) {
6
- $('.ytrazbnumbertr').fadeIn();
7
- } else {
8
- $('.ytrazbnumbertr').hide();
9
- }
10
- });
11
- //блок разбития rss end
12
-
13
- //блок выборочного отключения begin
14
- $('#ytexcludeurls').change(function() {
15
- if ($('#ytexcludeurls').is(':checked')) {
16
- $('.ytexcludeurlslisttr').fadeIn();
17
- } else {
18
- $('.ytexcludeurlslisttr').hide();
19
- }
20
- });
21
- //блок выборочного отключения end
22
-
23
- //блок полного отключения begin
24
- $('#ytremoveturbo').change(function() {
25
- if ($('#ytremoveturbo').is(':checked')) {
26
- $('.ytprotokoltr').fadeIn();
27
- } else {
28
- $('.ytprotokoltr').hide();
29
- }
30
- });
31
- //блок полного отключения end
32
-
33
- //блок включения даты begin
34
- $('#ytpostdate').change(function() {
35
- if ($('#ytpostdate').is(':checked')) {
36
- $('.ytdateformattr').fadeIn();
37
- } else {
38
- $('.ytdateformattr').hide();
39
- }
40
- });
41
- //блок включения даты end
42
-
43
- //блок выбора размера миниатюры begin
44
- $('#ytthumbnail').change(function() {
45
- if ($('#ytthumbnail').is(':checked')) {
46
- $('.ytselectthumbtr').fadeIn();
47
- } else {
48
- $('.ytselectthumbtr').hide();
49
- }
50
- });
51
- //блок выбора размера миниатюры end
52
-
53
- //блок указания автора записи begin
54
- $('#ytauthorselect').change(function() {
55
- if ($('#ytauthorselect option:selected').val() == 'Указать автора') {
56
- $('#ownname2').fadeIn();
57
- } else {
58
- $('#ownname2').hide();
59
- }
60
- });
61
- //блок указания автора записи end
62
-
63
- //блок включения содержания begin
64
- $('#yttoc').change(function() {
65
- if ($('#yttoc').is(':checked')) {
66
- $('.yttocchildtr').fadeIn();
67
- } else {
68
- $('.yttocchildtr').hide();
69
- }
70
- });
71
- //блок включения содержания end
72
-
73
- //блок включения "поделиться" begin
74
- $('#ytshare').change(function() {
75
- if ($('#ytshare').is(':checked')) {
76
- $('.ytsharechildtr').fadeIn();
77
- } else {
78
- $('.ytsharechildtr').hide();
79
- }
80
- });
81
- //блок включения "поделиться" end
82
-
83
- //блок включения "обратной связи" begin
84
- $('#ytfeedback').change(function() {
85
- if ($('#ytfeedback').is(':checked')) {
86
- $('.ytfeedbackchildtr').fadeIn();
87
- if ($('#ytfeedbackselect option:selected').val() == 'false') {$('.ytfeedbackselectmestotr').fadeIn();}
88
- } else {
89
- $('.ytfeedbackchildtr').hide();
90
- $('.ytfeedbackselectmestotr').hide();
91
- $('#ytfeedbackcontacts [value="myselect"]').attr('selected', 'selected');
92
- $('.ytfeedbackcalltr,.ytfeedbackcallbacktr,.ytfeedbackchattr,.ytfeedbackmailtr,.ytfeedbackvkontaktetr,.ytfeedbackodnoklassnikitr,.ytfeedbacktwittertr,.ytfeedbackfacebooktr,.ytfeedbackvibertr,.ytfeedbackwhatsapptr,.ytfeedbacktelegramtr').hide();
93
- }
94
- });
95
- //блок включения "обратной связи" end
96
-
97
- //выбор места при выборе "в указанном месте" в блоке "обратной связи" begin
98
- $('#ytfeedbackselect').change(function() {
99
- if ($('#ytfeedbackselect option:selected').val() == 'false') {
100
- $('.ytfeedbackselectmestotr').fadeIn();
101
- } else {
102
- $('.ytfeedbackselectmestotr').hide();
103
- }
104
- });
105
- //выбор места при выборе "в указанном месте" в блоке "обратной связи" end
106
-
107
- //выбор контактов в блоке "обратной связи" begin
108
- $('#ytfeedbackcontacts').change(function() {
109
- if ($('#ytfeedbackcontacts option:selected').val() == 'feedbackcall') {
110
- $('.ytfeedbackcalltr').fadeIn();
111
- } else {
112
- $('.ytfeedbackcalltr').hide();
113
- }
114
- if ($('#ytfeedbackcontacts option:selected').val() == 'feedbackcallback') {
115
- $('.ytfeedbackcallbacktr').fadeIn();
116
- } else {
117
- $('.ytfeedbackcallbacktr').hide();
118
- }
119
- if ($('#ytfeedbackcontacts option:selected').val() == 'feedbackchat') {
120
- $('.ytfeedbackchattr').fadeIn();
121
- } else {
122
- $('.ytfeedbackchattr').hide();
123
- }
124
- if ($('#ytfeedbackcontacts option:selected').val() == 'feedbackmail') {
125
- $('.ytfeedbackmailtr').fadeIn();
126
- } else {
127
- $('.ytfeedbackmailtr').hide();
128
- }
129
- if ($('#ytfeedbackcontacts option:selected').val() == 'feedbackvkontakte') {
130
- $('.ytfeedbackvkontaktetr').fadeIn();
131
- } else {
132
- $('.ytfeedbackvkontaktetr').hide();
133
- }
134
- if ($('#ytfeedbackcontacts option:selected').val() == 'feedbackodnoklassniki') {
135
- $('.ytfeedbackodnoklassnikitr').fadeIn();
136
- } else {
137
- $('.ytfeedbackodnoklassnikitr').hide();
138
- }
139
- if ($('#ytfeedbackcontacts option:selected').val() == 'feedbacktwitter') {
140
- $('.ytfeedbacktwittertr').fadeIn();
141
- } else {
142
- $('.ytfeedbacktwittertr').hide();
143
- }
144
- if ($('#ytfeedbackcontacts option:selected').val() == 'feedbackfacebook') {
145
- $('.ytfeedbackfacebooktr').fadeIn();
146
- } else {
147
- $('.ytfeedbackfacebooktr').hide();
148
- }
149
- if ($('#ytfeedbackcontacts option:selected').val() == 'feedbackviber') {
150
- $('.ytfeedbackvibertr').fadeIn();
151
- } else {
152
- $('.ytfeedbackvibertr').hide();
153
- }
154
- if ($('#ytfeedbackcontacts option:selected').val() == 'feedbackwhatsapp') {
155
- $('.ytfeedbackwhatsapptr').fadeIn();
156
- } else {
157
- $('.ytfeedbackwhatsapptr').hide();
158
- }
159
- if ($('#ytfeedbackcontacts option:selected').val() == 'feedbacktelegram') {
160
- $('.ytfeedbacktelegramtr').fadeIn();
161
- } else {
162
- $('.ytfeedbacktelegramtr').hide();
163
- }
164
- });
165
- //выбор контактов в блоке "обратной связи" end
166
-
167
- //блок включения комментариев begin
168
- $('#ytcomments').change(function() {
169
- if ($('#ytcomments').is(':checked')) {
170
- $('.ytcommentschildtr').fadeIn();
171
- } else {
172
- $('.ytcommentschildtr').hide();
173
- }
174
- });
175
- //блок включения комментариев end
176
-
177
- //блок включения "похожих записей" begin
178
- $('#ytrelated').change(function() {
179
- if ($('#ytrelated').is(':checked')) {
180
- if ($('#ytrelatedcache').is(':checked')) {$('.ytcachetime').fadeIn();}
181
- $('.ytrelatedchildtr').fadeIn();
182
- } else {
183
- $('.ytrelatedchildtr').hide();
184
- $('.ytcachetime').hide();
185
- }
186
- });
187
- //блок включения "похожих записей" end
188
-
189
- //блок включения кэша в блоке "похожих записей" begin
190
- $('#ytrelatedcache').change(function() {
191
- if ($('#ytrelatedcache').is(':checked')) {
192
- $('.ytcachetime').fadeIn();
193
- } else {
194
- $('.ytcachetime').hide();
195
- }
196
- });
197
- //блок включения кэша в блоке "похожих записей" end
198
-
199
- //блок включения рейтинга begin
200
- $('#ytrating').change(function() {
201
- if ($('#ytrating').is(':checked')) {
202
- $('.ytratingchildtr').fadeIn();
203
- } else {
204
- $('.ytratingchildtr').hide();
205
- }
206
- });
207
- //блок включения рейтинга end
208
-
209
- //блок включения поиска begin
210
- $('#ytsearch').change(function() {
211
- if ($('#ytsearch').is(':checked')) {
212
- $('.ytsearchchildtr').fadeIn();
213
- } else {
214
- $('.ytsearchchildtr').hide();
215
- }
216
- });
217
- //блок включения поиска end
218
-
219
- //блок установки первой рекламы begin
220
- $('#ytad1').change(function() {
221
- if ($('#ytad1').is(':checked')) {
222
- $('.block1').fadeIn();
223
- if ($('#ytad1set option:selected').val() == 'РСЯ') {
224
- $('.trrsa').fadeIn();
225
- $('.trfox1').hide();
226
- }
227
- if ($('#ytad1set option:selected').val() == 'ADFOX') {
228
- $('.trrsa').hide();
229
- $('.trfox1').fadeIn();
230
- }
231
- } else {
232
- $('.block1').hide();
233
- }
234
- });
235
- $('#ytad1set').change(function() {
236
- if ($('#ytad1set option:selected').val() == 'РСЯ') {
237
- $('.trrsa').show();
238
- $('.trfox1').hide();
239
- }
240
- if ($('#ytad1set option:selected').val() == 'ADFOX') {
241
- $('.trrsa').hide();
242
- $('.trfox1').show();
243
- }
244
- });
245
- //блок установки первой рекламы end
246
-
247
- //блок установки второй рекламы begin
248
- $('#ytad2').change(function() {
249
- if ($('#ytad2').is(':checked')) {
250
- $('.block2').fadeIn();
251
- if ($('#ytad2set option:selected').val() == 'РСЯ') {
252
- $('.trrsa2').fadeIn();
253
- $('.trfox2').hide();
254
- }
255
- if ($('#ytad2set option:selected').val() == 'ADFOX') {
256
- $('.trrsa2').hide();
257
- $('.trfox2').fadeIn();
258
- }
259
- } else {
260
- $('.block2').hide();
261
- }
262
- });
263
- $('#ytad2set').change(function() {
264
- if ($('#ytad2set option:selected').val() == 'РСЯ') {
265
- $('.trrsa2').show();
266
- $('.trfox2').hide();
267
- }
268
- if ($('#ytad2set option:selected').val() == 'ADFOX') {
269
- $('.trrsa2').hide();
270
- $('.trfox2').show();
271
- }
272
- });
273
- //блок установки второй рекламы end
274
-
275
- //блок установки третьей рекламы begin
276
- $('#ytad3').change(function() {
277
- if ($('#ytad3').is(':checked')) {
278
- $('.block3').fadeIn();
279
- if ($('#ytad3set option:selected').val() == 'РСЯ') {
280
- $('.trrsa3').fadeIn();
281
- $('.trfox3').hide();
282
- }
283
- if ($('#ytad3set option:selected').val() == 'ADFOX') {
284
- $('.trrsa3').hide();
285
- $('.trfox3').fadeIn();
286
- }
287
- } else {
288
- $('.block3').hide();
289
- }
290
- });
291
- $('#ytad3set').change(function() {
292
- if ($('#ytad3set option:selected').val() == 'РСЯ') {
293
- $('.trrsa3').show();
294
- $('.trfox3').hide();
295
- }
296
- if ($('#ytad3set option:selected').val() == 'ADFOX') {
297
- $('.trrsa3').hide();
298
- $('.trfox3').show();
299
- }
300
- });
301
- //блок установки третьей рекламы end
302
-
303
- //блок установки четвертой рекламы begin
304
- $('#ytad4').change(function() {
305
- if ($('#ytad4').is(':checked')) {
306
- $('.block4').fadeIn();
307
- if ($('#ytad4set option:selected').val() == 'РСЯ') {
308
- $('.trrsa4').fadeIn();
309
- $('.trfox4').hide();
310
- }
311
- if ($('#ytad4set option:selected').val() == 'ADFOX') {
312
- $('.trrsa4').hide();
313
- $('.trfox4').fadeIn();
314
- }
315
- } else {
316
- $('.block4').hide();
317
- }
318
- });
319
- $('#ytad4set').change(function() {
320
- if ($('#ytad4set option:selected').val() == 'РСЯ') {
321
- $('.trrsa4').show();
322
- $('.trfox4').hide();
323
- }
324
- if ($('#ytad4set option:selected').val() == 'ADFOX') {
325
- $('.trrsa4').hide();
326
- $('.trfox4').show();
327
- }
328
- });
329
- //блок установки четвертой рекламы end
330
-
331
- //блок установки пятой рекламы begin
332
- $('#ytad5').change(function() {
333
- if ($('#ytad5').is(':checked')) {
334
- $('.block5').fadeIn();
335
- if ($('#ytad5set option:selected').val() == 'РСЯ') {
336
- $('.trrsa5').fadeIn();
337
- $('.trfox5').hide();
338
- }
339
- if ($('#ytad5set option:selected').val() == 'ADFOX') {
340
- $('.trrsa5').hide();
341
- $('.trfox5').fadeIn();
342
- }
343
- } else {
344
- $('.block5').hide();
345
- }
346
- });
347
- $('#ytad5set').change(function() {
348
- if ($('#ytad5set option:selected').val() == 'РСЯ') {
349
- $('.trrsa5').show();
350
- $('.trfox5').hide();
351
- }
352
- if ($('#ytad5set option:selected').val() == 'ADFOX') {
353
- $('.trrsa5').hide();
354
- $('.trfox5').show();
355
- }
356
- });
357
- //блок установки пятой рекламы end
358
-
359
- //блок выбора таксономий для исключения/включения begin
360
- $('#ytqueryselect').change(function() {
361
- if ($('#ytqueryselect option:selected').val() == 'Все таксономии, кроме исключенных') {
362
- $('.yttaxlisttr').fadeIn();
363
- $('.exclude-small-text').fadeIn();
364
- $('.thexclude').fadeIn();
365
- $('#excludespan').fadeIn();
366
- } else {
367
- $('.yttaxlisttr').hide();
368
- $('.exclude-small-text').hide();
369
- $('.thexclude').hide();
370
- $('#excludespan').hide();
371
- }
372
- if ($('#ytqueryselect option:selected').val() == 'Только указанные таксономии') {
373
- $('.ytaddtaxlisttr').fadeIn();
374
- $('.include-small-text').fadeIn();
375
- $('.thinclude').fadeIn();
376
- $('#includespan').fadeIn();
377
- } else {
378
- $('.ytaddtaxlisttr').hide();
379
- $('.include-small-text').hide();
380
- $('.thinclude').hide();
381
- $('#includespan').hide();
382
- }
383
- });
384
- //блок выбора таксономий для исключения/включения end
385
-
386
- //блок удаления шорткодов begin
387
- $('#ytexcludeshortcodes').change(function() {
388
- if ($('#ytexcludeshortcodes').is(':checked')) {
389
- $('.ytexcludeshortcodeslisttr').fadeIn();
390
- } else {
391
- $('.ytexcludeshortcodeslisttr').hide();
392
- }
393
- });
394
- //блок удаления шорткодов end
395
-
396
- //блок удаления тегов без контента begin
397
- $('#ytexcludetags').change(function() {
398
- if ($('#ytexcludetags').is(':checked')) {
399
- $('.ytexcludetagslisttr').fadeIn();
400
- } else {
401
- $('.ytexcludetagslisttr').hide();
402
- }
403
- });
404
- //блок удаления тегов без контента end
405
-
406
- //блок удаления тегов с контентом begin
407
- $('#ytexcludetags2').change(function() {
408
- if ($('#ytexcludetags2').is(':checked')) {
409
- $('.ytexcludetagslist2tr').fadeIn();
410
- } else {
411
- $('.ytexcludetagslist2tr').hide();
412
- }
413
- });
414
- //блок удаления тегов с контентом end
415
-
416
- //блок удаления точного контента begin
417
- $('#ytexcludecontent').change(function() {
418
- if ($('#ytexcludecontent').is(':checked')) {
419
- $('.ytexcludecontentlisttr').fadeIn();
420
- } else {
421
- $('.ytexcludecontentlisttr').hide();
422
- }
423
- });
424
- //блок удаления точного контента end
425
-
426
-
427
- //вывод полного списка rss-лент begin
428
- $('#showlistrss').click(function(){
429
- if ($('#allrss').is(':hidden')) {
430
- $('#allrss').fadeIn();
431
- $('#showlistrss').text('скрыть');
432
- } else {
433
- $('#allrss').hide();
434
- $('#showlistrss').text('показать');
435
- }
436
- })
437
- //вывод полного списка rss-лент end
438
-
439
- //управление табами begin
440
- $('ul.xyztabs__caption').on('click', 'li:not(.active)', function() {
441
- $(this)
442
- .addClass('active').siblings().removeClass('active')
443
- .closest('div.xyztabs').find('div.xyztabs__content').removeClass('active').eq($(this).index()).addClass('active');
444
- $('#yttab').val($('.xyztabs__caption li.active').text());
445
- });
446
-
447
- var tabIndex = window.location.hash.replace('#tab','')-1;
448
- if (tabIndex != -1) $('ul.xyztabs__caption li').eq(tabIndex).click();
449
-
450
- $('a[href="#tab"]').click(function() {
451
- var tabIndex = $(this).attr('href').replace(/(.*)#tab/, '')-1;
452
- $('ul.xyztabs__caption li').eq(tabIndex).click();
453
- });
454
- //управление табами end
455
-
456
- //управление закрытием рекламных блоков по времени begin
457
- checkExpTime();
458
-
459
- $('#close-donat').on('click',function(e) {
460
- localStorage.setItem('yt-close-donat', 'yes');
461
- $('#donat').slideUp(300);
462
- $('#restore-hide-blocks').show(300);
463
- setExpTime();
464
- });
465
-
466
- $('#close-about').on('click',function(e) {
467
- localStorage.setItem('yt-close-about', 'yes');
468
- $('#about').slideUp(300);
469
- $('#restore-hide-blocks').show(300);
470
- setExpTime();
471
- });
472
-
473
- $('#restore-hide-blocks').on('click',function(e) {
474
- localStorage.removeItem('yt-time');
475
- localStorage.removeItem('yt-close-donat');
476
- localStorage.removeItem('yt-close-about');
477
- $('#restore-hide-blocks').hide(300);
478
- $('#donat').slideDown(300);
479
- $('#about').slideDown(300);
480
- });
481
-
482
- function setExpTime() {
483
- var limit = 90 * 24 * 60 * 60 * 1000; // 3 месяца
484
- var time = localStorage.getItem('yt-time');
485
- if (time === null) {
486
- localStorage.setItem('yt-time', +new Date());
487
- } else if(+new Date() - time > limit) {
488
- localStorage.removeItem('yt-time');
489
- localStorage.removeItem('yt-close-donat');
490
- localStorage.removeItem('yt-close-about');
491
- localStorage.setItem('yt-time', +new Date());
492
- }
493
- }
494
-
495
- function checkExpTime() {
496
- var limit = 90 * 24 * 60 * 60 * 1000; // 3 месяца
497
- var time = localStorage.getItem('yt-time');
498
- if (time === null) {
499
-
500
- } else if(+new Date() - time > limit) {
501
- localStorage.removeItem('yt-time');
502
- localStorage.removeItem('yt-close-donat');
503
- localStorage.removeItem('yt-close-about');
504
- }
505
- }
506
- //управление закрытием рекламных блоков по времени end
507
-
508
- //скрипт добавления тегов удаления без контента begin
509
- var str = $('#tags-list').val();
510
- var whitelist = str.split(',');
511
-
512
- var input = document.querySelector('input[name="ytexcludetagslist-input"]'),
513
- tagify = new Tagify(input, {
514
- whitelist: whitelist,
515
- enforceWhitelist: true,
516
- dropdown: {
517
- maxItems: 20,
518
- classname: 'tags-look',
519
- enabled: 0,
520
- closeOnSelect: false,
521
- }
522
- })
523
-
524
- tagify
525
- .on('add', onAddTag)
526
- .on('remove', onRemoveTag)
527
- .on('invalid', onInvalidTag)
528
-
529
- function onAddTag(e) {
530
-
531
- $('tag').data('title', $('tag').attr('title')).removeAttr('title');
532
- var str = tagify.DOM.originalInput.value;
533
- var temp = str.replace(/{"value":"/g, '');
534
- temp = temp.replace(/"}/g, '');
535
- temp = temp.replace(/"}/g, '');
536
- temp = temp.replace(/\[/g, '');
537
- temp = temp.replace(/\]/g, '');
538
-
539
- $('#ytexcludetagslist').val(temp);
540
- }
541
-
542
- function onRemoveTag(e) {
543
- if ($('tags').hasClass('tagify--focus')) {
544
- tagify.dropdown.hide.call(tagify);
545
- $('tags').removeClass('tagify--focus');
546
- }
547
-
548
- var str = tagify.DOM.originalInput.value;
549
- var temp = str.replace(/{"value":"/g, '');
550
- temp = temp.replace(/"}/g, '');
551
- temp = temp.replace(/"}/g, '');
552
- temp = temp.replace(/\[/g, '');
553
- temp = temp.replace(/\]/g, '');
554
-
555
- $('#ytexcludetagslist').val(temp);
556
-
557
- }
558
-
559
- function onInvalidTag(e) {
560
- tagify.dropdown.show.call(tagify);
561
- }
562
-
563
- $('tag').data('title', $('tag').attr('title')).removeAttr('title');
564
- //скрипт добавления тегов удаления без контента end
565
-
566
- //скрипт добавления тегов удаления с контентом begin
567
- var str = $('#tags-list2').val();
568
- var whitelist = str.split(',');
569
-
570
- var input = document.querySelector('input[name="ytexcludetagslist-input2"]'),
571
- tagify2 = new Tagify(input, {
572
- whitelist: whitelist,
573
- enforceWhitelist: true,
574
- dropdown: {
575
- maxItems: 20,
576
- classname: 'tags-look',
577
- enabled: 0,
578
- closeOnSelect: false,
579
- }
580
- })
581
-
582
- tagify2
583
- .on('add', onAddTag2)
584
- .on('remove', onRemoveTag2)
585
- .on('invalid', onInvalidTag2)
586
-
587
- function onAddTag2(e) {
588
-
589
- $('tag').data('title', $('tag').attr('title')).removeAttr('title');
590
- var str = tagify2.DOM.originalInput.value;
591
- var temp = str.replace(/{"value":"/g, '');
592
- temp = temp.replace(/"}/g, '');
593
- temp = temp.replace(/"}/g, '');
594
- temp = temp.replace(/\[/g, '');
595
- temp = temp.replace(/\]/g, '');
596
-
597
- $('#ytexcludetagslist2').val(temp);
598
- }
599
-
600
- function onRemoveTag2(e) {
601
- if ($('tags').hasClass('tagify--focus')) {
602
- tagify2.dropdown.hide.call(tagify2);
603
- $('tags').removeClass('tagify--focus');
604
- }
605
-
606
- var str = tagify2.DOM.originalInput.value;
607
- var temp = str.replace(/{"value":"/g, '');
608
- temp = temp.replace(/"}/g, '');
609
- temp = temp.replace(/"}/g, '');
610
- temp = temp.replace(/\[/g, '');
611
- temp = temp.replace(/\]/g, '');
612
-
613
- $('#ytexcludetagslist2').val(temp);
614
-
615
- }
616
-
617
- function onInvalidTag2(e) {
618
- tagify2.dropdown.show.call(tagify2);
619
- }
620
-
621
- $('tag').data('title', $('tag').attr('title')).removeAttr('title');
622
- //скрипт добавления тегов удаления с контентом end
623
-
624
- //ajax-подгрузка терминов таксономий begin
625
- var loaded_disallows = false;
626
-
627
- function load_disallows() {
628
- if ( loaded_disallows )
629
- return;
630
- loaded_disallows = true;
631
-
632
- var finished_taxonomies = {},
633
- term_indices = {};
634
-
635
- function load_disallow(taxonomy) {
636
- if (taxonomy in finished_taxonomies)
637
- return;
638
- var display = $('#exclude_' + taxonomy);
639
-
640
- if (display.find('.loading').length)
641
- return;
642
-
643
- if (taxonomy in term_indices)
644
- term_indices[taxonomy] = term_indices[taxonomy] + 100;
645
- else
646
- term_indices[taxonomy] = 0;
647
- $.ajax({
648
- type: 'POST',
649
- url: ajaxurl,
650
- data: {
651
- action: 'yturbo_display_exclude_terms',
652
- taxonomy: taxonomy,
653
- offset: term_indices[taxonomy],
654
- '_ajax_nonce': $('#yturbo_display_exclude_terms-nonce').val()
655
- },
656
- beforeSend: function() {
657
- display.append(loading)
658
- },
659
- success: function(html) {
660
- display.find('.loading').remove();
661
- if ('<li>:(</li>' == html) {
662
- finished_taxonomies[taxonomy] = true;
663
- return;
664
- }
665
- display.append(html);
666
- },
667
- dataType: 'html'
668
- });
669
- }
670
-
671
- $('.exclude_terms').each(function() {
672
- var id = jQuery(this).attr('id'),
673
- taxonomy;
674
- if (!id)
675
- return;
676
-
677
- taxonomy = id.replace('exclude_', '');
678
-
679
- load_disallow(taxonomy);
680
- $('#exclude_' + taxonomy).parent('.list_terms_scroll_wrapper').scroll(function() {
681
- var parent = $(this),
682
- content = parent.children('ul');
683
- if (parent.scrollTop() + parent.height() > content.height() - 10)
684
- load_disallow(taxonomy);
685
- })
686
- })
687
-
688
- }
689
-
690
- load_disallows();
691
- //ajax-подгрузка терминов таксономий end
692
 
693
  })
694
 
@@ -697,302 +697,302 @@ jQuery(document).ready(function($) {
697
 
698
 
699
  String.prototype.replaceAll = function(search, replace){
700
- return this.split(search).join(replace);
701
  }
702
 
703
  jQuery(document).ready(function($) {
704
- var temp = jQuery('#ytnetw').val();
705
- if (temp!==undefined) {
706
- if (temp.indexOf('facebook') !== -1) {jQuery('#facebook').attr('checked', 'checked');}
707
- if (temp.indexOf('vkontakte') !== -1) {jQuery('#vkontakte').attr('checked', 'checked');}
708
- if (temp.indexOf('twitter') !== -1) {jQuery('#twitter').attr('checked', 'checked');}
709
- if (temp.indexOf('odnoklassniki') !== -1) {jQuery('#odnoklassniki').attr('checked', 'checked');}
710
- if (temp.indexOf('telegram') !== -1) {jQuery('#telegram').attr('checked', 'checked');}
711
- }
712
  });
713
  jQuery(function() {
714
- jQuery('#facebook').click(function(){
715
- if (jQuery('#ytnetw').val().indexOf('facebook') == -1) {
716
- temp = jQuery('#ytnetw').val() + 'facebook' + ',';
717
- jQuery('#ytnetw').val(temp);
718
- jQuery('#ytnetwspan').val(temp);
719
- } else {
720
- temp = jQuery('#ytnetw').val();
721
- temp = temp.replaceAll('facebook,', '');
722
- jQuery('#ytnetw').val(temp);
723
- jQuery('#ytnetwspan').val(temp);
724
- }
725
- })
726
  });
727
  jQuery(function() {
728
- jQuery('#vkontakte').click(function(){
729
- if (jQuery('#ytnetw').val().indexOf('vkontakte') == -1) {
730
- temp = jQuery('#ytnetw').val() + 'vkontakte' + ',';
731
- jQuery('#ytnetw').val(temp);
732
- jQuery('#ytnetwspan').val(temp);
733
- } else {
734
- temp = jQuery('#ytnetw').val();
735
- temp = temp.replaceAll('vkontakte,', '');
736
- jQuery('#ytnetw').val(temp);
737
- jQuery('#ytnetwspan').val(temp);
738
- }
739
- })
740
  });
741
  jQuery(function() {
742
- jQuery('#twitter').click(function(){
743
- if (jQuery('#ytnetw').val().indexOf('twitter') == -1) {
744
- temp = jQuery('#ytnetw').val() + 'twitter' + ',';
745
- jQuery('#ytnetw').val(temp);
746
- jQuery('#ytnetwspan').val(temp);
747
- } else {
748
- temp = jQuery('#ytnetw').val();
749
- temp = temp.replaceAll('twitter,', '');
750
- jQuery('#ytnetw').val(temp);
751
- jQuery('#ytnetwspan').val(temp);
752
- }
753
- })
754
  });
755
  jQuery(function() {
756
- jQuery('#odnoklassniki').click(function(){
757
- if (jQuery('#ytnetw').val().indexOf('odnoklassniki') == -1) {
758
- temp = jQuery('#ytnetw').val() + 'odnoklassniki' + ',';
759
- jQuery('#ytnetw').val(temp);
760
- jQuery('#ytnetwspan').val(temp);
761
- } else {
762
- temp = jQuery('#ytnetw').val();
763
- temp = temp.replaceAll('odnoklassniki,', '');
764
- jQuery('#ytnetw').val(temp);
765
- jQuery('#ytnetwspan').val(temp);
766
- }
767
- })
768
  });
769
  jQuery(function() {
770
- jQuery('#telegram').click(function(){
771
- if (jQuery('#ytnetw').val().indexOf('telegram') == -1) {
772
- temp = jQuery('#ytnetw').val() + 'telegram' + ',';
773
- jQuery('#ytnetw').val(temp);
774
- jQuery('#ytnetwspan').val(temp);
775
- } else {
776
- temp = jQuery('#ytnetw').val();
777
- temp = temp.replaceAll('telegram,', '');
778
- jQuery('#ytnetw').val(temp);
779
- jQuery('#ytnetwspan').val(temp);
780
- }
781
- })
782
  });
783
 
784
  jQuery(document).ready(function($) {
785
- var temp2 = jQuery('#ytfeedbacknetw').val();
786
- if (temp2!==undefined) {
787
- if (temp2.indexOf('call,') !== -1) {jQuery('#feedbackcall').attr('checked', 'checked');jQuery('#ytfeedbackcontacts [value="feedbackcall"]').removeAttr('disabled');}
788
- if (temp2.indexOf('callback') !== -1) {jQuery('#feedbackcallback').attr('checked', 'checked');jQuery('#ytfeedbackcontacts [value="feedbackcallback"]').removeAttr('disabled');}
789
- if (temp2.indexOf('chat') !== -1) {jQuery('#feedbackchat').attr('checked', 'checked');jQuery('#ytfeedbackcontacts [value="feedbackchat"]').removeAttr('disabled');}
790
- if (temp2.indexOf('mail') !== -1) {jQuery('#feedbackmail').attr('checked', 'checked');jQuery('#ytfeedbackcontacts [value="feedbackmail"]').removeAttr('disabled');}
791
- if (temp2.indexOf('vkontakte') !== -1) {jQuery('#feedbackvkontakte').attr('checked', 'checked');jQuery('#ytfeedbackcontacts [value="feedbackvkontakte"]').removeAttr('disabled');}
792
- if (temp2.indexOf('odnoklassniki') !== -1) {jQuery('#feedbackodnoklassniki').attr('checked', 'checked');jQuery('#ytfeedbackcontacts [value="feedbackodnoklassniki"]').removeAttr('disabled');}
793
- if (temp2.indexOf('twitter') !== -1) {jQuery('#feedbacktwitter').attr('checked', 'checked');jQuery('#ytfeedbackcontacts [value="feedbacktwitter"]').removeAttr('disabled');}
794
- if (temp2.indexOf('facebook') !== -1) {jQuery('#feedbackfacebook').attr('checked', 'checked');jQuery('#ytfeedbackcontacts [value="feedbackfacebook"]').removeAttr('disabled');}
795
- if (temp2.indexOf('viber') !== -1) {jQuery('#feedbackviber').attr('checked', 'checked');jQuery('#ytfeedbackcontacts [value="feedbackviber"]').removeAttr('disabled');}
796
- if (temp2.indexOf('whatsapp') !== -1) {jQuery('#feedbackwhatsapp').attr('checked', 'checked');jQuery('#ytfeedbackcontacts [value="feedbackwhatsapp"]').removeAttr('disabled');}
797
- if (temp2.indexOf('telegram') !== -1) {jQuery('#feedbacktelegram').attr('checked', 'checked');jQuery('#ytfeedbackcontacts [value="feedbacktelegram"]').removeAttr('disabled');}
798
- }
799
  });
800
  jQuery(function() {
801
- jQuery('#feedbackcall').click(function(){
802
- jQuery('#ytfeedbackcontacts [value="myselect"]').attr('selected', 'selected');
803
- jQuery('.ytfeedbackcalltr,.ytfeedbackcallbacktr,.ytfeedbackchattr,.ytfeedbackmailtr,.ytfeedbackvkontaktetr,.ytfeedbackodnoklassnikitr,.ytfeedbacktwittertr,.ytfeedbackfacebooktr,.ytfeedbackvibertr,.ytfeedbackwhatsapptr,.ytfeedbacktelegramtr').hide();
804
- if (jQuery('#ytfeedbacknetw').val().indexOf('call,') == -1) {
805
- temp2 = jQuery('#ytfeedbacknetw').val() + 'call' + ',';
806
- jQuery('#ytfeedbacknetw').val(temp2);
807
- jQuery('#ytfeedbacknetwspan').val(temp2);
808
- jQuery('#ytfeedbackcontacts [value="feedbackcall"]').removeAttr('disabled');
809
- } else {
810
- temp2 = jQuery('#ytfeedbacknetw').val();
811
- temp2 = temp2.replaceAll('call,', '');
812
- jQuery('#ytfeedbacknetw').val(temp2);
813
- jQuery('#ytfeedbacknetwspan').val(temp2);
814
- jQuery('#ytfeedbackcontacts [value="feedbackcall"]').attr('disabled', 'disabled');
815
- }
816
- })
817
  });
818
  jQuery(function() {
819
- jQuery('#feedbackcallback').click(function(){
820
- jQuery('#ytfeedbackcontacts [value="myselect"]').attr('selected', 'selected');
821
- jQuery('.ytfeedbackcalltr,.ytfeedbackcallbacktr,.ytfeedbackchattr,.ytfeedbackmailtr,.ytfeedbackvkontaktetr,.ytfeedbackodnoklassnikitr,.ytfeedbacktwittertr,.ytfeedbackfacebooktr,.ytfeedbackvibertr,.ytfeedbackwhatsapptr,.ytfeedbacktelegramtr').hide();
822
- if (jQuery('#ytfeedbacknetw').val().indexOf('callback') == -1) {
823
- temp2 = jQuery('#ytfeedbacknetw').val() + 'callback' + ',';
824
- jQuery('#ytfeedbacknetw').val(temp2);
825
- jQuery('#ytfeedbacknetwspan').val(temp2);
826
- jQuery('#ytfeedbackcontacts [value="feedbackcallback"]').removeAttr('disabled');
827
- } else {
828
- temp2 = jQuery('#ytfeedbacknetw').val();
829
- temp2 = temp2.replaceAll('callback,', '');
830
- jQuery('#ytfeedbacknetw').val(temp2);
831
- jQuery('#ytfeedbacknetwspan').val(temp2);
832
- jQuery('#ytfeedbackcontacts [value="feedbackcallback"]').attr('disabled', 'disabled');
833
- }
834
- })
835
  });
836
  jQuery(function() {
837
- jQuery('#feedbackchat').click(function(){
838
- jQuery('#ytfeedbackcontacts [value="myselect"]').attr('selected', 'selected');
839
- jQuery('.ytfeedbackcalltr,.ytfeedbackcallbacktr,.ytfeedbackchattr,.ytfeedbackmailtr,.ytfeedbackvkontaktetr,.ytfeedbackodnoklassnikitr,.ytfeedbacktwittertr,.ytfeedbackfacebooktr,.ytfeedbackvibertr,.ytfeedbackwhatsapptr,.ytfeedbacktelegramtr').hide();
840
- if (jQuery('#ytfeedbacknetw').val().indexOf('chat') == -1) {
841
- temp2 = jQuery('#ytfeedbacknetw').val() + 'chat' + ',';
842
- jQuery('#ytfeedbacknetw').val(temp2);
843
- jQuery('#ytfeedbacknetwspan').val(temp2);
844
- jQuery('#ytfeedbackcontacts [value="feedbackchat"]').removeAttr('disabled');
845
- } else {
846
- temp2 = jQuery('#ytfeedbacknetw').val();
847
- temp2 = temp2.replaceAll('chat,', '');
848
- jQuery('#ytfeedbacknetw').val(temp2);
849
- jQuery('#ytfeedbacknetwspan').val(temp2);
850
- jQuery('#ytfeedbackcontacts [value="feedbackchat"]').attr('disabled', 'disabled');
851
- }
852
- })
853
  });
854
  jQuery(function() {
855
- jQuery('#feedbackmail').click(function(){
856
- jQuery('#ytfeedbackcontacts [value="myselect"]').attr('selected', 'selected');
857
- jQuery('.ytfeedbackcalltr,.ytfeedbackcallbacktr,.ytfeedbackchattr,.ytfeedbackmailtr,.ytfeedbackvkontaktetr,.ytfeedbackodnoklassnikitr,.ytfeedbacktwittertr,.ytfeedbackfacebooktr,.ytfeedbackvibertr,.ytfeedbackwhatsapptr,.ytfeedbacktelegramtr').hide();
858
- if (jQuery('#ytfeedbacknetw').val().indexOf('mail') == -1) {
859
- temp2 = jQuery('#ytfeedbacknetw').val() + 'mail' + ',';
860
- jQuery('#ytfeedbacknetw').val(temp2);
861
- jQuery('#ytfeedbacknetwspan').val(temp2);
862
- jQuery('#ytfeedbackcontacts [value="feedbackmail"]').removeAttr('disabled');
863
- } else {
864
- temp2 = jQuery('#ytfeedbacknetw').val();
865
- temp2 = temp2.replaceAll('mail,', '');
866
- jQuery('#ytfeedbacknetw').val(temp2);
867
- jQuery('#ytfeedbacknetwspan').val(temp2);
868
- jQuery('#ytfeedbackcontacts [value="feedbackmail"]').attr('disabled', 'disabled');
869
- }
870
- })
871
  });
872
  jQuery(function() {
873
- jQuery('#feedbackvkontakte').click(function(){
874
- jQuery('#ytfeedbackcontacts [value="myselect"]').attr('selected', 'selected');
875
- jQuery('.ytfeedbackcalltr,.ytfeedbackcallbacktr,.ytfeedbackchattr,.ytfeedbackmailtr,.ytfeedbackvkontaktetr,.ytfeedbackodnoklassnikitr,.ytfeedbacktwittertr,.ytfeedbackfacebooktr,.ytfeedbackvibertr,.ytfeedbackwhatsapptr,.ytfeedbacktelegramtr').hide();
876
- if (jQuery('#ytfeedbacknetw').val().indexOf('vkontakte') == -1) {
877
- temp2 = jQuery('#ytfeedbacknetw').val() + 'vkontakte' + ',';
878
- jQuery('#ytfeedbacknetw').val(temp2);
879
- jQuery('#ytfeedbacknetwspan').val(temp2);
880
- jQuery('#ytfeedbackcontacts [value="feedbackvkontakte"]').removeAttr('disabled');
881
- } else {
882
- temp2 = jQuery('#ytfeedbacknetw').val();
883
- temp2 = temp2.replaceAll('vkontakte,', '');
884
- jQuery('#ytfeedbacknetw').val(temp2);
885
- jQuery('#ytfeedbacknetwspan').val(temp2);
886
- jQuery('#ytfeedbackcontacts [value="feedbackvkontakte"]').attr('disabled', 'disabled');
887
- }
888
- })
889
  });
890
  jQuery(function() {
891
- jQuery('#feedbackodnoklassniki').click(function(){
892
- jQuery('#ytfeedbackcontacts [value="myselect"]').attr('selected', 'selected');
893
- jQuery('.ytfeedbackcalltr,.ytfeedbackcallbacktr,.ytfeedbackchattr,.ytfeedbackmailtr,.ytfeedbackvkontaktetr,.ytfeedbackodnoklassnikitr,.ytfeedbacktwittertr,.ytfeedbackfacebooktr,.ytfeedbackvibertr,.ytfeedbackwhatsapptr,.ytfeedbacktelegramtr').hide();
894
- if (jQuery('#ytfeedbacknetw').val().indexOf('odnoklassniki') == -1) {
895
- temp2 = jQuery('#ytfeedbacknetw').val() + 'odnoklassniki' + ',';
896
- jQuery('#ytfeedbacknetw').val(temp2);
897
- jQuery('#ytfeedbacknetwspan').val(temp2);
898
- jQuery('#ytfeedbackcontacts [value="feedbackodnoklassniki"]').removeAttr('disabled');
899
- } else {
900
- temp2 = jQuery('#ytfeedbacknetw').val();
901
- temp2 = temp2.replaceAll('odnoklassniki,', '');
902
- jQuery('#ytfeedbacknetw').val(temp2);
903
- jQuery('#ytfeedbacknetwspan').val(temp2);
904
- jQuery('#ytfeedbackcontacts [value="feedbackodnoklassniki"]').attr('disabled', 'disabled');
905
- }
906
- })
907
  });
908
  jQuery(function() {
909
- jQuery('#feedbacktwitter').click(function(){
910
- jQuery('#ytfeedbackcontacts [value="myselect"]').attr('selected', 'selected');
911
- jQuery('.ytfeedbackcalltr,.ytfeedbackcallbacktr,.ytfeedbackchattr,.ytfeedbackmailtr,.ytfeedbackvkontaktetr,.ytfeedbackodnoklassnikitr,.ytfeedbacktwittertr,.ytfeedbackfacebooktr,.ytfeedbackvibertr,.ytfeedbackwhatsapptr,.ytfeedbacktelegramtr').hide();
912
- if (jQuery('#ytfeedbacknetw').val().indexOf('twitter') == -1) {
913
- temp2 = jQuery('#ytfeedbacknetw').val() + 'twitter' + ',';
914
- jQuery('#ytfeedbacknetw').val(temp2);
915
- jQuery('#ytfeedbacknetwspan').val(temp2);
916
- jQuery('#ytfeedbackcontacts [value="feedbacktwitter"]').removeAttr('disabled');
917
- } else {
918
- temp2 = jQuery('#ytfeedbacknetw').val();
919
- temp2 = temp2.replaceAll('twitter,', '');
920
- jQuery('#ytfeedbacknetw').val(temp2);
921
- jQuery('#ytfeedbacknetwspan').val(temp2);
922
- jQuery('#ytfeedbackcontacts [value="feedbacktwitter"]').attr('disabled', 'disabled');
923
- }
924
- })
925
  });
926
  jQuery(function() {
927
- jQuery('#feedbackfacebook').click(function(){
928
- jQuery('#ytfeedbackcontacts [value="myselect"]').attr('selected', 'selected');
929
- jQuery('.ytfeedbackcalltr,.ytfeedbackcallbacktr,.ytfeedbackchattr,.ytfeedbackmailtr,.ytfeedbackvkontaktetr,.ytfeedbackodnoklassnikitr,.ytfeedbacktwittertr,.ytfeedbackfacebooktr,.ytfeedbackvibertr,.ytfeedbackwhatsapptr,.ytfeedbacktelegramtr').hide();
930
- if (jQuery('#ytfeedbacknetw').val().indexOf('facebook') == -1) {
931
- temp2 = jQuery('#ytfeedbacknetw').val() + 'facebook' + ',';
932
- jQuery('#ytfeedbacknetw').val(temp2);
933
- jQuery('#ytfeedbacknetwspan').val(temp2);
934
- jQuery('#ytfeedbackcontacts [value="feedbackfacebook"]').removeAttr('disabled');
935
- } else {
936
- temp2 = jQuery('#ytfeedbacknetw').val();
937
- temp2 = temp2.replaceAll('facebook,', '');
938
- jQuery('#ytfeedbacknetw').val(temp2);
939
- jQuery('#ytfeedbacknetwspan').val(temp2);
940
- jQuery('#ytfeedbackcontacts [value="feedbackfacebook"]').attr('disabled', 'disabled');
941
- }
942
- })
943
  });
944
  jQuery(function() {
945
- jQuery('#feedbackviber').click(function(){
946
- jQuery('#ytfeedbackcontacts [value="myselect"]').attr('selected', 'selected');
947
- jQuery('.ytfeedbackcalltr,.ytfeedbackcallbacktr,.ytfeedbackchattr,.ytfeedbackmailtr,.ytfeedbackvkontaktetr,.ytfeedbackodnoklassnikitr,.ytfeedbacktwittertr,.ytfeedbackfacebooktr,.ytfeedbackvibertr,.ytfeedbackwhatsapptr,.ytfeedbacktelegramtr').hide();
948
- if (jQuery('#ytfeedbacknetw').val().indexOf('viber') == -1) {
949
- temp2 = jQuery('#ytfeedbacknetw').val() + 'viber' + ',';
950
- jQuery('#ytfeedbacknetw').val(temp2);
951
- jQuery('#ytfeedbacknetwspan').val(temp2);
952
- jQuery('#ytfeedbackcontacts [value="feedbackviber"]').removeAttr('disabled');
953
- } else {
954
- temp2 = jQuery('#ytfeedbacknetw').val();
955
- temp2 = temp2.replaceAll('viber,', '');
956
- jQuery('#ytfeedbacknetw').val(temp2);
957
- jQuery('#ytfeedbacknetwspan').val(temp2);
958
- jQuery('#ytfeedbackcontacts [value="feedbackviber"]').attr('disabled', 'disabled');
959
- }
960
- })
961
  });
962
  jQuery(function() {
963
- jQuery('#feedbackwhatsapp').click(function(){
964
- jQuery('#ytfeedbackcontacts [value="myselect"]').attr('selected', 'selected');
965
- jQuery('.ytfeedbackcalltr,.ytfeedbackcallbacktr,.ytfeedbackchattr,.ytfeedbackmailtr,.ytfeedbackvkontaktetr,.ytfeedbackodnoklassnikitr,.ytfeedbacktwittertr,.ytfeedbackfacebooktr,.ytfeedbackvibertr,.ytfeedbackwhatsapptr,.ytfeedbacktelegramtr').hide();
966
- if (jQuery('#ytfeedbacknetw').val().indexOf('whatsapp') == -1) {
967
- temp2 = jQuery('#ytfeedbacknetw').val() + 'whatsapp' + ',';
968
- jQuery('#ytfeedbacknetw').val(temp2);
969
- jQuery('#ytfeedbacknetwspan').val(temp2);
970
- jQuery('#ytfeedbackcontacts [value="feedbackwhatsapp"]').removeAttr('disabled');
971
- } else {
972
- temp2 = jQuery('#ytfeedbacknetw').val();
973
- temp2 = temp2.replaceAll('whatsapp,', '');
974
- jQuery('#ytfeedbacknetw').val(temp2);
975
- jQuery('#ytfeedbacknetwspan').val(temp2);
976
- jQuery('#ytfeedbackcontacts [value="feedbackwhatsapp"]').attr('disabled', 'disabled');
977
- }
978
- })
979
  });
980
  jQuery(function() {
981
- jQuery('#feedbacktelegram').click(function(){
982
- jQuery('#ytfeedbackcontacts [value="myselect"]').attr('selected', 'selected');
983
- jQuery('.ytfeedbackcalltr,.ytfeedbackcallbacktr,.ytfeedbackchattr,.ytfeedbackmailtr,.ytfeedbackvkontaktetr,.ytfeedbackodnoklassnikitr,.ytfeedbacktwittertr,.ytfeedbackfacebooktr,.ytfeedbackvibertr,.ytfeedbackwhatsapptr,.ytfeedbacktelegramtr').hide();
984
- if (jQuery('#ytfeedbacknetw').val().indexOf('telegram') == -1) {
985
- temp2 = jQuery('#ytfeedbacknetw').val() + 'telegram' + ',';
986
- jQuery('#ytfeedbacknetw').val(temp2);
987
- jQuery('#ytfeedbacknetwspan').val(temp2);
988
- jQuery('#ytfeedbackcontacts [value="feedbacktelegram"]').removeAttr('disabled');
989
- } else {
990
- temp2 = jQuery('#ytfeedbacknetw').val();
991
- temp2 = temp2.replaceAll('telegram,', '');
992
- jQuery('#ytfeedbacknetw').val(temp2);
993
- jQuery('#ytfeedbacknetwspan').val(temp2);
994
- jQuery('#ytfeedbackcontacts [value="feedbacktelegram"]').attr('disabled', 'disabled');
995
- }
996
- })
997
  });
998
 
1
  jQuery(document).ready(function($) {
2
 
3
+ //блок разбития rss begin
4
+ $('#ytrazb').change(function() {
5
+ if ($('#ytrazb').is(':checked')) {
6
+ $('.ytrazbnumbertr').fadeIn();
7
+ } else {
8
+ $('.ytrazbnumbertr').hide();
9
+ }
10
+ });
11
+ //блок разбития rss end
12
+
13
+ //блок выборочного отключения begin
14
+ $('#ytexcludeurls').change(function() {
15
+ if ($('#ytexcludeurls').is(':checked')) {
16
+ $('.ytexcludeurlslisttr').fadeIn();
17
+ } else {
18
+ $('.ytexcludeurlslisttr').hide();
19
+ }
20
+ });
21
+ //блок выборочного отключения end
22
+
23
+ //блок полного отключения begin
24
+ $('#ytremoveturbo').change(function() {
25
+ if ($('#ytremoveturbo').is(':checked')) {
26
+ $('.ytprotokoltr').fadeIn();
27
+ } else {
28
+ $('.ytprotokoltr').hide();
29
+ }
30
+ });
31
+ //блок полного отключения end
32
+
33
+ //блок включения даты begin
34
+ $('#ytpostdate').change(function() {
35
+ if ($('#ytpostdate').is(':checked')) {
36
+ $('.ytdateformattr').fadeIn();
37
+ } else {
38
+ $('.ytdateformattr').hide();
39
+ }
40
+ });
41
+ //блок включения даты end
42
+
43
+ //блок выбора размера миниатюры begin
44
+ $('#ytthumbnail').change(function() {
45
+ if ($('#ytthumbnail').is(':checked')) {
46
+ $('.ytselectthumbtr').fadeIn();
47
+ } else {
48
+ $('.ytselectthumbtr').hide();
49
+ }
50
+ });
51
+ //блок выбора размера миниатюры end
52
+
53
+ //блок указания автора записи begin
54
+ $('#ytauthorselect').change(function() {
55
+ if ($('#ytauthorselect option:selected').val() == 'Указать автора') {
56
+ $('#ownname2').fadeIn();
57
+ } else {
58
+ $('#ownname2').hide();
59
+ }
60
+ });
61
+ //блок указания автора записи end
62
+
63
+ //блок включения содержания begin
64
+ $('#yttoc').change(function() {
65
+ if ($('#yttoc').is(':checked')) {
66
+ $('.yttocchildtr').fadeIn();
67
+ } else {
68
+ $('.yttocchildtr').hide();
69
+ }
70
+ });
71
+ //блок включения содержания end
72
+
73
+ //блок включения "поделиться" begin
74
+ $('#ytshare').change(function() {
75
+ if ($('#ytshare').is(':checked')) {
76
+ $('.ytsharechildtr').fadeIn();
77
+ } else {
78
+ $('.ytsharechildtr').hide();
79
+ }
80
+ });
81
+ //блок включения "поделиться" end
82
+
83
+ //блок включения "обратной связи" begin
84
+ $('#ytfeedback').change(function() {
85
+ if ($('#ytfeedback').is(':checked')) {
86
+ $('.ytfeedbackchildtr').fadeIn();
87
+ if ($('#ytfeedbackselect option:selected').val() == 'false') {$('.ytfeedbackselectmestotr').fadeIn();}
88
+ } else {
89
+ $('.ytfeedbackchildtr').hide();
90
+ $('.ytfeedbackselectmestotr').hide();
91
+ $('#ytfeedbackcontacts [value="myselect"]').attr('selected', 'selected');
92
+ $('.ytfeedbackcalltr,.ytfeedbackcallbacktr,.ytfeedbackchattr,.ytfeedbackmailtr,.ytfeedbackvkontaktetr,.ytfeedbackodnoklassnikitr,.ytfeedbacktwittertr,.ytfeedbackfacebooktr,.ytfeedbackvibertr,.ytfeedbackwhatsapptr,.ytfeedbacktelegramtr').hide();
93
+ }
94
+ });
95
+ //блок включения "обратной связи" end
96
+
97
+ //выбор места при выборе "в указанном месте" в блоке "обратной связи" begin
98
+ $('#ytfeedbackselect').change(function() {
99
+ if ($('#ytfeedbackselect option:selected').val() == 'false') {
100
+ $('.ytfeedbackselectmestotr').fadeIn();
101
+ } else {
102
+ $('.ytfeedbackselectmestotr').hide();
103
+ }
104
+ });
105
+ //выбор места при выборе "в указанном месте" в блоке "обратной связи" end
106
+
107
+ //выбор контактов в блоке "обратной связи" begin
108
+ $('#ytfeedbackcontacts').change(function() {
109
+ if ($('#ytfeedbackcontacts option:selected').val() == 'feedbackcall') {
110
+ $('.ytfeedbackcalltr').fadeIn();
111
+ } else {
112
+ $('.ytfeedbackcalltr').hide();
113
+ }
114
+ if ($('#ytfeedbackcontacts option:selected').val() == 'feedbackcallback') {
115
+ $('.ytfeedbackcallbacktr').fadeIn();
116
+ } else {
117
+ $('.ytfeedbackcallbacktr').hide();
118
+ }
119
+ if ($('#ytfeedbackcontacts option:selected').val() == 'feedbackchat') {
120
+ $('.ytfeedbackchattr').fadeIn();
121
+ } else {
122
+ $('.ytfeedbackchattr').hide();
123
+ }
124
+ if ($('#ytfeedbackcontacts option:selected').val() == 'feedbackmail') {
125
+ $('.ytfeedbackmailtr').fadeIn();
126
+ } else {
127
+ $('.ytfeedbackmailtr').hide();
128
+ }
129
+ if ($('#ytfeedbackcontacts option:selected').val() == 'feedbackvkontakte') {
130
+ $('.ytfeedbackvkontaktetr').fadeIn();
131
+ } else {
132
+ $('.ytfeedbackvkontaktetr').hide();
133
+ }
134
+ if ($('#ytfeedbackcontacts option:selected').val() == 'feedbackodnoklassniki') {
135
+ $('.ytfeedbackodnoklassnikitr').fadeIn();
136
+ } else {
137
+ $('.ytfeedbackodnoklassnikitr').hide();
138
+ }
139
+ if ($('#ytfeedbackcontacts option:selected').val() == 'feedbacktwitter') {
140
+ $('.ytfeedbacktwittertr').fadeIn();
141
+ } else {
142
+ $('.ytfeedbacktwittertr').hide();
143
+ }
144
+ if ($('#ytfeedbackcontacts option:selected').val() == 'feedbackfacebook') {
145
+ $('.ytfeedbackfacebooktr').fadeIn();
146
+ } else {
147
+ $('.ytfeedbackfacebooktr').hide();
148
+ }
149
+ if ($('#ytfeedbackcontacts option:selected').val() == 'feedbackviber') {
150
+ $('.ytfeedbackvibertr').fadeIn();
151
+ } else {
152
+ $('.ytfeedbackvibertr').hide();
153
+ }
154
+ if ($('#ytfeedbackcontacts option:selected').val() == 'feedbackwhatsapp') {
155
+ $('.ytfeedbackwhatsapptr').fadeIn();
156
+ } else {
157
+ $('.ytfeedbackwhatsapptr').hide();
158
+ }
159
+ if ($('#ytfeedbackcontacts option:selected').val() == 'feedbacktelegram') {
160
+ $('.ytfeedbacktelegramtr').fadeIn();
161
+ } else {
162
+ $('.ytfeedbacktelegramtr').hide();
163
+ }
164
+ });
165
+ //выбор контактов в блоке "обратной связи" end
166
+
167
+ //блок включения комментариев begin
168
+ $('#ytcomments').change(function() {
169
+ if ($('#ytcomments').is(':checked')) {
170
+ $('.ytcommentschildtr').fadeIn();
171
+ } else {
172
+ $('.ytcommentschildtr').hide();
173
+ }
174
+ });
175
+ //блок включения комментариев end
176
+
177
+ //блок включения "похожих записей" begin
178
+ $('#ytrelated').change(function() {
179
+ if ($('#ytrelated').is(':checked')) {
180
+ if ($('#ytrelatedcache').is(':checked')) {$('.ytcachetime').fadeIn();}
181
+ $('.ytrelatedchildtr').fadeIn();
182
+ } else {
183
+ $('.ytrelatedchildtr').hide();
184
+ $('.ytcachetime').hide();
185
+ }
186
+ });
187
+ //блок включения "похожих записей" end
188
+
189
+ //блок включения кэша в блоке "похожих записей" begin
190
+ $('#ytrelatedcache').change(function() {
191
+ if ($('#ytrelatedcache').is(':checked')) {
192
+ $('.ytcachetime').fadeIn();
193
+ } else {
194
+ $('.ytcachetime').hide();
195
+ }
196
+ });
197
+ //блок включения кэша в блоке "похожих записей" end
198
+
199
+ //блок включения рейтинга begin
200
+ $('#ytrating').change(function() {
201
+ if ($('#ytrating').is(':checked')) {
202
+ $('.ytratingchildtr').fadeIn();
203
+ } else {
204
+ $('.ytratingchildtr').hide();
205
+ }
206
+ });
207
+ //блок включения рейтинга end
208
+
209
+ //блок включения поиска begin
210
+ $('#ytsearch').change(function() {
211
+ if ($('#ytsearch').is(':checked')) {
212
+ $('.ytsearchchildtr').fadeIn();
213
+ } else {
214
+ $('.ytsearchchildtr').hide();
215
+ }
216
+ });
217
+ //блок включения поиска end
218
+
219
+ //блок установки первой рекламы begin
220
+ $('#ytad1').change(function() {
221
+ if ($('#ytad1').is(':checked')) {
222
+ $('.block1').fadeIn();
223
+ if ($('#ytad1set option:selected').val() == 'РСЯ') {
224
+ $('.trrsa').fadeIn();
225
+ $('.trfox1').hide();
226
+ }
227
+ if ($('#ytad1set option:selected').val() == 'ADFOX') {
228
+ $('.trrsa').hide();
229
+ $('.trfox1').fadeIn();
230
+ }
231
+ } else {
232
+ $('.block1').hide();
233
+ }
234
+ });
235
+ $('#ytad1set').change(function() {
236
+ if ($('#ytad1set option:selected').val() == 'РСЯ') {
237
+ $('.trrsa').show();
238
+ $('.trfox1').hide();
239
+ }
240
+ if ($('#ytad1set option:selected').val() == 'ADFOX') {
241
+ $('.trrsa').hide();
242
+ $('.trfox1').show();
243
+ }
244
+ });
245
+ //блок установки первой рекламы end
246
+
247
+ //блок установки второй рекламы begin
248
+ $('#ytad2').change(function() {
249
+ if ($('#ytad2').is(':checked')) {
250
+ $('.block2').fadeIn();
251
+ if ($('#ytad2set option:selected').val() == 'РСЯ') {
252
+ $('.trrsa2').fadeIn();
253
+ $('.trfox2').hide();
254
+ }
255
+ if ($('#ytad2set option:selected').val() == 'ADFOX') {
256
+ $('.trrsa2').hide();
257
+ $('.trfox2').fadeIn();
258
+ }
259
+ } else {
260
+ $('.block2').hide();
261
+ }
262
+ });
263
+ $('#ytad2set').change(function() {
264
+ if ($('#ytad2set option:selected').val() == 'РСЯ') {
265
+ $('.trrsa2').show();
266
+ $('.trfox2').hide();
267
+ }
268
+ if ($('#ytad2set option:selected').val() == 'ADFOX') {
269
+ $('.trrsa2').hide();
270
+ $('.trfox2').show();
271
+ }
272
+ });
273
+ //блок установки второй рекламы end
274
+
275
+ //блок установки третьей рекламы begin
276
+ $('#ytad3').change(function() {
277
+ if ($('#ytad3').is(':checked')) {
278
+ $('.block3').fadeIn();
279
+ if ($('#ytad3set option:selected').val() == 'РСЯ') {
280
+ $('.trrsa3').fadeIn();
281
+ $('.trfox3').hide();
282
+ }
283
+ if ($('#ytad3set option:selected').val() == 'ADFOX') {
284
+ $('.trrsa3').hide();
285
+ $('.trfox3').fadeIn();
286
+ }
287
+ } else {
288
+ $('.block3').hide();
289
+ }
290
+ });
291
+ $('#ytad3set').change(function() {
292
+ if ($('#ytad3set option:selected').val() == 'РСЯ') {
293
+ $('.trrsa3').show();
294
+ $('.trfox3').hide();
295
+ }
296
+ if ($('#ytad3set option:selected').val() == 'ADFOX') {
297
+ $('.trrsa3').hide();
298
+ $('.trfox3').show();
299
+ }
300
+ });
301
+ //блок установки третьей рекламы end
302
+
303
+ //блок установки четвертой рекламы begin
304
+ $('#ytad4').change(function() {
305
+ if ($('#ytad4').is(':checked')) {
306
+ $('.block4').fadeIn();
307
+ if ($('#ytad4set option:selected').val() == 'РСЯ') {
308
+ $('.trrsa4').fadeIn();
309
+ $('.trfox4').hide();
310
+ }
311
+ if ($('#ytad4set option:selected').val() == 'ADFOX') {
312
+ $('.trrsa4').hide();
313
+ $('.trfox4').fadeIn();
314
+ }
315
+ } else {
316
+ $('.block4').hide();
317
+ }
318
+ });
319
+ $('#ytad4set').change(function() {
320
+ if ($('#ytad4set option:selected').val() == 'РСЯ') {
321
+ $('.trrsa4').show();
322
+ $('.trfox4').hide();
323
+ }
324
+ if ($('#ytad4set option:selected').val() == 'ADFOX') {
325
+ $('.trrsa4').hide();
326
+ $('.trfox4').show();
327
+ }
328
+ });
329
+ //блок установки четвертой рекламы end
330
+
331
+ //блок установки пятой рекламы begin
332
+ $('#ytad5').change(function() {
333
+ if ($('#ytad5').is(':checked')) {
334
+ $('.block5').fadeIn();
335
+ if ($('#ytad5set option:selected').val() == 'РСЯ') {
336
+ $('.trrsa5').fadeIn();
337
+ $('.trfox5').hide();
338
+ }
339
+ if ($('#ytad5set option:selected').val() == 'ADFOX') {
340
+ $('.trrsa5').hide();
341
+ $('.trfox5').fadeIn();
342
+ }
343
+ } else {
344
+ $('.block5').hide();
345
+ }
346
+ });
347
+ $('#ytad5set').change(function() {
348
+ if ($('#ytad5set option:selected').val() == 'РСЯ') {
349
+ $('.trrsa5').show();
350
+ $('.trfox5').hide();
351
+ }
352
+ if ($('#ytad5set option:selected').val() == 'ADFOX') {
353
+ $('.trrsa5').hide();
354
+ $('.trfox5').show();
355
+ }
356
+ });
357
+ //блок установки пятой рекламы end
358
+
359
+ //блок выбора таксономий для исключения/включения begin
360
+ $('#ytqueryselect').change(function() {
361
+ if ($('#ytqueryselect option:selected').val() == 'Все таксономии, кроме исключенных') {
362
+ $('.yttaxlisttr').fadeIn();
363
+ $('.exclude-small-text').fadeIn();
364
+ $('.thexclude').fadeIn();
365
+ $('#excludespan').fadeIn();
366
+ } else {
367
+ $('.yttaxlisttr').hide();
368
+ $('.exclude-small-text').hide();
369
+ $('.thexclude').hide();
370
+ $('#excludespan').hide();
371
+ }
372
+ if ($('#ytqueryselect option:selected').val() == 'Только указанные таксономии') {
373
+ $('.ytaddtaxlisttr').fadeIn();
374
+ $('.include-small-text').fadeIn();
375
+ $('.thinclude').fadeIn();
376
+ $('#includespan').fadeIn();
377
+ } else {
378
+ $('.ytaddtaxlisttr').hide();
379
+ $('.include-small-text').hide();
380
+ $('.thinclude').hide();
381
+ $('#includespan').hide();
382
+ }
383
+ });
384
+ //блок выбора таксономий для исключения/включения end
385
+
386
+ //блок удаления шорткодов begin
387
+ $('#ytexcludeshortcodes').change(function() {
388
+ if ($('#ytexcludeshortcodes').is(':checked')) {
389
+ $('.ytexcludeshortcodeslisttr').fadeIn();
390
+ } else {
391
+ $('.ytexcludeshortcodeslisttr').hide();
392
+ }
393
+ });
394
+ //блок удаления шорткодов end
395
+
396
+ //блок удаления тегов без контента begin
397
+ $('#ytexcludetags').change(function() {
398
+ if ($('#ytexcludetags').is(':checked')) {
399
+ $('.ytexcludetagslisttr').fadeIn();
400
+ } else {
401
+ $('.ytexcludetagslisttr').hide();
402
+ }
403
+ });
404
+ //блок удаления тегов без контента end
405
+
406
+ //блок удаления тегов с контентом begin
407
+ $('#ytexcludetags2').change(function() {
408
+ if ($('#ytexcludetags2').is(':checked')) {
409
+ $('.ytexcludetagslist2tr').fadeIn();
410
+ } else {
411
+ $('.ytexcludetagslist2tr').hide();
412
+ }
413
+ });
414
+ //блок удаления тегов с контентом end
415
+
416
+ //блок удаления точного контента begin
417
+ $('#ytexcludecontent').change(function() {
418
+ if ($('#ytexcludecontent').is(':checked')) {
419
+ $('.ytexcludecontentlisttr').fadeIn();
420
+ } else {
421
+ $('.ytexcludecontentlisttr').hide();
422
+ }
423
+ });
424
+ //блок удаления точного контента end
425
+
426
+
427
+ //вывод полного списка rss-лент begin
428
+ $('#showlistrss').click(function(){
429
+ if ($('#allrss').is(':hidden')) {
430
+ $('#allrss').fadeIn();
431
+ $('#showlistrss').text('скрыть');
432
+ } else {
433
+ $('#allrss').hide();
434
+ $('#showlistrss').text('показать');
435
+ }
436
+ })
437
+ //вывод полного списка rss-лент end
438
+
439
+ //управление табами begin
440
+ $('ul.xyztabs__caption').on('click', 'li:not(.active)', function() {
441
+ $(this)
442
+ .addClass('active').siblings().removeClass('active')
443
+ .closest('div.xyztabs').find('div.xyztabs__content').removeClass('active').eq($(this).index()).addClass('active');
444
+ $('#yttab').val($('.xyztabs__caption li.active').text());
445
+ });
446
+
447
+ var tabIndex = window.location.hash.replace('#tab','')-1;
448
+ if (tabIndex != -1) $('ul.xyztabs__caption li').eq(tabIndex).click();
449
+
450
+ $('a[href="#tab"]').click(function() {
451
+ var tabIndex = $(this).attr('href').replace(/(.*)#tab/, '')-1;
452
+ $('ul.xyztabs__caption li').eq(tabIndex).click();
453
+ });
454
+ //управление табами end
455
+
456
+ //управление закрытием рекламных блоков по времени begin
457
+ checkExpTime();
458
+
459
+ $('#close-donat').on('click',function(e) {
460
+ localStorage.setItem('yt-close-donat', 'yes');
461
+ $('#donat').slideUp(300);
462
+ $('#restore-hide-blocks').show(300);
463
+ setExpTime();
464
+ });
465
+
466
+ $('#close-about').on('click',function(e) {
467
+ localStorage.setItem('yt-close-about', 'yes');
468
+ $('#about').slideUp(300);
469
+ $('#restore-hide-blocks').show(300);
470
+ setExpTime();
471
+ });
472
+
473
+ $('#restore-hide-blocks').on('click',function(e) {
474
+ localStorage.removeItem('yt-time');
475
+ localStorage.removeItem('yt-close-donat');
476
+ localStorage.removeItem('yt-close-about');
477
+ $('#restore-hide-blocks').hide(300);
478
+ $('#donat').slideDown(300);
479
+ $('#about').slideDown(300);
480
+ });
481
+
482
+ function setExpTime() {
483
+ var limit = 90 * 24 * 60 * 60 * 1000; // 3 месяца
484
+ var time = localStorage.getItem('yt-time');
485
+ if (time === null) {
486
+ localStorage.setItem('yt-time', +new Date());
487
+ } else if(+new Date() - time > limit) {
488
+ localStorage.removeItem('yt-time');
489
+ localStorage.removeItem('yt-close-donat');
490
+ localStorage.removeItem('yt-close-about');
491
+ localStorage.setItem('yt-time', +new Date());
492
+ }
493
+ }
494
+
495
+ function checkExpTime() {
496
+ var limit = 90 * 24 * 60 * 60 * 1000; // 3 месяца
497
+ var time = localStorage.getItem('yt-time');
498
+ if (time === null) {
499
+
500
+ } else if(+new Date() - time > limit) {
501
+ localStorage.removeItem('yt-time');
502
+ localStorage.removeItem('yt-close-donat');
503
+ localStorage.removeItem('yt-close-about');
504
+ }
505
+ }
506
+ //управление закрытием рекламных блоков по времени end
507
+
508
+ //скрипт добавления тегов удаления без контента begin
509
+ var str = $('#tags-list').val();
510
+ var whitelist = str.split(',');
511
+
512
+ var input = document.querySelector('input[name="ytexcludetagslist-input"]'),
513
+ tagify = new Tagify(input, {
514
+ whitelist: whitelist,
515
+ enforceWhitelist: true,
516
+ dropdown: {
517
+ maxItems: 20,
518
+ classname: 'tags-look',
519
+ enabled: 0,
520
+ closeOnSelect: false,
521
+ }
522
+ })
523
+
524
+ tagify
525
+ .on('add', onAddTag)
526
+ .on('remove', onRemoveTag)
527
+ .on('invalid', onInvalidTag)
528
+
529
+ function onAddTag(e) {
530
+
531
+ $('tag').data('title', $('tag').attr('title')).removeAttr('title');
532
+ var str = tagify.DOM.originalInput.value;
533
+ var temp = str.replace(/{"value":"/g, '');
534
+ temp = temp.replace(/"}/g, '');
535
+ temp = temp.replace(/"}/g, '');
536
+ temp = temp.replace(/\[/g, '');
537
+ temp = temp.replace(/\]/g, '');
538
+
539
+ $('#ytexcludetagslist').val(temp);
540
+ }
541
+
542
+ function onRemoveTag(e) {
543
+ if ($('tags').hasClass('tagify--focus')) {
544
+ tagify.dropdown.hide.call(tagify);
545
+ $('tags').removeClass('tagify--focus');
546
+ }
547
+
548
+ var str = tagify.DOM.originalInput.value;
549
+ var temp = str.replace(/{"value":"/g, '');
550
+ temp = temp.replace(/"}/g, '');
551
+ temp = temp.replace(/"}/g, '');
552
+ temp = temp.replace(/\[/g, '');
553
+ temp = temp.replace(/\]/g, '');
554
+
555
+ $('#ytexcludetagslist').val(temp);
556
+
557
+ }
558
+
559
+ function onInvalidTag(e) {
560
+ tagify.dropdown.show.call(tagify);
561
+ }
562
+
563
+ $('tag').data('title', $('tag').attr('title')).removeAttr('title');
564
+ //скрипт добавления тегов удаления без контента end
565
+
566
+ //скрипт добавления тегов удаления с контентом begin
567
+ var str = $('#tags-list2').val();
568
+ var whitelist = str.split(',');
569
+
570
+ var input = document.querySelector('input[name="ytexcludetagslist-input2"]'),
571
+ tagify2 = new Tagify(input, {
572
+ whitelist: whitelist,
573
+ enforceWhitelist: true,
574
+ dropdown: {
575
+ maxItems: 20,
576
+ classname: 'tags-look',
577
+ enabled: 0,
578
+ closeOnSelect: false,
579
+ }
580
+ })
581
+
582
+ tagify2
583
+ .on('add', onAddTag2)
584
+ .on('remove', onRemoveTag2)
585
+ .on('invalid', onInvalidTag2)
586
+
587
+ function onAddTag2(e) {
588
+
589
+ $('tag').data('title', $('tag').attr('title')).removeAttr('title');
590
+ var str = tagify2.DOM.originalInput.value;
591
+ var temp = str.replace(/{"value":"/g, '');
592
+ temp = temp.replace(/"}/g, '');
593
+ temp = temp.replace(/"}/g, '');
594
+ temp = temp.replace(/\[/g, '');
595
+ temp = temp.replace(/\]/g, '');
596
+
597
+ $('#ytexcludetagslist2').val(temp);
598
+ }
599
+
600
+ function onRemoveTag2(e) {
601
+ if ($('tags').hasClass('tagify--focus')) {
602
+ tagify2.dropdown.hide.call(tagify2);
603
+ $('tags').removeClass('tagify--focus');
604
+ }
605
+
606
+ var str = tagify2.DOM.originalInput.value;
607
+ var temp = str.replace(/{"value":"/g, '');
608
+ temp = temp.replace(/"}/g, '');
609
+ temp = temp.replace(/"}/g, '');
610
+ temp = temp.replace(/\[/g, '');
611
+ temp = temp.replace(/\]/g, '');
612
+
613
+ $('#ytexcludetagslist2').val(temp);
614
+
615
+ }
616
+
617
+ function onInvalidTag2(e) {
618
+ tagify2.dropdown.show.call(tagify2);
619
+ }
620
+
621
+ $('tag').data('title', $('tag').attr('title')).removeAttr('title');
622
+ //скрипт добавления тегов удаления с контентом end
623
+
624
+ //ajax-подгрузка терминов таксономий begin
625
+ var loaded_disallows = false;
626
+
627
+ function load_disallows() {
628
+ if ( loaded_disallows )
629
+ return;
630
+ loaded_disallows = true;
631
+
632
+ var finished_taxonomies = {},
633
+ term_indices = {};
634
+
635
+ function load_disallow(taxonomy) {
636
+ if (taxonomy in finished_taxonomies)
637
+ return;
638
+ var display = $('#exclude_' + taxonomy);
639
+
640
+ if (display.find('.loading').length)
641
+ return;
642
+
643
+ if (taxonomy in term_indices)
644
+ term_indices[taxonomy] = term_indices[taxonomy] + 100;
645
+ else
646
+ term_indices[taxonomy] = 0;
647
+ $.ajax({
648
+ type: 'POST',
649
+ url: ajaxurl,
650
+ data: {
651
+ action: 'yturbo_display_exclude_terms',
652
+ taxonomy: taxonomy,
653
+ offset: term_indices[taxonomy],
654
+ '_ajax_nonce': $('#yturbo_display_exclude_terms-nonce').val()
655
+ },
656
+ beforeSend: function() {
657
+ display.append(loading)
658
+ },
659
+ success: function(html) {
660
+ display.find('.loading').remove();
661
+ if ('<li>:(</li>' == html) {
662
+ finished_taxonomies[taxonomy] = true;
663
+ return;
664
+ }
665
+ display.append(html);
666
+ },
667
+ dataType: 'html'
668
+ });
669
+ }
670
+
671
+ $('.exclude_terms').each(function() {
672
+ var id = jQuery(this).attr('id'),
673
+ taxonomy;
674
+ if (!id)
675
+ return;
676
+
677
+ taxonomy = id.replace('exclude_', '');
678
+
679
+ load_disallow(taxonomy);
680
+ $('#exclude_' + taxonomy).parent('.list_terms_scroll_wrapper').scroll(function() {
681
+ var parent = $(this),
682
+ content = parent.children('ul');
683
+ if (parent.scrollTop() + parent.height() > content.height() - 10)
684
+ load_disallow(taxonomy);
685
+ })
686
+ })
687
+
688
+ }
689
+
690
+ load_disallows();
691
+ //ajax-подгрузка терминов таксономий end
692
 
693
  })
694
 
697
 
698
 
699
  String.prototype.replaceAll = function(search, replace){
700
+ return this.split(search).join(replace);
701
  }
702
 
703
  jQuery(document).ready(function($) {
704
+ var temp = jQuery('#ytnetw').val();
705
+ if (temp!==undefined) {
706
+ if (temp.indexOf('facebook') !== -1) {jQuery('#facebook').attr('checked', 'checked');}
707
+ if (temp.indexOf('vkontakte') !== -1) {jQuery('#vkontakte').attr('checked', 'checked');}
708
+ if (temp.indexOf('twitter') !== -1) {jQuery('#twitter').attr('checked', 'checked');}
709
+ if (temp.indexOf('odnoklassniki') !== -1) {jQuery('#odnoklassniki').attr('checked', 'checked');}
710
+ if (temp.indexOf('telegram') !== -1) {jQuery('#telegram').attr('checked', 'checked');}
711
+ }
712
  });
713
  jQuery(function() {
714
+ jQuery('#facebook').click(function(){
715
+ if (jQuery('#ytnetw').val().indexOf('facebook') == -1) {
716
+ temp = jQuery('#ytnetw').val() + 'facebook' + ',';
717
+ jQuery('#ytnetw').val(temp);
718
+ jQuery('#ytnetwspan').val(temp);
719
+ } else {
720
+ temp = jQuery('#ytnetw').val();
721
+ temp = temp.replaceAll('facebook,', '');
722
+ jQuery('#ytnetw').val(temp);
723
+ jQuery('#ytnetwspan').val(temp);
724
+ }
725
+ })
726
  });
727
  jQuery(function() {
728
+ jQuery('#vkontakte').click(function(){
729
+ if (jQuery('#ytnetw').val().indexOf('vkontakte') == -1) {
730
+ temp = jQuery('#ytnetw').val() + 'vkontakte' + ',';
731
+ jQuery('#ytnetw').val(temp);
732
+ jQuery('#ytnetwspan').val(temp);
733
+ } else {
734
+ temp = jQuery('#ytnetw').val();
735
+ temp = temp.replaceAll('vkontakte,', '');
736
+ jQuery('#ytnetw').val(temp);
737
+ jQuery('#ytnetwspan').val(temp);
738
+ }
739
+ })
740
  });
741
  jQuery(function() {
742
+ jQuery('#twitter').click(function(){
743
+ if (jQuery('#ytnetw').val().indexOf('twitter') == -1) {
744
+ temp = jQuery('#ytnetw').val() + 'twitter' + ',';
745
+ jQuery('#ytnetw').val(temp);
746
+ jQuery('#ytnetwspan').val(temp);
747
+ } else {
748
+ temp = jQuery('#ytnetw').val();
749
+ temp = temp.replaceAll('twitter,', '');
750
+ jQuery('#ytnetw').val(temp);
751
+ jQuery('#ytnetwspan').val(temp);
752
+ }
753
+ })
754
  });
755
  jQuery(function() {
756
+ jQuery('#odnoklassniki').click(function(){
757
+ if (jQuery('#ytnetw').val().indexOf('odnoklassniki') == -1) {
758
+ temp = jQuery('#ytnetw').val() + 'odnoklassniki' + ',';
759
+ jQuery('#ytnetw').val(temp);
760
+ jQuery('#ytnetwspan').val(temp);
761
+ } else {
762
+ temp = jQuery('#ytnetw').val();
763
+ temp = temp.replaceAll('odnoklassniki,', '');
764
+ jQuery('#ytnetw').val(temp);
765
+ jQuery('#ytnetwspan').val(temp);
766
+ }
767
+ })
768
  });
769
  jQuery(function() {
770
+ jQuery('#telegram').click(function(){
771
+ if (jQuery('#ytnetw').val().indexOf('telegram') == -1) {
772
+ temp = jQuery('#ytnetw').val() + 'telegram' + ',';
773
+ jQuery('#ytnetw').val(temp);
774
+ jQuery('#ytnetwspan').val(temp);
775
+ } else {
776
+ temp = jQuery('#ytnetw').val();
777
+ temp = temp.replaceAll('telegram,', '');
778
+ jQuery('#ytnetw').val(temp);
779
+ jQuery('#ytnetwspan').val(temp);
780
+ }
781
+ })
782
  });
783
 
784
  jQuery(document).ready(function($) {
785
+ var temp2 = jQuery('#ytfeedbacknetw').val();
786
+ if (temp2!==undefined) {
787
+ if (temp2.indexOf('call,') !== -1) {jQuery('#feedbackcall').attr('checked', 'checked');jQuery('#ytfeedbackcontacts [value="feedbackcall"]').removeAttr('disabled');}
788
+ if (temp2.indexOf('callback') !== -1) {jQuery('#feedbackcallback').attr('checked', 'checked');jQuery('#ytfeedbackcontacts [value="feedbackcallback"]').removeAttr('disabled');}
789
+ if (temp2.indexOf('chat') !== -1) {jQuery('#feedbackchat').attr('checked', 'checked');jQuery('#ytfeedbackcontacts [value="feedbackchat"]').removeAttr('disabled');}
790
+ if (temp2.indexOf('mail') !== -1) {jQuery('#feedbackmail').attr('checked', 'checked');jQuery('#ytfeedbackcontacts [value="feedbackmail"]').removeAttr('disabled');}
791
+ if (temp2.indexOf('vkontakte') !== -1) {jQuery('#feedbackvkontakte').attr('checked', 'checked');jQuery('#ytfeedbackcontacts [value="feedbackvkontakte"]').removeAttr('disabled');}
792
+ if (temp2.indexOf('odnoklassniki') !== -1) {jQuery('#feedbackodnoklassniki').attr('checked', 'checked');jQuery('#ytfeedbackcontacts [value="feedbackodnoklassniki"]').removeAttr('disabled');}
793
+ if (temp2.indexOf('twitter') !== -1) {jQuery('#feedbacktwitter').attr('checked', 'checked');jQuery('#ytfeedbackcontacts [value="feedbacktwitter"]').removeAttr('disabled');}
794
+ if (temp2.indexOf('facebook') !== -1) {jQuery('#feedbackfacebook').attr('checked', 'checked');jQuery('#ytfeedbackcontacts [value="feedbackfacebook"]').removeAttr('disabled');}
795
+ if (temp2.indexOf('viber') !== -1) {jQuery('#feedbackviber').attr('checked', 'checked');jQuery('#ytfeedbackcontacts [value="feedbackviber"]').removeAttr('disabled');}
796
+ if (temp2.indexOf('whatsapp') !== -1) {jQuery('#feedbackwhatsapp').attr('checked', 'checked');jQuery('#ytfeedbackcontacts [value="feedbackwhatsapp"]').removeAttr('disabled');}
797
+ if (temp2.indexOf('telegram') !== -1) {jQuery('#feedbacktelegram').attr('checked', 'checked');jQuery('#ytfeedbackcontacts [value="feedbacktelegram"]').removeAttr('disabled');}
798
+ }
799
  });
800
  jQuery(function() {
801
+ jQuery('#feedbackcall').click(function(){
802
+ jQuery('#ytfeedbackcontacts [value="myselect"]').attr('selected', 'selected');
803
+ jQuery('.ytfeedbackcalltr,.ytfeedbackcallbacktr,.ytfeedbackchattr,.ytfeedbackmailtr,.ytfeedbackvkontaktetr,.ytfeedbackodnoklassnikitr,.ytfeedbacktwittertr,.ytfeedbackfacebooktr,.ytfeedbackvibertr,.ytfeedbackwhatsapptr,.ytfeedbacktelegramtr').hide();
804
+ if (jQuery('#ytfeedbacknetw').val().indexOf('call,') == -1) {
805
+ temp2 = jQuery('#ytfeedbacknetw').val() + 'call' + ',';
806
+ jQuery('#ytfeedbacknetw').val(temp2);
807
+ jQuery('#ytfeedbacknetwspan').val(temp2);
808
+ jQuery('#ytfeedbackcontacts [value="feedbackcall"]').removeAttr('disabled');
809
+ } else {
810
+ temp2 = jQuery('#ytfeedbacknetw').val();
811
+ temp2 = temp2.replaceAll('call,', '');
812
+ jQuery('#ytfeedbacknetw').val(temp2);
813
+ jQuery('#ytfeedbacknetwspan').val(temp2);
814
+ jQuery('#ytfeedbackcontacts [value="feedbackcall"]').attr('disabled', 'disabled');
815
+ }
816
+ })
817
  });
818
  jQuery(function() {
819
+ jQuery('#feedbackcallback').click(function(){
820
+ jQuery('#ytfeedbackcontacts [value="myselect"]').attr('selected', 'selected');
821
+ jQuery('.ytfeedbackcalltr,.ytfeedbackcallbacktr,.ytfeedbackchattr,.ytfeedbackmailtr,.ytfeedbackvkontaktetr,.ytfeedbackodnoklassnikitr,.ytfeedbacktwittertr,.ytfeedbackfacebooktr,.ytfeedbackvibertr,.ytfeedbackwhatsapptr,.ytfeedbacktelegramtr').hide();
822
+ if (jQuery('#ytfeedbacknetw').val().indexOf('callback') == -1) {
823
+ temp2 = jQuery('#ytfeedbacknetw').val() + 'callback' + ',';
824
+ jQuery('#ytfeedbacknetw').val(temp2);
825
+ jQuery('#ytfeedbacknetwspan').val(temp2);
826
+ jQuery('#ytfeedbackcontacts [value="feedbackcallback"]').removeAttr('disabled');
827
+ } else {
828
+ temp2 = jQuery('#ytfeedbacknetw').val();
829
+ temp2 = temp2.replaceAll('callback,', '');
830
+ jQuery('#ytfeedbacknetw').val(temp2);
831
+ jQuery('#ytfeedbacknetwspan').val(temp2);
832
+ jQuery('#ytfeedbackcontacts [value="feedbackcallback"]').attr('disabled', 'disabled');
833
+ }
834
+ })
835
  });
836
  jQuery(function() {
837
+ jQuery('#feedbackchat').click(function(){
838
+ jQuery('#ytfeedbackcontacts [value="myselect"]').attr('selected', 'selected');
839
+ jQuery('.ytfeedbackcalltr,.ytfeedbackcallbacktr,.ytfeedbackchattr,.ytfeedbackmailtr,.ytfeedbackvkontaktetr,.ytfeedbackodnoklassnikitr,.ytfeedbacktwittertr,.ytfeedbackfacebooktr,.ytfeedbackvibertr,.ytfeedbackwhatsapptr,.ytfeedbacktelegramtr').hide();
840
+ if (jQuery('#ytfeedbacknetw').val().indexOf('chat') == -1) {
841
+ temp2 = jQuery('#ytfeedbacknetw').val() + 'chat' + ',';
842
+ jQuery('#ytfeedbacknetw').val(temp2);
843
+ jQuery('#ytfeedbacknetwspan').val(temp2);
844
+ jQuery('#ytfeedbackcontacts [value="feedbackchat"]').removeAttr('disabled');
845
+ } else {
846
+ temp2 = jQuery('#ytfeedbacknetw').val();
847
+ temp2 = temp2.replaceAll('chat,', '');
848
+ jQuery('#ytfeedbacknetw').val(temp2);
849
+ jQuery('#ytfeedbacknetwspan').val(temp2);
850
+ jQuery('#ytfeedbackcontacts [value="feedbackchat"]').attr('disabled', 'disabled');
851
+ }
852
+ })
853
  });
854
  jQuery(function() {
855
+ jQuery('#feedbackmail').click(function(){
856
+ jQuery('#ytfeedbackcontacts [value="myselect"]').attr('selected', 'selected');
857
+ jQuery('.ytfeedbackcalltr,.ytfeedbackcallbacktr,.ytfeedbackchattr,.ytfeedbackmailtr,.ytfeedbackvkontaktetr,.ytfeedbackodnoklassnikitr,.ytfeedbacktwittertr,.ytfeedbackfacebooktr,.ytfeedbackvibertr,.ytfeedbackwhatsapptr,.ytfeedbacktelegramtr').hide();
858
+ if (jQuery('#ytfeedbacknetw').val().indexOf('mail') == -1) {
859
+ temp2 = jQuery('#ytfeedbacknetw').val() + 'mail' + ',';
860
+ jQuery('#ytfeedbacknetw').val(temp2);
861
+ jQuery('#ytfeedbacknetwspan').val(temp2);
862
+ jQuery('#ytfeedbackcontacts [value="feedbackmail"]').removeAttr('disabled');
863
+ } else {
864
+ temp2 = jQuery('#ytfeedbacknetw').val();
865
+ temp2 = temp2.replaceAll('mail,', '');
866
+ jQuery('#ytfeedbacknetw').val(temp2);
867
+ jQuery('#ytfeedbacknetwspan').val(temp2);
868
+ jQuery('#ytfeedbackcontacts [value="feedbackmail"]').attr('disabled', 'disabled');
869
+ }
870
+ })
871
  });
872
  jQuery(function() {
873
+ jQuery('#feedbackvkontakte').click(function(){
874
+ jQuery('#ytfeedbackcontacts [value="myselect"]').attr('selected', 'selected');
875
+ jQuery('.ytfeedbackcalltr,.ytfeedbackcallbacktr,.ytfeedbackchattr,.ytfeedbackmailtr,.ytfeedbackvkontaktetr,.ytfeedbackodnoklassnikitr,.ytfeedbacktwittertr,.ytfeedbackfacebooktr,.ytfeedbackvibertr,.ytfeedbackwhatsapptr,.ytfeedbacktelegramtr').hide();
876
+ if (jQuery('#ytfeedbacknetw').val().indexOf('vkontakte') == -1) {
877
+ temp2 = jQuery('#ytfeedbacknetw').val() + 'vkontakte' + ',';
878
+ jQuery('#ytfeedbacknetw').val(temp2);
879
+ jQuery('#ytfeedbacknetwspan').val(temp2);
880
+ jQuery('#ytfeedbackcontacts [value="feedbackvkontakte"]').removeAttr('disabled');
881
+ } else {
882
+ temp2 = jQuery('#ytfeedbacknetw').val();
883
+ temp2 = temp2.replaceAll('vkontakte,', '');
884
+ jQuery('#ytfeedbacknetw').val(temp2);
885
+ jQuery('#ytfeedbacknetwspan').val(temp2);
886
+ jQuery('#ytfeedbackcontacts [value="feedbackvkontakte"]').attr('disabled', 'disabled');
887
+ }
888
+ })
889
  });
890
  jQuery(function() {
891
+ jQuery('#feedbackodnoklassniki').click(function(){
892
+ jQuery('#ytfeedbackcontacts [value="myselect"]').attr('selected', 'selected');
893
+ jQuery('.ytfeedbackcalltr,.ytfeedbackcallbacktr,.ytfeedbackchattr,.ytfeedbackmailtr,.ytfeedbackvkontaktetr,.ytfeedbackodnoklassnikitr,.ytfeedbacktwittertr,.ytfeedbackfacebooktr,.ytfeedbackvibertr,.ytfeedbackwhatsapptr,.ytfeedbacktelegramtr').hide();
894
+ if (jQuery('#ytfeedbacknetw').val().indexOf('odnoklassniki') == -1) {
895
+ temp2 = jQuery('#ytfeedbacknetw').val() + 'odnoklassniki' + ',';
896
+ jQuery('#ytfeedbacknetw').val(temp2);
897
+ jQuery('#ytfeedbacknetwspan').val(temp2);
898
+ jQuery('#ytfeedbackcontacts [value="feedbackodnoklassniki"]').removeAttr('disabled');
899
+ } else {
900
+ temp2 = jQuery('#ytfeedbacknetw').val();
901
+ temp2 = temp2.replaceAll('odnoklassniki,', '');
902
+ jQuery('#ytfeedbacknetw').val(temp2);
903
+ jQuery('#ytfeedbacknetwspan').val(temp2);
904
+ jQuery('#ytfeedbackcontacts [value="feedbackodnoklassniki"]').attr('disabled', 'disabled');
905
+ }
906
+ })
907
  });
908
  jQuery(function() {
909
+ jQuery('#feedbacktwitter').click(function(){
910
+ jQuery('#ytfeedbackcontacts [value="myselect"]').attr('selected', 'selected');
911
+ jQuery('.ytfeedbackcalltr,.ytfeedbackcallbacktr,.ytfeedbackchattr,.ytfeedbackmailtr,.ytfeedbackvkontaktetr,.ytfeedbackodnoklassnikitr,.ytfeedbacktwittertr,.ytfeedbackfacebooktr,.ytfeedbackvibertr,.ytfeedbackwhatsapptr,.ytfeedbacktelegramtr').hide();
912
+ if (jQuery('#ytfeedbacknetw').val().indexOf('twitter') == -1) {
913
+ temp2 = jQuery('#ytfeedbacknetw').val() + 'twitter' + ',';
914
+ jQuery('#ytfeedbacknetw').val(temp2);
915
+ jQuery('#ytfeedbacknetwspan').val(temp2);
916
+ jQuery('#ytfeedbackcontacts [value="feedbacktwitter"]').removeAttr('disabled');
917
+ } else {
918
+ temp2 = jQuery('#ytfeedbacknetw').val();
919
+ temp2 = temp2.replaceAll('twitter,', '');
920
+ jQuery('#ytfeedbacknetw').val(temp2);
921
+ jQuery('#ytfeedbacknetwspan').val(temp2);
922
+ jQuery('#ytfeedbackcontacts [value="feedbacktwitter"]').attr('disabled', 'disabled');
923
+ }
924
+ })
925
  });
926
  jQuery(function() {
927
+ jQuery('#feedbackfacebook').click(function(){
928
+ jQuery('#ytfeedbackcontacts [value="myselect"]').attr('selected', 'selected');
929
+ jQuery('.ytfeedbackcalltr,.ytfeedbackcallbacktr,.ytfeedbackchattr,.ytfeedbackmailtr,.ytfeedbackvkontaktetr,.ytfeedbackodnoklassnikitr,.ytfeedbacktwittertr,.ytfeedbackfacebooktr,.ytfeedbackvibertr,.ytfeedbackwhatsapptr,.ytfeedbacktelegramtr').hide();
930
+ if (jQuery('#ytfeedbacknetw').val().indexOf('facebook') == -1) {
931
+ temp2 = jQuery('#ytfeedbacknetw').val() + 'facebook' + ',';
932
+ jQuery('#ytfeedbacknetw').val(temp2);
933
+ jQuery('#ytfeedbacknetwspan').val(temp2);
934
+ jQuery('#ytfeedbackcontacts [value="feedbackfacebook"]').removeAttr('disabled');
935
+ } else {
936
+ temp2 = jQuery('#ytfeedbacknetw').val();
937
+ temp2 = temp2.replaceAll('facebook,', '');
938
+ jQuery('#ytfeedbacknetw').val(temp2);
939
+ jQuery('#ytfeedbacknetwspan').val(temp2);
940
+ jQuery('#ytfeedbackcontacts [value="feedbackfacebook"]').attr('disabled', 'disabled');
941
+ }
942
+ })
943
  });
944
  jQuery(function() {
945
+ jQuery('#feedbackviber').click(function(){
946
+ jQuery('#ytfeedbackcontacts [value="myselect"]').attr('selected', 'selected');
947
+ jQuery('.ytfeedbackcalltr,.ytfeedbackcallbacktr,.ytfeedbackchattr,.ytfeedbackmailtr,.ytfeedbackvkontaktetr,.ytfeedbackodnoklassnikitr,.ytfeedbacktwittertr,.ytfeedbackfacebooktr,.ytfeedbackvibertr,.ytfeedbackwhatsapptr,.ytfeedbacktelegramtr').hide();
948
+ if (jQuery('#ytfeedbacknetw').val().indexOf('viber') == -1) {
949
+ temp2 = jQuery('#ytfeedbacknetw').val() + 'viber' + ',';
950
+ jQuery('#ytfeedbacknetw').val(temp2);
951
+ jQuery('#ytfeedbacknetwspan').val(temp2);
952
+ jQuery('#ytfeedbackcontacts [value="feedbackviber"]').removeAttr('disabled');
953
+ } else {
954
+ temp2 = jQuery('#ytfeedbacknetw').val();
955
+ temp2 = temp2.replaceAll('viber,', '');
956
+ jQuery('#ytfeedbacknetw').val(temp2);
957
+ jQuery('#ytfeedbacknetwspan').val(temp2);
958
+ jQuery('#ytfeedbackcontacts [value="feedbackviber"]').attr('disabled', 'disabled');
959
+ }
960
+ })
961
  });
962
  jQuery(function() {
963
+ jQuery('#feedbackwhatsapp').click(function(){
964
+ jQuery('#ytfeedbackcontacts [value="myselect"]').attr('selected', 'selected');
965
+ jQuery('.ytfeedbackcalltr,.ytfeedbackcallbacktr,.ytfeedbackchattr,.ytfeedbackmailtr,.ytfeedbackvkontaktetr,.ytfeedbackodnoklassnikitr,.ytfeedbacktwittertr,.ytfeedbackfacebooktr,.ytfeedbackvibertr,.ytfeedbackwhatsapptr,.ytfeedbacktelegramtr').hide();
966
+ if (jQuery('#ytfeedbacknetw').val().indexOf('whatsapp') == -1) {
967
+ temp2 = jQuery('#ytfeedbacknetw').val() + 'whatsapp' + ',';
968
+ jQuery('#ytfeedbacknetw').val(temp2);
969
+ jQuery('#ytfeedbacknetwspan').val(temp2);
970
+ jQuery('#ytfeedbackcontacts [value="feedbackwhatsapp"]').removeAttr('disabled');
971
+ } else {
972
+ temp2 = jQuery('#ytfeedbacknetw').val();
973
+ temp2 = temp2.replaceAll('whatsapp,', '');
974
+ jQuery('#ytfeedbacknetw').val(temp2);
975
+ jQuery('#ytfeedbacknetwspan').val(temp2);
976
+ jQuery('#ytfeedbackcontacts [value="feedbackwhatsapp"]').attr('disabled', 'disabled');
977
+ }
978
+ })
979
  });
980
  jQuery(function() {
981
+ jQuery('#feedbacktelegram').click(function(){
982
+ jQuery('#ytfeedbackcontacts [value="myselect"]').attr('selected', 'selected');
983
+ jQuery('.ytfeedbackcalltr,.ytfeedbackcallbacktr,.ytfeedbackchattr,.ytfeedbackmailtr,.ytfeedbackvkontaktetr,.ytfeedbackodnoklassnikitr,.ytfeedbacktwittertr,.ytfeedbackfacebooktr,.ytfeedbackvibertr,.ytfeedbackwhatsapptr,.ytfeedbacktelegramtr').hide();
984
+ if (jQuery('#ytfeedbacknetw').val().indexOf('telegram') == -1) {
985
+ temp2 = jQuery('#ytfeedbacknetw').val() + 'telegram' + ',';
986
+ jQuery('#ytfeedbacknetw').val(temp2);
987
+ jQuery('#ytfeedbacknetwspan').val(temp2);
988
+ jQuery('#ytfeedbackcontacts [value="feedbacktelegram"]').removeAttr('disabled');
989
+ } else {
990
+ temp2 = jQuery('#ytfeedbacknetw').val();
991
+ temp2 = temp2.replaceAll('telegram,', '');
992
+ jQuery('#ytfeedbacknetw').val(temp2);
993
+ jQuery('#ytfeedbacknetwspan').val(temp2);
994
+ jQuery('#ytfeedbackcontacts [value="feedbacktelegram"]').attr('disabled', 'disabled');
995
+ }
996
+ })
997
  });
998
 
readme.txt CHANGED
@@ -5,7 +5,7 @@ Tags: yandex, turbo, yandex turbo, rss, feed, турбо, яндекс турб
5
  Requires at least: 4.4
6
  Tested up to: 5.9
7
  Requires PHP: 5.3
8
- Stable tag: 1.31
9
 
10
  Создание RSS-ленты для сервиса Яндекс.Турбо.
11
 
@@ -464,6 +464,13 @@ add_filter('yturbo_thumb_caption', 'my_yturbo_thumb_caption');`
464
 
465
  == Changelog ==
466
 
 
 
 
 
 
 
 
467
  = 1.31 (04.02.2022) =
468
 
469
  * исправлена ajax-подгрузка терминов таксономий (настройки исключений).
@@ -483,7 +490,6 @@ add_filter('yturbo_thumb_caption', 'my_yturbo_thumb_caption');`
483
  * добавлена поддержка CSS (turbo:extendedHtml) - вкладка "Оформление".
484
  * исправлена функция удаления эмоджи (дефизы и тире больше не удаляются из заголовков записей).
485
  * исправлен код таблиц в визуальном редакторе шаблонов.
486
- * добавлен фильтр "yturbo_before_ads" (после формирования контента записи, но до вставки рекламы).
487
 
488
  = 1.28 (14.08.2020) =
489
 
5
  Requires at least: 4.4
6
  Tested up to: 5.9
7
  Requires PHP: 5.3
8
+ Stable tag: 1.32
9
 
10
  Создание RSS-ленты для сервиса Яндекс.Турбо.
11
 
464
 
465
  == Changelog ==
466
 
467
+ = 1.32 (10.02.2022) =
468
+
469
+ * исправлен вывод блока содержания (теперь он поддерживает вложенность).
470
+ * добавлена возможность отключения вывода даты для конкретной записи или страницы.
471
+ * исправлено отображение заголовков галерей (если они прописаны).
472
+ * список удаляемых шорткодов теперь располагается горизонтально.
473
+
474
  = 1.31 (04.02.2022) =
475
 
476
  * исправлена ajax-подгрузка терминов таксономий (настройки исключений).
490
  * добавлена поддержка CSS (turbo:extendedHtml) - вкладка "Оформление".
491
  * исправлена функция удаления эмоджи (дефизы и тире больше не удаляются из заголовков записей).
492
  * исправлен код таблиц в визуальном редакторе шаблонов.
 
493
 
494
  = 1.28 (14.08.2020) =
495
 
rss-for-yandex-turbo.php CHANGED
@@ -3,7 +3,7 @@
3
  Plugin Name: RSS for Yandex Turbo
4
  Plugin URI: https://wordpress.org/plugins/rss-for-yandex-turbo/
5
  Description: Создание RSS-ленты для сервиса Яндекс.Турбо.
6
- Version: 1.31
7
  Author: Flector
8
  Author URI: https://profiles.wordpress.org/flector#content-plugins
9
  Text Domain: rss-for-yandex-turbo
@@ -13,672 +13,675 @@ Text Domain: rss-for-yandex-turbo
13
  require_once plugin_dir_path( __FILE__ ) . 'inc/AdminNotice.php';
14
  use \YTurboAdminNotices\AdminNotice;
15
  function yturbo_add_notice_ads() {
16
- AdminNotice::create('yturbo-ads1')
17
- ->requiredCap('administrator')
18
- ->persistentlyDismissible(AdminNotice::DISMISS_PER_USER)
19
- ->success()
20
- ->rawHtml(__('<p>Для плагина <strong>RSS for Yandex Turbo</strong> появилось премиум-дополнение <strong><a target="_blank" href="https://wpcase.ru/wpcase-turbo-ads/">WPCase: Turbo Ads</a></strong>, которое позволит <br />вам добавить на турбо-страницы неограниченное количество рекламных блоков в нужных вам местах.</p>', 'rss-for-yandex-turbo'))
21
- ->show();
22
  }
23
- //add_action( 'admin_notices', 'yturbo_add_notice_ads' );
24
  //вывод admin notice с рекламкой (для админов) end
25
 
26
  //проверка версии плагина (запуск функции установки новых опций) begin
27
  function yturbo_check_version() {
28
- $yturbo_options = get_option('yturbo_options');
29
- if (!isset($yturbo_options['version'])){$yturbo_options['version']='1.00';update_option('yturbo_options',$yturbo_options);}
30
- if ( $yturbo_options['version'] != '1.31' ) {
31
- yturbo_set_new_options();
32
- }
33
  }
34
- add_action( 'plugins_loaded', 'yturbo_check_version' );
35
  //проверка версии плагина (запуск функции установки новых опций) end
36
 
37
  //функция установки новых опций при обновлении плагина у пользователей begin
38
  function yturbo_set_new_options() {
39
- $yturbo_options = get_option('yturbo_options');
40
-
41
- //если нет опции при обновлении плагина - записываем ее
42
- //if (!isset($yturbo_options['new_option'])) {$yturbo_options['new_option']='value';}
43
-
44
- //если необходимо переписать уже записанную опцию при обновлении плагина
45
- //$yturbo_options['old_option'] = 'new_value';
46
-
47
- if (!isset($yturbo_options['ytrssname'])) {$yturbo_options['ytrssname']='turbo';}
48
- if (!isset($yturbo_options['ytrelated'])) {$yturbo_options['ytrelated']='disabled';}
49
- if (!isset($yturbo_options['ytrelatednumber'])) {$yturbo_options['ytrelatednumber']='5';}
50
- if (!isset($yturbo_options['ytrelatedselectthumb'])) {$yturbo_options['ytrelatedselectthumb']='medium';}
51
- if (!isset($yturbo_options['ytrelatedcache'])) {$yturbo_options['ytrelatedcache']='enabled';}
52
- if (!isset($yturbo_options['ytrelatedcachetime'])) {$yturbo_options['ytrelatedcachetime']='72';}
53
- if (!isset($yturbo_options['ytrelatedinfinity'])) {$yturbo_options['ytrelatedinfinity']='disabled';}
54
- if (!isset($yturbo_options['ytad3'])) {$yturbo_options['ytad3']='disabled';}
55
- if (!isset($yturbo_options['ytad3set'])) {$yturbo_options['ytad3set']='РСЯ';}
56
- if (!isset($yturbo_options['ytad3rsa'])) {$yturbo_options['ytad3rsa']='';}
57
- if (!isset($yturbo_options['ytadfox1'])) {$yturbo_options['ytadfox1']='';}
58
- if (!isset($yturbo_options['ytadfox2'])) {$yturbo_options['ytadfox2']='';}
59
- if (!isset($yturbo_options['ytadfox3'])) {$yturbo_options['ytadfox3']='';}
60
- if (!isset($yturbo_options['ytrazmer'])) {$yturbo_options['ytrazmer']='500';}
61
- if (!isset($yturbo_options['ytremoveturbo'])) {$yturbo_options['ytremoveturbo']='disabled';}
62
- if (!isset($yturbo_options['ytauthorselect'])) {$yturbo_options['ytauthorselect']='Указать автора';}
63
- if (!isset($yturbo_options['ytliveinternet'])) {$yturbo_options['ytliveinternet']='';}
64
- if (!isset($yturbo_options['ytgoogle'])) {$yturbo_options['ytgoogle']='';}
65
- if (!isset($yturbo_options['ytmailru'])) {$yturbo_options['ytmailru']='';}
66
- if (!isset($yturbo_options['ytrambler'])) {$yturbo_options['ytrambler']='';}
67
- if (!isset($yturbo_options['ytmediascope'])) {$yturbo_options['ytmediascope']='';}
68
- if (!isset($yturbo_options['ytqueryselect'])) {$yturbo_options['ytqueryselect']='Все таксономии, кроме исключенных';}
69
- if (!isset($yturbo_options['yttaxlist'])) {$yturbo_options['yttaxlist']='';}
70
- if (!isset($yturbo_options['ytaddtaxlist'])) {$yturbo_options['ytaddtaxlist']='';}
71
- if (!isset($yturbo_options['ytselectmenu'])) {$yturbo_options['ytselectmenu']='Не использовать';}
72
- if (!isset($yturbo_options['ytshare'])) {$yturbo_options['ytshare']='disabled';}
73
- if (!isset($yturbo_options['ytnetw'])) {$yturbo_options['ytnetw']='vkontakte,facebook,twitter,odnoklassniki,telegram,';}
74
- if (!isset($yturbo_options['ytcomments'])) {$yturbo_options['ytcomments']='disabled';}
75
- if (!isset($yturbo_options['ytcommentsavatar'])) {$yturbo_options['ytcommentsavatar']='disabled';}
76
- if (!isset($yturbo_options['ytcommentsnumber'])) {$yturbo_options['ytcommentsnumber']='40';}
77
- if (!isset($yturbo_options['ytcommentsorder'])) {$yturbo_options['ytcommentsorder']='В начале старые комментарии';}
78
- if (!isset($yturbo_options['ytcommentsdate'])) {$yturbo_options['ytcommentsdate']='enabled';}
79
- if (!isset($yturbo_options['ytcommentsdrevo'])) {$yturbo_options['ytcommentsdrevo']='enabled';}
80
- if (!isset($yturbo_options['ytpostdate'])) {$yturbo_options['ytpostdate']='enabled';}
81
- if (!isset($yturbo_options['ytexcerpt'])) {$yturbo_options['ytexcerpt']='disabled';}
82
- if (!isset($yturbo_options['ytad4'])) {$yturbo_options['ytad4']='disabled';}
83
- if (!isset($yturbo_options['ytad4set'])) {$yturbo_options['ytad4set']='РСЯ';}
84
- if (!isset($yturbo_options['ytad4rsa'])) {$yturbo_options['ytad4rsa']='';}
85
- if (!isset($yturbo_options['ytadfox4'])) {$yturbo_options['ytadfox4']='';}
86
- if (!isset($yturbo_options['ytad5'])) {$yturbo_options['ytad5']='disabled';}
87
- if (!isset($yturbo_options['ytad5set'])) {$yturbo_options['ytad5set']='РСЯ';}
88
- if (!isset($yturbo_options['ytad5rsa'])) {$yturbo_options['ytad5rsa']='';}
89
- if (!isset($yturbo_options['ytadfox5'])) {$yturbo_options['ytadfox5']='';}
90
- if (!isset($yturbo_options['ytfeedback'])) {$yturbo_options['ytfeedback']='disabled';}
91
- if (!isset($yturbo_options['ytfeedbackselect'])) {$yturbo_options['ytfeedbackselect']='right';}
92
- if (!isset($yturbo_options['ytfeedbackselectmesto'])) {$yturbo_options['ytfeedbackselectmesto']='В конце записи';}
93
- if (!isset($yturbo_options['ytfeedbacktitle'])) {$yturbo_options['ytfeedbacktitle']='Обратная связь';}
94
- if (!isset($yturbo_options['ytfeedbacknetw'])) {$yturbo_options['ytfeedbacknetw']='call,mail,vkontakte,';}
95
- if (!isset($yturbo_options['ytfeedbackcall'])) {$yturbo_options['ytfeedbackcall']='';}
96
- if (!isset($yturbo_options['ytfeedbackcallback'])) {$yturbo_options['ytfeedbackcallback']='';}
97
- if (!isset($yturbo_options['ytfeedbackcallback2'])) {$yturbo_options['ytfeedbackcallback2']='';}
98
- if (!isset($yturbo_options['ytfeedbackcallback3'])) {$yturbo_options['ytfeedbackcallback3']='';}
99
- if (!isset($yturbo_options['ytfeedbackmail'])) {$yturbo_options['ytfeedbackmail']='';}
100
- if (!isset($yturbo_options['ytfeedbackvkontakte'])) {$yturbo_options['ytfeedbackvkontakte']='';}
101
- if (!isset($yturbo_options['ytfeedbackodnoklassniki'])) {$yturbo_options['ytfeedbackodnoklassniki']='';}
102
- if (!isset($yturbo_options['ytfeedbacktwitter'])) {$yturbo_options['ytfeedbacktwitter']='';}
103
- if (!isset($yturbo_options['ytfeedbackfacebook'])) {$yturbo_options['ytfeedbackfacebook']='';}
104
- if (!isset($yturbo_options['ytfeedbackviber'])) {$yturbo_options['ytfeedbackviber']='';}
105
- if (!isset($yturbo_options['ytfeedbackwhatsapp'])) {$yturbo_options['ytfeedbackwhatsapp']='';}
106
- if (!isset($yturbo_options['ytfeedbacktelegram'])) {$yturbo_options['ytfeedbacktelegram']='';}
107
- if (!isset($yturbo_options['ytexcludeshortcodes'])) {$yturbo_options['ytexcludeshortcodes']='disabled';}
108
- if (!isset($yturbo_options['ytexcludeshortcodeslist'])) {$yturbo_options['ytexcludeshortcodeslist']='contact-form-7,';}
109
- if (!isset($yturbo_options['yttab'])) {$yturbo_options['yttab']='RSS-лента';}
110
- if (!isset($yturbo_options['ytrating'])) {$yturbo_options['ytrating']='disabled';}
111
- if (!isset($yturbo_options['ytratingmin'])) {$yturbo_options['ytratingmin']='4.70';}
112
- if (!isset($yturbo_options['ytratingmax'])) {$yturbo_options['ytratingmax']='5.00';}
113
-
114
- $yturbo_options['ytnetw'] = str_replace('google,', '', $yturbo_options['ytnetw']);
115
- $yturbo_options['ytfeedbacknetw'] = str_replace('google,', '', $yturbo_options['ytfeedbacknetw']);
116
-
117
- if (!isset($yturbo_options['ytsearch'])) {$yturbo_options['ytsearch']='disabled';}
118
- if (!isset($yturbo_options['ytsearchplaceholder'])) {$yturbo_options['ytsearchplaceholder']='Поиск по сайту';}
119
- if (!isset($yturbo_options['ytsearchmesto'])) {$yturbo_options['ytsearchmesto']='В конце записи';}
120
-
121
- if (!isset($yturbo_options['yttoc'])) {$yturbo_options['yttoc']='disabled';}
122
- if (!isset($yturbo_options['yttype2'])) {$yturbo_options['yttype2']='post';}
123
- if (!isset($yturbo_options['yttoczag'])) {$yturbo_options['yttoczag']='Содержание';}
124
- if (!isset($yturbo_options['yttocmesto'])) {$yturbo_options['yttocmesto']='В начале записи';}
125
- if (!isset($yturbo_options['yttocnumber'])) {$yturbo_options['yttocnumber']='2';}
126
- if (!isset($yturbo_options['yttoch1'])) {$yturbo_options['yttoch1']='disabled';}
127
- if (!isset($yturbo_options['yttoch2'])) {$yturbo_options['yttoch2']='enabled';}
128
- if (!isset($yturbo_options['yttoch3'])) {$yturbo_options['yttoch3']='enabled';}
129
- if (!isset($yturbo_options['yttoch4'])) {$yturbo_options['yttoch4']='disabled';}
130
- if (!isset($yturbo_options['yttoch5'])) {$yturbo_options['yttoch5']='disabled';}
131
- if (!isset($yturbo_options['yttoch6'])) {$yturbo_options['yttoch6']='disabled';}
132
-
133
- if (!isset($yturbo_options['ytprotokol'])) {$yturbo_options['ytprotokol']='asis';}
134
- if (!isset($yturbo_options['ytdateformat'])) {$yturbo_options['ytdateformat']='create';}
135
- if (!isset($yturbo_options['ytturbocolumn'])) {$yturbo_options['ytturbocolumn']='enabled';}
136
-
137
- $yturbo_options['ytfigcaption'] = 'Использовать подписи';
138
-
139
- if (!isset($yturbo_options['ytrelateddate'])) {$yturbo_options['ytrelateddate']='12';}
140
-
141
- $yturbo_options['yttitle'] = esc_html(yturbo_remove_emoji(strip_tags($yturbo_options['yttitle'])));
142
- $yturbo_options['ytdescription'] = esc_html(yturbo_remove_emoji(strip_tags($yturbo_options['ytdescription'])));
143
- if (!isset($yturbo_options['required'])) {$yturbo_options['required']='1.00';}
144
-
145
- // новый формат хранения удаляемых тегов begin
146
- $yturbo_options['ytexcludetagslist'] = preg_replace('/[^A-Za-z0-9,]/', '', html_entity_decode($yturbo_options['ytexcludetagslist']));
147
- $yturbo_options['ytexcludetagslist'] = mb_strtolower($yturbo_options['ytexcludetagslist']);
148
- $a = explode(",", $yturbo_options['ytexcludetagslist'] );
149
- $a = array_diff($a, array(''));
150
- $yturbo_options['ytexcludetagslist'] = implode(",", $a );
151
- // новый формат хранения удаляемых тегов end
152
-
153
- // новый формат хранения удаляемых тегов begin
154
- $yturbo_options['ytexcludetagslist2'] = preg_replace('/[^A-Za-z0-9,]/', '', html_entity_decode($yturbo_options['ytexcludetagslist2']));
155
- $yturbo_options['ytexcludetagslist2'] = mb_strtolower($yturbo_options['ytexcludetagslist2']);
156
- $a = explode(",", $yturbo_options['ytexcludetagslist2'] );
157
- $a = array_diff($a, array(''));
158
- $yturbo_options['ytexcludetagslist2'] = implode(",", $a );
159
- // новый формат хранения удаляемых тегов end
160
-
161
- if (!isset($yturbo_options['ytexcludeurls'])) {$yturbo_options['ytexcludeurls']='disabled';}
162
- if (!isset($yturbo_options['ytexcludeurlslist'])) {$yturbo_options['ytexcludeurlslist']='';}
163
- if (!isset($yturbo_options['ytdeltracking'])) {$yturbo_options['ytdeltracking']='disabled';}
164
-
165
- //запихиваем в $spisok только таксономии выбранного режима
166
- if ( $yturbo_options['ytqueryselect'] == 'Все таксономии, кроме исключенных' ) {
167
- $spisok = $yturbo_options['yttaxlist'];
168
- } else {
169
- $spisok = $yturbo_options['ytaddtaxlist'];
170
- }
171
-
172
- //разбираем список и создаем нужные опции begin
173
- if ( $spisok ) {
174
- $textAr = explode("\n", trim($spisok));
175
- $textAr = array_filter($textAr, 'trim');
176
- foreach ($textAr as $line) {
177
- $tax = explode(":", $line);
178
- if ( ! isset( $yturbo_options['exclude-'.$tax[0]] ) ) {
179
- $yturbo_options['exclude-'.$tax[0]] = $tax[0].':'.$tax[1];
180
- }
181
- }
182
- }
183
- //разбираем список и создаем нужные опции end
184
-
185
- if (!isset($yturbo_options['ytextendedhtml'])) {$yturbo_options['ytextendedhtml']='disabled';}
186
-
187
- $yturbo_options['version'] = '1.31';
188
- update_option('yturbo_options', $yturbo_options);
 
189
  }
190
  //функция установки новых опций при обновлении плагина у пользователей end
191
 
192
  //функция установки значений по умолчанию при активации плагина begin
193
  function yturbo_init() {
194
- $yturbo_options = array();
195
- $yturbo_options['version'] = '1.31';
196
- $yturbo_options['ytrssname'] = 'turbo';
197
- $yturbo_options['yttitle'] = esc_html(yturbo_remove_emoji(strip_tags(get_bloginfo_rss('title'))));
198
- $yturbo_options['ytlink'] = get_bloginfo_rss('url');
199
- $yturbo_options['ytdescription'] = esc_html(yturbo_remove_emoji(strip_tags(get_bloginfo_rss('description'))));
200
- $yturbo_options['ytlanguage'] = 'ru';
201
- $yturbo_options['ytnumber'] = '250';
202
- $yturbo_options['yttype'] = 'post';
203
- $yturbo_options['ytrazb'] = 'enabled';
204
- $yturbo_options['ytrazbnumber'] = '50';
205
- $yturbo_options['ytfigcaption'] = 'Использовать подписи';
206
- $yturbo_options['ytauthorselect'] = 'Отключить указание автора';
207
- $yturbo_options['ytauthor'] = '';
208
- $yturbo_options['ytthumbnail'] = 'enabled';
209
- $yturbo_options['ytselectthumb'] = 'large';
210
- $yturbo_options['ytexcludetags'] = 'enabled';
211
- $yturbo_options['ytexcludetagslist'] = 'span';
212
- $yturbo_options['ytexcludetags2'] = 'enabled';
213
- $yturbo_options['ytexcludetagslist2'] = 'script,style';
214
- $yturbo_options['ytexcludecontent'] = 'disabled';
215
- $yturbo_options['ytexcludecontentlist'] = esc_textarea('<!--more-->\n<p></p>\n<p>&nbsp;</p>');
216
-
217
- $yturbo_options['ytad1'] = 'disabled';
218
- $yturbo_options['ytad1set'] = 'РСЯ';
219
- $yturbo_options['ytad1rsa'] = '';
220
- $yturbo_options['ytadfox1'] = '';
221
-
222
- $yturbo_options['ytad2'] = 'disabled';
223
- $yturbo_options['ytad2set'] = 'РСЯ';
224
- $yturbo_options['ytad2rsa'] = '';
225
- $yturbo_options['ytadfox2'] = '';
226
-
227
- $yturbo_options['ytad3'] = 'disabled';
228
- $yturbo_options['ytad3set'] = 'РСЯ';
229
- $yturbo_options['ytad3rsa'] = '';
230
- $yturbo_options['ytadfox3'] = '';
231
-
232
- $yturbo_options['ytad4'] = 'disabled';
233
- $yturbo_options['ytad4set'] = 'РСЯ';
234
- $yturbo_options['ytad4rsa'] = '';
235
- $yturbo_options['ytadfox4'] = '';
236
-
237
- $yturbo_options['ytad5'] = 'disabled';
238
- $yturbo_options['ytad5set'] = 'РСЯ';
239
- $yturbo_options['ytad5rsa'] = '';
240
- $yturbo_options['ytadfox5'] = '';
241
-
242
- $yturbo_options['ytrelated'] = 'enabled';
243
- $yturbo_options['ytrelatednumber'] = '5';
244
- $yturbo_options['ytrelatedselectthumb'] = 'thumbnail';
245
- $yturbo_options['ytrelatedcache'] = 'enabled';
246
- $yturbo_options['ytrelatedcachetime'] = '72';
247
- $yturbo_options['ytrelatedinfinity'] = 'disabled';
248
-
249
- $yturbo_options['ytrazmer'] = '500';
250
- $yturbo_options['ytremoveturbo'] = 'disabled';
251
-
252
- $yturbo_options['ytmetrika'] = '';
253
- $yturbo_options['ytliveinternet'] = '';
254
- $yturbo_options['ytgoogle'] = '';
255
- $yturbo_options['ytmailru'] = '';
256
- $yturbo_options['ytrambler'] = '';
257
- $yturbo_options['ytmediascope'] = '';
258
-
259
- $yturbo_options['ytqueryselect'] = 'Все таксономии, кроме исключенных';
260
- $yturbo_options['yttaxlist'] = '';
261
- $yturbo_options['ytaddtaxlist'] = '';
262
-
263
- $yturbo_options['ytselectmenu'] = 'Не использовать';
264
- $yturbo_options['ytshare'] = 'disabled';
265
- $yturbo_options['ytnetw'] = 'vkontakte,facebook,twitter,odnoklassniki,telegram,';
266
- $yturbo_options['ytcomments'] = 'disabled';
267
- $yturbo_options['ytcommentsavatar'] = 'disabled';
268
- $yturbo_options['ytcommentsnumber'] = '40';
269
- $yturbo_options['ytcommentsorder'] = 'В начале старые комментарии';
270
- $yturbo_options['ytcommentsdate'] = 'enabled';
271
- $yturbo_options['ytcommentsdrevo'] = 'enabled';
272
- $yturbo_options['ytpostdate'] = 'disabled';
273
- $yturbo_options['ytexcerpt'] = 'disabled';
274
-
275
- $yturbo_options['ytfeedback'] = 'disabled';
276
- $yturbo_options['ytfeedbackselect'] = 'right';
277
- $yturbo_options['ytfeedbackselectmesto'] = 'В конце записи';
278
- $yturbo_options['ytfeedbacktitle'] = 'Обратная связь';
279
- $yturbo_options['ytfeedbacknetw'] = 'call,mail,vkontakte,';
280
-
281
- $yturbo_options['ytfeedbackcall'] = '';
282
- $yturbo_options['ytfeedbackcallback'] = '';
283
- $yturbo_options['ytfeedbackcallback2'] = '';
284
- $yturbo_options['ytfeedbackcallback3'] = '';
285
- $yturbo_options['ytfeedbackmail'] = '';
286
- $yturbo_options['ytfeedbackvkontakte'] = '';
287
- $yturbo_options['ytfeedbackodnoklassniki'] = '';
288
- $yturbo_options['ytfeedbacktwitter'] = '';
289
- $yturbo_options['ytfeedbackfacebook'] = '';
290
- $yturbo_options['ytfeedbackviber'] = '';
291
- $yturbo_options['ytfeedbackwhatsapp'] = '';
292
- $yturbo_options['ytfeedbacktelegram'] = '';
293
-
294
- $yturbo_options['ytexcludeshortcodes'] = 'disabled';
295
- $yturbo_options['ytexcludeshortcodeslist'] = 'contact-form-7,';
296
- $yturbo_options['yttab'] = 'RSS-лента';
297
-
298
- $yturbo_options['ytrating'] = 'disabled';
299
- $yturbo_options['ytratingmin'] = '4.70';
300
- $yturbo_options['ytratingmax'] = '5.00';
301
-
302
- $yturbo_options['ytsearch'] = 'disabled';
303
- $yturbo_options['ytsearchplaceholder'] = 'Поиск по сайту';
304
- $yturbo_options['ytsearchmesto'] = 'В конце записи';
305
-
306
- $yturbo_options['yttoc'] = 'disabled';
307
- $yturbo_options['yttype2'] = 'post';
308
- $yturbo_options['yttoczag'] = 'Содержание';
309
- $yturbo_options['yttocmesto'] = 'В начале записи';
310
- $yturbo_options['yttocnumber'] = '2';
311
- $yturbo_options['yttoch1'] = 'disabled';
312
- $yturbo_options['yttoch2'] = 'enabled';
313
- $yturbo_options['yttoch3'] = 'enabled';
314
- $yturbo_options['yttoch4'] = 'disabled';
315
- $yturbo_options['yttoch5'] = 'disabled';
316
- $yturbo_options['yttoch6'] = 'disabled';
317
-
318
- $yturbo_options['ytprotokol'] = 'asis';
319
- $yturbo_options['ytdateformat'] = 'create';
320
- $yturbo_options['ytturbocolumn'] = 'enabled';
321
- $yturbo_options['ytrelateddate'] = '12';
322
-
323
- $yturbo_options['ytexcludeurls'] = 'disabled';
324
- $yturbo_options['ytexcludeurlslist'] = '';
325
- $yturbo_options['ytdeltracking'] = 'disabled';
326
-
327
- $yturbo_options['ytextendedhtml'] = 'disabled';
328
-
329
- $yturbo_options['required']='1.00';
330
-
331
- add_option('yturbo_options', $yturbo_options);
332
-
333
- yturbo_add_feed();
334
- global $wp_rewrite;
335
- $wp_rewrite->flush_rules();
 
336
  }
337
- add_action( 'activate_rss-for-yandex-turbo/rss-for-yandex-turbo.php', 'yturbo_init' );
338
  //функция установки значений по умолчанию при активации плагина end
339
 
340
  //функция при деактивации плагина begin
341
  function yturbo_on_deactivation() {
342
- if ( ! current_user_can('activate_plugins') ) return;
343
-
344
- //удаляем ленту плагина при деактивации плагина и обновляем пермалинки begin
345
- $yturbo_options = get_option('yturbo_options');
346
- global $wp_rewrite;
347
- if ( in_array( $yturbo_options['ytrssname'], $wp_rewrite->feeds ) ) {
348
- unset($wp_rewrite->feeds[array_search($yturbo_options['ytrssname'], $wp_rewrite->feeds)]);
349
- }
350
- $wp_rewrite->flush_rules();
351
- //удаляем ленту плагина при деактивации плагина и обновляем пермалинки end
352
  }
353
- register_deactivation_hook( __FILE__, 'yturbo_on_deactivation' );
354
  //функция при деактивации плагина end
355
 
356
  //функция при удалении плагина begin
357
  function yturbo_on_uninstall() {
358
- if ( ! current_user_can('activate_plugins') ) return;
359
- delete_option('yturbo_options');
360
- AdminNotice::cleanUpDatabase('yturbo-');
361
  }
362
- register_uninstall_hook( __FILE__, 'yturbo_on_uninstall' );
363
  //функция при удалении плагина end
364
 
365
  //загрузка файла локализации плагина begin
366
  function yturbo_setup() {
367
- load_plugin_textdomain('rss-for-yandex-turbo');
368
  }
369
- add_action( 'init', 'yturbo_setup' );
370
  //загрузка файла локализации плагина end
371
 
372
  //добавление ссылки "Настройки" на странице со списком плагинов begin
373
- function yturbo_actions( $links ) {
374
- return array_merge(array('settings' => '<a href="options-general.php?page=rss-for-yandex-turbo.php">' . __('Настройки', 'rss-for-yandex-turbo') . '</a>'), $links);
375
  }
376
- add_filter( 'plugin_action_links_' . plugin_basename( __FILE__ ),'yturbo_actions' );
377
  //добавление ссылки "Настройки" на странице со списком плагинов end
378
 
379
  //функция загрузки скриптов и стилей плагина только в админке и только на странице настроек плагина begin
380
- function yturbo_files_admin( $hook_suffix ) {
381
- $purl = plugins_url('', __FILE__);
382
- $yturbo_options = get_option('yturbo_options');
383
- if ( $hook_suffix == 'settings_page_rss-for-yandex-turbo' ) {
384
- wp_enqueue_script('jquery');
385
- wp_enqueue_script('yturbo-tagify-js', $purl . '/inc/tagify.js', array(), $yturbo_options['version']);
386
- wp_enqueue_style('yturbo-tagify-css', $purl . '/inc/tagify.css', array(), $yturbo_options['version']);
387
- wp_enqueue_script('yturbo-script', $purl . '/inc/yturbo-script.js', array(), $yturbo_options['version']);
388
- wp_enqueue_style('yturbo-css', $purl . '/inc/yturbo-css.css', array(), $yturbo_options['version']);
389
- }
390
  }
391
- add_action( 'admin_enqueue_scripts', 'yturbo_files_admin' );
392
  //функция загрузки скриптов и стилей плагина только в админке и только на странице настроек плагина end
393
 
394
  //функция вывода страницы настроек плагина begin
395
  function yturbo_options_page() {
396
  $purl = plugins_url('', __FILE__);
397
 
398
- if (isset($_POST['submit'])) {
399
 
400
  //проверка безопасности при сохранении настроек плагина begin
401
- if ( ! wp_verify_nonce( $_POST['yturbo_nonce'], plugin_basename(__FILE__) ) || ! current_user_can('edit_posts') ) {
402
- wp_die(__( 'Cheatin&#8217; uh?', 'rss-for-yandex-turbo' ));
403
  }
404
  //проверка безопасности при сохранении настроек плагина end
405
 
406
- //проверяем и сохраняем введенные пользователем данные begin
407
- $yturbo_options = get_option('yturbo_options');
408
-
409
- if (!preg_match('/[^A-Za-z0-9]/', $_POST['ytrssname'])) {
410
- $yturbo_options['ytrssname'] = $_POST['ytrssname'];
411
- update_option('yturbo_options', $yturbo_options);
412
- yturbo_add_feed();
413
- global $wp_rewrite;
414
- $wp_rewrite->flush_rules();
415
- }
416
-
417
- $yturbo_options['yttitle'] = esc_html(yturbo_remove_emoji(strip_tags($_POST['yttitle'])));
418
- $yturbo_options['ytlink'] = esc_url_raw($_POST['ytlink']);
419
- $yturbo_options['ytdescription'] = esc_html(yturbo_remove_emoji(strip_tags($_POST['ytdescription'])));
420
- $yturbo_options['ytlanguage'] = sanitize_text_field($_POST['ytlanguage']);
421
-
422
- $ytnumber = sanitize_text_field($_POST['ytnumber']);
423
- if (is_numeric($ytnumber)) {
424
- $yturbo_options['ytnumber'] = sanitize_text_field($_POST['ytnumber']);
425
- }
426
-
427
- if(isset($_POST['ytrazb'])){$yturbo_options['ytrazb'] = sanitize_text_field($_POST['ytrazb']);}else{$yturbo_options['ytrazb'] = 'disabled';}
428
- $ytrazbnumber = sanitize_text_field($_POST['ytrazbnumber']);
429
- if (is_numeric($ytrazbnumber)) {
430
- $yturbo_options['ytrazbnumber'] = sanitize_text_field($_POST['ytrazbnumber']);
431
- }
432
-
433
- $yturbo_options['yttype'] = '';
434
- $checkboxes = isset($_POST['types']) ? $_POST['types'] : array();
435
- foreach($checkboxes as $value) {$yturbo_options['yttype'] .= sanitize_text_field($value) . ',';}
436
- $yturbo_options['yttype'] = sanitize_text_field($yturbo_options['yttype']);
437
-
438
- $yturbo_options['ytfigcaption'] = sanitize_text_field($_POST['ytfigcaption']);
439
- $yturbo_options['ytauthorselect'] = sanitize_text_field($_POST['ytauthorselect']);
440
- $yturbo_options['ytauthor'] = sanitize_text_field($_POST['ytauthor']);
441
-
442
- if(isset($_POST['ytthumbnail'])){$yturbo_options['ytthumbnail'] = sanitize_text_field($_POST['ytthumbnail']);}else{$yturbo_options['ytthumbnail'] = 'disabled';}
443
- $yturbo_options['ytselectthumb'] = sanitize_text_field($_POST['ytselectthumb']);
444
-
445
- if(isset($_POST['ytexcludetags'])){$yturbo_options['ytexcludetags'] = sanitize_text_field($_POST['ytexcludetags']);}else{$yturbo_options['ytexcludetags'] = 'disabled';}
446
- $ytexcludetagslist = preg_replace('/[^A-Za-z0-9,]/', '', sanitize_text_field($_POST['ytexcludetagslist']));
447
- $yturbo_options['ytexcludetagslist'] = $ytexcludetagslist;
448
-
449
- if(isset($_POST['ytexcludetags2'])){$yturbo_options['ytexcludetags2'] = sanitize_text_field($_POST['ytexcludetags2']);}else{$yturbo_options['ytexcludetags2'] = 'disabled';}
450
- $ytexcludetagslist2 = preg_replace('/[^A-Za-z0-9,]/', '', sanitize_text_field($_POST['ytexcludetagslist2']));
451
- $yturbo_options['ytexcludetagslist2'] = $ytexcludetagslist2;
452
-
453
- if(isset($_POST['ytexcludecontent'])){$yturbo_options['ytexcludecontent'] = sanitize_text_field($_POST['ytexcludecontent']);}else{$yturbo_options['ytexcludecontent'] = 'disabled';}
454
- $lines = array_filter(explode("\n", trim(esc_textarea($_POST['ytexcludecontentlist']))));
455
- $yturbo_options['ytexcludecontentlist'] = implode("\n", $lines);
456
-
457
- if(isset($_POST['ytad1'])){$yturbo_options['ytad1'] = sanitize_text_field($_POST['ytad1']);}else{$yturbo_options['ytad1'] = 'disabled';}
458
- $yturbo_options['ytad1set'] = sanitize_text_field($_POST['ytad1set']);
459
- $yturbo_options['ytad1rsa'] = sanitize_text_field($_POST['ytad1rsa']);
460
- $yturbo_options['ytadfox1'] = esc_html($_POST['ytadfox1']);
461
-
462
- if(isset($_POST['ytad1'])) {
463
- if($yturbo_options['ytad1set'] == "РСЯ" && !$yturbo_options['ytad1rsa']) {$yturbo_options['ytad1'] = 'disabled';}
464
- if($yturbo_options['ytad1set'] == "ADFOX" && !$yturbo_options['ytadfox1']) {$yturbo_options['ytad1'] = 'disabled';}
465
- }
466
-
467
- if(isset($_POST['ytad2'])){$yturbo_options['ytad2'] = sanitize_text_field($_POST['ytad2']);}else{$yturbo_options['ytad2'] = 'disabled';}
468
- $yturbo_options['ytad2set'] = sanitize_text_field($_POST['ytad2set']);
469
- $yturbo_options['ytad2rsa'] = sanitize_text_field($_POST['ytad2rsa']);
470
- $yturbo_options['ytadfox2'] = esc_html($_POST['ytadfox2']);
471
-
472
- if(isset($_POST['ytad2'])) {
473
- if($yturbo_options['ytad2set'] == "РСЯ" && !$yturbo_options['ytad2rsa']) {$yturbo_options['ytad2'] = 'disabled';}
474
- if($yturbo_options['ytad2set'] == "ADFOX" && !$yturbo_options['ytadfox2']) {$yturbo_options['ytad2'] = 'disabled';}
475
- }
476
-
477
- if(isset($_POST['ytad3'])){$yturbo_options['ytad3'] = sanitize_text_field($_POST['ytad3']);}else{$yturbo_options['ytad3'] = 'disabled';}
478
- $yturbo_options['ytad3set'] = sanitize_text_field($_POST['ytad3set']);
479
- $yturbo_options['ytad3rsa'] = sanitize_text_field($_POST['ytad3rsa']);
480
- $yturbo_options['ytadfox3'] = esc_html($_POST['ytadfox3']);
481
-
482
- if(isset($_POST['ytad3'])) {
483
- if($yturbo_options['ytad3set'] == "РСЯ" && !$yturbo_options['ytad3rsa']) {$yturbo_options['ytad3'] = 'disabled';}
484
- if($yturbo_options['ytad3set'] == "ADFOX" && !$yturbo_options['ytadfox3']) {$yturbo_options['ytad3'] = 'disabled';}
485
- }
486
-
487
- if(isset($_POST['ytad4'])){$yturbo_options['ytad4'] = sanitize_text_field($_POST['ytad4']);}else{$yturbo_options['ytad4'] = 'disabled';}
488
- $yturbo_options['ytad4set'] = sanitize_text_field($_POST['ytad4set']);
489
- $yturbo_options['ytad4rsa'] = sanitize_text_field($_POST['ytad4rsa']);
490
- $yturbo_options['ytadfox4'] = esc_html($_POST['ytadfox4']);
491
-
492
- if(isset($_POST['ytad4'])) {
493
- if($yturbo_options['ytad4set'] == "РСЯ" && !$yturbo_options['ytad4rsa']) {$yturbo_options['ytad4'] = 'disabled';}
494
- if($yturbo_options['ytad4set'] == "ADFOX" && !$yturbo_options['ytadfox4']) {$yturbo_options['ytad4'] = 'disabled';}
495
- }
496
-
497
- if(isset($_POST['ytad5'])){$yturbo_options['ytad5'] = sanitize_text_field($_POST['ytad5']);}else{$yturbo_options['ytad5'] = 'disabled';}
498
- $yturbo_options['ytad5set'] = sanitize_text_field($_POST['ytad5set']);
499
- $yturbo_options['ytad5rsa'] = sanitize_text_field($_POST['ytad5rsa']);
500
- $yturbo_options['ytadfox5'] = esc_html($_POST['ytadfox5']);
501
-
502
- if(isset($_POST['ytad5'])) {
503
- if($yturbo_options['ytad5set'] == "РСЯ" && !$yturbo_options['ytad5rsa']) {$yturbo_options['ytad5'] = 'disabled';}
504
- if($yturbo_options['ytad5set'] == "ADFOX" && !$yturbo_options['ytadfox5']) {$yturbo_options['ytad5'] = 'disabled';}
505
- }
506
- if ( yturbo_check_ads() == true ) {
507
- $yturbo_options['ytad1'] = 'disabled';
508
- $yturbo_options['ytad2'] = 'disabled';
509
- $yturbo_options['ytad3'] = 'disabled';
510
- $yturbo_options['ytad4'] = 'disabled';
511
- $yturbo_options['ytad5'] = 'disabled';
512
- }
513
-
514
- if(isset($_POST['ytrelated'])){$yturbo_options['ytrelated'] = sanitize_text_field($_POST['ytrelated']);}else{$yturbo_options['ytrelated'] = 'disabled';}
515
- $ytrelatednumber = sanitize_text_field($_POST['ytrelatednumber']);
516
- if (is_numeric($ytrelatednumber) && (int)$ytrelatednumber<=30) {
517
- $yturbo_options['ytrelatednumber'] = sanitize_text_field($_POST['ytrelatednumber']);
518
- }
519
- $yturbo_options['ytrelatedselectthumb'] = sanitize_text_field($_POST['ytrelatedselectthumb']);
520
- if(isset($_POST['ytrelatedcache'])){$yturbo_options['ytrelatedcache'] = sanitize_text_field($_POST['ytrelatedcache']);}else{$yturbo_options['ytrelatedcache'] = 'disabled';}
521
- $ytrelatedcachetime = sanitize_text_field($_POST['ytrelatedcachetime']);
522
- if (is_numeric($ytrelatedcachetime)) {
523
- $yturbo_options['ytrelatedcachetime'] = sanitize_text_field($_POST['ytrelatedcachetime']);
524
- }
525
- if(isset($_POST['ytrelatedinfinity'])){$yturbo_options['ytrelatedinfinity'] = sanitize_text_field($_POST['ytrelatedinfinity']);}else{$yturbo_options['ytrelatedinfinity'] = 'disabled';}
526
- if($yturbo_options['ytrelatedinfinity']=='enabled'){$yturbo_options['ytrelatedselectthumb']='Не использовать';}
527
-
528
- $ytrazmer = sanitize_text_field($_POST['ytrazmer']);
529
- if (is_numeric($ytrazmer)) {
530
- $yturbo_options['ytrazmer'] = sanitize_text_field($_POST['ytrazmer']);
531
- }
532
-
533
- if(isset($_POST['ytremoveturbo'])){$yturbo_options['ytremoveturbo'] = sanitize_text_field($_POST['ytremoveturbo']);}else{$yturbo_options['ytremoveturbo'] = 'disabled';}
534
-
535
- $yturbo_options['ytmetrika'] = sanitize_text_field($_POST['ytmetrika']);
536
- $yturbo_options['ytliveinternet'] = sanitize_text_field($_POST['ytliveinternet']);
537
- $yturbo_options['ytgoogle'] = sanitize_text_field($_POST['ytgoogle']);
538
- $yturbo_options['ytmailru'] = sanitize_text_field($_POST['ytmailru']);
539
- $yturbo_options['ytrambler'] = sanitize_text_field($_POST['ytrambler']);
540
- $yturbo_options['ytmediascope'] = sanitize_text_field($_POST['ytmediascope']);
541
-
542
- $yturbo_options['ytqueryselect'] = sanitize_text_field($_POST['ytqueryselect']);
543
-
544
- $term_exclude_list = '';
545
- $taxonomies = get_taxonomies( array('public'=>true,'show_ui'=>true,), 'objects', 'and' );
546
- foreach ($taxonomies as $taxonomy) {
547
- $temp = $taxonomy->name . ':';
548
- if ( isset($_POST['exclude-'.$taxonomy->name])) :
549
- foreach ( $_POST['exclude-'.$taxonomy->name] as $exclude ) {
550
- $exclude = sanitize_text_field($exclude);
551
- if ( is_numeric($exclude) ) {
552
- if( ! next( $_POST['exclude-'.$taxonomy->name] ) ) {
553
- $temp .= $exclude;
554
- } else {
555
- $temp .= $exclude . ',';
556
- }
557
- }
558
- }
559
- $yturbo_options['exclude-'.$taxonomy->name] = $temp;
560
- if ( ! $term_exclude_list ) {
561
- $term_exclude_list .= $temp;
562
- } else {
563
- $term_exclude_list .= PHP_EOL . $temp;
564
- }
565
- else :
566
- $yturbo_options['exclude-'.$taxonomy->name] = '';
567
- endif;
568
- }
569
- $yturbo_options['yttaxlist'] = $term_exclude_list;
570
- $yturbo_options['ytaddtaxlist'] = $term_exclude_list;
571
-
572
- $yturbo_options['ytselectmenu'] = sanitize_text_field($_POST['ytselectmenu']);
573
- if(isset($_POST['ytshare'])){$yturbo_options['ytshare'] = sanitize_text_field($_POST['ytshare']);}else{$yturbo_options['ytshare'] = 'disabled';}
574
- $yturbo_options['ytnetw'] = sanitize_text_field($_POST['ytnetwspan']);
575
- if(isset($_POST['ytcomments'])){$yturbo_options['ytcomments'] = sanitize_text_field($_POST['ytcomments']);}else{$yturbo_options['ytcomments'] = 'disabled';}
576
- if(isset($_POST['ytcommentsavatar'])){$yturbo_options['ytcommentsavatar'] = sanitize_text_field($_POST['ytcommentsavatar']);}else{$yturbo_options['ytcommentsavatar'] = 'disabled';}
577
- $ytcommentsnumber = sanitize_text_field($_POST['ytcommentsnumber']);
578
- if (is_numeric($ytcommentsnumber) && (int)$ytcommentsnumber<=40) {
579
- $yturbo_options['ytcommentsnumber'] = sanitize_text_field($_POST['ytcommentsnumber']);
580
- }
581
- $yturbo_options['ytcommentsorder'] = sanitize_text_field($_POST['ytcommentsorder']);
582
- if(isset($_POST['ytcommentsdate'])){$yturbo_options['ytcommentsdate'] = sanitize_text_field($_POST['ytcommentsdate']);}else{$yturbo_options['ytcommentsdate'] = 'disabled';}
583
- if(isset($_POST['ytcommentsdrevo'])){$yturbo_options['ytcommentsdrevo'] = sanitize_text_field($_POST['ytcommentsdrevo']);}else{$yturbo_options['ytcommentsdrevo'] = 'disabled';}
584
- if(isset($_POST['ytpostdate'])){$yturbo_options['ytpostdate'] = sanitize_text_field($_POST['ytpostdate']);}else{$yturbo_options['ytpostdate'] = 'disabled';}
585
- if(isset($_POST['ytexcerpt'])){$yturbo_options['ytexcerpt'] = sanitize_text_field($_POST['ytexcerpt']);}else{$yturbo_options['ytexcerpt'] = 'disabled';}
586
-
587
- if(isset($_POST['ytfeedback'])){$yturbo_options['ytfeedback'] = sanitize_text_field($_POST['ytfeedback']);}else{$yturbo_options['ytfeedback'] = 'disabled';}
588
- $yturbo_options['ytfeedbackselect'] = sanitize_text_field($_POST['ytfeedbackselect']);
589
- $yturbo_options['ytfeedbackselectmesto'] = sanitize_text_field($_POST['ytfeedbackselectmesto']);
590
- $yturbo_options['ytfeedbacktitle'] = sanitize_text_field($_POST['ytfeedbacktitle']);
591
- $yturbo_options['ytfeedbacknetw'] = sanitize_text_field($_POST['ytfeedbacknetwspan']);
592
-
593
- $yturbo_options['ytfeedbackcall'] = sanitize_text_field($_POST['ytfeedbackcall']);
594
- $yturbo_options['ytfeedbackcallback'] = sanitize_text_field($_POST['ytfeedbackcallback']);
595
- $yturbo_options['ytfeedbackcallback2'] = sanitize_text_field(htmlspecialchars($_POST['ytfeedbackcallback2']));
596
- $yturbo_options['ytfeedbackcallback3'] = sanitize_text_field($_POST['ytfeedbackcallback3']);
597
- $yturbo_options['ytfeedbackmail'] = sanitize_text_field($_POST['ytfeedbackmail']);
598
- $yturbo_options['ytfeedbackvkontakte'] = sanitize_text_field($_POST['ytfeedbackvkontakte']);
599
- $yturbo_options['ytfeedbackodnoklassniki'] = sanitize_text_field($_POST['ytfeedbackodnoklassniki']);
600
- $yturbo_options['ytfeedbacktwitter'] = sanitize_text_field($_POST['ytfeedbacktwitter']);
601
- $yturbo_options['ytfeedbackfacebook'] = sanitize_text_field($_POST['ytfeedbackfacebook']);
602
- $yturbo_options['ytfeedbackviber'] = sanitize_text_field($_POST['ytfeedbackviber']);
603
- $yturbo_options['ytfeedbackwhatsapp'] = sanitize_text_field($_POST['ytfeedbackwhatsapp']);
604
- $yturbo_options['ytfeedbacktelegram'] = sanitize_text_field($_POST['ytfeedbacktelegram']);
605
-
606
- if(isset($_POST['ytexcludeshortcodes'])){$yturbo_options['ytexcludeshortcodes'] = sanitize_text_field($_POST['ytexcludeshortcodes']);}else{$yturbo_options['ytexcludeshortcodes'] = 'disabled';}
607
-
608
- $yturbo_options['ytexcludeshortcodeslist'] = '';
609
- $checkboxes = isset($_POST['shortcodes']) ? $_POST['shortcodes'] : array();
610
- foreach ( $checkboxes as $value ) {$yturbo_options['ytexcludeshortcodeslist'] .= sanitize_text_field($value) . ',';}
611
-
612
- $types = explode(",", $yturbo_options['yttype']);
613
- $types = array_diff($types, array(''));
614
- foreach ( $types as $post_type ) {
615
- if (in_array($post_type, $types)) {
616
- if(isset($_POST['template-'.$post_type])) {
617
- $yturbo_options['template-'.$post_type] = esc_textarea($_POST['template-'.$post_type]);
618
- }
619
- }
620
- }
621
-
622
- $yturbo_options['yttab'] = sanitize_text_field($_POST['yttab']);
623
-
624
- if(isset($_POST['ytrating'])){$yturbo_options['ytrating'] = sanitize_text_field($_POST['ytrating']);}else{$yturbo_options['ytrating'] = 'disabled';}
625
- $yturbo_options['ytratingmin'] = sanitize_text_field($_POST['ytratingmin']);
626
- $yturbo_options['ytratingmax'] = sanitize_text_field($_POST['ytratingmax']);
627
-
628
- if(isset($_POST['ytsearch'])){$yturbo_options['ytsearch'] = sanitize_text_field($_POST['ytsearch']);}else{$yturbo_options['ytsearch'] = 'disabled';}
629
- $yturbo_options['ytsearchplaceholder'] = sanitize_text_field($_POST['ytsearchplaceholder']);
630
- $yturbo_options['ytsearchmesto'] = sanitize_text_field($_POST['ytsearchmesto']);
631
-
632
- if(isset($_POST['yttoc'])){$yturbo_options['yttoc'] = sanitize_text_field($_POST['yttoc']);}else{$yturbo_options['yttoc'] = 'disabled';}
633
- $yturbo_options['yttype2'] = '';
634
- $checkboxes = isset($_POST['types2']) ? $_POST['types2'] : array();
635
- foreach ($checkboxes as $value) {$yturbo_options['yttype2'] .= sanitize_text_field($value) . ',';}
636
- $yturbo_options['yttype2'] = sanitize_text_field($yturbo_options['yttype2']);
637
- $yturbo_options['yttoczag'] = sanitize_text_field($_POST['yttoczag']);
638
- $yturbo_options['yttocmesto'] = sanitize_text_field($_POST['yttocmesto']);
639
- $yttocnumber = sanitize_text_field($_POST['yttocnumber']);
640
- if (is_numeric($yttocnumber)) {
641
- $yturbo_options['yttocnumber'] = sanitize_text_field($_POST['yttocnumber']);
642
- }
643
- if(isset($_POST['yttoch1'])){$yturbo_options['yttoch1'] = sanitize_text_field($_POST['yttoch1']);}else{$yturbo_options['yttoch1'] = 'disabled';}
644
- if(isset($_POST['yttoch2'])){$yturbo_options['yttoch2'] = sanitize_text_field($_POST['yttoch2']);}else{$yturbo_options['yttoch2'] = 'disabled';}
645
- if(isset($_POST['yttoch3'])){$yturbo_options['yttoch3'] = sanitize_text_field($_POST['yttoch3']);}else{$yturbo_options['yttoch3'] = 'disabled';}
646
- if(isset($_POST['yttoch4'])){$yturbo_options['yttoch4'] = sanitize_text_field($_POST['yttoch4']);}else{$yturbo_options['yttoch4'] = 'disabled';}
647
- if(isset($_POST['yttoch5'])){$yturbo_options['yttoch5'] = sanitize_text_field($_POST['yttoch5']);}else{$yturbo_options['yttoch5'] = 'disabled';}
648
- if(isset($_POST['yttoch6'])){$yturbo_options['yttoch6'] = sanitize_text_field($_POST['yttoch6']);}else{$yturbo_options['yttoch6'] = 'disabled';}
649
-
650
- $yturbo_options['ytprotokol'] = sanitize_text_field($_POST['ytprotokol']);
651
- $yturbo_options['ytdateformat'] = sanitize_text_field($_POST['ytdateformat']);
652
-
653
- if(isset($_POST['ytturbocolumn'])){$yturbo_options['ytturbocolumn'] = sanitize_text_field($_POST['ytturbocolumn']);}else{$yturbo_options['ytturbocolumn'] = 'disabled';}
654
-
655
- $ytrelateddate = sanitize_text_field($_POST['ytrelateddate']);
656
- if (is_numeric($ytrelateddate)) {
657
- $yturbo_options['ytrelateddate'] = sanitize_text_field($_POST['ytrelateddate']);
658
- }
659
-
660
- if(isset($_POST['ytexcludeurls'])){$yturbo_options['ytexcludeurls'] = sanitize_text_field($_POST['ytexcludeurls']);}else{$yturbo_options['ytexcludeurls'] = 'disabled';}
661
- $lines = array_filter(explode("\n", trim(esc_textarea($_POST['ytexcludeurlslist']))));
662
- $yturbo_options['ytexcludeurlslist'] = implode("\n", $lines);
663
- if(isset($_POST['ytdeltracking'])){$yturbo_options['ytdeltracking'] = sanitize_text_field($_POST['ytdeltracking']);}else{$yturbo_options['ytdeltracking'] = 'disabled';}
664
-
665
- if(isset($_POST['ytextendedhtml'])){$yturbo_options['ytextendedhtml'] = sanitize_text_field($_POST['ytextendedhtml']);}else{$yturbo_options['ytextendedhtml'] = 'disabled';}
666
-
667
- update_option('yturbo_options', $yturbo_options);
668
-
669
- yturbo_clear_transients();
670
- //проверяем и сохраняем введенные пользователем данные end
 
671
  }
672
  $yturbo_options = get_option('yturbo_options');
673
  ?>
674
  <?php if ( ! empty($_POST) ) :
675
  if ( ! wp_verify_nonce( $_POST['yturbo_nonce'], plugin_basename(__FILE__) ) || ! current_user_can('edit_posts') ) {
676
- wp_die(__( 'Cheatin&#8217; uh?', 'rss-for-yandex-turbo' ));
677
  }
678
  ?>
679
  <div id="message" class="updated fade"><p><strong><?php _e('Настройки сохранены.', 'rss-for-yandex-turbo'); ?></strong></p></div>
680
  <?php else : ?>
681
- <?php $yturbo_options['yttab'] = 'RSS-лента'; ?>
682
  <?php endif; ?>
683
 
684
  <div class="wrap foptions">
@@ -691,1262 +694,1277 @@ if ( ! wp_verify_nonce( $_POST['yturbo_nonce'], plugin_basename(__FILE__) ) || !
691
  <script>
692
  var closedonat = localStorage.getItem('yt-close-donat');
693
  if (closedonat == 'yes') {
694
- document.getElementById('donat').className = 'postbox hide';
695
- document.getElementById('restore-hide-blocks').className = 'dashicons dashicons-admin-generic';
696
  }
697
  </script>
698
- <h3 style="border-bottom: 1px solid #E1E1E1;background: #f7f7f7;"><?php _e('Вам нравится этот плагин ?', 'rss-for-yandex-turbo'); ?>
699
- <span id="close-donat" class="dashicons dashicons-no-alt" title="<?php _e('Скрыть блок', 'rss-for-yandex-turbo'); ?>"></span></h3>
700
- <div class="inside" style="display: block;margin-right: 12px;">
701
- <img src="<?php echo $purl . '/img/icon_coffee.png'; ?>" title="<?php _e('Купить мне чашку кофе :)', 'rss-for-yandex-turbo'); ?>" style=" margin: 5px; float:left;" />
702
- <p><?php _e('Привет, меня зовут <strong>Flector</strong>.', 'rss-for-yandex-turbo'); ?></p>
703
- <p><?php _e('Я потратил много времени на разработку этого плагина.', 'rss-for-yandex-turbo'); ?> <br />
704
- <?php _e('Поэтому не откажусь от небольшого пожертвования :)', 'rss-for-yandex-turbo'); ?></p>
705
- <a target="_blank" id="yadonate" href="https://money.yandex.ru/to/41001443750704/200"><?php _e('Подарить', 'rss-for-yandex-turbo'); ?></a>
706
- <p><?php _e('Или вы можете заказать у меня услуги по WordPress, от мелких правок до создания полноценного сайта.', 'rss-for-yandex-turbo'); ?><br />
707
- <?php _e('Быстро, качественно и дешево. Прайс-лист смотрите по адресу <a target="_blank" href="https://www.wpuslugi.ru/?from=yturbo-plugin">https://www.wpuslugi.ru/</a>.', 'rss-for-yandex-turbo'); ?></p>
708
- <div style="clear:both;"></div>
709
- </div>
710
  </div>
711
 
712
  <form action="" method="post">
713
 
714
  <div class="xyztabs">
715
 
716
- <input style="left:-2000px;position: absolute;" type="text" name="yttab" id="yttab" size="30" value="<?php echo esc_attr(stripslashes($yturbo_options['yttab'])); ?>" />
717
- <ul class="xyztabs__caption">
718
- <li <?php if($yturbo_options['yttab']=='RSS-лента'){echo 'class="active"';} ?>><?php _e('RSS-лента', 'rss-for-yandex-turbo'); ?></li>
719
- <li <?php if($yturbo_options['yttab']=='Оформление'){echo 'class="active"';} ?>><?php _e('Оформление', 'rss-for-yandex-turbo'); ?></li>
720
- <li <?php if($yturbo_options['yttab']=='Блоки Яндекс.Турбо'){echo 'class="active"';} ?>><?php _e('Блоки Яндекс.Турбо', 'rss-for-yandex-turbo'); ?></li>
721
- <li <?php if($yturbo_options['yttab']=='Счетчики'){echo 'class="active"';} ?>><?php _e('Счетчики', 'rss-for-yandex-turbo'); ?></li>
722
- <li <?php if($yturbo_options['yttab']=='Реклама'){echo 'class="active"';} ?>><?php _e('Реклама', 'rss-for-yandex-turbo'); ?></li>
723
- <li <?php if($yturbo_options['yttab']=='Типы записей и исключения'){echo 'class="active"';} ?>><?php _e('Типы записей и исключения', 'rss-for-yandex-turbo'); ?></li>
724
- <li <?php if($yturbo_options['yttab']=='Шаблоны'){echo 'class="active"';} ?>><?php _e('Шаблоны', 'rss-for-yandex-turbo'); ?></li>
725
- <li <?php if($yturbo_options['yttab']=='Фильтры'){echo 'class="active"';} ?>><?php _e('Фильтры', 'rss-for-yandex-turbo'); ?></li>
726
- </ul>
727
-
728
- <div class="xyztabs__content<?php if($yturbo_options['yttab']=='RSS-лента'){echo ' active';} ?>"><!-- begin tab -->
729
-
730
- <?php yturbo_count_feeds(); ?>
731
-
732
- <?php if ( get_option('permalink_structure') ) {
733
- $kor = get_bloginfo('url') .'/feed/' . '<strong>' . $yturbo_options['ytrssname'] . '</strong>/';
734
- } else {
735
- $kor = get_bloginfo('url') .'/?feed=' . '<strong>' . $yturbo_options['ytrssname']. '</strong>';
736
- } ?>
737
-
738
- <table class="form-table">
739
- <tr class="trbordertop">
740
- <th><?php _e('Имя RSS-ленты:', 'rss-for-yandex-turbo'); ?></th>
741
- <td>
742
- <input type="text" name="ytrssname" size="40" value="<?php echo $yturbo_options['ytrssname']; ?>" />
743
- <br /><small><?php _e('Текущий URL RSS-ленты:', 'rss-for-yandex-turbo'); ?> <tt><?php echo $kor; ?></tt><br />
744
- <?php _e('Только буквы и цифры, не меняйте без необходимости.', 'rss-for-yandex-turbo'); ?>
745
- </small>
746
- </td>
747
- </tr>
748
- <tr class="trbordertop">
749
- <th><?php _e('Заголовок:', 'rss-for-yandex-turbo'); ?></th>
750
- <td>
751
- <input type="text" name="yttitle" size="40" value="<?php echo esc_attr(stripslashes($yturbo_options['yttitle'])); ?>" />
752
- <br /><small><?php _e('Название RSS-ленты. Если экспортируется содержимое всего сайта, укажите название сайта.', 'rss-for-yandex-turbo'); ?><br />
753
- <?php _e('Если экспортируется раздел сайта, укажите только название раздела.', 'rss-for-yandex-turbo'); ?><br />
754
- </small>
755
- </td>
756
- </tr>
757
- <tr>
758
- <th><?php _e('Ссылка:', 'rss-for-yandex-turbo'); ?></th>
759
- <td>
760
- <input type="text" name="ytlink" size="40" value="<?php echo esc_attr(stripslashes($yturbo_options['ytlink'])); ?>" />
761
- <br /><small><?php _e('URL сайта, данные которого экспортируются в RSS-ленту.', 'rss-for-yandex-turbo'); ?> </small>
762
- </td>
763
- </tr>
764
- <tr>
765
- <th><?php _e('Описание:', 'rss-for-yandex-turbo'); ?></th>
766
- <td>
767
- <input type="text" name="ytdescription" size="40" value="<?php echo esc_attr(stripslashes($yturbo_options['ytdescription'])); ?>" />
768
- <br /><small><?php _e('Описание RSS-ленты одним предложением. Не используйте HTML-разметку.', 'rss-for-yandex-turbo'); ?> </small>
769
- </td>
770
- </tr>
771
- <tr>
772
- <th><?php _e('Язык:', 'rss-for-yandex-turbo'); ?></th>
773
- <td>
774
- <input style="max-width: 38px;" type="text" name="ytlanguage" value="<?php echo esc_attr(stripslashes($yturbo_options['ytlanguage'])); ?>" />
775
- <br /><small><?php _e('Язык статей RSS-ленты в стандарте <a target="_blank" href="https://ru.wikipedia.org/wiki/%D0%9A%D0%BE%D0%B4%D1%8B_%D1%8F%D0%B7%D1%8B%D0%BA%D0%BE%D0%B2">ISO 639-1</a> (Россия - <strong>ru</strong>, Украина - <strong>uk</strong> и т.д.).', 'rss-for-yandex-turbo'); ?> </small>
776
- </td>
777
- </tr>
778
- <tr class="trbordertop">
779
- <th><?php _e('Количество записей:', 'rss-for-yandex-turbo'); ?></th>
780
- <td>
781
- <input style="max-width: 74px;" name="ytnumber" type="number" min="1" max="999999" step="1" value="<?php echo $yturbo_options['ytnumber']; ?>" />
782
- <br /><small><?php _e('Общее количество записей в RSS-ленте (обязательно прочтите про <a target="_blank" href="https://yandex.ru/dev/turbo/doc/rss/quota-docpage/">ограничения</a> Яндекса).', 'rss-for-yandex-turbo'); ?> <br />
783
- <?php _e('При установке более 1000 записей необходимо включить разбитие RSS-ленты в обязательном порядке.', 'rss-for-yandex-turbo'); ?> <br />
784
- </small>
785
- </td>
786
- </tr>
787
- <tr class="razb trbordertop">
788
- <th class="tdcheckbox"><?php _e('Разбитие RSS-ленты:', 'rss-for-yandex-turbo'); ?></th>
789
- <td>
790
- <label for="ytrazb"><input type="checkbox" value="enabled" name="ytrazb" id="ytrazb" <?php if ($yturbo_options['ytrazb'] == 'enabled') echo 'checked="checked"'; ?> /><?php _e('Включить разбитие RSS-ленты', 'rss-for-yandex-turbo'); ?></label>
791
- <br /><small><?php _e('Плагин будет генерировать несколько RSS-лент с указанным числом записей в каждой.', 'rss-for-yandex-turbo'); ?> <br />
792
- <?php _e('Включите эту опцию, если RSS-лента слишком долго генерируется или если она превышает <a target="_blank" href="https://yandex.ru/dev/turbo/doc/rss/quota-docpage/">ограничения</a>, установленные Яндексом.', 'rss-for-yandex-turbo'); ?><br />
793
- <?php _e('Яндекс может очень сильно нагружать ваш сервер - разбитие ленты и использование плагинов кэширования будет в этом случае весьма полезно.', 'rss-for-yandex-turbo'); ?> <br />
794
- </small>
795
- </td>
796
- </tr>
797
- <tr class="ytrazbnumbertr" <?php if ($yturbo_options['ytrazb'] == 'disabled') echo 'style="display:none;"'; ?>>
798
- <th><?php _e('Делить RSS-ленту по:', 'rss-for-yandex-turbo'); ?></th>
799
- <td>
800
- <input style="max-width: 60px;" name="ytrazbnumber" type="number" min="1" max="1000" step="1" value="<?php echo $yturbo_options['ytrazbnumber']; ?>" />
801
- <br /><small><?php _e('Укажите число записей, по которому лента будет делиться.', 'rss-for-yandex-turbo'); ?><br />
802
- <?php _e('Для получения ссылок на ваши RSS-ленты сохраните настройки плагина.', 'rss-for-yandex-turbo'); ?><br />
803
- <?php _e('Важно: разбитие не будет работать, если на вашем сайте нет необходимого числа записей.', 'rss-for-yandex-turbo'); ?> <br />
804
- </small>
805
- </td>
806
- </tr>
807
- <tr class="ytexcludeurlstr trbordertop">
808
- <th class="tdcheckbox"><?php _e('Выборочное отключение:', 'rss-for-yandex-turbo'); ?></th>
809
- <td>
810
- <label for="ytexcludeurls"><input type="checkbox" value="enabled" name="ytexcludeurls" id="ytexcludeurls" <?php if ($yturbo_options['ytexcludeurls'] == 'enabled') echo 'checked="checked"'; ?> /><?php _e('Удалить указанные турбо-страницы', 'rss-for-yandex-turbo'); ?></label>
811
- <br /><small><?php _e('Если вы полностью удалили запись на сайте, то отключить ее турбо-страницу обычным способом не получится.', 'rss-for-yandex-turbo'); ?><br />
812
- <?php _e('Эта опция позволит сформировать отдельную RSS-ленту с записями, которые Яндекс должен удалить.', 'rss-for-yandex-turbo'); ?><br />
813
- </small>
814
- </td>
815
- </tr>
816
- <tr class="ytexcludeurlslisttr" <?php if ($yturbo_options['ytexcludeurls'] == 'disabled') echo 'style="display:none;"'; ?>>
817
- <th class="tdcheckbox"><?php _e('URL "мусорной" ленты:', 'rss-for-yandex-turbo'); ?></th>
818
- <td>
819
- <?php
820
- if ( get_option('permalink_structure') ) {
821
- echo '<a target="_blank" href="'.get_bloginfo("url").'/feed/'.$yturbo_options['ytrssname'].'/?lenta=trash'.'">'.get_bloginfo("url").'/feed/'.$yturbo_options['ytrssname'].'/?lenta=trash'.'</a>';
822
- } else {
823
- echo '<a target="_blank" href="'.get_bloginfo("url").'/?feed='.$yturbo_options['ytrssname'].'&lenta=trash">'.get_bloginfo("url").'/?feed='.$yturbo_options['ytrssname'].'&lenta=trash</a>';
824
- }
825
- ?>
826
- <br /><small><?php _e('Добавьте эту RSS-ленту в Яндекс.Вебмастер как обычную ленту.', 'rss-for-yandex-turbo'); ?><br />
827
- </small>
828
- </td>
829
- </tr>
830
- <tr class="ytexcludeurlslisttr" <?php if ($yturbo_options['ytexcludeurls'] == 'disabled') echo 'style="display:none;"'; ?>>
831
- <th class="tdcheckbox"><?php _e('Отслеживание:', 'rss-for-yandex-turbo'); ?></th>
832
- <td>
833
- <label for="ytdeltracking"><input type="checkbox" value="enabled" name="ytdeltracking" id="ytdeltracking" <?php if ($yturbo_options['ytdeltracking'] == 'enabled') echo 'checked="checked"'; ?> /><?php _e('Следить за удаляемыми записями', 'rss-for-yandex-turbo'); ?></label>
834
- <br /><small><?php _e('Плагин будет автоматически добавлять в список ниже ссылки на удаленные записи.', 'rss-for-yandex-turbo'); ?><br />
835
-
836
- </small>
837
- </td>
838
- </tr>
839
- <tr class="ytexcludeurlslisttr" <?php if ($yturbo_options['ytexcludeurls'] == 'disabled') echo 'style="display:none;"'; ?>>
840
- <th><?php _e('Список удаляемых ссылок:', 'rss-for-yandex-turbo'); ?></th>
841
- <td>
842
- <textarea rows="8" cols="70" name="ytexcludeurlslist" id="ytexcludeurlslist"><?php echo stripcslashes($yturbo_options['ytexcludeurlslist']); ?></textarea>
843
- <br /><small><?php _e('Каждая новая ссылка для удаления должна начинаться с новой строки.', 'rss-for-yandex-turbo'); ?><br />
844
- </small>
845
- </td>
846
- </tr>
847
- <tr class="trbordertop">
848
- <th class="tdcheckbox"><?php _e('Полное отключение:', 'rss-for-yandex-turbo'); ?></th>
849
- <td>
850
- <label for="ytremoveturbo"><input type="checkbox" value="enabled" name="ytremoveturbo" id="ytremoveturbo" <?php if ($yturbo_options['ytremoveturbo'] == 'enabled') echo 'checked="checked"'; ?> /><?php _e('Удалить все турбо-страницы', 'rss-for-yandex-turbo'); ?></label>
851
- <br /><small><?php _e('Эта опция добавит в RSS-ленту атрибут <tt>turbo="false"</tt> к тегу <tt>&lt;item></tt> для всех записей.', 'rss-for-yandex-turbo'); ?> <br />
852
- <?php _e('Это единственный способ заставить Яндекс отключить турбо-страницы для вашего сайта.', 'rss-for-yandex-turbo'); ?><br />
853
- <?php _e('Простое удаление плагина не поможет - необходимо, чтобы бот Яндекса "съел" ленту с <tt>turbo="false"</tt>.', 'rss-for-yandex-turbo'); ?><br />
854
- <?php _e('Не забудьте поправить настройки плагина, чтобы в RSS-ленту попали все записи сайта.', 'rss-for-yandex-turbo'); ?>
855
- </small>
856
- </td>
857
- </tr>
858
- <tr class="ytprotokoltr" <?php if ($yturbo_options['ytremoveturbo'] == 'disabled') echo 'style="display:none;"'; ?>>
859
- <th><?php _e('Протокол:', 'rss-for-yandex-turbo'); ?></th>
860
- <td>
861
- <select name="ytprotokol" style="width: 260px;">
862
- <option value="asis" <?php if ($yturbo_options['ytprotokol'] == 'asis') echo 'selected="selected"'; ?>><?php _e('Не менять протокол', 'rss-for-yandex-turbo'); ?></option>
863
- <option value="http" <?php if ($yturbo_options['ytprotokol'] == 'http') echo 'selected="selected"'; ?>><?php _e('http', 'rss-for-yandex-turbo'); ?></option>
864
- <option value="https" <?php if ($yturbo_options['ytprotokol'] == 'https') echo 'selected="selected"'; ?>><?php _e('https', 'rss-for-yandex-turbo'); ?></option>
865
- </select>
866
- <br /><small><?php _e('Выберите используемый протокол для удаляемых турбо-страниц.', 'rss-for-yandex-turbo'); ?><br />
867
- <?php _e('Яндекс не удалит автоматически турбо-страницы для старого протокола (при переезде сайта на https и наоборот).', 'rss-for-yandex-turbo'); ?><br />
868
- <?php _e('Поэтому вам нужно будет сформировать ленту с записями для удаления со старым протоколом.', 'rss-for-yandex-turbo'); ?><br />
869
- </small>
870
- </td>
871
- </tr>
872
-
873
- <tr class="trbordertop">
874
- <th></th>
875
- <td>
876
- <input type="submit" name="submit" class="button button-primary" value="<?php _e('Сохранить настройки &raquo;', 'rss-for-yandex-turbo'); ?>" />
877
- </td>
878
- </tr>
879
- </table>
880
- </div><!-- end tab -->
881
-
882
- <div class="xyztabs__content<?php if($yturbo_options['yttab']=='Оформление'){echo ' active';} ?>"><!-- begin tab -->
883
-
884
- <p><?php _e('В этом разделе собраны настройки, касающиеся оформления контента на турбо-страницах.', 'rss-for-yandex-turbo'); ?><br />
885
- <?php _e('Отключите вывод миниатюр, если они не выводятся в вашей теме на страницах одиночных записей,', 'rss-for-yandex-turbo'); ?><br />
886
- <?php _e('так как Яндексу не нравится, когда турбо-страница не соответствует оригинальной версии.', 'rss-for-yandex-turbo'); ?><br />
887
- </p>
888
-
889
- <table class="form-table">
890
- <tr class="trbordertop">
891
- <th class="tdcheckbox"><?php _e('Поддержка CSS:', 'rss-for-yandex-turbo'); ?></th>
892
- <td>
893
- <label for="ytextendedhtml"><input type="checkbox" value="enabled" name="ytextendedhtml" id="ytextendedhtml" <?php if ($yturbo_options['ytextendedhtml'] == 'enabled') echo 'checked="checked"'; ?> /><?php _e('Включить режим поддержки CSS', 'rss-for-yandex-turbo'); ?></label>
894
- <br /><small><?php _e('При включении этой опции (<tt>turbo:extendedHtml</tt>) Яндекс не будет удалять классы и идентификаторы', 'rss-for-yandex-turbo'); ?> <br />
895
- <?php _e('из разметки записей, что позволит настроить их внешний вид через CSS (читайте <a target="_blank" href="https://yandex.ru/dev/turbo/doc/rss/elements/custom.html">документацию</a>).', 'rss-for-yandex-turbo'); ?> <br />
896
- <?php _e('Режим поддержки CSS можно включить или выключить для записей индивидуально (в метабоксе плагина).', 'rss-for-yandex-turbo'); ?> <br />
897
- </small>
898
- </td>
899
- </tr>
900
- <tr class="trbordertop">
901
- <th class="tdcheckbox"><?php _e('Дата записей:', 'rss-for-yandex-turbo'); ?></th>
902
- <td>
903
- <label for="ytpostdate"><input type="checkbox" value="enabled" name="ytpostdate" id="ytpostdate" <?php if ($yturbo_options['ytpostdate'] == 'enabled') echo 'checked="checked"'; ?> /><?php _e('Указать дату публикации записей', 'rss-for-yandex-turbo'); ?></label>
904
- <br /><small><?php _e('Выводить или не выводить дату публикации записей в ленте.', 'rss-for-yandex-turbo'); ?> <br />
905
- </small>
906
- </td>
907
- </tr>
908
- <tr class="ytdateformattr" <?php if ($yturbo_options['ytpostdate'] == 'disabled') echo 'style="display:none;"'; ?>>
909
- <th><?php _e('Тип даты:', 'rss-for-yandex-turbo'); ?></th>
910
- <td>
911
- <select name="ytdateformat" style="width: 260px;">
912
- <option value="create" <?php if ($yturbo_options['ytdateformat'] == 'create') echo 'selected="selected"'; ?>><?php _e('Дата создания', 'rss-for-yandex-turbo'); ?></option>
913
- <option value="mod" <?php if ($yturbo_options['ytdateformat'] == 'mod') echo 'selected="selected"'; ?>><?php _e('Дата последнего изменения', 'rss-for-yandex-turbo'); ?></option>
914
- </select>
915
- <br /><small><?php _e('Выберите тип даты - дата создания записи или дата последнего изменения записи.', 'rss-for-yandex-turbo'); ?> <br />
916
- <?php _e('Опция может быть полезна для формирования Яндексом автоматической главной страницы.', 'rss-for-yandex-turbo'); ?> <br />
917
- </small>
918
- </td>
919
- </tr>
920
- <tr class="trbordertop">
921
- <th class="tdcheckbox"><?php _e('Отрывок записей:', 'rss-for-yandex-turbo'); ?></th>
922
- <td>
923
- <label for="ytexcerpt"><input type="checkbox" value="enabled" name="ytexcerpt" id="ytexcerpt" <?php if ($yturbo_options['ytexcerpt'] == 'enabled') echo 'checked="checked"'; ?> /><?php _e('Добавить в начало записей "отрывок"', 'rss-for-yandex-turbo'); ?></label>
924
- <br /><small><?php _e('Используйте эту опцию только в случае необходимости.', 'rss-for-yandex-turbo'); ?> <br />
925
- <?php _e('Например, когда "отрывок" (цитата) записи содержит контент, которого нет в самой записи.', 'rss-for-yandex-turbo'); ?> <br />
926
- </small>
927
- </td>
928
- </tr>
929
- <tr class="ytthumbnailtr trbordertop">
930
- <th class="tdcheckbox"><?php _e('Миниатюра в RSS:', 'rss-for-yandex-turbo'); ?></th>
931
- <td>
932
- <label for="ytthumbnail"><input type="checkbox" value="enabled" name="ytthumbnail" id="ytthumbnail" <?php if ($yturbo_options['ytthumbnail'] == 'enabled') echo 'checked="checked"'; ?> /><?php _e('Добавить миниатюру к заголовку записи', 'rss-for-yandex-turbo'); ?></label>
933
- <br /><small><?php _e('После заголовка записи будет выведена миниатюра записи (изображение записи).', 'rss-for-yandex-turbo'); ?>
934
- </small>
935
- </td>
936
- </tr>
937
- <tr class="ytselectthumbtr" <?php if ($yturbo_options['ytthumbnail'] == 'disabled') echo 'style="display:none;"'; ?>>
938
- <th><?php _e('Размер миниатюры в RSS:', 'rss-for-yandex-turbo'); ?></th>
939
- <td>
940
- <select name="ytselectthumb" style="width: 260px;">
941
- <?php $image_sizes = get_intermediate_image_sizes(); ?>
942
- <?php foreach ($image_sizes as $size_name): ?>
943
- <option value="<?php echo $size_name ?>" <?php if ($yturbo_options['ytselectthumb'] == $size_name) echo 'selected="selected"'; ?>><?php echo $size_name ?></option>
944
- <?php endforeach; ?>
945
- </select>
946
- <br /><small><?php _e('Выберите нужный размер миниатюры (в списке находятся все зарегистрированные на сайте размеры миниатюр).', 'rss-for-yandex-turbo'); ?><br />
947
- <?php _e('Необходимо выбрать именно тот размер, который используется вашей темой для вывода "Изображения записи".', 'rss-for-yandex-turbo'); ?><br />
948
- </small>
949
- </td>
950
- </tr>
951
- <tr class="trbordertop">
952
- <th><?php _e('Автор записей:', 'rss-for-yandex-turbo'); ?></th>
953
- <td>
954
- <select name="ytauthorselect" id="ytauthorselect" style="width: 260px;">
955
- <option value="Автор записи" <?php if ($yturbo_options['ytauthorselect'] == 'Автор записи') echo 'selected="selected"'; ?>><?php _e('Автор записи', 'rss-for-yandex-turbo'); ?></option>
956
- <option value="Указать автора" <?php if ($yturbo_options['ytauthorselect'] == 'Указать автора') echo 'selected="selected"'; ?>><?php _e('Указать автора', 'rss-for-yandex-turbo'); ?></option>
957
- <option value="Отключить указание автора" <?php if ($yturbo_options['ytauthorselect'] == 'Отключить указание автора') echo 'selected="selected"'; ?>><?php _e('Отключить указание автора', 'rss-for-yandex-turbo'); ?></option>
958
- </select>
959
- <br /><small><?php _e('Автор записей (можно не указывать). ', 'rss-for-yandex-turbo'); ?> <br />
960
- </small>
961
- </td>
962
- </tr>
963
- <tr id="ownname2" <?php if ($yturbo_options['ytauthorselect'] != 'Указать автора') echo 'style="display:none;"'; ?>>
964
- <th><?php _e('Автор записей:', 'rss-for-yandex-turbo'); ?></th>
965
- <td>
966
- <input type="text" name="ytauthor" size="20" value="<?php echo esc_attr(stripslashes($yturbo_options['ytauthor'])); ?>" />
967
- <br /><small><?php _e('Произвольное имя автора записей (если не заполнено, то будет использовано имя автора записи).', 'rss-for-yandex-turbo'); ?> </small>
968
- </td>
969
- </tr>
970
- <tr class="trbordertop">
971
- <th><?php _e('Описания изображений:', 'rss-for-yandex-turbo'); ?></th>
972
- <td>
973
- <select name="ytfigcaption" id="capalt" style="width: 260px;">
974
- <option value="Использовать подписи" <?php if ($yturbo_options['ytfigcaption'] == 'Использовать подписи') echo 'selected="selected"'; ?>><?php _e('Использовать подписи', 'rss-for-yandex-turbo'); ?></option>
975
- <option value="Отключить описания" <?php if ($yturbo_options['ytfigcaption'] == 'Отключить описания') echo 'selected="selected"'; ?>><?php _e('Отключить описания', 'rss-for-yandex-turbo'); ?></option>
976
- </select>
977
- <br /><small><?php _e('Разметка "описания" для изображений на турбо-страницах (пример смотреть <a target="_blank" href="https://yandex.ru/dev/turbo/doc/rss/elements/multimedia-docpage/#ariaid-title3">здесь</a>).', 'rss-for-yandex-turbo'); ?> <br />
978
- <?php _e('В html5-темах будет взята информация из тега <tt>&lt;figcaption></tt>, в html4-темах из шорткода <tt>[caption]</tt>.', 'rss-for-yandex-turbo'); ?><br />
979
- </small>
980
- </td>
981
- </tr>
982
- <tr class="yttoctr trbordertop">
983
- <th class="tdcheckbox"><?php _e('Содержание:', 'rss-for-yandex-turbo'); ?></th>
984
- <td>
985
- <label for="yttoc"><input type="checkbox" value="enabled" name="yttoc" id="yttoc" <?php if ($yturbo_options['yttoc'] == 'enabled') echo 'checked="checked"'; ?> /><?php _e('Добавить блок содержания на турбо-страницы', 'rss-for-yandex-turbo'); ?></label>
986
- <br /><small><?php _e('На турбо-страницы будет добавлен блок содержания (аналогично <a target="_blank" href="https://wordpress.org/plugins/table-of-contents-plus/">TOC+</a> и подобным плагинам).', 'rss-for-yandex-turbo'); ?><br />
987
- <?php _e('Не включайте данный блок, если не используете плагины вывода содержания.', 'rss-for-yandex-turbo'); ?>
988
- </small>
989
- </td>
990
- </tr>
991
- <tr class="yttocchildtr" <?php if ($yturbo_options['yttoc'] == 'disabled') echo 'style="display:none;"'; ?>>
992
- <th class="tdcheckbox"><?php _e('Типы записей:', 'rss-for-yandex-turbo'); ?></th>
993
- <td>
994
- <?php
995
- $registered = get_post_types( array('public'=> true), 'objects' );
996
- $exclude = array('attachment');
997
- $types = array();
998
-
999
- foreach ( $registered as $post ) {
1000
- if ( in_array( $post->name, $exclude ) ) {
1001
- continue;
1002
- }
1003
- $types[ $post->name ] = $post->name;
1004
- }
1005
-
1006
- $yttype2 = explode(",", $yturbo_options['yttype2']);
1007
- $yttype2 = array_diff($yttype2, array(''));
1008
-
1009
- foreach ( $types as $post_type ) {
1010
- $obj = get_post_type_object( $post_type ); ?>
1011
- <label class="types2" for="<?php echo $post_type; ?>2"><input type="checkbox" value="<?php echo $post_type; ?>" name="types2[]" id="<?php echo $post_type; ?>2" <?php if (in_array($post_type, $yttype2)) echo 'checked="checked"'; ?> /><?php echo $obj->labels->name; ?> (<?php echo $post_type; ?>)</label><br />
1012
- <?php } ?>
1013
- <small><?php _e('Типы записей для добавления блока содержания.', 'rss-for-yandex-turbo'); ?> </small>
1014
- </td>
1015
- </tr>
1016
- <tr class="yttocchildtr" <?php if ($yturbo_options['yttoc'] == 'disabled') echo 'style="display:none;"'; ?>>
1017
- <th><?php _e('Текст заголовка:', 'rss-for-yandex-turbo'); ?></th>
1018
- <td>
1019
- <input type="text" style="width:200px;" name="yttoczag" size="20" value="<?php echo esc_attr(stripslashes($yturbo_options['yttoczag'])); ?>" />
1020
- <br /><small><?php _e('Например: "Содержание", "Оглавление", "Содержание страницы" и тому подобное.', 'rss-for-yandex-turbo'); ?><br />
1021
- </small>
1022
- </td>
1023
- </tr>
1024
- <tr class="yttocchildtr" <?php if ($yturbo_options['yttoc'] == 'disabled') echo 'style="display:none;"'; ?>>
1025
- <th><?php _e('Расположение блока:', 'rss-for-yandex-turbo'); ?></th>
1026
- <td>
1027
- <select name="yttocmesto" id="yttocmesto" style="width: 260px;">
1028
- <option value="Перед первым заголовком" <?php if ($yturbo_options['yttocmesto'] == 'Перед первым заголовком') echo 'selected="selected"'; ?>><?php _e('Перед первым заголовком', 'rss-for-yandex-turbo'); ?></option>
1029
- <option value="После первого заголовка" <?php if ($yturbo_options['yttocmesto'] == 'После первого заголовка') echo 'selected="selected"'; ?>><?php _e('После первого заголовка', 'rss-for-yandex-turbo'); ?></option>
1030
- <option value="В начале записи" <?php if ($yturbo_options['yttocmesto'] == 'В начале записи') echo 'selected="selected"'; ?>><?php _e('В начале записи', 'rss-for-yandex-turbo'); ?></option>
1031
- <option value="В конце записи" <?php if ($yturbo_options['yttocmesto'] == 'В конце записи') echo 'selected="selected"'; ?>><?php _e('В конце записи', 'rss-for-yandex-turbo'); ?></option>
1032
- </select>
1033
- <br /><small><?php _e('Выводите данный блок на турбо-страницах там же, где он расположен на обычных страницах.', 'rss-for-yandex-turbo'); ?> <br />
1034
- </small>
1035
- </td>
1036
- </tr>
1037
- <tr class="yttocchildtr" <?php if ($yturbo_options['yttoc'] == 'disabled') echo 'style="display:none;"'; ?>>
1038
- <th><?php _e('Минимум заголовков:', 'rss-for-yandex-turbo'); ?></th>
1039
- <td>
1040
- <input style="max-width: 50px;" name="yttocnumber" type="number" min="1" max="10" step="1" value="<?php echo $yturbo_options['yttocnumber']; ?>" />
1041
- <br /><small><?php _e('Укажите минимальное число заголовков записи, при котором будет выведен блок содержания.', 'rss-for-yandex-turbo'); ?> <br/>
1042
- </small>
1043
- </td>
1044
- </tr>
1045
- <tr class="yttocchildtr" <?php if ($yturbo_options['yttoc'] == 'disabled') echo 'style="display:none;"'; ?>>
1046
- <th class="tdcheckbox"><?php _e('Уровни заголовков:', 'rss-for-yandex-turbo'); ?></th>
1047
- <td>
1048
- <label for="yttoch1"><input type="checkbox" value="enabled" name="yttoch1" id="yttoch1" <?php if ($yturbo_options['yttoch1'] == 'enabled') echo 'checked="checked"'; ?> /><?php _e('Заголовок &lt;h1>', 'rss-for-yandex-turbo'); ?></label><br />
1049
- <label for="yttoch2"><input type="checkbox" value="enabled" name="yttoch2" id="yttoch2" <?php if ($yturbo_options['yttoch2'] == 'enabled') echo 'checked="checked"'; ?> /><?php _e('Заголовок &lt;h2>', 'rss-for-yandex-turbo'); ?></label><br />
1050
- <label for="yttoch3"><input type="checkbox" value="enabled" name="yttoch3" id="yttoch3" <?php if ($yturbo_options['yttoch3'] == 'enabled') echo 'checked="checked"'; ?> /><?php _e('Заголовок &lt;h3>', 'rss-for-yandex-turbo'); ?></label><br />
1051
- <label for="yttoch4"><input type="checkbox" value="enabled" name="yttoch4" id="yttoch4" <?php if ($yturbo_options['yttoch4'] == 'enabled') echo 'checked="checked"'; ?> /><?php _e('Заголовок &lt;h4>', 'rss-for-yandex-turbo'); ?></label><br />
1052
- <label for="yttoch5"><input type="checkbox" value="enabled" name="yttoch5" id="yttoch5" <?php if ($yturbo_options['yttoch5'] == 'enabled') echo 'checked="checked"'; ?> /><?php _e('Заголовок &lt;h5>', 'rss-for-yandex-turbo'); ?></label><br />
1053
- <label for="yttoch6"><input type="checkbox" value="enabled" name="yttoch6" id="yttoch6" <?php if ($yturbo_options['yttoch6'] == 'enabled') echo 'checked="checked"'; ?> /><?php _e('Заголовок &lt;h6>', 'rss-for-yandex-turbo'); ?></label><br />
1054
- <small><?php _e('Блок содержания будет формироваться только из указанных заголовков.', 'rss-for-yandex-turbo'); ?> <br/>
1055
- </small>
1056
- </td>
1057
- </tr>
1058
-
1059
- <tr class="trbordertop">
1060
- <th></th>
1061
- <td>
1062
- <input type="submit" name="submit" class="button button-primary" value="<?php _e('Сохранить настройки &raquo;', 'rss-for-yandex-turbo'); ?>" />
1063
- </td>
1064
- </tr>
1065
- </table>
1066
- </div><!-- end tab -->
1067
-
1068
- <div class="xyztabs__content<?php if($yturbo_options['yttab']=='Блоки Яндекс.Турбо'){echo ' active';} ?>"><!-- begin tab -->
1069
-
1070
- <p><?php _e('Часть этих блоков вы можете настроить напрямую в Яндекс.Вебмастере.', 'rss-for-yandex-turbo'); ?><br />
1071
- <?php _e('Указать логотип сайта можно только через Яндекс.Вебмастер.', 'rss-for-yandex-turbo'); ?><br />
1072
- </p>
1073
-
1074
- <table class="form-table">
1075
- <tr class="ytselectmenutr trbordertop">
1076
- <th><?php _e('Меню:', 'rss-for-yandex-turbo'); ?></th>
1077
- <td>
1078
- <select name="ytselectmenu" style="width: 260px;">
1079
- <?php $menus = get_terms( 'nav_menu', array( 'hide_empty' => true ) ); ?>
1080
- <?php foreach ($menus as $menu): ?>
1081
- <option value="<?php echo $menu->name; ?>" <?php if ($yturbo_options['ytselectmenu'] == $menu->name) echo 'selected="selected"'; ?>><?php echo $menu->name; ?></option>
1082
- <?php endforeach; ?>
1083
- <option value="Не использовать" <?php if ($yturbo_options['ytselectmenu'] == 'Не использовать') echo 'selected="selected"'; ?>><?php echo 'Не использовать'; ?></option>
1084
- </select>
1085
- <?php $menulink = get_bloginfo('url') .'/wp-admin/nav-menus.php'; ?>
1086
- <br /><small><?php _e('Выберите меню для использования на турбо-страницах (создать меню можно на вкладке ', 'rss-for-yandex-turbo'); ?> "<a target="_blank" href="<?php echo $menulink; ?>"><?php _e('Внешний вид \ Меню', 'rss-for-yandex-turbo'); ?></a>").<br />
1087
- <?php _e('Меню должно быть ограничено <strong>10</strong> ссылками без иерархии (пример смотреть <a target="_blank" href="https://yandex.ru/dev/turbo/doc/rss/elements/header-docpage/#menu">здесь</a>).', 'rss-for-yandex-turbo'); ?><br />
1088
- <?php _e('Через Яндекс.Вебмастер можно установить меню без ограничений и с иерархией.', 'rss-for-yandex-turbo'); ?><br />
1089
- </small>
1090
- </td>
1091
- </tr>
1092
- <tr class="ytsharetr trbordertop">
1093
- <th class="tdcheckbox"><?php _e('Блок "Поделиться":', 'rss-for-yandex-turbo'); ?></th>
1094
- <td>
1095
- <label for="ytshare"><input type="checkbox" value="enabled" name="ytshare" id="ytshare" <?php if ($yturbo_options['ytshare'] == 'enabled') echo 'checked="checked"'; ?> /><?php _e('Добавить блок "Поделиться" на турбо-страницы', 'rss-for-yandex-turbo'); ?></label>
1096
- <br /><small><?php _e('Этот блок будет добавлен в конце записи (пример смотреть <a target="_blank" href="https://yandex.ru/dev/turbo/doc/rss/elements/share-docpage/">здесь</a>).', 'rss-for-yandex-turbo'); ?>
1097
- </small>
1098
- </td>
1099
- </tr>
1100
- <tr class="ytsharechildtr" <?php if ($yturbo_options['ytshare'] == 'disabled') echo 'style="display:none;"'; ?>>
1101
- <th><?php _e('Социальные сети:', 'rss-for-yandex-turbo'); ?></th>
1102
- <td style="padding:0;">
1103
-
1104
- <table>
1105
- <tr style="margin-left:-5px;">
1106
-
1107
- <td>
1108
- <label for="facebook"><img title="Facebook" src="<?php echo $purl . '/img/facebook.png'; ?>" style="margin-bottom: 5px;width:48px;height:48px; vertical-align: middle; " /><br /></label>
1109
- <input type="checkbox" name="networks[]" id="facebook" style="margin-left:16px;" />
1110
- </td>
1111
-
1112
- <td>
1113
- <label for="twitter"><img title="Twitter" src="<?php echo $purl . '/img/twitter.png'; ?>" style="margin-bottom: 5px;width:48px;height:48px; vertical-align: middle; " /><br /></label>
1114
- <input type="checkbox" name="networks[]" id="twitter" style="margin-left:16px;" />
1115
- </td>
1116
-
1117
- <td>
1118
- <label for="odnoklassniki"><img title="Odnoklassniki" src="<?php echo $purl . '/img/odnoklassniki.png'; ?>" style="margin-bottom: 5px;width:48px;height:48px; vertical-align: middle; " /><br /></label>
1119
- <input type="checkbox" name="networks[]" id="odnoklassniki" style="margin-left:16px;">
1120
- </td>
1121
-
1122
- <td>
1123
- <label for="vkontakte"><img title="VKontakte" src="<?php echo $purl . '/img/vk.png'; ?>" style="margin-bottom: 5px;width:48px;height:48px; vertical-align: middle; " /><br /></label>
1124
- <input type="checkbox" name="networks[]" id="vkontakte" style="margin-left:16px;" />
1125
- </td>
1126
-
1127
- <td>
1128
- <label for="telegram"><img title="Telegram" src="<?php echo $purl . '/img/telegram.png'; ?>" style="margin-bottom: 5px;width:48px;height:48px; vertical-align: middle; " /><br /></label>
1129
- <input type="checkbox" name="networks[]" id="telegram" style="margin-left:16px;" />
1130
- </td>
1131
-
1132
- </tr>
1133
- </table>
1134
- </td>
1135
-
1136
- </tr>
1137
- <tr class="ytsharechildtr" <?php if ($yturbo_options['ytshare'] == 'disabled') echo 'style="display:none;"'; ?>>
1138
- <th><?php _e('Порядок:', 'rss-for-yandex-turbo'); ?></th>
1139
- <td>
1140
- <input style="" type="text" name="ytnetw" id="ytnetw" size="62" value="<?php echo esc_attr($yturbo_options['ytnetw']); ?>" disabled="disabled" />
1141
- <input type="text" style="display:none;" name="ytnetwspan" id="ytnetwspan" value="<?php echo esc_attr($yturbo_options['ytnetw']); ?>"/>
1142
- <br /><small style=""><?php _e('Для сортировки иконок сначала снимите все чекбоксы, а потом снова их выберите в нужном вам порядке.', 'rss-for-yandex-turbo'); ?></small>
1143
- </td>
1144
- </tr>
1145
- <tr class="ytfeedbacktr trbordertop">
1146
- <th class="tdcheckbox"><?php _e('Блок обратной связи:', 'rss-for-yandex-turbo'); ?></th>
1147
- <td>
1148
- <label for="ytfeedback"><input type="checkbox" value="enabled" name="ytfeedback" id="ytfeedback" <?php if ($yturbo_options['ytfeedback'] == 'enabled') echo 'checked="checked"'; ?> /><?php _e('Добавить блок обратной связи на турбо-страницы', 'rss-for-yandex-turbo'); ?></label>
1149
- <br /><small><?php _e('На турбо-страницы будет добавлен блок обратной связи в выбранном вами месте (пример смотреть <a target="_blank" href="https://yandex.ru/dev/turbo/doc/rss/elements/feedback-docpage/">здесь</a>).', 'rss-for-yandex-turbo'); ?>
1150
- </small>
1151
- </td>
1152
- </tr>
1153
- <tr class="ytfeedbackchildtr" <?php if ($yturbo_options['ytfeedback'] == 'disabled') echo 'style="display:none;"'; ?>>
1154
- <th><?php _e('Выравнивание блока:', 'rss-for-yandex-turbo'); ?></th>
1155
- <td>
1156
- <select name="ytfeedbackselect" id="ytfeedbackselect" style="width: 260px;">
1157
- <option value="left" <?php if ($yturbo_options['ytfeedbackselect'] == 'left') echo 'selected="selected"'; ?>><?php _e('Слева', 'rss-for-yandex-turbo'); ?></option>
1158
- <option value="right" <?php if ($yturbo_options['ytfeedbackselect'] == 'right') echo 'selected="selected"'; ?>><?php _e('Справа', 'rss-for-yandex-turbo'); ?></option>
1159
- <option value="false" <?php if ($yturbo_options['ytfeedbackselect'] == 'false') echo 'selected="selected"'; ?>><?php _e('В указанном месте', 'rss-for-yandex-turbo'); ?></option>
1160
- </select>
1161
- <br /><small><?php _e('Укажите где именно на турбо-страницах должен выводиться блок обратной связи.', 'rss-for-yandex-turbo'); ?> <br />
1162
- <?php _e('При выравнивании по левому или правому краю страницы можно разместить лишь <strong>4</strong> кнопки связи.', 'rss-for-yandex-turbo'); ?><br />
1163
- </small>
1164
- </td>
1165
- </tr>
1166
- <tr class="ytfeedbackselectmestotr" <?php if ($yturbo_options['ytfeedback'] == 'disabled' or $yturbo_options['ytfeedbackselect'] != 'false') echo 'style="display:none;"'; ?>>
1167
- <th><?php _e('Расположить блок:', 'rss-for-yandex-turbo'); ?></th>
1168
- <td>
1169
- <select name="ytfeedbackselectmesto" id="ytfeedbackselectmesto" style="width: 260px;">
1170
- <option value="В начале записи" <?php if ($yturbo_options['ytfeedbackselectmesto'] == 'В начале записи') echo 'selected="selected"'; ?>><?php _e('В начале записи', 'rss-for-yandex-turbo'); ?></option>
1171
- <option value="В конце записи" <?php if ($yturbo_options['ytfeedbackselectmesto'] == 'В конце записи') echo 'selected="selected"'; ?>><?php _e('В конце записи', 'rss-for-yandex-turbo'); ?></option>
1172
- </select>
1173
- <br /><small><?php _e('В начале записи блок будет расположен после заголовка, а в конце записи после блока "Поделиться".', 'rss-for-yandex-turbo'); ?><br />
1174
- </small>
1175
- </td>
1176
- </tr>
1177
- <tr class="ytfeedbackselectmestotr" <?php if ($yturbo_options['ytfeedback'] == 'disabled' or $yturbo_options['ytfeedbackselect'] != 'false') echo 'style="display:none;"'; ?>>
1178
- <th><?php _e('Заголовок блока:', 'rss-for-yandex-turbo'); ?></th>
1179
- <td>
1180
- <input type="text" name="ytfeedbacktitle" size="30" value="<?php echo esc_attr(stripslashes($yturbo_options['ytfeedbacktitle'])); ?>" />
1181
- <br /><small><?php _e('Укажите заголовок блока (используется только при выводе блока в указанном месте).', 'rss-for-yandex-turbo'); ?><br />
1182
- </small>
1183
- </td>
1184
- </tr>
1185
- <tr class="ytfeedbackchildtr" <?php if ($yturbo_options['ytfeedback'] == 'disabled') echo 'style="display:none;"'; ?>>
1186
- <th><?php _e('Кнопки связи:', 'rss-for-yandex-turbo'); ?></th>
1187
- <td style="padding:0;">
1188
-
1189
- <table>
1190
- <tr style="margin-left:-5px;display: flex;flex-wrap: wrap;">
1191
-
1192
- <td style="padding: 15px 3px;">
1193
- <label for="feedbackcall"><img title="Звонок" src="<?php echo $purl . '/img/feedback/call.png'; ?>" style="margin-bottom: 5px;width:52px;height:52px; vertical-align: middle; " /><br /></label>
1194
- <input type="checkbox" name="networks2[]" id="feedbackcall" style="margin-left:16px;" />
1195
- </td>
1196
-
1197
- <td style="padding: 15px 3px;">
1198
- <label for="feedbackcallback"><img title="Контактная форма" src="<?php echo $purl . '/img/feedback/callback.png'; ?>" style="margin-bottom: 5px;width:52px;height:52px; vertical-align: middle; " /><br /></label>
1199
- <input type="checkbox" name="networks2[]" id="feedbackcallback" style="margin-left:16px;" />
1200
- </td>
1201
-
1202
- <td style="padding: 15px 3px;">
1203
- <label for="feedbackchat"><img title="Чат" src="<?php echo $purl . '/img/feedback/chat.png'; ?>" style="margin-bottom: 5px;width:52px;height:52px; vertical-align: middle; " /><br /></label>
1204
- <input type="checkbox" name="networks2[]" id="feedbackchat" style="margin-left:16px;" />
1205
- </td>
1206
-
1207
- <td style="padding: 15px 3px;">
1208
- <label for="feedbackmail"><img title="E-mail" src="<?php echo $purl . '/img/feedback/mail.png'; ?>" style="margin-bottom: 5px;width:52px;height:52px; vertical-align: middle; " /><br /></label>
1209
- <input type="checkbox" name="networks2[]" id="feedbackmail" style="margin-left:16px;" />
1210
- </td>
1211
-
1212
- <td style="padding: 15px 3px;">
1213
- <label for="feedbackvkontakte"><img title="VKontakte" src="<?php echo $purl . '/img/feedback/vkontakte.png'; ?>" style="margin-bottom: 5px;width:52px;height:52px; vertical-align: middle; " /><br /></label>
1214
- <input type="checkbox" name="networks2[]" id="feedbackvkontakte" style="margin-left:16px;" />
1215
- </td>
1216
-
1217
- <td style="padding: 15px 3px;">
1218
- <label for="feedbackodnoklassniki"><img title="Odnoklassniki" src="<?php echo $purl . '/img/feedback/odnoklassniki.png'; ?>" style="margin-bottom: 5px;width:52px;height:52px; vertical-align: middle; " /><br /></label>
1219
- <input type="checkbox" name="networks2[]" id="feedbackodnoklassniki" style="margin-left:16px;" />
1220
- </td>
1221
-
1222
- <td style="padding: 15px 3px;">
1223
- <label for="feedbacktwitter"><img title="Twitter" src="<?php echo $purl . '/img/feedback/twitter.png'; ?>" style="margin-bottom: 5px;width:52px;height:52px; vertical-align: middle; " /><br /></label>
1224
- <input type="checkbox" name="networks2[]" id="feedbacktwitter" style="margin-left:16px;" />
1225
- </td>
1226
-
1227
- <td style="padding: 15px 3px;">
1228
- <label for="feedbackfacebook"><img title="Facebook" src="<?php echo $purl . '/img/feedback/facebook.png'; ?>" style="margin-bottom: 5px;width:52px;height:52px; vertical-align: middle; " /><br /></label>
1229
- <input type="checkbox" name="networks2[]" id="feedbackfacebook" style="margin-left:16px;" />
1230
- </td>
1231
-
1232
- <td style="padding: 15px 3px;">
1233
- <label for="feedbackviber"><img title="Viber" src="<?php echo $purl . '/img/feedback/viber.png'; ?>" style="margin-bottom: 5px;width:52px;height:52px; vertical-align: middle; " /><br /></label>
1234
- <input type="checkbox" name="networks2[]" id="feedbackviber" style="margin-left:16px;" />
1235
- </td>
1236
-
1237
- <td style="padding: 15px 3px;">
1238
- <label for="feedbackwhatsapp"><img title="Whatsapp" src="<?php echo $purl . '/img/feedback/whatsapp.png'; ?>" style="margin-bottom: 5px;width:52px;height:52px; vertical-align: middle; " /><br /></label>
1239
- <input type="checkbox" name="networks2[]" id="feedbackwhatsapp" style="margin-left:16px;" />
1240
- </td>
1241
-
1242
- <td style="padding: 15px 3px;">
1243
- <label for="feedbacktelegram"><img title="Telegram" src="<?php echo $purl . '/img/feedback/telegram.png'; ?>" style="margin-bottom: 5px;width:52px;height:52px; vertical-align: middle; " /><br /></label>
1244
- <input type="checkbox" name="networks2[]" id="feedbacktelegram" style="margin-left:16px;" />
1245
- </td>
1246
-
1247
- </tr>
1248
- </table>
1249
- </td>
1250
- </tr>
1251
- <tr class="ytfeedbackchildtr" <?php if ($yturbo_options['ytfeedback'] == 'disabled') echo 'style="display:none;"'; ?>>
1252
- <th><?php _e('Порядок кнопок:', 'rss-for-yandex-turbo'); ?></th>
1253
- <td>
1254
- <input style="" type="text" name="ytfeedbacknetw" id="ytfeedbacknetw" size="62" value="<?php echo esc_attr($yturbo_options['ytfeedbacknetw']); ?>" disabled="disabled" />
1255
- <input type="text" style="display:none;" name="ytfeedbacknetwspan" id="ytfeedbacknetwspan" value="<?php echo esc_attr($yturbo_options['ytfeedbacknetw']); ?>"/>
1256
- <br /><small style=""><?php _e('Для сортировки иконок сначала снимите все чекбоксы, а потом снова их выберите в нужном вам порядке.', 'rss-for-yandex-turbo'); ?></small>
1257
- </td>
1258
- </tr>
1259
- <tr class="ytfeedbackchildtr ytfeedbackcontactstr" <?php if ($yturbo_options['ytfeedback'] == 'disabled') echo 'style="display:none;"'; ?>>
1260
- <th><?php _e('Контакты для кнопок:', 'rss-for-yandex-turbo'); ?></th>
1261
- <td>
1262
- <select name="ytfeedbackcontacts" id="ytfeedbackcontacts" style="width: 260px;">
1263
- <option value="myselect" selected='selected'><?php _e('- Выбрать -', 'rss-for-yandex-turbo'); ?></option>
1264
- <option disabled="disabled" value="feedbackcall"><?php _e('Звонок', 'rss-for-yandex-turbo'); ?></option>
1265
- <option disabled="disabled" value="feedbackcallback"><?php _e('Контактная форма', 'rss-for-yandex-turbo'); ?></option>
1266
- <option disabled="disabled" value="feedbackchat"><?php _e('Чат', 'rss-for-yandex-turbo'); ?></option>
1267
- <option disabled="disabled" value="feedbackmail"><?php _e('E-mail', 'rss-for-yandex-turbo'); ?></option>
1268
- <option disabled="disabled" value="feedbackvkontakte"><?php _e('VKontakte', 'rss-for-yandex-turbo'); ?></option>
1269
- <option disabled="disabled" value="feedbackodnoklassniki"><?php _e('Odnoklassniki', 'rss-for-yandex-turbo'); ?></option>
1270
- <option disabled="disabled" value="feedbacktwitter"><?php _e('Twitter', 'rss-for-yandex-turbo'); ?></option>
1271
- <option disabled="disabled" value="feedbackfacebook"><?php _e('Facebook', 'rss-for-yandex-turbo'); ?></option>
1272
- <option disabled="disabled" value="feedbackviber"><?php _e('Viber', 'rss-for-yandex-turbo'); ?></option>
1273
- <option disabled="disabled" value="feedbackwhatsapp"><?php _e('Whatsapp', 'rss-for-yandex-turbo'); ?></option>
1274
- <option disabled="disabled" value="feedbacktelegram"><?php _e('Telegram', 'rss-for-yandex-turbo'); ?></option>
1275
- </select>
1276
- <br /><small><?php _e('Для установки контактов выберите нужную кнопку из списка (доступны только отмеченные кнопки связи).', 'rss-for-yandex-turbo'); ?><br />
1277
- </small>
1278
- </td>
1279
- </tr>
1280
- <tr class="ytfeedbackcalltr" style="display:none;">
1281
- <th><?php _e('Звонок:', 'rss-for-yandex-turbo'); ?></th>
1282
- <td>
1283
- <input type="text" name="ytfeedbackcall" size="40" value="<?php echo esc_attr(stripslashes($yturbo_options['ytfeedbackcall'])); ?>" />
1284
- <br /><small><?php _e('Укажите телефонный номер в международном формате (пример: <tt>+74951234567</tt>).', 'rss-for-yandex-turbo'); ?> </small>
1285
- </td>
1286
- </tr>
1287
- <tr class="ytfeedbackcallbacktr" style="display:none;">
1288
- <th><?php _e('Email для контактной формы:', 'rss-for-yandex-turbo'); ?></th>
1289
- <td>
1290
- <input type="text" name="ytfeedbackcallback" size="40" value="<?php echo esc_attr(stripslashes($yturbo_options['ytfeedbackcallback'])); ?>" />
1291
- <br /><small><?php _e('Укажите адрес e-mail (пример: <tt>mail@test.ru</tt>).', 'rss-for-yandex-turbo'); ?><br />
1292
- <?php _e('Разрешено указывать только e-mail, принадлежащий вашему домену.', 'rss-for-yandex-turbo'); ?><br />
1293
- </small>
1294
- </td>
1295
- </tr>
1296
- <tr class="ytfeedbackcallbacktr" style="display:none;">
1297
- <th><?php _e('Название организации:', 'rss-for-yandex-turbo'); ?></th>
1298
- <td>
1299
- <input type="text" name="ytfeedbackcallback2" size="40" value="<?php echo esc_attr(stripslashes($yturbo_options['ytfeedbackcallback2'])); ?>" />
1300
- <br /><small><?php _e('Укажите юридическое название вашей организации (пример: <tt>ООО «Ромашка»</tt>).', 'rss-for-yandex-turbo'); ?><br />
1301
- <?php _e('* При заполнении требуется указать ссылку на пользовательское соглашении.', 'rss-for-yandex-turbo'); ?><br />
1302
- </small>
1303
- </td>
1304
- </tr>
1305
- <tr class="ytfeedbackcallbacktr" style="display:none;">
1306
- <th><?php _e('Пользовательское соглашение:', 'rss-for-yandex-turbo'); ?></th>
1307
- <td>
1308
- <input type="text" name="ytfeedbackcallback3" size="40" value="<?php echo esc_attr(stripslashes($yturbo_options['ytfeedbackcallback3'])); ?>" />
1309
- <br /><small><?php _e('Укажите ссылку на пользовательское соглашение о предоставлении обратной связи.', 'rss-for-yandex-turbo'); ?><br />
1310
- <?php _e('* При заполнении требуется указать юридическое название вашей организации.', 'rss-for-yandex-turbo'); ?><br />
1311
- </small>
1312
- </td>
1313
- </tr>
1314
- <tr class="ytfeedbackchattr" style="display:none;">
1315
- <th><?php _e('Чат:', 'rss-for-yandex-turbo'); ?></th>
1316
- <td>
1317
- <input disabled="disabled" type="text" name="ytfeedbackchat" size="40" value="" />
1318
- <br /><small><?php _e('Указывать ничего не надо, если вы создали чат для своего сайта.', 'rss-for-yandex-turbo'); ?><br />
1319
- <?php _e('Справку о том, как создать "Чат для бизнеса" читайте <a target="_blank" href="https://tech.yandex.ru/turbo/doc/rss/elements/feedback-docpage/#feedback__chat">здесь</a>.', 'rss-for-yandex-turbo'); ?><br />
1320
- </small>
1321
- </td>
1322
- </tr>
1323
- <tr class="ytfeedbackmailtr" style="display:none;">
1324
- <th><?php _e('E-mail:', 'rss-for-yandex-turbo'); ?></th>
1325
- <td>
1326
- <input type="text" name="ytfeedbackmail" size="40" value="<?php echo esc_attr(stripslashes($yturbo_options['ytfeedbackmail'])); ?>" />
1327
- <br /><small><?php _e('Укажите адрес e-mail (пример: <tt>mail@test.ru</tt>).', 'rss-for-yandex-turbo'); ?></small>
1328
- </td>
1329
- </tr>
1330
- <tr class="ytfeedbackvkontaktetr" style="display:none;">
1331
- <th><?php _e('VKontakte:', 'rss-for-yandex-turbo'); ?></th>
1332
- <td>
1333
- <input type="text" name="ytfeedbackvkontakte" size="40" value="<?php echo esc_attr(stripslashes($yturbo_options['ytfeedbackvkontakte'])); ?>" />
1334
- <br /><small><?php _e('Укажите урл (профиль, группа или чат) ВКонтакте (пример для чата: <tt>https://vk.me/123456</tt>, где <tt>123456</tt> это ваш аккаунт).', 'rss-for-yandex-turbo'); ?></small>
1335
- </td>
1336
- </tr>
1337
- <tr class="ytfeedbackodnoklassnikitr" style="display:none;">
1338
- <th><?php _e('Odnoklassniki:', 'rss-for-yandex-turbo'); ?></th>
1339
- <td>
1340
- <input type="text" name="ytfeedbackodnoklassniki" size="40" value="<?php echo esc_attr(stripslashes($yturbo_options['ytfeedbackodnoklassniki'])); ?>" />
1341
- <br /><small><?php _e('Укажите урл (профиль или группа) Одноклассники (пример для профиля: <tt>https://www.ok.ru/profile/123456</tt>, где <tt>123456</tt> это ваш аккаунт).', 'rss-for-yandex-turbo'); ?></small>
1342
- </td>
1343
- </tr>
1344
- <tr class="ytfeedbacktwittertr" style="display:none;">
1345
- <th><?php _e('Twitter:', 'rss-for-yandex-turbo'); ?></th>
1346
- <td>
1347
- <input type="text" name="ytfeedbacktwitter" size="40" value="<?php echo esc_attr(stripslashes($yturbo_options['ytfeedbacktwitter'])); ?>" />
1348
- <br /><small><?php _e('Укажите урл профиля Twitter (пример: <tt>https://twitter.com/yandex</tt>, где <tt>yandex</tt> это ваш аккаунт).', 'rss-for-yandex-turbo'); ?></small>
1349
- </td>
1350
- </tr>
1351
- <tr class="ytfeedbackfacebooktr" style="display:none;">
1352
- <th><?php _e('Facebook:', 'rss-for-yandex-turbo'); ?></th>
1353
- <td>
1354
- <input type="text" name="ytfeedbackfacebook" size="40" value="<?php echo esc_attr(stripslashes($yturbo_options['ytfeedbackfacebook'])); ?>" />
1355
- <br /><small><?php _e('Укажите урл (профиль, группа или чат) Facebook (пример для профиля: <tt>https://www.facebook.com/yandex</tt>, где <tt>yandex</tt> это ваш аккаунт).', 'rss-for-yandex-turbo'); ?></small>
1356
- </td>
1357
- </tr>
1358
- <tr class="ytfeedbackvibertr" style="display:none;">
1359
- <th><?php _e('Viber:', 'rss-for-yandex-turbo'); ?></th>
1360
- <td>
1361
- <input type="text" name="ytfeedbackviber" size="40" value="<?php echo esc_attr(stripslashes($yturbo_options['ytfeedbackviber'])); ?>" />
1362
- <br /><small><?php _e('Укажите урл связи для Viber (пример для чата: <tt>viber://chat?number=+74951234567</tt>, где <tt>+74991234567</tt> это ваш номер телефона).', 'rss-for-yandex-turbo'); ?></small>
1363
- </td>
1364
- </tr>
1365
- <tr class="ytfeedbackwhatsapptr" style="display:none;">
1366
- <th><?php _e('Whatsapp:', 'rss-for-yandex-turbo'); ?></th>
1367
- <td>
1368
- <input type="text" name="ytfeedbackwhatsapp" size="40" value="<?php echo esc_attr(stripslashes($yturbo_options['ytfeedbackwhatsapp'])); ?>" />
1369
- <br /><small><?php _e('Укажите урл связи для Whatsapp (пример: <tt>whatsapp://send?phone=74951234567</tt>, где <tt>74951234567</tt> это ваш номер телефона).', 'rss-for-yandex-turbo'); ?></small>
1370
- </td>
1371
- </tr>
1372
- <tr class="ytfeedbacktelegramtr" style="display:none;">
1373
- <th><?php _e('Telegram:', 'rss-for-yandex-turbo'); ?></th>
1374
- <td>
1375
- <input type="text" name="ytfeedbacktelegram" size="40" value="<?php echo esc_attr(stripslashes($yturbo_options['ytfeedbacktelegram'])); ?>" />
1376
- <br /><small><?php _e('Укажите урл связи для Telegram (пример: <tt>https://t.me/123456</tt>, где <tt>123456</tt> это ваш аккаунт).', 'rss-for-yandex-turbo'); ?></small>
1377
- </td>
1378
- </tr>
1379
- <tr class="ytcommentstr trbordertop">
1380
- <th class="tdcheckbox"><?php _e('Комментарии:', 'rss-for-yandex-turbo'); ?></th>
1381
- <td>
1382
- <label for="ytcomments"><input type="checkbox" value="enabled" name="ytcomments" id="ytcomments" <?php if ($yturbo_options['ytcomments'] == 'enabled') echo 'checked="checked"'; ?> /><?php _e('Добавить комментарии к турбо-страницам', 'rss-for-yandex-turbo'); ?></label>
1383
- <br /><small><?php _e('К записям на турбо-страницах будут добавлены комментарии (пример смотреть <a target="_blank" href="https://yandex.ru/dev/turbo/doc/rss/elements/comments-docpage/">здесь</a>).', 'rss-for-yandex-turbo'); ?>
1384
- </small>
1385
- </td>
1386
- </tr>
1387
- <tr class="ytcommentschildtr" <?php if ($yturbo_options['ytcomments'] == 'disabled') echo 'style="display:none;"'; ?>>
1388
- <th class="tdcheckbox"><?php _e('Аватары:', 'rss-for-yandex-turbo'); ?></th>
1389
- <td>
1390
- <label for="ytcommentsavatar"><input type="checkbox" value="enabled" name="ytcommentsavatar" id="ytcommentsavatar" <?php if ($yturbo_options['ytcommentsavatar'] == 'enabled') echo 'checked="checked"'; ?> /><?php _e('Добавить аватары к комментариям', 'rss-for-yandex-turbo'); ?></label>
1391
- <br /><small><?php _e('Выводить или нет аватары (граватары) к комментариям.', 'rss-for-yandex-turbo'); ?><br />
1392
- <?php _e('Внимание! Картинки аватаров могут не уложиться в лимит изображений на одну запись (не более <strong>50</strong> штук).', 'rss-for-yandex-turbo'); ?> <br />
1393
- <?php _e('В случае отключения вывода аватаров Яндекс выведет на месте аватаров картинку-заглушку.', 'rss-for-yandex-turbo'); ?><br />
1394
- </small>
1395
- </td>
1396
- </tr>
1397
- <tr class="ytcommentschildtr" <?php if ($yturbo_options['ytcomments'] == 'disabled') echo 'style="display:none;"'; ?>>
1398
- <th><?php _e('Число комментариев:', 'rss-for-yandex-turbo'); ?></th>
1399
- <td>
1400
- <input style="max-width: 50px;" name="ytcommentsnumber" type="number" min="1" max="40" step="1" value="<?php echo $yturbo_options['ytcommentsnumber']; ?>" />
1401
- <br /><small><?php _e('Укажите число выводимых комментариев (максимально можно выводить только <strong>40</strong> комментариев).', 'rss-for-yandex-turbo'); ?><br/>
1402
- </small>
1403
- </td>
1404
- </tr>
1405
- <tr class="ytcommentschildtr" <?php if ($yturbo_options['ytcomments'] == 'disabled') echo 'style="display:none;"'; ?>>
1406
- <th><?php _e('Сортировка:', 'rss-for-yandex-turbo'); ?></th>
1407
- <td>
1408
- <select name="ytcommentsorder" id="ytcommentsorder" style="width: 260px;">
1409
- <option value="В начале новые комментарии" <?php if ($yturbo_options['ytcommentsorder'] == 'В начале новые комментарии') echo 'selected="selected"'; ?>><?php _e('В начале новые комментарии', 'rss-for-yandex-turbo'); ?></option>
1410
- <option value="В начале старые комментарии" <?php if ($yturbo_options['ytcommentsorder'] == 'В начале старые комментарии') echo 'selected="selected"'; ?>><?php _e('В начале старые комментарии', 'rss-for-yandex-turbo'); ?></option>
1411
- </select>
1412
- <br /><small><?php _e('Сортировка комментариев по дате добавления.', 'rss-for-yandex-turbo'); ?> <br />
1413
- <?php _e('Учтите, что при использовании древовидных комментариев сортировка визуально может быть нарушена.', 'rss-for-yandex-turbo'); ?><br />
1414
- </small>
1415
- </td>
1416
- </tr>
1417
- <tr class="ytcommentschildtr" <?php if ($yturbo_options['ytcomments'] == 'disabled') echo 'style="display:none;"'; ?>>
1418
- <th class="tdcheckbox"><?php _e('Дата комментариев:', 'rss-for-yandex-turbo'); ?></th>
1419
- <td>
1420
- <label for="ytcommentsdate"><input type="checkbox" value="enabled" name="ytcommentsdate" id="ytcommentsdate" <?php if ($yturbo_options['ytcommentsdate'] == 'enabled') echo 'checked="checked"'; ?> /><?php _e('Добавить дату к комментариям', 'rss-for-yandex-turbo'); ?></label>
1421
- <br /><small><?php _e('Указывать дату для комментариев по <a target="_blank" href="https://tech.yandex.ru/turbo/doc/rss/elements/comments-docpage/">спецификации</a> Яндекса необязательно.', 'rss-for-yandex-turbo'); ?>
1422
- </small>
1423
- </td>
1424
- </tr>
1425
- <tr class="ytcommentschildtr" <?php if ($yturbo_options['ytcomments'] == 'disabled') echo 'style="display:none;"'; ?>>
1426
- <th class="tdcheckbox"><?php _e('Древовидность:', 'rss-for-yandex-turbo'); ?></th>
1427
- <td>
1428
- <label for="ytcommentsdrevo"><input type="checkbox" value="enabled" name="ytcommentsdrevo" id="ytcommentsdrevo" <?php if ($yturbo_options['ytcommentsdrevo'] == 'enabled') echo 'checked="checked"'; ?> /><?php _e('Использовать древовидность', 'rss-for-yandex-turbo'); ?></label>
1429
- <br /><small><?php _e('Выводить или не выводить комментарии в древовидном виде.', 'rss-for-yandex-turbo'); ?><br />
1430
- <?php _e('Поддерживается древовидность только для 2 уровней глубины.', 'rss-for-yandex-turbo'); ?><br />
1431
- <?php _e('Учтите, что отключение древовидности не повлияет на сортировку комментариев.', 'rss-for-yandex-turbo'); ?><br />
1432
- </small>
1433
- </td>
1434
- </tr>
1435
- <tr class="ytrelatedtr trbordertop">
1436
- <th class="tdcheckbox"><?php _e('Похожие записи:', 'rss-for-yandex-turbo'); ?></th>
1437
- <td>
1438
- <label for="ytrelated"><input type="checkbox" value="enabled" name="ytrelated" id="ytrelated" <?php if ($yturbo_options['ytrelated'] == 'enabled') echo 'checked="checked"'; ?> /><?php _e('Добавить блок похожих записей на турбо-страницы', 'rss-for-yandex-turbo'); ?></label>
1439
- <br /><small><?php _e('На турбо-страницы будет добавлен блок похожих записей (в конце страницы).', 'rss-for-yandex-turbo'); ?></small>
1440
- </td>
1441
- </tr>
1442
- <tr class="ytrelatedchildtr" <?php if ($yturbo_options['ytrelated'] == 'disabled') echo 'style="display:none;"'; ?>>
1443
- <th><?php _e('Количество похожих записей:', 'rss-for-yandex-turbo'); ?></th>
1444
- <td>
1445
- <input style="max-width: 50px;" name="ytrelatednumber" type="number" min="1" max="30" step="1" value="<?php echo $yturbo_options['ytrelatednumber']; ?>" />
1446
- <br /><small><?php _e('Укажите число записей в блоке похожих записей.', 'rss-for-yandex-turbo'); ?> <br >
1447
- <?php _e('Список похожих записей будет формироваться случайным образом из записей рубрики текущей записи.', 'rss-for-yandex-turbo'); ?><br />
1448
- <?php _e('Внимание! Не устанавливайте слишком большое число похожих записей, если вы используете вместе с ними вывод миниатюр.', 'rss-for-yandex-turbo'); ?><br />
1449
- <?php _e('Лимит Яндекса на общее количество изображений одной страницы - <strong>50</strong> (миниатюры похожих записей тоже учитываются).', 'rss-for-yandex-turbo'); ?><br />
1450
- <?php _e('Больше <strong>30</strong> похожих записей установить нельзя (тоже лимит Яндекса на количество ссылок в блоке похожих записей).', 'rss-for-yandex-turbo'); ?><br />
1451
- </small>
1452
- </td>
1453
- </tr>
1454
- <tr class="ytrelatedchildtr" <?php if ($yturbo_options['ytrelated'] == 'disabled') echo 'style="display:none;"'; ?>>
1455
- <th><?php _e('Ограничение по дате:', 'rss-for-yandex-turbo'); ?></th>
1456
- <td>
1457
- <input style="max-width: 50px;" name="ytrelateddate" type="number" min="1" max="99" step="1" value="<?php echo $yturbo_options['ytrelateddate']; ?>" />
1458
- <br /><small><?php _e('Для похожих записей будут взяты только записи, опубликованные за указанное количество последних месяцев.', 'rss-for-yandex-turbo'); ?><br >
1459
- <?php _e('Это ограничение поможет избежать ситуаций, когда в похожих записях выводятся статьи 10-летней давности.', 'rss-for-yandex-turbo'); ?><br />
1460
- <?php _e('Не ставьте маленькое количество месяцев в случае, если ваш сайт не слишком часто обновляется.', 'rss-for-yandex-turbo'); ?><br />
1461
- <?php _e('В такой ситуации список похожих записей может быть очень коротким (или вообще пустым).', 'rss-for-yandex-turbo'); ?><br />
1462
- <?php _e('Если информация на вашем сайте не устаревает со временем, то ограничение по дате не имеет смысла (смело ставьте 99 месяцев).', 'rss-for-yandex-turbo'); ?><br />
1463
- </small>
1464
- </td>
1465
- </tr>
1466
- <tr class="ytrelatedchildtr" <?php if ($yturbo_options['ytrelated'] == 'disabled') echo 'style="display:none;"'; ?>>
1467
- <th><?php _e('Миниатюра для похожих записей:', 'rss-for-yandex-turbo'); ?></th>
1468
- <td>
1469
- <select name="ytrelatedselectthumb" style="width: 260px;">
1470
- <?php $image_sizes = get_intermediate_image_sizes(); ?>
1471
- <?php foreach ($image_sizes as $size_name): ?>
1472
- <option value="<?php echo $size_name ?>" <?php if ($yturbo_options['ytrelatedselectthumb'] == $size_name) echo 'selected="selected"'; ?>><?php echo $size_name ?></option>
1473
- <?php endforeach; ?>
1474
- <option value="Не использовать" <?php if ($yturbo_options['ytrelatedselectthumb'] == 'Не использовать') echo 'selected="selected"'; ?>><?php echo 'Не использовать'; ?></option>
1475
- </select>
1476
- <br /><small><?php _e('Выберите нужный размер миниатюры списке находятся все зарегистрированные на сайте размеры миниатюр). ', 'rss-for-yandex-turbo'); ?><br />
1477
- <?php _e('Вывод миниатюр для похожих записей можно отключить.', 'rss-for-yandex-turbo'); ?><br />
1478
- </small>
1479
- </td>
1480
- </tr>
1481
- <tr class="ytrelatedchildtr" <?php if ($yturbo_options['ytrelated'] == 'disabled') echo 'style="display:none;"'; ?>>
1482
- <th class="tdcheckbox"><?php _e('Непрерывная лента статей:', 'rss-for-yandex-turbo'); ?></th>
1483
- <td>
1484
- <label for="ytrelatedinfinity"><input type="checkbox" value="enabled" name="ytrelatedinfinity" id="ytrelatedinfinity" <?php if ($yturbo_options['ytrelatedinfinity'] == 'enabled') echo 'checked="checked"'; ?> /><?php _e('Включить непрерывную ленту статей', 'rss-for-yandex-turbo'); ?></label>
1485
- <br /><small><?php _e('Вместо обычного короткого списка похожих статей будет выводиться непрерывная лента из полных записей.', 'rss-for-yandex-turbo'); ?><br />
1486
- <?php _e('При включении непрерывной ленты статей вывод миниатюр для похожих записей будет отключен.', 'rss-for-yandex-turbo'); ?><br />
1487
- </small>
1488
- </td>
1489
- </tr>
1490
- <tr class="ytrelatedchildtr" <?php if ($yturbo_options['ytrelated'] == 'disabled') echo 'style="display:none;"'; ?>>
1491
- <th class="tdcheckbox"><?php _e('Кэширование:', 'rss-for-yandex-turbo'); ?></th>
1492
- <td>
1493
- <label for="ytrelatedcache"><input type="checkbox" value="enabled" name="ytrelatedcache" id="ytrelatedcache" <?php if ($yturbo_options['ytrelatedcache'] == 'enabled') echo 'checked="checked"'; ?> /><?php _e('Кэшировать список похожих записей', 'rss-for-yandex-turbo'); ?></label>
1494
- <br /><small><?php _e('Для ускорения генерирования RSS-ленты вы можете включить кэширование списка похожих записей.', 'rss-for-yandex-turbo'); ?></small>
1495
- </td>
1496
- </tr>
1497
- <tr class="ytcachetime" <?php if ($yturbo_options['ytrelated'] == 'disabled' or $yturbo_options['ytrelatedcache'] != 'enabled') echo 'style="display:none;"'; ?>>
1498
- <th><?php _e('Время жизни кэша:', 'rss-for-yandex-turbo'); ?></th>
1499
- <td>
1500
- <input style="max-width: 70px;" name="ytrelatedcachetime" type="number" min="1" max="1000" step="1" value="<?php echo $yturbo_options['ytrelatedcachetime']; ?>" />
1501
- <br /><small><?php _e('Укажите время жизни кэша часах).', 'rss-for-yandex-turbo'); ?><br />
1502
- <?php _e('Внимание! Любое изменение настроек плагина скинет кэш похожих записей.', 'rss-for-yandex-turbo'); ?><br />
1503
- </small>
1504
- </td>
1505
- </tr>
1506
- <tr class="ytratingtr trbordertop">
1507
- <th class="tdcheckbox"><?php _e('Рейтинг:', 'rss-for-yandex-turbo'); ?></th>
1508
- <td>
1509
- <label for="ytrating"><input type="checkbox" value="enabled" name="ytrating" id="ytrating" <?php if ($yturbo_options['ytrating'] == 'enabled') echo 'checked="checked"'; ?> /><?php _e('Добавить рейтинг на турбо-страницы', 'rss-for-yandex-turbo'); ?></label>
1510
- <br /><small><?php _e('На турбо-страницы будет добавлен блок рейтинга (пример смотреть <a target="_blank" href="https://yandex.ru/dev/turbo/doc/rss/elements/rating-docpage/">здесь</a>).', 'rss-for-yandex-turbo'); ?></small>
1511
- </td>
1512
- </tr>
1513
- <tr class="ytratingchildtr" <?php if ($yturbo_options['ytrating'] == 'disabled') echo 'style="display:none;"'; ?>>
1514
- <th><?php _e('Диапазон оценок:', 'rss-for-yandex-turbo'); ?></th>
1515
- <td>
1516
- <?php _e('От:', 'rss-for-yandex-turbo'); ?> <input style="max-width: 60px;margin-right:10px;" name="ytratingmin" type="number" min="1" max="5" step="0.01" value="<?php echo esc_attr($yturbo_options['ytratingmin']); ?>" />
1517
- <?php _e('До:', 'rss-for-yandex-turbo'); ?> <input style="max-width: 60px;" name="ytratingmax" type="number" min="1" max="5" step="0.01" value="<?php echo esc_attr($yturbo_options['ytratingmax']); ?>" />
1518
- <br /><small><?php _e('Укажите минимальную и максимальную оценку.', 'rss-for-yandex-turbo'); ?><br />
1519
- <?php _e('Каждой записи будет присвоена случайная оценка в указанном диапазоне.', 'rss-for-yandex-turbo'); ?><br />
1520
- <?php _e('Этот рейтинг будет выведен сразу после заголовка с миниатюрой записи.', 'rss-for-yandex-turbo'); ?><br />
1521
- </small>
1522
- </td>
1523
- </tr>
1524
- <tr class="ytsearchtr trbordertop">
1525
- <th class="tdcheckbox"><?php _e('Поиск:', 'rss-for-yandex-turbo'); ?></th>
1526
- <td>
1527
- <label for="ytsearch"><input type="checkbox" value="enabled" name="ytsearch" id="ytsearch" <?php if ($yturbo_options['ytsearch'] == 'enabled') echo 'checked="checked"'; ?> /><?php _e('Добавить поиск на турбо-страницы', 'rss-for-yandex-turbo'); ?></label>
1528
- <br /><small><?php _e('На турбо-страницы будет добавлен блок поиска (пример смотреть <a target="_blank" href="https://yandex.ru/dev/turbo/doc/rss/elements/search-block-docpage/">здесь</a>).', 'rss-for-yandex-turbo'); ?><br />
1529
- <?php _e('На данный момент поиск не будет работать, если ваш сайт работает не на https протоколе.', 'rss-for-yandex-turbo'); ?>
1530
- </small>
1531
- </td>
1532
- </tr>
1533
- <tr class="ytsearchchildtr" <?php if ($yturbo_options['ytsearch'] == 'disabled') echo 'style="display:none;"'; ?>>
1534
- <th><?php _e('Текст по умолчанию:', 'rss-for-yandex-turbo'); ?></th>
1535
- <td>
1536
- <input type="text" style="width:200px;" name="ytsearchplaceholder" size="20" value="<?php echo esc_attr(stripslashes($yturbo_options['ytsearchplaceholder'])); ?>" />
1537
- <br /><small><?php _e('Текст, который отображается в поисковой строке по умолчанию', 'rss-for-yandex-turbo'); ?><br />
1538
- </small>
1539
- </td>
1540
- </tr>
1541
- <tr class="ytsearchchildtr" <?php if ($yturbo_options['ytsearch'] == 'disabled') echo 'style="display:none;"'; ?>>
1542
- <th><?php _e('Расположение блока:', 'rss-for-yandex-turbo'); ?></th>
1543
- <td>
1544
- <select name="ytsearchmesto" id="ytsearchmesto" style="width: 260px;">
1545
- <option value="В начале записи" <?php if ($yturbo_options['ytsearchmesto'] == 'В начале записи') echo 'selected="selected"'; ?>><?php _e('В начале записи', 'rss-for-yandex-turbo'); ?></option>
1546
- <option value="В конце записи" <?php if ($yturbo_options['ytsearchmesto'] == 'В конце записи') echo 'selected="selected"'; ?>><?php _e('В конце записи', 'rss-for-yandex-turbo'); ?></option>
1547
- </select>
1548
- <br /><small><?php _e('В начале записи блок будет расположен после заголовка, а в конце записи после блока "Поделиться".', 'rss-for-yandex-turbo'); ?><br />
1549
- </small>
1550
- </td>
1551
- </tr>
1552
-
1553
- <tr class="trbordertop">
1554
- <th></th>
1555
- <td>
1556
- <input type="submit" name="submit" class="button button-primary" value="<?php _e('Сохранить настройки &raquo;', 'rss-for-yandex-turbo'); ?>" />
1557
- </td>
1558
- </tr>
1559
-
1560
- </table>
1561
- </div><!-- end tab -->
1562
-
1563
- <div class="xyztabs__content<?php if($yturbo_options['yttab']=='Счетчики'){echo ' active';} ?>"><!-- begin tab -->
1564
-
1565
- <p><?php _e('Укажите идентификаторы нужных вам счетчиков (<a target="_blank" href="https://yandex.ru/dev/turbo/doc/settings/find-counter-id-docpage/">как узнать идентификатор счетчика</a>).<br />В ленте будут использованы <strong>все</strong> указанные вами счетчики.', 'rss-for-yandex-turbo'); ?></p>
1566
-
1567
- <table class="form-table">
1568
- <tr class="trbordertop">
1569
- <th><?php _e('Яндекс.Метрика:', 'rss-for-yandex-turbo'); ?></th>
1570
- <td>
1571
- <input type="text" name="ytmetrika" size="22" value="<?php echo esc_attr(stripslashes($yturbo_options['ytmetrika'])); ?>" />
1572
- <br /><small><?php _e('Укажите числовой идентификатор счетчика (например: <tt>3338249</tt>).', 'rss-for-yandex-turbo'); ?><br />
1573
- </small>
1574
- </td>
1575
- </tr>
1576
- <tr>
1577
- <th><?php _e('LiveInternet:', 'rss-for-yandex-turbo'); ?></th>
1578
- <td>
1579
- <input type="text" name="ytliveinternet" size="22" value="<?php echo esc_attr(stripslashes($yturbo_options['ytliveinternet'])); ?>" />
1580
- <br /><small><?php _e('Укажите идентификатор счетчика (например: <tt>site.ru</tt>).', 'rss-for-yandex-turbo'); ?></small>
1581
- </td>
1582
- </tr>
1583
- <tr>
1584
- <th><?php _e('Google Analytics:', 'rss-for-yandex-turbo'); ?></th>
1585
- <td>
1586
- <input type="text" name="ytgoogle" size="22" value="<?php echo esc_attr(stripslashes($yturbo_options['ytgoogle'])); ?>" />
1587
- <br /><small><?php _e('Укажите идентификатор отслеживания (например: <tt>UA-12340005-6</tt>).', 'rss-for-yandex-turbo'); ?></small>
1588
- </td>
1589
- </tr>
1590
- <tr>
1591
- <th><?php _e('Рейтинг Mail.Ru:', 'rss-for-yandex-turbo'); ?></th>
1592
- <td>
1593
- <input type="text" name="ytmailru" size="22" value="<?php echo esc_attr(stripslashes($yturbo_options['ytmailru'])); ?>" />
1594
- <br /><small><?php _e('Укажите числовой идентификатор счетчика (например: <tt>1234567</tt>).', 'rss-for-yandex-turbo'); ?></small>
1595
- </td>
1596
- </tr>
1597
- <tr>
1598
- <th><?php _e('Rambler Топ-100:', 'rss-for-yandex-turbo'); ?></th>
1599
- <td>
1600
- <input type="text" name="ytrambler" size="22" value="<?php echo esc_attr(stripslashes($yturbo_options['ytrambler'])); ?>" />
1601
- <br /><small><?php _e('Укажите числовой идентификатор счетчика (например: <tt>4505046</tt>).', 'rss-for-yandex-turbo'); ?></small>
1602
- </td>
1603
- </tr>
1604
- <tr>
1605
- <th><?php _e('Mediascope (TNS):', 'rss-for-yandex-turbo'); ?></th>
1606
- <td>
1607
- <input type="text" name="ytmediascope" size="22" value="<?php echo esc_attr(stripslashes($yturbo_options['ytmediascope'])); ?>" />
1608
- <br /><small><?php _e('Идентификатор проекта <tt>tmsec</tt> с окончанием <tt>-turbo</tt>. <br />Например, если для обычных страниц сайта установлен счетчик <tt>example_total</tt>, <br />то для турбо-страниц указывается <tt>example_total-turbo</tt>.', 'rss-for-yandex-turbo'); ?></small>
1609
- </td>
1610
- </tr>
1611
-
1612
- <tr class="trbordertop">
1613
- <th></th>
1614
- <td>
1615
- <input type="submit" name="submit" class="button button-primary" value="<?php _e('Сохранить настройки &raquo;', 'rss-for-yandex-turbo'); ?>" />
1616
- </td>
1617
- </tr>
1618
-
1619
- </table>
1620
- </div><!-- end tab -->
1621
-
1622
- <div class="xyztabs__content<?php if($yturbo_options['yttab']=='Реклама'){echo ' active';} ?>"><!-- begin tab -->
1623
-
1624
- <?php if ( yturbo_check_ads() == true ) echo '<div style="display:none;">'; ?>
1625
- <p><?php _e('Реклама, установленная в Яндекс.Вебмастере, распределяется равномерно по тексту страницы (примерно каждые 2-3 экрана с общим ограничением в 10 рекламных блоков).', 'rss-for-yandex-turbo'); ?><br />
1626
- <?php _e('Если у вас большие по размеру контента статьи или вас не устраивает частота, с которой Яндекс расставляет рекламу, то рекомендую попробовать плагин <a target="_blank" href="https://wpcase.ru/wpcase-turbo-ads/">WPCase: Turbo Ads</a>.', 'rss-for-yandex-turbo'); ?><br />
1627
- <?php _e('В нем вы можете установить сколько угодно рекламных блоков и с той частотой, которая вам нужна (гибкие настройки вставки рекламных блоков).', 'rss-for-yandex-turbo'); ?><br /><br />
1628
- <?php _e('Этот же плагин позволяет разместить максимально 5 рекламных блоков (только 3 в контенте статьи).', 'rss-for-yandex-turbo'); ?><br />
1629
- <?php _e('При проблемах с настройкой рекламной сети ADFOX ознакомьтесь со справочными материалами: <a target="_blank" href="https://sites.help.adfox.ru/page/225">статья</a>, <a target="_blank" href="https://webmaster.yandex.ru/blog/videourok-kak-razmeschat-reklamu-na-turbo-stranitsakh-cherez-adfox">видеоурок</a>.', 'rss-for-yandex-turbo'); ?><br />
1630
- </p>
1631
-
1632
- <table class="form-table">
1633
- <tr class="myturbo trbordertop">
1634
- <th class="tdcheckbox"><?php _e('Блок рекламы #1:', 'rss-for-yandex-turbo'); ?></th>
1635
- <td>
1636
- <label for="ytad1"><input type="checkbox" value="enabled" name="ytad1" id="ytad1" <?php if ($yturbo_options['ytad1'] == 'enabled') echo 'checked="checked"'; ?> /><?php _e('Включить первый блок рекламы (<span style="color:green;">после заголовка записи</span>)', 'rss-for-yandex-turbo'); ?></label>
1637
- <br /><small><?php _e('Будет включен блок рекламы на турбо-страницах в выбранном вами месте.', 'rss-for-yandex-turbo'); ?></small>
1638
- </td>
1639
- </tr>
1640
- <tr class="myturbo block1" <?php if ($yturbo_options['ytad1'] == 'disabled') echo 'style="display:none;"'; ?>>
1641
- <th><?php _e('Рекламная сеть:', 'rss-for-yandex-turbo'); ?></th>
1642
- <td>
1643
- <select name="ytad1set" id="ytad1set" style="width: 200px;">
1644
- <option value="РСЯ" <?php if ($yturbo_options['ytad1set'] == 'РСЯ') echo 'selected="selected"'; ?>><?php _e('РСЯ', 'rss-for-yandex-turbo'); ?></option>
1645
- <option value="ADFOX" <?php if ($yturbo_options['ytad1set'] == 'ADFOX') echo 'selected="selected"'; ?>><?php _e('ADFOX', 'rss-for-yandex-turbo'); ?></option>
1646
- </select>
1647
- <br /><small><?php _e('Рекламная сеть блока рекламы #1.', 'rss-for-yandex-turbo'); ?></small>
1648
- </td>
1649
- </tr>
1650
- <tr class="myturbo trrsa block1" <?php if ($yturbo_options['ytad1'] == 'disabled' or $yturbo_options['ytad1set'] != 'РСЯ') echo 'style="display:none;"'; ?>>
1651
- <th><?php _e('РСЯ идентификатор:', 'rss-for-yandex-turbo'); ?></th>
1652
- <td>
1653
- <input type="text" name="ytad1rsa" size="22" value="<?php echo esc_attr(stripslashes($yturbo_options['ytad1rsa'])); ?>" />
1654
- <br /><small><?php _e('Укажите идентификатор блока РСЯ (например, <strong>RA-123456-7</strong>, <a target="_blank" href="https://tech.yandex.ru/turbo/doc/settings/ads-docpage/#doc-c-tabs-0-tab-0">как его узнать</a>)</small>.', 'rss-for-yandex-turbo'); ?>
1655
- </td>
1656
- </tr>
1657
- <tr class="myturbo trfox1 block1" <?php if ($yturbo_options['ytad1'] == 'disabled' or $yturbo_options['ytad1set'] != 'ADFOX') echo 'style="display:none;"'; ?>>
1658
- <th><?php _e('Код ADFOX:', 'rss-for-yandex-turbo'); ?></th>
1659
- <td>
1660
- <textarea rows="12" cols="60" name="ytadfox1" id="ytadfox1"><?php echo stripcslashes($yturbo_options['ytadfox1']); ?></textarea>
1661
- <br /><small><?php _e('Код рекламной сети ADFOX (начиная с <tt>&lt;div></tt>, <a target="_blank" href="https://tech.yandex.ru/turbo/doc/settings/ads-docpage/#doc-c-tabs-0-tab-1">как его узнать</a>).', 'rss-for-yandex-turbo'); ?><br />
1662
- </small>
1663
- </td>
1664
- </tr>
1665
-
1666
- <tr class="myturbo trbordertop">
1667
- <th class="tdcheckbox"><?php _e('Блок рекламы #2:', 'rss-for-yandex-turbo'); ?></th>
1668
- <td>
1669
- <label for="ytad2"><input type="checkbox" value="enabled" name="ytad2" id="ytad2" <?php if ($yturbo_options['ytad2'] == 'enabled') echo 'checked="checked"'; ?> /><?php _e('Включить второй блок рекламы (<span style="color:green;" середине записи</span>)', 'rss-for-yandex-turbo'); ?></label>
1670
- <br /><small><?php _e('Будет включен блок рекламы на турбо-страницах в выбранном вами месте.', 'rss-for-yandex-turbo'); ?></small>
1671
- </td>
1672
- </tr>
1673
- <tr class="myturbo block2" <?php if ($yturbo_options['ytad2'] == 'disabled') echo 'style="display:none;"'; ?>>
1674
- <th><?php _e('Рекламная сеть:', 'rss-for-yandex-turbo'); ?></th>
1675
- <td>
1676
- <select name="ytad2set" id="ytad2set" style="width: 200px;">
1677
- <option value="РСЯ" <?php if ($yturbo_options['ytad2set'] == 'РСЯ') echo 'selected="selected"'; ?>><?php _e('РСЯ', 'rss-for-yandex-turbo'); ?></option>
1678
- <option value="ADFOX" <?php if ($yturbo_options['ytad2set'] == 'ADFOX') echo 'selected="selected"'; ?>><?php _e('ADFOX', 'rss-for-yandex-turbo'); ?></option>
1679
- </select>
1680
- <br /><small><?php _e('Рекламная сеть блока рекламы #2.', 'rss-for-yandex-turbo'); ?></small>
1681
- </td>
1682
- </tr>
1683
- <tr class="myturbo trrsa2 block2" <?php if ($yturbo_options['ytad2'] == 'disabled' or $yturbo_options['ytad2set'] != 'РСЯ') echo 'style="display:none;"'; ?>>
1684
- <th><?php _e('РСЯ идентификатор:', 'rss-for-yandex-turbo'); ?></th>
1685
- <td>
1686
- <input type="text" name="ytad2rsa" size="22" value="<?php echo esc_attr(stripslashes($yturbo_options['ytad2rsa'])); ?>" />
1687
- <br /><small><?php _e('Укажите идентификатор блока РСЯ (например, <strong>RA-123456-7</strong>, <a target="_blank" href="https://tech.yandex.ru/turbo/doc/settings/ads-docpage/#doc-c-tabs-0-tab-0">как его узнать</a>)</small>.', 'rss-for-yandex-turbo'); ?>
1688
- </td>
1689
- </tr>
1690
- <tr class="myturbo trfox2 block2" <?php if ($yturbo_options['ytad2'] == 'disabled' or $yturbo_options['ytad2set'] != 'ADFOX') echo 'style="display:none;"'; ?>>
1691
- <th><?php _e('Код ADFOX:', 'rss-for-yandex-turbo'); ?></th>
1692
- <td>
1693
- <textarea rows="12" cols="60" name="ytadfox2" id="ytadfox2"><?php echo stripcslashes($yturbo_options['ytadfox2']); ?></textarea>
1694
- <br /><small><?php _e('Код рекламной сети ADFOX (начиная с <tt>&lt;div></tt>, <a target="_blank" href="https://tech.yandex.ru/turbo/doc/settings/ads-docpage/#doc-c-tabs-0-tab-1">как его узнать</a>).', 'rss-for-yandex-turbo'); ?><br />
1695
- </small>
1696
- </td>
1697
- </tr>
1698
- <tr class="myturbo trbordertop">
1699
- <th class="tdcheckbox"><?php _e('Блок рекламы #3:', 'rss-for-yandex-turbo'); ?></th>
1700
- <td>
1701
- <label for="ytad3"><input type="checkbox" value="enabled" name="ytad3" id="ytad3" <?php if ($yturbo_options['ytad3'] == 'enabled') echo 'checked="checked"'; ?> /><?php _e('Включить третий блок рекламы (<span style="color:green;">в конце записи</span>)', 'rss-for-yandex-turbo'); ?></label>
1702
- <br /><small><?php _e('Будет включен блок рекламы на турбо-страницах в выбранном вами месте.', 'rss-for-yandex-turbo'); ?> </small>
1703
- </td>
1704
- </tr>
1705
- <tr class="myturbo block3" <?php if ($yturbo_options['ytad3'] == 'disabled') echo 'style="display:none;"'; ?>>
1706
- <th><?php _e('Рекламная сеть:', 'rss-for-yandex-turbo'); ?></th>
1707
- <td>
1708
- <select name="ytad3set" id="ytad3set" style="width: 200px;">
1709
- <option value="РСЯ" <?php if ($yturbo_options['ytad3set'] == 'РСЯ') echo 'selected="selected"'; ?>><?php _e('РСЯ', 'rss-for-yandex-turbo'); ?></option>
1710
- <option value="ADFOX" <?php if ($yturbo_options['ytad3set'] == 'ADFOX') echo 'selected="selected"'; ?>><?php _e('ADFOX', 'rss-for-yandex-turbo'); ?></option>
1711
- </select>
1712
- <br /><small><?php _e('Рекламная сеть блока рекламы #3.', 'rss-for-yandex-turbo'); ?></small>
1713
- </td>
1714
- </tr>
1715
- <tr class="myturbo trrsa3 block3" <?php if ($yturbo_options['ytad3'] == 'disabled' or $yturbo_options['ytad3set'] != 'РСЯ') echo 'style="display:none;"'; ?>>
1716
- <th><?php _e('РСЯ идентификатор:', 'rss-for-yandex-turbo'); ?></th>
1717
- <td>
1718
- <input type="text" name="ytad3rsa" size="22" value="<?php echo esc_attr(stripslashes($yturbo_options['ytad3rsa'])); ?>" />
1719
- <br /><small><?php _e('Укажите идентификатор блока РСЯ (например, <strong>RA-123456-7</strong>, <a target="_blank" href="https://tech.yandex.ru/turbo/doc/settings/ads-docpage/#doc-c-tabs-0-tab-0">как его узнать</a>)</small>.', 'rss-for-yandex-turbo'); ?>
1720
- </td>
1721
- </tr>
1722
- <tr class="myturbo trfox3 block3" <?php if ($yturbo_options['ytad3'] == 'disabled' or $yturbo_options['ytad3set'] != 'ADFOX') echo 'style="display:none;"'; ?>>
1723
- <th><?php _e('Код ADFOX:', 'rss-for-yandex-turbo'); ?></th>
1724
- <td>
1725
- <textarea rows="12" cols="60" name="ytadfox3" id="ytadfox3"><?php echo stripcslashes($yturbo_options['ytadfox3']); ?></textarea>
1726
- <br /><small><?php _e('Код рекламной сети ADFOX (начиная с <tt>&lt;div></tt>, <a target="_blank" href="https://tech.yandex.ru/turbo/doc/settings/ads-docpage/#doc-c-tabs-0-tab-1">как его узнать</a>).', 'rss-for-yandex-turbo'); ?><br />
1727
- </small>
1728
- </td>
1729
- </tr>
1730
- <tr class="myturbo trbordertop">
1731
- <th class="tdcheckbox"><?php _e('Блок рекламы #4:', 'rss-for-yandex-turbo'); ?></th>
1732
- <td>
1733
- <label for="ytad4"><input type="checkbox" value="enabled" name="ytad4" id="ytad4" <?php if ($yturbo_options['ytad4'] == 'enabled') echo 'checked="checked"'; ?> /><?php _e('Включить четвертый блок рекламы (<span style="color:green;">после блока "Поделиться"</span>)', 'rss-for-yandex-turbo'); ?></label>
1734
- <br /><small><?php _e('Будет включен блок рекламы на турбо-страницах в выбранном вами месте.', 'rss-for-yandex-turbo'); ?><br />
1735
- <?php _e('Рекламный блок будет выведен только, если включена опция вывода блока "Поделиться".', 'rss-for-yandex-turbo'); ?></small>
1736
- </td>
1737
- </tr>
1738
- <tr class="myturbo block4" <?php if ($yturbo_options['ytad4'] == 'disabled') echo 'style="display:none;"'; ?>>
1739
- <th><?php _e('Рекламная сеть:', 'rss-for-yandex-turbo'); ?></th>
1740
- <td>
1741
- <select name="ytad4set" id="ytad4set" style="width: 200px;">
1742
- <option value="РСЯ" <?php if ($yturbo_options['ytad4set'] == 'РСЯ') echo 'selected="selected"'; ?>><?php _e('РСЯ', 'rss-for-yandex-turbo'); ?></option>
1743
- <option value="ADFOX" <?php if ($yturbo_options['ytad4set'] == 'ADFOX') echo 'selected="selected"'; ?>><?php _e('ADFOX', 'rss-for-yandex-turbo'); ?></option>
1744
- </select>
1745
- <br /><small><?php _e('Рекламная сеть блока рекламы #4.', 'rss-for-yandex-turbo'); ?></small>
1746
- </td>
1747
- </tr>
1748
- <tr class="myturbo trrsa4 block4" <?php if ($yturbo_options['ytad4'] == 'disabled' or $yturbo_options['ytad4set'] != 'РСЯ') echo 'style="display:none;"'; ?>>
1749
- <th><?php _e('РСЯ идентификатор:', 'rss-for-yandex-turbo'); ?></th>
1750
- <td>
1751
- <input type="text" name="ytad4rsa" size="22" value="<?php echo esc_attr(stripslashes($yturbo_options['ytad4rsa'])); ?>" />
1752
- <br /><small><?php _e('Укажите идентификатор блока РСЯ (например, <strong>RA-123456-7</strong>, <a target="_blank" href="https://tech.yandex.ru/turbo/doc/settings/ads-docpage/#doc-c-tabs-0-tab-0">как его узнать</a>)</small>.', 'rss-for-yandex-turbo'); ?>
1753
- </td>
1754
- </tr>
1755
- <tr class="myturbo trfox4 block4" <?php if ($yturbo_options['ytad4'] == 'disabled' or $yturbo_options['ytad4set'] != 'ADFOX') echo 'style="display:none;"'; ?>>
1756
- <th><?php _e('Код ADFOX:', 'rss-for-yandex-turbo'); ?></th>
1757
- <td>
1758
- <textarea rows="12" cols="60" name="ytadfox4" id="ytadfox4"><?php echo stripcslashes($yturbo_options['ytadfox4']); ?></textarea>
1759
- <br /><small><?php _e('Код рекламной сети ADFOX (начиная с <tt>&lt;div></tt>, <a target="_blank" href="https://tech.yandex.ru/turbo/doc/settings/ads-docpage/#doc-c-tabs-0-tab-1">как его узнать</a>).', 'rss-for-yandex-turbo'); ?><br />
1760
- </small>
1761
- </td>
1762
- </tr>
1763
- <tr class="myturbo trbordertop">
1764
- <th class="tdcheckbox"><?php _e('Блок рекламы #5:', 'rss-for-yandex-turbo'); ?></th>
1765
- <td>
1766
- <label for="ytad5"><input type="checkbox" value="enabled" name="ytad5" id="ytad5" <?php if ($yturbo_options['ytad5'] == 'enabled') echo 'checked="checked"'; ?> /><?php _e('Включить пятый блок рекламы (<span style="color:green;">после комментариев</span>)', 'rss-for-yandex-turbo'); ?></label>
1767
- <br /><small><?php _e('Будет включен блок рекламы на турбо-страницах в выбранном вами месте.', 'rss-for-yandex-turbo'); ?> <br />
1768
- <?php _e('Рекламный блок будет выведен только, если к записи есть хотя бы один комментарий (и включен вывод комментариев).', 'rss-for-yandex-turbo'); ?></small>
1769
- </td>
1770
- </tr>
1771
- <tr class="myturbo block5" <?php if ($yturbo_options['ytad5'] == 'disabled') echo 'style="display:none;"'; ?>>
1772
- <th><?php _e('Рекламная сеть:', 'rss-for-yandex-turbo'); ?></th>
1773
- <td>
1774
- <select name="ytad5set" id="ytad5set" style="width: 200px;">
1775
- <option value="РСЯ" <?php if ($yturbo_options['ytad5set'] == 'РСЯ') echo 'selected="selected"'; ?>><?php _e('РСЯ', 'rss-for-yandex-turbo'); ?></option>
1776
- <option value="ADFOX" <?php if ($yturbo_options['ytad5set'] == 'ADFOX') echo 'selected="selected"'; ?>><?php _e('ADFOX', 'rss-for-yandex-turbo'); ?></option>
1777
- </select>
1778
- <br /><small><?php _e('Рекламная сеть блока рекламы #5.', 'rss-for-yandex-turbo'); ?></small>
1779
- </td>
1780
- </tr>
1781
- <tr class="myturbo trrsa5 block5" <?php if ($yturbo_options['ytad5'] == 'disabled' or $yturbo_options['ytad5set'] != 'РСЯ') echo 'style="display:none;"'; ?>>
1782
- <th><?php _e('РСЯ идентификатор:', 'rss-for-yandex-turbo'); ?></th>
1783
- <td>
1784
- <input type="text" name="ytad5rsa" size="22" value="<?php echo esc_attr(stripslashes($yturbo_options['ytad5rsa'])); ?>" />
1785
- <br /><small><?php _e('Укажите идентификатор блока РСЯ (например, <strong>RA-123456-7</strong>, <a target="_blank" href="https://tech.yandex.ru/turbo/doc/settings/ads-docpage/#doc-c-tabs-0-tab-0">как его узнать</a>)</small>.', 'rss-for-yandex-turbo'); ?>
1786
- </td>
1787
- </tr>
1788
- <tr class="myturbo trfox5 block5" <?php if ($yturbo_options['ytad5'] == 'disabled' or $yturbo_options['ytad5set'] != 'ADFOX') echo 'style="display:none;"'; ?>>
1789
- <th><?php _e('Код ADFOX:', 'rss-for-yandex-turbo'); ?></th>
1790
- <td>
1791
- <textarea rows="12" cols="60" name="ytadfox5" id="ytadfox5"><?php echo stripcslashes($yturbo_options['ytadfox5']); ?></textarea>
1792
- <br /><small><?php _e('Код рекламной сети ADFOX (начиная с <tt>&lt;div></tt>, <a target="_blank" href="https://tech.yandex.ru/turbo/doc/settings/ads-docpage/#doc-c-tabs-0-tab-1">как его узнать</a>).', 'rss-for-yandex-turbo'); ?><br />
1793
- </small>
1794
- </td>
1795
- </tr>
1796
- <tr class="myturbo trbordertop">
1797
- <th><?php _e('Минимальный размер записи:', 'rss-for-yandex-turbo'); ?></th>
1798
- <td>
1799
- <input style="max-width: 54px;" name="ytrazmer" type="number" min="1" max="10000" step="1" value="<?php echo $yturbo_options['ytrazmer']; ?>" />
1800
- <br /><small><?php _e('Укажите минимальное количество символов записи для добавления рекламы.', 'rss-for-yandex-turbo'); ?><br/>
1801
- <?php _e('Данная опция используется только при вставке рекламы в <strong>середину</strong> записи.', 'rss-for-yandex-turbo'); ?><br/>
1802
- <?php _e('Учитывается только текст контента записи (HTML-разметка не считается).', 'rss-for-yandex-turbo'); ?>
1803
- </small>
1804
- </td>
1805
- </tr>
1806
-
1807
- <tr class="trbordertop">
1808
- <th></th>
1809
- <td>
1810
- <input type="submit" name="submit" class="button button-primary" value="<?php _e('Сохранить настройки &raquo;', 'rss-for-yandex-turbo'); ?>" />
1811
- </td>
1812
- </tr>
1813
-
1814
- </table>
1815
- <?php if ( yturbo_check_ads() == true ) echo '</div>'; ?>
1816
- <?php if ( yturbo_check_ads() == true ) : ?>
1817
- <div class="alert alert-success">
1818
- <?php $turboadslink = get_bloginfo('url') .'/wp-admin/options-general.php?page=wpcase-turbo-ads.php'; ?>
1819
- <p><?php _e( 'Настроить рекламу вы можете на странице', 'rss-for-yandex-turbo' ); ?> <a target="_blank" href="<?php echo $turboadslink; ?>"><?php _e( 'настроек', 'rss-for-yandex-turbo' ); ?></a> <?php _e('плагина "<strong>WPCase: Turbo Ads</strong>".', 'rss-for-yandex-turbo'); ?></p>
1820
- </div>
1821
- <?php endif; ?>
1822
- </div><!-- end tab -->
1823
-
1824
- <div class="xyztabs__content<?php if($yturbo_options['yttab']=='Типы записей и исключения'){echo ' active';} ?>"><!-- begin tab -->
1825
-
1826
- <p><?php _e('Если у вас магазин на WordPress, то не включайте тип "Товары", а используйте <a target="_blank" href="https://webmaster.yandex.ru/blog/internet-magaziny-v-turbo">плагин генерации YML</a>.', 'rss-for-yandex-turbo'); ?><br />
1827
- <?php _e('Будьте внимательны при настройке таксономий для включения или исключения из RSS-ленты.', 'rss-for-yandex-turbo'); ?><br />
1828
- </p>
1829
-
1830
- <table class="form-table">
1831
- <tr class="trbordertop">
1832
- <th class="tdcheckbox"><?php _e('Типы записей:', 'rss-for-yandex-turbo'); ?></th>
1833
- <td>
1834
- <?php
1835
- $registered = get_post_types( array('public'=> true), 'objects' );
1836
- $exclude = array('attachment');
1837
- $types = array();
1838
-
1839
- foreach ( $registered as $post ) {
1840
- if ( in_array( $post->name, $exclude ) ) {
1841
- continue;
1842
- }
1843
- $types[ $post->name ] = $post->name;
1844
- }
1845
-
1846
- $yttype = explode(",", $yturbo_options['yttype']);
1847
- $yttype = array_diff($yttype, array(''));
1848
-
1849
- foreach ( $types as $post_type ) {
1850
- $obj = get_post_type_object( $post_type ); ?>
1851
- <label class="types" for="<?php echo $post_type; ?>"><input type="checkbox" value="<?php echo $post_type; ?>" name="types[]" id="<?php echo $post_type; ?>" <?php if (in_array($post_type, $yttype)) echo 'checked="checked"'; ?> /><?php echo $obj->labels->name; ?> (<?php echo $post_type; ?>)</label>
1852
- <?php } ?>
1853
- <small><?php _e('Типы записей для включения в RSS-ленту.', 'rss-for-yandex-turbo'); ?></small>
1854
- </td>
1855
- </tr>
1856
- <tr class="ytqueryselect trbordertop">
1857
- <th><?php _e('Включить в RSS:', 'rss-for-yandex-turbo'); ?></th>
1858
- <td>
1859
- <select name="ytqueryselect" id="ytqueryselect" style="width: 280px;">
1860
- <option value="Все таксономии, кроме исключенных" <?php if ($yturbo_options['ytqueryselect'] == 'Все таксономии, кроме исключенных') echo 'selected="selected"'; ?>><?php _e('Все таксономии, кроме исключенных', 'rss-for-yandex-turbo'); ?></option>
1861
- <option value="Только указанные таксономии" <?php if ($yturbo_options['ytqueryselect'] == 'Только указанные таксономии') echo 'selected="selected"'; ?>><?php _e('Только указанные таксономии', 'rss-for-yandex-turbo'); ?></option>
1862
- </select>
1863
- <br /><small>
1864
- <span id="includespan" <?php if ($yturbo_options['ytqueryselect'] != 'Только указанные таксономии') echo 'style="display:none;"'; ?>><?php _e('Обязательно выберите ниже таксономии для включения в ленту - иначе лента будет пустой.', 'rss-for-yandex-turbo'); ?><br /><?php _e('В этом режиме "страницы" в ленту не попадут, так как они не принадлежат таксономиям.', 'rss-for-yandex-turbo'); ?></span>
1865
- <span id="excludespan" <?php if ($yturbo_options['ytqueryselect'] != 'Все таксономии, кроме исключенных') echo 'style="display:none;"'; ?>><?php _e('По умолчанию в ленту попадают записи всех таксономий, кроме выбранных ниже.', 'rss-for-yandex-turbo'); ?><br /></span>
1866
- </small>
1867
- </td>
1868
- </tr>
1869
- <?php
1870
- $taxonomies = get_taxonomies( array('public'=>true,'show_ui'=>true,), 'objects', 'and' );
1871
- foreach ($taxonomies as $taxonomy) {
1872
- $terms = get_terms($taxonomy->name, array('hide_empty'=>false,'hierarchical'=>false,'number'=>1,));
1873
- if ( ! empty($terms) ) :
1874
- ?>
1875
- <tr>
1876
- <th class="tdcheckbox"><?php echo $taxonomy->labels->name; ?> <span class="thexclude" <?php if ($yturbo_options['ytqueryselect'] != 'Все таксономии, кроме исключенных') echo 'style="display:none;"'; ?>> <?php _e('для исключения:', 'rss-for-yandex-turbo'); ?></span><span class="thinclude" <?php if ($yturbo_options['ytqueryselect'] != 'Только указанные таксономии') echo 'style="display:none;"'; ?>> <?php _e('для добавления:', 'rss-for-yandex-turbo'); ?></span>
1877
- </th>
1878
- <td>
1879
- <div class="list_terms_scroll_wrapper">
1880
-
1881
- <?php echo "<ul class='exclude_terms' id='exclude_{$taxonomy->name}'>"; ?>
1882
-
1883
- <?php
1884
- $exclude_term_ids ='';
1885
- if ( isset($yturbo_options['exclude-'.$taxonomy->name]) && $yturbo_options['exclude-'.$taxonomy->name]) {
1886
- $yttaxlist = $yturbo_options['exclude-'.$taxonomy->name];
1887
- $tax = explode(":", $yttaxlist);
1888
- $exclude_term_ids = wp_parse_id_list($tax[1]);
1889
- }
1890
-
1891
- if ( $exclude_term_ids ) {
1892
- $terms = get_terms( $taxonomy->name, array('include'=>$exclude_term_ids,'hide_empty'=>false,'hierarchical'=>false) );
1893
- foreach ( $terms as $term ) {
1894
- echo "<li><input type='checkbox' name='exclude-{$taxonomy->name}[{$term->term_id}]' id='exclude_{$term->term_id}' value='{$term->term_id}' checked='checked' /> <label for='exclude_{$term->term_id}'>" . esc_html($term->name) . "</label></li> ";
1895
- }
1896
- }
1897
- ?>
1898
-
1899
- <?php echo "</ul>"; ?>
1900
- </div>
1901
- <small class="exclude-small-text" <?php if ($yturbo_options['ytqueryselect'] != 'Все таксономии, кроме исключенных') echo 'style="display:none;"'; ?>>
1902
- <?php _e('Выбранные ', 'rss-for-yandex-turbo'); ?><?php echo mb_strtolower($taxonomy->labels->name); ?><?php _e(' будут <strong style="color:red;">исключены</strong> из RSS-ленты.', 'rss-for-yandex-turbo'); ?><br />
1903
- </small>
1904
- <small class="include-small-text" <?php if ($yturbo_options['ytqueryselect'] != 'Только указанные таксономии') echo 'style="display:none;"'; ?>>
1905
- <?php _e('Выбранные ', 'rss-for-yandex-turbo'); ?><?php echo mb_strtolower($taxonomy->labels->name); ?><?php _e(' будут <strong style="color:green;">добавлены</strong> в RSS-ленту.', 'rss-for-yandex-turbo'); ?><br />
1906
- </small>
1907
- <?php if( ! next( $taxonomies ) ) { ?>
1908
- <small>
1909
- <br /><?php _e('Исключать из RSS-ленты отдельные записи необходимо в метабоксе плагина на странице редактировании записи.', 'rss-for-yandex-turbo'); ?><br />
1910
- </small>
1911
- <?php } ?>
1912
- </td>
1913
- </tr>
1914
- <?php endif; ?>
1915
- <?php } ?>
1916
- <tr class="trbordertop">
1917
- <th class="tdcheckbox"><?php _e('Колонка в админке:', 'rss-for-yandex-turbo'); ?></th>
1918
- <td>
1919
- <label for="ytturbocolumn"><input type="checkbox" value="enabled" name="ytturbocolumn" id="ytturbocolumn" <?php if ($yturbo_options['ytturbocolumn'] == 'enabled') echo 'checked="checked"'; ?> /><?php _e('Добавить колонку "Турбо" в админку', 'rss-for-yandex-turbo'); ?></label>
1920
- <br /><small><?php _e('Будет выведена колонка (при просмотре списка записей) с информацией о турбо-статусе записей.', 'rss-for-yandex-turbo'); ?><br />
1921
- <?php _e('Статусы: есть в RSS-ленте, исключена вручную, запись на удалении, исключена фильтрами таксономий.', 'rss-for-yandex-turbo'); ?><br />
1922
- <?php _e('Статусы отображаются иконками для компактности, подробная информация при наведении курсора мышки.', 'rss-for-yandex-turbo'); ?><br />
1923
- </small>
1924
- </td>
1925
- </tr>
1926
-
1927
- <tr class="trbordertop">
1928
- <th></th>
1929
- <td>
1930
- <input type="submit" name="submit" class="button button-primary" value="<?php _e('Сохранить настройки &raquo;', 'rss-for-yandex-turbo'); ?>" />
1931
- </td>
1932
- </tr>
1933
- </table>
1934
- </div><!-- end tab -->
1935
-
1936
- <div class="xyztabs__content<?php if($yturbo_options['yttab']=='Шаблоны'){echo ' active';} ?>"><!-- begin tab -->
1937
-
1938
- <p><?php _e('Здесь можно создать собственный шаблон формирования контента для указанного типа записей.', 'rss-for-yandex-turbo'); ?><br />
1939
- <?php _e('Чтобы здесь появились все выбранные вами типы записей - <strong>сохраните</strong> настройки плагина.', 'rss-for-yandex-turbo'); ?><br />
1940
- </p>
1941
-
1942
- <p><?php _e('В шаблоне по умолчанию для каждого типа записей выводится только поле <strong>post_content</strong>.', 'rss-for-yandex-turbo'); ?><br />
1943
- <?php _e('В стандартных типах записей (<strong>post</strong>, <strong>page</strong>) в этом поле содержится весь контент записи.', 'rss-for-yandex-turbo'); ?><br /></p>
1944
-
1945
- <p><?php _e('Для использования произвольных полей оберните название произвольного поля символами <strong>%%</strong>.', 'rss-for-yandex-turbo'); ?><br />
1946
- <?php _e('Например, <strong>%%views%%</strong>, <strong>%%ratings%%</strong> или <strong>%%_aioseop_title%%</strong>.', 'rss-for-yandex-turbo'); ?>
1947
- </p>
1948
-
1949
- <p><?php _e('Простой пример собственного шаблона:', 'rss-for-yandex-turbo'); ?></p>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1950
 
1951
  <pre>&lt;h2&gt;Приветствуем!&lt;/h2&gt;
1952
 
@@ -1958,180 +1976,180 @@ if (closedonat == 'yes') {
1958
 
1959
  </pre>
1960
 
1961
- <p><?php _e('То есть данную функцию плагина можно использовать в качестве "подписи" к вашим записям на турбо-страницах.', 'rss-for-yandex-turbo'); ?><br />
1962
- <?php _e('Учтите, что фильтры плагина сработают уже после формирования контента записи по вашему шаблону.', 'rss-for-yandex-turbo'); ?><br />
1963
- </p>
1964
-
1965
- <p><?php _e('В шаблоне можно использовать шорткоды (убедитесь, что их вывод не содержит скрипты или css-код).', 'rss-for-yandex-turbo'); ?><br />
1966
- <?php _e('В плагин встроено несколько собственных шорткодов, полный их список вы можете посмотреть <a target="_blank" href="https://ru.wordpress.org/plugins/rss-for-yandex-turbo/#%D0%BA%D0%B0%D0%BA%D0%B8%D0%B5%20%D1%88%D0%BE%D1%80%D1%82%D0%BA%D0%BE%D0%B4%D1%8B%20%D0%BC%D0%BE%D0%B6%D0%BD%D0%BE%20%D0%B8%D1%81%D0%BF%D0%BE%D0%BB%D1%8C%D0%B7%D0%BE%D0%B2%D0%B0%D1%82%D1%8C%20%D0%B2%20%D1%88%D0%B0%D0%B1%D0%BB%D0%BE%D0%BD%D0%B0%D1%85%3F">здесь</a>.', 'rss-for-yandex-turbo'); ?></p>
1967
- <p> <?php _e('<strong>Внимание!</strong> Произвольные поля плагина <strong>Advanced Custom Fields</strong> необходимо обрабатывать <a target="_blank" href="https://ru.wordpress.org/plugins/rss-for-yandex-turbo/#%D1%88%D0%B0%D0%B1%D0%BB%D0%BE%D0%BD%D1%8B%20%D0%B8%20%D0%BF%D0%BB%D0%B0%D0%B3%D0%B8%D0%BD%20advanced%20custom%20fields">фильтром</a>.', 'rss-for-yandex-turbo'); ?><br /><br />
1968
- </p>
1969
-
1970
- <table class="form-table">
1971
- <?php
1972
- $i = 0;
1973
- foreach ( $types as $post_type ) {
1974
- $obj = get_post_type_object( $post_type );
1975
-
1976
- if (in_array($post_type, $yttype)) {
1977
- $i++; ?>
1978
- <tr class="trbordertop">
1979
- <th class="tdcheckbox"><?php echo $obj->labels->name; ?>:</th>
1980
- <td>
1981
-
1982
- <style>
1983
- i.mce-i-yablocks {background-image: url('<?php echo $purl; ?>/img/yablocks.png');}
1984
- i.mce-i-small {background-image: url('<?php echo $purl; ?>/img/small.png');}
1985
- i.mce-i-big {background-image: url('<?php echo $purl; ?>/img/big.png');}
1986
- </style>
1987
- <?php if ( !isset($yturbo_options['template-'.$post_type]) ) {$yturbo_options['template-'.$post_type] = '';} ?>
1988
- <?php if($yturbo_options['template-'.$post_type]=='') {$yturbo_options['template-'.$post_type]='%%post_content%%';} ?>
1989
-
1990
- <?php $content = html_entity_decode(stripcslashes($yturbo_options['template-'.$post_type]),ENT_QUOTES); ?>
1991
- <?php $editor_id = 'wpeditor' . $post_type; ?>
1992
- <?php $textarea_name = 'template-' . $post_type; ?>
1993
- <?php $settings = array(
1994
- 'textarea_name' => $textarea_name,
1995
- 'wpautop' => 1,
1996
- 'media_buttons' => 1,
1997
- 'textarea_rows' => 16,
1998
- 'editor_height' => 300,
1999
- 'tinymce' => array(
2000
- 'toolbar1' => 'undo,redo,formatselect,bold,italic,underline,strikethrough,superscript,subscript,hr,blockquote,link,unlink,bullist,numlist,table,yablocks,',
2001
- 'toolbar2' => '',
2002
- 'toolbar3' => '',
2003
- 'content_css' => $purl . '/inc/editor.css?ver=' . $yturbo_options['version'],
2004
- ),
2005
- 'quicktags' => array(
2006
- 'id' => $editor_id,
2007
- 'buttons' => 'strong,em,link,block,del,hr,img,ul,ol,li,code,close,'
2008
- ),
2009
- );
2010
- ?>
2011
- <?php wp_editor( $content, $editor_id, $settings); ?>
2012
- <small><?php _e('Шаблон контента для типа записи', 'rss-for-yandex-turbo'); ?>: <strong><?php echo $post_type; ?></strong>.</small>
2013
-
2014
- </td>
2015
- </tr>
2016
- <?php }
2017
- } ?>
2018
- <?php if($i==0){echo __('<p><strong style="color:red;">Внимание!</strong> У вас не включен вывод ни для одного типа записей. <br />Перейдите на вкладку "<a href="#tab6">Типы записей и исключения</a>" и включите хотя бы один тип записей.</p>', 'rss-for-yandex-turbo');} ?>
2019
-
2020
- <tr class="trbordertop">
2021
- <th></th>
2022
- <td>
2023
- <input type="submit" name="submit" class="button button-primary" value="<?php _e('Сохранить настройки &raquo;', 'rss-for-yandex-turbo'); ?>" />
2024
- </td>
2025
- </tr>
2026
- </table>
2027
- </div><!-- end tab -->
2028
-
2029
- <div class="xyztabs__content<?php if($yturbo_options['yttab']=='Фильтры'){echo ' active';} ?>"><!-- begin tab -->
2030
-
2031
- <p><?php _e('В данной секции находятся продвинутые настройки. <br />Пожалуйста, будьте внимательны в этом разделе!', 'rss-for-yandex-turbo'); ?> </p>
2032
-
2033
- <table class="form-table">
2034
- <tr class="ytexcludeshortcodestr trbordertop">
2035
- <th class="tdcheckbox"><?php _e('Фильтр шорткодов:', 'rss-for-yandex-turbo'); ?></th>
2036
- <td>
2037
- <label for="ytexcludeshortcodes"><input type="checkbox" value="enabled" name="ytexcludeshortcodes" id="ytexcludeshortcodes" <?php if ($yturbo_options['ytexcludeshortcodes'] == 'enabled') echo 'checked="checked"'; ?> /><?php _e('Удалить указанные шорткоды', 'rss-for-yandex-turbo'); ?></label>
2038
- <br /><small><?php _e('Из контента записей будут удалены все указанные шорткоды (вместе с их контентом).', 'rss-for-yandex-turbo'); ?> </small>
2039
- </td>
2040
- </tr>
2041
- <tr class="ytexcludeshortcodeslisttr" <?php if ($yturbo_options['ytexcludeshortcodes'] == 'disabled') echo 'style="display:none;"'; ?>>
2042
- <th style="padding-top: 5px!important;"><?php _e('Шорткоды для удаления:', 'rss-for-yandex-turbo'); ?></th>
2043
- <td style="padding-top: 5px!important;">
2044
- <?php
2045
- $shortcodes = $GLOBALS['shortcode_tags'];
2046
- $exclude = array('wp_caption','caption','gallery','playlist','audio','video','embed','yt-permalink','yt-title');
2047
- $result = array();
2048
-
2049
- foreach ($shortcodes as $key => $value) {
2050
- if ( ! in_array( $key, $exclude ) ) {
2051
- $result[] = $key;
2052
- }
2053
- }
2054
-
2055
- $ytshortcodes = explode(",", $yturbo_options['ytexcludeshortcodeslist']);
2056
- $ytshortcodes = array_diff($ytshortcodes, array(''));
2057
-
2058
- if ( ! empty($result) ) :
2059
-
2060
- foreach ( $result as $shortcode ) { ?>
2061
- <label class="shortcodes" for="<?php echo $shortcode; ?>"><input type="checkbox" value="<?php echo $shortcode; ?>" name="shortcodes[]" id="<?php echo $shortcode; ?>" <?php if (in_array($shortcode, $ytshortcodes)) echo 'checked="checked"'; ?> />[<?php echo $shortcode; ?>]</label>
2062
- <?php } ?>
2063
- <small><?php _e('В списке находятся все зарегистрированные на сайте шорткоды, кроме системных.', 'rss-for-yandex-turbo'); ?><br />
2064
- </small>
2065
-
2066
- <?php else : ?>
2067
- <p style="margin-top: -5px;"><?php _e('Сторонних шорткодов не найдено.', 'rss-for-yandex-turbo'); ?></p>
2068
- <?php endif; ?>
2069
- </td>
2070
- </tr>
2071
- <tr class="ytexcludetagstr trbordertop">
2072
- <th class="tdcheckbox"><?php _e('Фильтр тегов (без контента):', 'rss-for-yandex-turbo'); ?></th>
2073
- <td>
2074
- <label for="ytexcludetags"><input type="checkbox" value="enabled" name="ytexcludetags" id="ytexcludetags" <?php if ($yturbo_options['ytexcludetags'] == 'enabled') echo 'checked="checked"'; ?> /><?php _e('Удалить указанные html-теги', 'rss-for-yandex-turbo'); ?></label>
2075
- <br /><small><?php _e('Из контента записей будут удалены все указанные html-теги (<strong>без контента этих тегов</strong>).', 'rss-for-yandex-turbo'); ?></small>
2076
-
2077
-
2078
- </td>
2079
- </tr>
2080
- <tr class="ytexcludetagslisttr" <?php if ($yturbo_options['ytexcludetags'] == 'disabled') echo 'style="display:none;"'; ?>>
2081
- <th style="padding-top: 5px;"><?php _e('Теги для удаления:', 'rss-for-yandex-turbo'); ?></th>
2082
- <td style="padding-top: 5px;">
2083
- <input style="display:none;" name="ytexcludetagslist-input" class="ytexcludetagslist-input" placeholder="" value="<?php echo esc_attr(stripslashes($yturbo_options['ytexcludetagslist'])); ?>" />
2084
- <input type="hidden" id="tags-list" value="<?php echo yturbo_tags_list(); ?>" />
2085
- <input type="hidden" name="ytexcludetagslist" id="ytexcludetagslist" value="<?php echo esc_attr(stripslashes($yturbo_options['ytexcludetagslist'])); ?>" />
2086
- <small><?php _e('Список удаляемых html-тегов. Начните набирать нужный тег для подсказки.', 'rss-for-yandex-turbo'); ?><br />
2087
- <?php _e('Самозакрывающиеся теги вроде <tt>&lt;br /></tt> этим фильтром удалить нельзя.', 'rss-for-yandex-turbo'); ?><br />
2088
- <?php _e('Список возможных для удаления тегов можно <a target="_blank" href="https://ru.wordpress.org/plugins/rss-for-yandex-turbo/#%D0%BA%D0%B0%D0%BA%20%D0%BF%D0%B5%D1%80%D0%B5%D0%BE%D0%BF%D1%80%D0%B5%D0%B4%D0%B5%D0%BB%D0%B8%D1%82%D1%8C%20%D1%81%D0%BF%D0%B8%D1%81%D0%BE%D0%BA%20%D1%82%D0%B5%D0%B3%D0%BE%D0%B2%20%D0%B4%D0%BB%D1%8F%20%D1%83%D0%B4%D0%B0%D0%BB%D0%B5%D0%BD%D0%B8%D1%8F%3F">переопределить</a>.', 'rss-for-yandex-turbo'); ?><br />
2089
- </small>
2090
- </td>
2091
- </tr>
2092
- <tr class="ytexcludetags2tr trbordertop">
2093
- <th class="tdcheckbox"><?php _e('Фильтр тегов (с контентом):', 'rss-for-yandex-turbo'); ?></th>
2094
- <td>
2095
- <label for="ytexcludetags2"><input type="checkbox" value="enabled" name="ytexcludetags2" id="ytexcludetags2" <?php if ($yturbo_options['ytexcludetags2'] == 'enabled') echo 'checked="checked"'; ?> /><?php _e('Удалить указанные html-теги', 'rss-for-yandex-turbo'); ?></label>
2096
- <br /><small><?php _e('Из контента записей будут удалены все указанные html-теги (<strong>включая контент этих тегов</strong>).', 'rss-for-yandex-turbo'); ?></small>
2097
- </td>
2098
- </tr>
2099
- <tr class="ytexcludetagslist2tr" <?php if ($yturbo_options['ytexcludetags2'] == 'disabled') echo 'style="display:none;"'; ?>>
2100
- <th style="padding-top: 5px;"><?php _e('Теги для удаления:', 'rss-for-yandex-turbo'); ?></th>
2101
- <td style="padding-top: 5px;">
2102
- <input style="display:none;" name="ytexcludetagslist-input2" class="ytexcludetagslist-input2" placeholder="" value="<?php echo esc_attr(stripslashes($yturbo_options['ytexcludetagslist2'])); ?>" />
2103
- <input type="hidden" id="tags-list2" value="<?php echo yturbo_tags_list(); ?>" />
2104
- <input type="hidden" name="ytexcludetagslist2" id="ytexcludetagslist2" value="<?php echo esc_attr(stripslashes($yturbo_options['ytexcludetagslist2'])); ?>" />
2105
- <small><?php _e('Список удаляемых html-тегов. Начните набирать нужный тег для подсказки.', 'rss-for-yandex-turbo'); ?><br />
2106
- <?php _e('Самозакрывающиеся теги вроде <tt>&lt;br /></tt> этим фильтром удалить нельзя.', 'rss-for-yandex-turbo'); ?> <br />
2107
- <?php _e('Список возможных для удаления тегов можно <a target="_blank" href="https://ru.wordpress.org/plugins/rss-for-yandex-turbo/#%D0%BA%D0%B0%D0%BA%20%D0%BF%D0%B5%D1%80%D0%B5%D0%BE%D0%BF%D1%80%D0%B5%D0%B4%D0%B5%D0%BB%D0%B8%D1%82%D1%8C%20%D1%81%D0%BF%D0%B8%D1%81%D0%BE%D0%BA%20%D1%82%D0%B5%D0%B3%D0%BE%D0%B2%20%D0%B4%D0%BB%D1%8F%20%D1%83%D0%B4%D0%B0%D0%BB%D0%B5%D0%BD%D0%B8%D1%8F%3F">переопределить</a>.', 'rss-for-yandex-turbo'); ?><br />
2108
- </small>
2109
- </td>
2110
- </tr>
2111
- <tr class="ytexcludecontenttr trbordertop">
2112
- <th class="tdcheckbox"><?php _e('Контент для удаления:', 'rss-for-yandex-turbo'); ?></th>
2113
- <td>
2114
- <label for="ytexcludecontent"><input type="checkbox" value="enabled" name="ytexcludecontent" id="ytexcludecontent" <?php if ($yturbo_options['ytexcludecontent'] == 'enabled') echo 'checked="checked"'; ?> /><?php _e('Удалить указанный контент из RSS', 'rss-for-yandex-turbo'); ?></label>
2115
- <br /><small><?php _e('Точные вхождения указанного контента будут удалены из записей в RSS-ленте.', 'rss-for-yandex-turbo'); ?></small>
2116
- </td>
2117
- </tr>
2118
- <tr class="ytexcludecontentlisttr" <?php if ($yturbo_options['ytexcludecontent'] == 'disabled') echo 'style="display:none;"'; ?>>
2119
- <th><?php _e('Список удаляемого контента:', 'rss-for-yandex-turbo'); ?></th>
2120
- <td>
2121
- <textarea rows="8" cols="70" name="ytexcludecontentlist" id="ytexcludecontentlist"><?php echo stripcslashes($yturbo_options['ytexcludecontentlist']); ?></textarea>
2122
- <br /><small><?php _e('Каждый новый шаблон для удаления должен начинаться с новой строки.', 'rss-for-yandex-turbo'); ?><br />
2123
- </small>
2124
- </td>
2125
- </tr>
2126
-
2127
- <tr class="trbordertop">
2128
- <th></th>
2129
- <td>
2130
- <input type="submit" name="submit" class="button button-primary" value="<?php _e('Сохранить настройки &raquo;', 'rss-for-yandex-turbo'); ?>" />
2131
- </td>
2132
- </tr>
2133
- </table>
2134
- </div><!-- end tab -->
2135
 
2136
  </div><!-- .xyztabs -->
2137
 
@@ -2139,34 +2157,34 @@ if (closedonat == 'yes') {
2139
  <script>
2140
  var closeabout = localStorage.getItem('yt-close-about');
2141
  if (closeabout == 'yes') {
2142
- document.getElementById('about').className = 'postbox hide';
2143
- document.getElementById('restore-hide-blocks').className = 'dashicons dashicons-admin-generic';
2144
  }
2145
  </script>
2146
- <h3 style="border-bottom: 1px solid #E1E1E1;background: #f7f7f7;"><?php _e('О плагине', 'rss-for-yandex-turbo'); ?>
2147
- <span id="close-about" class="dashicons dashicons-no-alt" title="<?php _e('Скрыть блок', 'rss-for-yandex-turbo'); ?>"></span></h3>
2148
- <div class="inside" style="padding-bottom:15px;display: block;">
2149
-
2150
- <p><?php _e('Если вам нравится мой плагин, то, пожалуйста, поставьте ему <a target="_blank" href="https://wordpress.org/support/plugin/rss-for-yandex-turbo/reviews/#new-post"><strong>5 звезд</strong></a> в репозитории.', 'rss-for-yandex-turbo'); ?></p>
2151
- <p style="margin-top:20px;margin-bottom:10px;"><?php _e('Возможно, что вам также будут интересны другие мои плагины:', 'rss-for-yandex-turbo'); ?></p>
2152
-
2153
- <div class="about">
2154
- <ul>
2155
- <li><a target="_blank" href="https://ru.wordpress.org/plugins/rss-for-yandex-zen/">RSS for Yandex Zen</a> - <?php _e('создание RSS-ленты для сервиса Яндекс.Дзен.', 'rss-for-yandex-turbo'); ?></li>
2156
- <li><a target="_blank" href="https://ru.wordpress.org/plugins/bbspoiler/">BBSpoiler</a> - <?php _e('плагин позволит вам спрятать текст под тегами [spoiler]текст[/spoiler].', 'rss-for-yandex-turbo'); ?></li>
2157
- <li><a target="_blank" href="https://ru.wordpress.org/plugins/easy-textillate/">Easy Textillate</a> - <?php _e('плагин очень красиво анимирует текст (шорткодами в записях и виджетах или PHP-кодом в файлах темы).', 'rss-for-yandex-turbo'); ?> </li>
2158
- <li><a target="_blank" href="https://ru.wordpress.org/plugins/cool-image-share/">Cool Image Share</a> - <?php _e('плагин добавляет иконки социальных сетей на каждое изображение в ваших записях.', 'rss-for-yandex-turbo'); ?> </li>
2159
- <li><a target="_blank" href="https://ru.wordpress.org/plugins/today-yesterday-dates/">Today-Yesterday Dates</a> - <?php _e('относительные даты для записей за сегодня и вчера.', 'rss-for-yandex-turbo'); ?> </li>
2160
- <li><a target="_blank" href="https://ru.wordpress.org/plugins/truncate-comments/">Truncate Comments</a> - <?php _e('плагин скрывает длинные комментарии js-скриптом (в стиле Яндекса или Амазона).', 'rss-for-yandex-turbo'); ?> </li>
2161
- <li><a target="_blank" href="https://ru.wordpress.org/plugins/easy-yandex-share/">Easy Yandex Share</a> - <?php _e('продвинутый вывод блока &#8220;Яндекс.Поделиться&#8221;.', 'rss-for-yandex-turbo'); ?></li>
2162
- <li><a target="_blank" href="https://ru.wordpress.org/plugins/hide-my-dates/">Hide My Dates</a> - <?php _e('плагин прячет от Гугла даты публикации записей и комментариев.', 'rss-for-yandex-turbo'); ?></li>
2163
- <li style="margin: 3px 0px 3px 35px;"><a target="_blank" href="https://ru.wordpress.org/plugins/html5-cumulus/">HTML5 Cumulus</a> <span class="new">new</span> - <?php _e('современная (HTML5) версия классического плагина &#8220;WP-Cumulus&#8221;.', 'rss-for-yandex-turbo'); ?></li>
2164
-
2165
- </ul>
2166
- </div>
2167
- </div>
2168
  </div>
2169
- <?php wp_nonce_field( plugin_basename(__FILE__), 'yturbo_nonce' ); ?>
2170
  <?php wp_nonce_field('yturbo_display_exclude_terms', 'yturbo_display_exclude_terms-nonce', false); ?>
2171
  <script>
2172
  var spinner = '<?php echo esc_url(admin_url('images/spinner-2x.gif')) ?>',
@@ -2182,212 +2200,221 @@ loading = '<li class="loading"><img height="20px" width="20px" src="'+spinner+'"
2182
 
2183
  //функция добавления ссылки на страницу настроек плагина в раздел "Настройки" begin
2184
  function yturbo_menu() {
2185
- add_options_page('Яндекс.Турбо', 'Яндекс.Турбо', 'manage_options', 'rss-for-yandex-turbo.php', 'yturbo_options_page');
2186
  }
2187
- add_action( 'admin_menu', 'yturbo_menu' );
2188
  //функция добавления ссылки на страницу настроек плагина в раздел "Настройки" end
2189
 
2190
  //создаем метабокс begin
2191
  function yturbo_meta_box() {
2192
- $yturbo_options = get_option('yturbo_options');
2193
- $yttype = $yturbo_options['yttype'];
2194
- $yttype = explode(",", $yttype);
2195
- $yttype = array_diff($yttype, array(''));
2196
-
2197
- $ytqueryselect = $yturbo_options['ytqueryselect'];
2198
- $yttaxlist = $yturbo_options['yttaxlist'];
2199
- $ytaddtaxlist = $yturbo_options['ytaddtaxlist'];
2200
-
2201
- if (!$yttaxlist) {$yttaxlist = 'category:10000000';}
2202
- if ($ytqueryselect=='Все таксономии, кроме исключенных') {
2203
- $textAr = explode("\n", trim($yttaxlist));
2204
- $textAr = array_filter($textAr, 'trim');
2205
- add_meta_box('yturbo_meta_box', 'Яндекс.Турбо', 'yturbo_callback', $yttype, 'normal' , 'high');
2206
- foreach ($textAr as $line) {
2207
- $tax = explode(":", $line);
2208
- $taxterm = explode(",", $tax[1]);
2209
- $taxterm = array_map('intval', $taxterm);
2210
- if ( has_term($taxterm, $tax[0]) ) {
2211
- remove_meta_box('yturbo_meta_box', $yttype, 'normal' );
2212
- break;
2213
- }
2214
- }
2215
- }
2216
- if (!$ytaddtaxlist) {$ytaddtaxlist = 'category:10000000';}
2217
- if ($ytqueryselect=='Только указанные таксономии') {
2218
- $textAr = explode("\n", trim($ytaddtaxlist));
2219
- $textAr = array_filter($textAr, 'trim');
2220
- foreach ($textAr as $line) {
2221
- $tax = explode(":", $line);
2222
- $taxterm = explode(",", $tax[1]);
2223
- $taxterm = array_map('intval', $taxterm);
2224
- if ( has_term($taxterm, $tax[0]) ) {
2225
- add_meta_box('yturbo_meta_box', 'Яндекс.Турбо', 'yturbo_callback', $yttype, 'normal' , 'high');
2226
- break;
2227
- }
2228
- }
2229
- }
2230
  }
2231
- add_action( 'add_meta_boxes', 'yturbo_meta_box' );
2232
  //создаем метабокс end
2233
 
2234
  //сохраняем метабокс begin
2235
- function yturbo_save_metabox( $post_id ) {
2236
-
2237
- if ( ! isset($_POST['yturbo_meta_nonce']) )
2238
- return $post_id;
2239
-
2240
- if ( ! wp_verify_nonce($_POST['yturbo_meta_nonce'], plugin_basename(__FILE__)) )
2241
- return $post_id;
2242
-
2243
- if ( defined('DOING_AUTOSAVE') && DOING_AUTOSAVE )
2244
- return $post_id;
2245
-
2246
- if(isset($_POST['ytrssenabled'])){
2247
- update_post_meta($post_id, 'ytrssenabled_meta_value', 'yes');
2248
- } else {
2249
- update_post_meta($post_id, 'ytrssenabled_meta_value', 'no');
2250
- }
2251
- if(isset($_POST['ytremove'])){
2252
- update_post_meta($post_id, 'ytremove_meta_value', 'yes');
2253
- } else {
2254
- update_post_meta($post_id, 'ytremove_meta_value', 'no');
2255
- }
2256
-
2257
- if(isset($_POST['ytad1meta'])){
2258
- update_post_meta($post_id, 'ytad1meta', 'disabled');
2259
- } else {
2260
- update_post_meta($post_id, 'ytad1meta', 'enabled');
2261
- }
2262
- if(isset($_POST['ytad2meta'])){
2263
- update_post_meta($post_id, 'ytad2meta', 'disabled');
2264
- } else {
2265
- update_post_meta($post_id, 'ytad2meta', 'enabled');
2266
- }
2267
- if(isset($_POST['ytad3meta'])){
2268
- update_post_meta($post_id, 'ytad3meta', 'disabled');
2269
- } else {
2270
- update_post_meta($post_id, 'ytad3meta', 'enabled');
2271
- }
2272
- if(isset($_POST['ytad4meta'])){
2273
- update_post_meta($post_id, 'ytad4meta', 'disabled');
2274
- } else {
2275
- update_post_meta($post_id, 'ytad4meta', 'enabled');
2276
- }
2277
- if(isset($_POST['ytad5meta'])){
2278
- update_post_meta($post_id, 'ytad5meta', 'disabled');
2279
- } else {
2280
- update_post_meta($post_id, 'ytad5meta', 'enabled');
2281
- }
2282
-
2283
- if(isset($_POST['template_meta'])){
2284
- $template_meta = 'yes';
2285
- update_post_meta($post_id, 'template_meta', $template_meta);
2286
- } else {
2287
- $template_meta = 'no';
2288
- update_post_meta($post_id, 'template_meta', $template_meta);
2289
- }
2290
-
2291
- //сохраняем индивидуальный шаблон только, если стоит галочка на его использовании
2292
- if($template_meta == 'yes') {
2293
- $custom_template = esc_textarea($_POST['custom_template']);
2294
- update_post_meta($post_id, 'custom_template', $custom_template);
2295
- }
2296
-
2297
- if(isset($_POST['ytextendedhtmlmeta'])){
2298
- $selected = sanitize_text_field($_POST['ytextendedhtmlmeta']);
2299
- update_post_meta($post_id, 'ytextendedhtmlmeta', $selected);
2300
- }
 
 
 
 
 
2301
  }
2302
- add_action( 'save_post', 'yturbo_save_metabox' );
2303
  //сохраняем метабокс end
2304
 
2305
  //выводим метабокс begin
2306
  function yturbo_callback() {
2307
- global $post;
2308
- $purl = plugins_url('', __FILE__);
2309
- wp_nonce_field( plugin_basename(__FILE__), 'yturbo_meta_nonce' );
2310
-
2311
- $yturbo_options = get_option('yturbo_options');
2312
-
2313
- $ytad1meta = get_post_meta($post->ID, 'ytad1meta', true);
2314
- if (!$ytad1meta) {$ytad1meta = $yturbo_options['ytad1'];}
2315
-
2316
- $ytad2meta = get_post_meta($post->ID, 'ytad2meta', true);
2317
- if (!$ytad2meta) {$ytad2meta = $yturbo_options['ytad2'];}
2318
-
2319
- $ytad3meta = get_post_meta($post->ID, 'ytad3meta', true);
2320
- if (!$ytad3meta) {$ytad3meta = $yturbo_options['ytad3'];}
2321
-
2322
- $ytad4meta = get_post_meta($post->ID, 'ytad4meta', true);
2323
- if (!$ytad4meta) {$ytad4meta = $yturbo_options['ytad4'];}
2324
-
2325
- $ytad5meta = get_post_meta($post->ID, 'ytad5meta', true);
2326
- if (!$ytad5meta) {$ytad5meta = $yturbo_options['ytad5'];}
2327
-
2328
- $ytrssenabled = get_post_meta($post->ID, 'ytrssenabled_meta_value', true);
2329
- if (!$ytrssenabled) {$ytrssenabled = 'no';}
2330
-
2331
- $ytremove = get_post_meta($post->ID, 'ytremove_meta_value', true);
2332
- if (!$ytremove) {$ytremove = 'no';}
2333
-
2334
- $template_meta = get_post_meta($post->ID, 'template_meta', true);
2335
- if (!$template_meta) {$template_meta = 'no';}
2336
-
2337
- $custom_template = get_post_meta($post->ID, 'custom_template', true);
2338
- $custom_template = html_entity_decode(stripcslashes($custom_template),ENT_QUOTES);
2339
- if (!$custom_template) {
2340
- $post_type = get_post_type( get_the_ID() );
2341
- if ( !isset($yturbo_options['template-'.$post_type]) ) {$yturbo_options['template-'.$post_type] = '';}
2342
- if ( $yturbo_options['template-'.$post_type] == '' ) {
2343
- $custom_template = '%%post_content%%';
2344
- } else {
2345
- $custom_template = html_entity_decode(stripcslashes($yturbo_options['template-'.$post_type]),ENT_QUOTES);
2346
- }
2347
- }
2348
- //обрабатываем шаблон функцией wpautop, если активирован блочный редактор
2349
- global $wp_version;
2350
- $block_editor_enabled = false;
2351
- if ( version_compare( $wp_version, '5.0', '>=' ) ) {
2352
- $block_editor_enabled = get_current_screen()->is_block_editor();
2353
- }
2354
- if ( $block_editor_enabled == true ) {
2355
- $custom_template = wpautop( $custom_template );
2356
- }
2357
-
2358
- $ytextendedhtmlmeta = get_post_meta($post->ID, 'ytextendedhtmlmeta', true);
2359
- if (!$ytextendedhtmlmeta) {$ytextendedhtmlmeta = 'default';}
2360
- ?>
2361
-
2362
- <p style="margin: 10px 0px 0px 1px!important;">
 
 
 
 
2363
 
2364
  <script>
2365
  jQuery(document).ready(function($) {
2366
- if ($('#ytrssenabled').is(':checked')) {$temp = 1;}
2367
- if ($('#ytremove').is(':checked')) {$('#ytrssenabled').removeAttr('checked');$('#ytrssenabled').attr('disabled', true);}
2368
- $('#ytrssenabled').change(function() {
2369
- if(this.checked) {
2370
- $temp = 1;
2371
- } else {
2372
- $temp = 0;
2373
- }
2374
- });
2375
- $('#ytremove').change(function() {
2376
- if(this.checked) {
2377
- $('#ytrssenabled').removeAttr('checked');
2378
- $('#ytrssenabled').attr('disabled', true);
2379
- } else {
2380
- $('#ytrssenabled').attr('disabled', false);
2381
- if ($temp == 1) {$('#ytrssenabled').attr ('checked', 'checked');}
2382
- }
2383
- });
2384
- $('#template_meta').change(function() {
2385
- if(this.checked) {
2386
- $('#custom_template_op').fadeIn();
2387
- } else {
2388
- $('#custom_template_op').hide();
2389
- }
2390
- });
2391
  })
2392
  </script>
2393
  <style>
@@ -2397,86 +2424,110 @@ i.mce-i-big {background-image: url('<?php echo $purl; ?>/img/big.png');}
2397
  tt{padding: 1px 5px 1px;margin: 0 1px;background: #eaeaea;background: rgba(0, 0, 0, .07);font-family: Consolas, Monaco, monospace;unicode-bidi: embed;}
2398
  </style>
2399
 
2400
- <label for="ytrssenabled"><input type="checkbox" <?php if ($ytremove != 'yes') {echo 'value="enabled"';}else{echo 'disabled';} ?> name="ytrssenabled" id="ytrssenabled" <?php if ($ytrssenabled == 'yes' && $ytremove != 'yes') echo 'checked="checked"'; ?> /><?php _e('Исключить эту запись из RSS', 'rss-for-yandex-turbo'); ?></label><br />
2401
- <label for="ytremove"><input type="checkbox" name="ytremove" id="ytremove" <?php if ($ytremove == 'yes') echo 'checked="checked"'; ?> /><?php _e('Удалить турбо-страницу для этой записи', 'rss-for-yandex-turbo'); ?></label><br>
2402
-
2403
- <small style="margin-top:5px;"><?php _e('Удалить турбо-страницу можно только, если запись попадет в RSS-ленту.', 'rss-for-yandex-turbo'); ?></small>
2404
- </p>
2405
-
2406
- <p style="margin:10px 0 5px 1px!important;">
2407
-
2408
- <?php if ($yturbo_options['ytad1'] == 'enabled') { ?>
2409
- <label for="ytad1meta"><input type="checkbox" name="ytad1meta" id="ytad1meta" <?php if ($ytad1meta == 'disabled') echo 'checked="checked"'; ?> /><?php _e('Отключить блок рекламы #1 для этой записи (в начале записи)', 'rss-for-yandex-turbo'); ?></label><br />
2410
- <?php } ?>
2411
- <?php if ($yturbo_options['ytad2'] == 'enabled') { ?>
2412
- <label for="ytad2meta"><input type="checkbox" name="ytad2meta" id="ytad2meta" <?php if ($ytad2meta == 'disabled') echo 'checked="checked"'; ?> /><?php _e('Отключить блок рекламы #2 для этой записи (в середине записи)', 'rss-for-yandex-turbo'); ?></label><br />
2413
- <?php } ?>
2414
- <?php if ($yturbo_options['ytad3'] == 'enabled') { ?>
2415
- <label for="ytad3meta"><input type="checkbox" name="ytad3meta" id="ytad3meta" <?php if ($ytad3meta == 'disabled') echo 'checked="checked"'; ?> /><?php _e('Отключить блок рекламы #3 для этой записи (в конце записи)', 'rss-for-yandex-turbo'); ?></label><br />
2416
- <?php } ?>
2417
- <?php if ($yturbo_options['ytad4'] == 'enabled') { ?>
2418
- <label for="ytad4meta"><input type="checkbox" name="ytad4meta" id="ytad4meta" <?php if ($ytad4meta == 'disabled') echo 'checked="checked"'; ?> /><?php _e('Отключить блок рекламы #4 для этой записи (после блока "Поделиться")', 'rss-for-yandex-turbo'); ?></label><br />
2419
- <?php } ?>
2420
- <?php if ($yturbo_options['ytad5'] == 'enabled') { ?>
2421
- <label for="ytad5meta"><input type="checkbox" name="ytad5meta" id="ytad5meta" <?php if ($ytad5meta == 'disabled') echo 'checked="checked"'; ?> /><?php _e('Отключить блок рекламы #5 для этой записи (после комментариев)', 'rss-for-yandex-turbo'); ?></label><br />
2422
- <?php } ?>
2423
- </p>
2424
-
2425
- <p><?php _e('Поддержка CSS:', 'rss-for-yandex-turbo'); ?>
2426
- <select name="ytextendedhtmlmeta">
2427
- <option value="default" <?php if ($ytextendedhtmlmeta == 'default') echo 'selected="selected"'; ?>><?php _e('По умолчанию', 'rss-for-yandex-turbo'); ?></option>
2428
- <option value="enabled" <?php if ($ytextendedhtmlmeta == 'enabled') echo 'selected="selected"'; ?>><?php _e('Включена', 'rss-for-yandex-turbo'); ?></option>
2429
- <option value="disabled" <?php if ($ytextendedhtmlmeta == 'disabled') echo 'selected="selected"'; ?>><?php _e('Выключена', 'rss-for-yandex-turbo'); ?></option>
2430
- </select>
2431
- <small style="margin-top:5px;"><br /><?php _e('При выборе "По умолчанию" используются общие настройки плагина.', 'rss-for-yandex-turbo'); ?></small>
2432
- </p>
2433
-
2434
- <div style="margin:10px 0 5px 1px!important;">
2435
- <label for="template_meta"><input type="checkbox" name="template_meta" id="template_meta" <?php if ($template_meta == 'yes') echo 'checked="checked"'; ?> /><?php _e('Задать индивидуальный шаблон для этой записи', 'rss-for-yandex-turbo'); ?></label><br />
2436
- <div id="custom_template_op" class="foptions" style="margin:5px 0 0 0;margin-top:5px;<?php if ($template_meta != 'yes') echo 'display:none;'; ?>">
2437
- <style>.foptions .wp-editor-wrap .button,.foptions .wp-editor-wrap .button-secondary{color:#555;border-color:#ccc;background:#f7f7f7;box-shadow:0 1px 0 #ccc;vertical-align:top}.foptions .wp-editor-wrap .button-secondary:active,.foptions .wp-editor-wrap .button.active,.foptions .wp-editor-wrap .button.active:hover,.foptions .wp-editor-wrap .button:active{background:#eee;border-color:#999;box-shadow:inset 0 2px 5px -3px rgba(0,0,0,.5);transform:translateY(1px)}.foptions .wp-editor-wrap .button:active,.foptions .wp-editor-wrap .button:focus{outline:2px solid transparent;outline-offset:0}.foptions .wp-editor-wrap .button-secondary:focus,.foptions .wp-editor-wrap .button-secondary:hover,.foptions .wp-editor-wrap .button.focus,.foptions .wp-editor-wrap .button.hover,.foptions .wp-editor-wrap .button:focus,.foptions .wp-editor-wrap .button:hover{background:#fafafa;border-color:#999;color:#23282d}.foptions .wp-editor-area,.foptions .wp-editor-area:active,.foptions .wp-editor-area:focus{box-shadow:0 0 2px rgba(30,140,190,0)!important;border:none!important;border-radius:0!important}.foptions .wp-editor-wrap #insert-media-button:focus,.foptions .wp-editor-wrap .button:focus{border-color:#5b9dd9;box-shadow:0 0 3px rgba(0,115,170,.8)}.foptions .wp-editor-wrap .button-secondary:active,.foptions .wp-editor-wrap .button.active,.foptions .wp-editor-wrap .button.active:hover,.foptions .wp-editor-wrap .button:active{background:#eee;border-color:#999;box-shadow:inset 0 2px 5px -3px rgba(0,0,0,.5);transform:translateY(1px)}.foptions .wp-editor-wrap .mce-ico.mce-i-table{margin-top:2px;height:18px}.foptions #wp-customtemplate-wrap{margin-bottom:6px}.foptions .wp-editor-wrap .mce-btn-has-text .mce-ico {padding-right: 0px!important;}.foptions .wp-editor-wrap .mce-btn-has-text .mce-txt{font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen-Sans,Ubuntu,Cantarell,"Helvetica Neue",sans-serif!important;}</style>
2438
- <div style="margin-top:10px;"></div>
2439
- <?php $settings = array(
2440
- 'textarea_name' => 'custom_template',
2441
- 'wpautop' => 1,
2442
- 'media_buttons' => 1,
2443
- 'textarea_rows' => 16,
2444
- 'editor_height' => 350,
2445
- 'tinymce' => array(
2446
- 'toolbar1' => 'undo,redo,formatselect,bold,italic,underline,strikethrough,superscript,subscript,hr,blockquote,link,unlink,bullist,numlist,table,yablocks,',
2447
- 'toolbar2' => '',
2448
- 'toolbar3' => '',
2449
- 'content_css' => $purl . '/inc/editor.css?ver=' . $yturbo_options['version'],
2450
- ),
2451
- 'quicktags' => array(
2452
- 'id' => 'customtemplate',
2453
- 'buttons' => 'strong,em,link,block,del,hr,img,ul,ol,li,code,close,'
2454
- ),
2455
- ); ?>
2456
- <?php wp_editor( $custom_template, 'customtemplate', $settings ); ?>
2457
- <small><?php _e('Названия произвольных полей должны быть обернуты символами <strong>%%</strong>.', 'rss-for-yandex-turbo'); ?>
2458
- <?php _e('Например, <strong>%%views%%</strong>. Стандартное поле со всем контентом - <strong>%%post_content%%</strong>.', 'rss-for-yandex-turbo'); ?><br />
2459
- <?php _e('Проверяйте отображение записи в "Отладке" в Яндекс.Вебмастере - визуальный редактор WordPress не может отобразить блоки так, как они будут выглядеть на турбо-страницах. ', 'rss-for-yandex-turbo'); ?><br />
2460
- <?php _e('При слишком большом различии контента мобильной версии страницы от ее турбо-версии Яндекс может выдать ошибку и отключить турбо-страницу для этой записи.', 'rss-for-yandex-turbo'); ?><br />
2461
- <?php _e('Документацию по оформлению элементов турбо-страниц вы можете посмотреть <a target="_blank" href="https://yandex.ru/dev/turbo/doc/rss/elements/index-docpage/">тут</a>, список встроенных в плагин шорткодов <a target="_blank" href="https://ru.wordpress.org/plugins/rss-for-yandex-turbo/#%D0%BA%D0%B0%D0%BA%D0%B8%D0%B5%20%D1%88%D0%BE%D1%80%D1%82%D0%BA%D0%BE%D0%B4%D1%8B%20%D0%BC%D0%BE%D0%B6%D0%BD%D0%BE%20%D0%B8%D1%81%D0%BF%D0%BE%D0%BB%D1%8C%D0%B7%D0%BE%D0%B2%D0%B0%D1%82%D1%8C%20%D0%B2%20%D1%88%D0%B0%D0%B1%D0%BB%D0%BE%D0%BD%D0%B0%D1%85%3F">здесь</a>.', 'rss-for-yandex-turbo'); ?><br />
2462
-
2463
- <?php if ( $block_editor_enabled == true ) { ?>
2464
- <?php _e('<br /><span style="color:red;">Внимание!</span> Вы используете блочный редактор, в этом случае автоформатирование текста на основе переноса строк работать не будет, расставляйте ', 'rss-for-yandex-turbo'); ?><br />
2465
- <?php _e('теги <tt>&lt;p></tt> и <tt>&lt;br /></tt> вручную или в визуальном режиме редактора (плагин потом заменит код <tt>&lt;p>%%post_content%%&lt;/p></tt> на <tt>%%post_content%%</tt>).', 'rss-for-yandex-turbo'); ?><br />
2466
- <?php } ?>
2467
- </small>
2468
- </div>
2469
- </div>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
2470
 
2471
  <?php }
2472
  //выводим метабокс end
2473
 
2474
  //добавляем новую rss-ленту begin
2475
  function yturbo_add_feed() {
2476
- $yturbo_options = get_option('yturbo_options');
2477
- add_feed($yturbo_options['ytrssname'], 'yturbo_feed_template');
2478
  }
2479
- add_action( 'init', 'yturbo_add_feed' );
2480
  //добавляем новую rss-ленту end
2481
 
2482
  //шаблон для RSS-ленты Яндекс.Турбо begin
@@ -2500,12 +2551,12 @@ $ytthumbnail = $yturbo_options['ytthumbnail'];
2500
  $ytselectthumb = $yturbo_options['ytselectthumb'];
2501
 
2502
  if ( yturbo_check_ads() == true ) {
2503
- $yturbo_options['ytad1'] = 'disabled';
2504
- $yturbo_options['ytad2'] = 'disabled';
2505
- $yturbo_options['ytad3'] = 'disabled';
2506
- $yturbo_options['ytad4'] = 'disabled';
2507
- $yturbo_options['ytad5'] = 'disabled';
2508
- update_option('yturbo_options', $yturbo_options);
2509
  }
2510
  $ytad1 = $yturbo_options['ytad1'];
2511
  $ytad1set = $yturbo_options['ytad1set'];
@@ -2559,19 +2610,19 @@ $ytselectmenu = $yturbo_options['ytselectmenu'];
2559
  $ytcomments = $yturbo_options['ytcomments'];
2560
  $ytcommentsnumber = $yturbo_options['ytcommentsnumber'];
2561
  $ytcommentsorder = $yturbo_options['ytcommentsorder'];
2562
- if ($ytcommentsorder=='В начале новые комментарии'){
2563
- $reverse_top_level=false;
2564
- $reverse_children=false;
2565
  } else {
2566
- $reverse_top_level=true;
2567
- $reverse_children=true;
2568
  }
2569
  $ytcommentsdate = $yturbo_options['ytcommentsdate'];
2570
  $ytcommentsdrevo = $yturbo_options['ytcommentsdrevo'];
2571
- if ($ytcommentsdrevo=='enabled') {
2572
- $ytcommentsdrevo = 2;
2573
  } else {
2574
- $ytcommentsdrevo = 1;
2575
  }
2576
  $ytpostdate = $yturbo_options['ytpostdate'];
2577
 
@@ -2580,448 +2631,447 @@ $ytratingmin = $yturbo_options['ytratingmin'];
2580
  $ytratingmax = $yturbo_options['ytratingmax'];
2581
  $ytrelateddate = $yturbo_options['ytrelateddate'];
2582
 
2583
- if ($ytqueryselect=='Все таксономии, кроме исключенных' && $yttaxlist) {
2584
- $textAr = explode("\n", trim($yttaxlist));
2585
- $textAr = array_filter($textAr, 'trim');
2586
- $tax_query = array( 'relation' => 'AND' );
2587
- foreach ($textAr as $line) {
2588
- $tax = explode(":", $line);
2589
- $taxterm = explode(",", $tax[1]);
2590
- $tax_query[] = array(
2591
- 'taxonomy' => $tax[0],
2592
- 'field' => 'id',
2593
- 'terms' => $taxterm,
2594
- 'operator' => 'NOT IN',
2595
- );
2596
- }
2597
  }
2598
- if (!$ytaddtaxlist) {$ytaddtaxlist = 'category:10000000';}
2599
- if ($ytqueryselect=='Только указанные таксономии') {
2600
- $textAr = explode("\n", trim($ytaddtaxlist));
2601
- $textAr = array_filter($textAr, 'trim');
2602
- $tax_query = array( 'relation' => 'OR' );
2603
- foreach ($textAr as $line) {
2604
- $tax = explode(":", $line);
2605
- $taxterm = explode(",", $tax[1]);
2606
- $tax_query[] = array(
2607
- 'taxonomy' => $tax[0],
2608
- 'field' => 'id',
2609
- 'terms' => $taxterm,
2610
- 'operator' => 'IN',
2611
- );
2612
- }
2613
  }
2614
 
2615
- if ($ytrazb == 'enabled' && $ytrazbnumber) {
2616
- if (isset($_GET['paged'])) {
2617
- $paged = $_GET['paged'];
2618
- } else {
2619
- $paged = 1;
2620
- }
2621
- if ($paged == 0) {$paged = 1;}
2622
  } else {
2623
- $paged = 1;
2624
- $ytrazbnumber = $ytnumber;
2625
  }
2626
  if ( isset($_GET['lenta']) && $_GET['lenta'] == 'trash' ) {
2627
- yturbo_lenta_trash();
2628
- exit;
2629
  }
2630
 
2631
  //если в настройках не выбраны типы записей, то отключаем дефолтный post_type равный 'post'
2632
- if(!isset($yttype[0])){$yttype=array();$yttype[0]='trulala';}
2633
 
2634
  $args = array(
2635
- 'paged' => $paged,
2636
- 'ignore_sticky_posts' => 1,
2637
- 'post_type' => $yttype,
2638
- 'post_status' => 'publish',
2639
- 'posts_per_page' => $ytrazbnumber,
2640
- 'tax_query' => $tax_query,
2641
- 'meta_query' => array(
2642
- 'relation' => 'OR',
2643
- array('key' => 'ytrssenabled_meta_value', 'compare' => 'NOT EXISTS',),
2644
- array('key' => 'ytrssenabled_meta_value', 'value' => 'yes', 'compare' => '!=',),
2645
- )
2646
  );
2647
- $args = apply_filters( 'yturbo_query_args', $args );
2648
- $query = new WP_Query( $args );
2649
 
2650
  header('Content-Type: ' . feed_content_type('rss2') . '; charset=' . get_option('blog_charset'), true);
2651
  echo '<?xml version="1.0" encoding="'.get_option('blog_charset').'"?'.'>'.PHP_EOL;
2652
  ?>
2653
- <rss
2654
- xmlns:yandex="http://news.yandex.ru"
2655
- xmlns:media="http://search.yahoo.com/mrss/"
2656
- xmlns:turbo="http://turbo.yandex.ru"
2657
- version="2.0">
2658
  <channel>
2659
- <turbo:cms_plugin>C125AEEC6018B4A0EF9BF40E6615DD17</turbo:cms_plugin>
2660
- <title><?php echo esc_attr(stripslashes($yttitle)); ?></title>
2661
- <link><?php echo esc_html($ytlink); ?></link>
2662
- <description><?php echo esc_attr(stripslashes($ytdescription)); ?></description>
2663
- <?php if ($ytmetrika) { ?><turbo:analytics id="<?php echo $ytmetrika; ?>" type="Yandex"></turbo:analytics><?php echo PHP_EOL; ?><?php } ?>
2664
- <?php if ($ytliveinternet) { ?><turbo:analytics type="LiveInternet"></turbo:analytics><?php echo PHP_EOL; ?><?php } ?>
2665
- <?php if ($ytgoogle) { ?><turbo:analytics id="<?php echo $ytgoogle; ?>" type="Google"></turbo:analytics><?php echo PHP_EOL; ?><?php } ?>
2666
- <?php if ($ytmailru) { ?><turbo:analytics id="<?php echo $ytmailru; ?>" type="MailRu"></turbo:analytics><?php echo PHP_EOL; ?><?php } ?>
2667
- <?php if ($ytrambler) { ?><turbo:analytics id="<?php echo $ytrambler; ?>" type="Rambler"></turbo:analytics><?php echo PHP_EOL; ?><?php } ?>
2668
- <?php if ($ytmediascope) { ?><turbo:analytics id="<?php echo $ytmediascope; ?>" type="Mediascope"></turbo:analytics><?php echo PHP_EOL; ?><?php } ?>
2669
- <?php do_action( 'yturbo_ads_header' ); echo yturbo_turbo_ads(); ?>
2670
- <language><?php echo $ytlanguage; ?></language>
2671
- <generator>RSS for Yandex Turbo v<?php echo $yturbo_options['version']; ?> (https://wordpress.org/plugins/rss-for-yandex-turbo/)</generator>
2672
- <?php do_action( 'yturbo_generator' ); ?>
2673
- <?php while($query->have_posts()) : $query->the_post(); ?>
2674
- <?php $ytremove = get_post_meta(get_the_ID(), 'ytremove_meta_value', true); ?>
2675
- <?php if ($ytremoveturbo != 'enabled' && $ytremove != 'yes') { ?>
2676
- <item turbo="true">
2677
- <?php } else { ?>
2678
- <item turbo="false">
2679
- <?php } ?>
2680
- <title><?php echo get_the_title_rss(); ?></title>
2681
- <link><?php the_permalink_rss(); ?></link>
2682
- <turbo:topic><?php echo get_the_title_rss(); ?></turbo:topic>
2683
- <turbo:source><?php the_permalink_rss(); ?></turbo:source>
2684
- <?php $ytextendedhtmlmeta = get_post_meta(get_the_ID(), 'ytextendedhtmlmeta', true);
2685
- $ytextendedhtml = $yturbo_options['ytextendedhtml'];
2686
- if ( ! $ytextendedhtmlmeta or $ytextendedhtmlmeta == 'default' ) {
2687
- $temphtml = $ytextendedhtml;
2688
- } else {
2689
- $temphtml = $ytextendedhtmlmeta;
2690
- }
2691
- if ( $temphtml == 'enabled' ) { echo '<turbo:extendedHtml>true</turbo:extendedHtml>'.PHP_EOL;}
2692
- ?>
2693
- <?php if ($ytpostdate == 'enabled') : ?>
2694
- <?php $gmt_offset = get_option('gmt_offset');
2695
- $gmt_offset_abs = floor(abs($gmt_offset));
2696
- $gmt_offset_str = ($gmt_offset_abs > 9) ? $gmt_offset_abs.'00' : ('0'.$gmt_offset_abs.'00');
2697
- $gmt_offset_str = $gmt_offset >= 0 ? '+' . $gmt_offset_str : '-' . $gmt_offset_str; ?>
2698
- <?php if ($yturbo_options['ytdateformat'] == 'create') { ?>
2699
- <pubDate><?php echo mysql2date('D, d M Y H:i:s '.$gmt_offset_str, get_date_from_gmt(get_post_time('Y-m-d H:i:s', true)), false); ?></pubDate>
2700
- <?php } ?>
2701
- <?php if ($yturbo_options['ytdateformat'] == 'mod') { ?>
2702
- <pubDate><?php echo mysql2date('D, d M Y H:i:s '.$gmt_offset_str, get_date_from_gmt(get_post_modified_time('Y-m-d H:i:s', true)), false); ?></pubDate>
2703
- <?php } ?>
2704
- <?php endif; ?>
2705
- <?php if ($ytauthorselect != 'Отключить указание автора') { ?>
2706
- <?php if ($ytauthor && $ytauthorselect != 'Автор записи') {
2707
- echo '<author>'.$ytauthor.'</author>'.PHP_EOL;
2708
- } else {
2709
- echo '<author>'.get_the_author().'</author>'.PHP_EOL;
2710
- } } ?>
2711
- <turbo:content><![CDATA[
2712
- <?php
2713
- global $post;
2714
- $tt = $post;
2715
- $content = yturbo_the_content_feed();
2716
- $post = $tt;
2717
- setup_postdata( $post );
2718
- $content = yturbo_build_template($content);
2719
- $post = $tt;
2720
- setup_postdata( $post );
2721
-
2722
- if ($ytexcludetags != 'disabled' && $ytexcludetagslist) {
2723
- $content = yturbo_strip_tags_without_content($content, $ytexcludetagslist);
2724
- }
2725
- if ($ytexcludetags2 != 'disabled' && $ytexcludetagslist2) {
2726
- $content = yturbo_strip_tags_with_content($content, $ytexcludetagslist2, true);
2727
- }
2728
-
2729
- //удаляем все атрибуты тега img кроме src
2730
- $content = yturbo_strip_attributes($content,array('src'));
2731
-
2732
- $content = wpautop($content);
2733
-
2734
- //удаляем unicode-символы (как невалидные в rss)
2735
- $content = preg_replace('/[\x00-\x08\x0B\x0C\x0E-\x1F\x7F]/u', '', $content);
2736
-
2737
- //убираем лишние figure вокруг галереи (на 5.9 изменилась разметка плюс лишние figure, если прописано описание галереи)
2738
- //<tempgallery> будет убрано позже в yturbo_do_gallery
2739
- $content = preg_replace_callback('#(<figure class=\"wp-block-gallery[^>]*>)(.+?)(</figure>\n</figure>|</figure><figcaption class="blocks-gallery-caption">(.*?)</figcaption></figure>)#is', function($m){
2740
- $pattern = '/<figure(.*?)><img(.*?)>(.*?)<\/figure>/i';
2741
- $replacement = '<img$2>';
2742
- $m[2] = preg_replace($pattern, $replacement, $m[2]);
2743
- return('<tempgallery>'.$m[2].'</tempgallery>');
2744
- }, $content);
2745
-
2746
- //удаляем разметку движка при использовании шорткода с подписью [caption] (в html4 темах - classic editor)
2747
- $pattern = "/<div(.*?)>(.*?)<img(.*?)\/>(.*?)<\/p>\n<p(.*?)>(.*?)<\/p>\n<\/div>/i";
2748
- $replacement = '<tempfigure>$2<tempimg$3/>$4<tempfigcaption>$6</tempfigcaption></tempfigure>';
2749
- $content = preg_replace($pattern, $replacement, $content);
2750
- //разметка описания на случай, если тег div удаляется в настройках плагина
2751
- $pattern = "/<p>(.*?)<img(.*?)\/>(.*?)<\/p>\n<p(.*?)class=\"wp-caption-text\">(.*?)<\/p>/i";
2752
- $replacement = '<tempfigure>$1<tempimg$2/>$3<tempfigcaption>$5</tempfigcaption></tempfigure>';
2753
- $content = preg_replace($pattern, $replacement, $content);
2754
-
2755
- //удаляем разметку движка при использовании шорткода с подписью [caption] (в html5 темах - classic editor)
2756
- $pattern = "/<figure(.*?)>(.*?)<img(.*?)\/>(.*?)<figcaption(.*?)>(.*?)<\/figcaption><\/figure>/i";
2757
- $replacement = '<tempfigure>$2<tempimg$3/>$4<tempfigcaption>$6</tempfigcaption></tempfigure>';
2758
- $content = preg_replace($pattern, $replacement, $content);
2759
-
2760
- //удаляем <figure>, если они изначально присутствуют в контенте записи (с указанным caption - gutenberg)
2761
- $pattern = "/<figure(.*?)>(.*?)<img(.*?)\/>(.*?)<figcaption(.*?)>(.*?)<\/figcaption><\/figure>/i";
2762
- $replacement = '<tempfigure>$2<tempimg$3/>$4<tempfigcaption>$6</tempfigcaption></tempfigure>';
2763
- $content = preg_replace($pattern, $replacement, $content);
2764
-
2765
- //удаляем <figure>, если они изначально присутствуют в контенте записи (без caption - gutenberg)
2766
- $pattern = "/<figure(.*?)>(.*?)<img(.*?)>(.*?)<\/figure>/i";
2767
- $replacement = '<tempfigure>$2<tempimg$3>$4</tempfigure>';
2768
- $content = preg_replace($pattern, $replacement, $content);
2769
-
2770
- //удаляем <figure> вокруг всех остальных элементов (яндекс такое не понимает)
2771
- $pattern = "/<figure(.*?)>/i";
2772
- $replacement = '';
2773
- $content = preg_replace($pattern, $replacement, $content);
2774
- $pattern = "/<\/figure>/i";
2775
- $replacement = '';
2776
- $content = preg_replace($pattern, $replacement, $content);
2777
- $pattern = "/<figcaption(.*?)>(.*?)<\/figcaption>/i";
2778
- $replacement = '';
2779
- $content = preg_replace($pattern, $replacement, $content);
2780
-
2781
- //обрабатываем картинки в ссылках
2782
- $pattern = "/<a(.*?)>(.*?)<img(.*?)>(.*?)<\/a>/i";
2783
- $replacement = '<tempfigure><a$1><tempimg$3></a></tempfigure>';
2784
- $content = preg_replace($pattern, $replacement, $content);
2785
-
2786
- //обрабатываем картинки без ссылок
2787
- $pattern = "/<img(.*?)>/i";
2788
- $replacement = '<tempfigure><tempimg$1></tempfigure>';
2789
- $content = preg_replace($pattern, $replacement, $content);
2790
-
2791
- //удаляем лишние теги параграфов
2792
- $pattern = "/<p><tempfigure>(.*?)<\/tempfigure><\/p>/i";
2793
- $replacement = '<tempfigure>$1</tempfigure>';
2794
- $content = preg_replace($pattern, $replacement, $content);
2795
-
2796
- if ($ytfigcaption == 'Отключить описания') {
2797
- $pattern = "/<tempfigcaption>(.*?)<\/tempfigcaption>/i";
2798
- $replacement = '';
2799
- $content = preg_replace($pattern, $replacement, $content);
2800
- }
2801
-
2802
- $content = str_replace('<tempfigure', '<figure', $content);
2803
- $content = str_replace('</tempfigure>', '</figure>', $content);
2804
- $content = str_replace('<tempfigcaption>', '<figcaption>', $content);
2805
- $content = str_replace('</tempfigcaption>', '</figcaption>', $content);
2806
- $content = str_replace('<tempimg', '<img', $content);
2807
-
2808
- $purl = plugins_url('', __FILE__);
2809
-
2810
- //преобразуем iframe с видео
2811
- $pattern = "/<iframe title=\"(.*?)\"(.*?) allow=\"(.*?)\"(.*?)><\/iframe>/i";
2812
- $replacement = '<iframe$2 allowfullscreen="true"></iframe>';
2813
- $content = preg_replace($pattern, $replacement, $content);
2814
-
2815
- //формируем video для mp4 файлов согласно документации яндекса (гутенберг)
2816
- $pattern = "/<video(.*?)src=\"(.*?).mp4\"><\/video>/i";
2817
- $replacement = '<figure><video><source src="$2.mp4" type="video/mp4" /></video><img src="'.$purl.'/img/video.png'.'" /></figure>';
2818
- $content = preg_replace($pattern, $replacement, $content);
2819
-
2820
- //формируем video для mp4 файлов согласно документации яндекса (классический редактор)
2821
- $content = str_replace('<!--[if lt IE 9]><script>document.createElement(\'video\');</script><![endif]-->', '', $content);
2822
- $content = str_replace('<!--[if lt IE 9]><![endif]-->', '', $content);
2823
- $pattern = "/<video class=\"wp-video-shortcode\"(.*?)><source(.*?)src=\"(.*?).mp4(.*?)\"(.*?)\/>(.*?)<\/video>/i";
2824
- $replacement = '<figure><video><source src="$3.mp4" type="video/mp4" /></video><img src="'.$purl.'/img/video.png'.'" /></figure>';
2825
- $content = preg_replace($pattern, $replacement, $content);
2826
-
2827
- //формируем audio для mp3 файлов (гутенберг)
2828
- $pattern = "/<audio(.*?)src=\"(.*?).mp3\"><\/audio>/i";
2829
- $replacement = '<div data-block="audio" src="$2.mp3"></div>';
2830
- $content = preg_replace($pattern, $replacement, $content);
2831
-
2832
- //формируем audio для mp3 файлов (классический редактор)
2833
- $content = str_replace('<!--[if lt IE 9]><script>document.createElement(\'audio\');</script><![endif]-->', '', $content);
2834
- $pattern = "/<audio class=\"wp-audio-shortcode\"(.*?)><source(.*?)src=\"(.*?).mp3(.*?)\"(.*?)\/>(.*?)<\/audio>/i";
2835
- $replacement = '<div data-block="audio" src="$3.mp3"></div>';
2836
- $content = preg_replace($pattern, $replacement, $content);
2837
-
2838
- //удаляем картинки из контента, если их больше 50 уникальных (ограничение яндекс.турбо)
2839
- if (preg_match_all("/<figure(.*?)>(.*?)<img(.*?)>(.*?)<\/figure>/i", $content, $res)) {
2840
- $i = 0;
2841
- if ($ytrelated=='enabled' && $ytrelatednumber && $ytrelatedinfinity != 'enabled') $i = $ytrelatednumber;
2842
- if ($ytthumbnail=='enabled' && has_post_thumbnail(get_the_ID())) $i++;
2843
- $final = array();
2844
- foreach ($res[0] as $r) {
2845
- if (! in_array($r, $final)) {$i++;}
2846
- if ($i > 50 && ! in_array($r, $final)) {
2847
- $content = str_replace($r, '', $content);
2848
- }
2849
- if (! in_array($r, $final)) {$final[] = $r;}
2850
- }
2851
- }
2852
-
2853
- if ($ytexcludecontent != 'disabled' && $ytexcludecontentlist) {
2854
- $textAr = explode("\n", str_replace(array("\r\n", "\r"), "\n", $ytexcludecontentlist));
2855
- foreach ($textAr as $line) {
2856
- $line = stripcslashes($line);
2857
- $content = str_replace($line, '', $content);
2858
- }
2859
- }
2860
-
2861
- //преобразовываем галереи в турбо-галереи
2862
- add_shortcode('gallery', 'gallery_shortcode');
2863
- add_filter( 'post_gallery', 'yturbo_gallery', 10, 2 );
2864
- $content = do_shortcode($content);
2865
- $content = yturbo_do_gallery($content);
2866
-
2867
- $ytad4meta = get_post_meta($post->ID, 'ytad4meta', true);
2868
- $ytad5meta = get_post_meta($post->ID, 'ytad5meta', true);
2869
-
2870
- $content = apply_filters( 'yturbo_add_contents', $content );
2871
- ?>
2872
- <header>
2873
- <?php
2874
- if ( $ytthumbnail == 'enabled' && has_post_thumbnail( get_the_ID() ) ) {
2875
- $caption = ''; $imgurl = '';
2876
- $caption = get_the_post_thumbnail_caption( get_the_ID() );
2877
- $imgurl = strtok(get_the_post_thumbnail_url( get_the_ID(), $ytselectthumb), '?');
2878
- if ( $caption && $ytfigcaption != 'Отключить описания' ) {
2879
- $temp = '<figcaption>'.$caption.'</figcaption>';}
2880
- else {
2881
- $temp='';
2882
- }
2883
- echo '<figure><img src="'. strtok(get_the_post_thumbnail_url(get_the_ID(),$ytselectthumb), '?') .'" />'.$temp.'</figure>'.PHP_EOL;
2884
- }
2885
- if ( $ytthumbnail == 'enabled' && ! has_post_thumbnail( get_the_ID() ) ) {
2886
- $caption = ''; $imgurl = '';
2887
- $caption = apply_filters('yturbo_thumb_caption', $caption);
2888
- $imgurl = apply_filters('yturbo_thumb_imgurl', $imgurl);
2889
- if ( $caption && $ytfigcaption != 'Отключить описания' ) {
2890
- $temp = '<figcaption>'.$caption.'</figcaption>';}
2891
- else {
2892
- $temp='';
2893
- }
2894
- if ( $imgurl ) {
2895
- echo '<figure><img src="'. $imgurl .'" />'.$temp.'</figure>'.PHP_EOL;
2896
- }
2897
- }
2898
- ?>
2899
- <h1><?php echo get_the_title_rss(); ?></h1>
2900
- <?php if ( $ytselectmenu != 'Не использовать' ) {
2901
- echo '<menu>'.PHP_EOL;
2902
- $menu = wp_get_nav_menu_object( $ytselectmenu );
2903
- $menu_items = wp_get_nav_menu_items($menu->term_id);
2904
-
2905
- foreach ( (array) $menu_items as $key => $menu_item ) {
2906
- $title = $menu_item->title;
2907
- $url = $menu_item->url;
2908
- echo '<a href="' . $url . '">' . $title . '</a>'.PHP_EOL;
2909
- }
2910
-
2911
- echo '</menu>'.PHP_EOL;} ?>
2912
- </header>
2913
- <?php if ($ytrating == 'enabled') {
2914
- $temprating = mt_rand ($ytratingmin*100, $ytratingmax*100) / 100;
2915
- echo '
2916
- <div itemscope itemtype="http://schema.org/Rating">
2917
- <meta itemprop="ratingValue" content="'.$temprating.'">
2918
- <meta itemprop="bestRating" content="5">
2919
- </div>
2920
- ';
2921
- } ?>
2922
- <?php if ($yturbo_options['ytsearch'] != 'disabled' && $yturbo_options['ytsearchmesto'] == 'В начале записи') {echo yturbo_search_widget();} ?>
2923
- <?php if ($yturbo_options['ytfeedback'] != 'disabled' && $yturbo_options['ytfeedbackselect'] == 'false' && $yturbo_options['ytfeedbackselectmesto'] == 'В начале записи') {echo yturbo_widget_feedback();} ?>
2924
- <?php
2925
- $content = apply_filters('yturbo_before_ads', $content);
2926
- $temp = apply_filters('yturbo_add_custom_ads', $content);
2927
- if ( $temp != $content ) {
2928
- echo $temp;
2929
- } else {
2930
- echo yturbo_add_advert($content);
2931
- }
2932
- ?>
2933
- <?php if ($yturbo_options['ytshare'] == 'enabled') {
2934
- echo PHP_EOL.'<div data-block="share" data-network="'.$yturbo_options['ytnetw'].'"></div>';
2935
- if ($ytad4 == 'enabled' && $ytad4meta != 'disabled') { echo PHP_EOL.'<figure data-turbo-ad-id="fourth_ad_place"></figure>'.PHP_EOL; }
2936
- do_action( 'yturbo_after_share' );
2937
- } ?>
2938
- <?php if ($yturbo_options['ytfeedback'] != 'disabled' && $yturbo_options['ytfeedbackselect'] == 'false' && $yturbo_options['ytfeedbackselectmesto'] == 'В конце записи') {echo yturbo_widget_feedback();} ?>
2939
- <?php if ($yturbo_options['ytfeedback'] != 'disabled' && $yturbo_options['ytfeedbackselect'] != 'false') {echo yturbo_widget_feedback();} ?>
2940
- <?php if ($yturbo_options['ytsearch'] != 'disabled' && $yturbo_options['ytsearchmesto'] == 'В конце записи') {echo yturbo_search_widget();} ?>
2941
- <?php if ($ytcomments == 'enabled') {
2942
- $comments = get_comments(array(
2943
- 'post_id' => get_the_ID(),
2944
- 'status' => 'approve',
2945
- ));
2946
- if ($comments) {echo PHP_EOL.'<div data-block="comments" data-url="'.get_permalink().'#respond">';}
2947
- wp_list_comments(array(
2948
- 'type' => 'comment',
2949
- 'per_page' => $ytcommentsnumber,
2950
- 'callback' => 'yturbo_comments',
2951
- 'end-callback' => 'yturbo_comments_end',
2952
- 'title_li' => null,
2953
- 'max_depth' => $ytcommentsdrevo,
2954
- 'reverse_top_level' => $reverse_top_level,
2955
- 'reverse_children' => $reverse_children,
2956
- 'style' => 'div',
2957
- ), $comments);
2958
- if ($comments) {echo '</div>';}
2959
- if ($comments && $ytad5 == 'enabled' && $ytad5meta != 'disabled') { echo PHP_EOL.'<figure data-turbo-ad-id="fifth_ad_place"></figure>'.PHP_EOL; }
2960
- do_action( 'yturbo_after_comments' );
2961
- } ?>
2962
- ]]></turbo:content>
2963
- <?php
2964
- if ( $ytrelated=='enabled' ) {
2965
-
2966
- $tempID = get_the_ID();
2967
- $rcontent = '';
2968
-
2969
- if ($ytrelatedcache == 'enabled') {$rcontent = get_transient('related-' . $tempID);}
2970
-
2971
- if(!$rcontent) {
2972
- $cats = array();
2973
- $childonly = array();
2974
- foreach (get_the_category(get_the_ID()) as $cat) {
2975
- array_push($cats, $cat->cat_ID);
2976
- if ($cat->category_parent !== 0 ) {
2977
- array_push($childonly, $cat->cat_ID);
2978
- }
2979
- }
2980
- if ($childonly) $cats = $childonly;
2981
- $cur_post_id = array();
2982
- array_push($cur_post_id, get_the_ID());
2983
-
2984
- $args = array('post__not_in' => $cur_post_id, 'cat' => $cats,'orderby' => 'rand','date_query' => array('after' => $ytrelateddate . ' month ago',),'ignore_sticky_posts' => 1, 'post_type' => $yttype, 'post_status' => 'publish', 'posts_per_page' => $ytrelatednumber,'tax_query' => $tax_query,'meta_query' => array('relation' => 'OR', array('key' => 'ytrssenabled_meta_value', 'compare' => 'NOT EXISTS',),array('key' => 'ytrssenabled_meta_value', 'value' => 'yes', 'compare' => '!=',),));
2985
- $related = new WP_Query( $args );
2986
-
2987
- if (!$related->have_posts()) {
2988
- $args = array('post__not_in' => $cur_post_id, 'orderby' => 'rand','date_query' => array('after' => $ytrelateddate . ' month ago',),'ignore_sticky_posts' => 1, 'post_type' => $yttype, 'post_status' => 'publish', 'posts_per_page' => $ytrelatednumber,'tax_query' => $tax_query,'meta_query' => array('relation' => 'OR', array('key' => 'ytrssenabled_meta_value', 'compare' => 'NOT EXISTS',),array('key' => 'ytrssenabled_meta_value', 'value' => 'yes', 'compare' => '!=',),));
2989
- $related = new WP_Query( $args );
2990
- }
2991
-
2992
- if ($related->have_posts()) {
2993
- if ( $ytrelatedinfinity == 'disabled') {
2994
- $rcontent .= '<yandex:related>'.PHP_EOL;
2995
- } else {
2996
- $rcontent .= '<yandex:related type="infinity">'.PHP_EOL;
2997
- }
2998
- }
2999
- while ($related->have_posts()) : $related->the_post();
3000
- $ytremove = get_post_meta(get_the_ID(), 'ytremove_meta_value', true);
3001
- if ( $ytremove == 'yes' ) continue;
3002
- $thumburl = '';
3003
- if ($ytrelatedselectthumb != "Не использовать" && has_post_thumbnail(get_the_ID()) && $ytrelatedinfinity != "enabled") {
3004
- $thumburl = ' img="' . strtok(get_the_post_thumbnail_url(get_the_ID(),$ytrelatedselectthumb), '?') . '"';
3005
- }
3006
- $rlink = htmlspecialchars(get_the_permalink());
3007
- $rtitle = get_the_title_rss();
3008
- if ($ytrelatedselectthumb != "Не использовать" && $ytrelatedinfinity != "enabled") {
3009
- $rcontent .= '<link url="'.$rlink.'"'.$thumburl.'>'.$rtitle.'</link>'.PHP_EOL;
3010
- } else {
3011
- $rcontent .= '<link url="'.$rlink.'">'.$rtitle.'</link>'.PHP_EOL;
3012
- }
3013
-
3014
- endwhile;
3015
- if ($related->have_posts()) {$rcontent .= '</yandex:related>'.PHP_EOL;}
3016
- if ($related->have_posts()) {echo $rcontent;}
3017
- wp_reset_query($related);
3018
-
3019
- if ($ytrelatedcache == 'enabled') {set_transient('related-' . $tempID, $rcontent, $ytrelatedcachetime * HOUR_IN_SECONDS);}
3020
- } else {
3021
- echo $rcontent;
3022
- }
3023
- } ?>
3024
- </item>
 
 
 
3025
  <?php endwhile; ?>
3026
  <?php wp_reset_postdata(); ?>
3027
  <?php wp_reset_query(); ?>
@@ -3031,106 +3081,106 @@ echo '<?xml version="1.0" encoding="'.get_option('blog_charset').'"?'.'>'.PHP_EO
3031
  //шаблон для RSS-ленты Яндекс.Турбо end
3032
 
3033
  //установка правильного content type для ленты плагина begin
3034
- function yturbo_feed_content_type( $content_type, $type ) {
3035
- $yturbo_options = get_option('yturbo_options');
3036
- if ( $yturbo_options['ytrssname'] == $type ) {
3037
- $content_type = 'application/rss+xml';
3038
- }
3039
- return $content_type;
3040
  }
3041
- add_filter( 'feed_content_type', 'yturbo_feed_content_type', 10, 2 );
3042
  //установка правильного content type для ленты плагина end
3043
 
3044
  //функция формирования content в rss begin
3045
  function yturbo_the_content_feed() {
3046
- $yturbo_options = get_option('yturbo_options');
3047
- remove_shortcode('gallery');
3048
- if ($yturbo_options['ytexcerpt'] == 'enabled') {
3049
- $content = '';
3050
- if ( has_excerpt( get_the_ID() ) ) {
3051
- $content = '<p>' . get_the_excerpt( get_the_ID() ) . '</p>';
3052
- }
3053
- $content .= apply_filters('the_content', yturbo_strip_shortcodes(get_post_field('post_content', get_the_ID())));
3054
- } else {
3055
- $content = apply_filters('the_content', yturbo_strip_shortcodes(get_post_field('post_content', get_the_ID())));
3056
- }
3057
- $content = apply_filters('yturbo_the_content', $content);
3058
- $content = str_replace(']]>', ']]&gt;', $content);
3059
- $content = apply_filters('wp_staticize_emoji', $content);
3060
- $content = apply_filters('_oembed_filter_feed_content', $content);
3061
- return $content;
3062
  }
3063
  //функция формирования content в rss end
3064
 
3065
  //функция удаления тегов вместе с их контентом begin
3066
- function yturbo_strip_tags_with_content( $text, $tags = '', $invert = FALSE ) {
3067
-
3068
- // удаляем лишние символы, добавляем тегам символы <> begin
3069
- $tags = preg_replace('/[^A-Za-z0-9,]/', '', $tags);
3070
- $a = explode(",", $tags );
3071
- $a = array_diff($a, array(''));
3072
- array_walk($a, function(&$value, $key) { $value = '<'. $value . '>'; } );
3073
- $tags = implode(",", $a );
3074
- // удаляем лишние символы, добавляем тегам символы <> end
3075
-
3076
- preg_match_all( '/<(.+?)[\s]*\/?[\s]*>/si', trim( $tags ), $tags_array );
3077
- $tags_array = array_unique( $tags_array[1] );
3078
-
3079
- $regex = '';
3080
-
3081
- if ( count( $tags_array ) > 0 ) {
3082
- if ( ! $invert ) {
3083
- $regex = '@<(?!(?:' . implode( '|', $tags_array ) . ')\b)(\w+)\b[^>]*?(>((?!<\1\b).)*?<\/\1|\/)>@si';
3084
- $text = preg_replace( $regex, '', $text );
3085
- } else {
3086
- $regex = '@<(' . implode( '|', $tags_array ) . ')\b[^>]*?(>((?!<\1\b).)*?<\/\1|\/)>@si';
3087
- $text = preg_replace( $regex, '', $text );
3088
- }
3089
- } elseif ( ! $invert ) {
3090
- $regex = '@<(\w+)\b[^>]*?(>((?!<\1\b).)*?<\/\1|\/)>@si';
3091
- $text = preg_replace( $regex, '', $text );
3092
- }
3093
-
3094
- if ( $regex && preg_match( $regex, $text ) ) {
3095
- $text = yturbo_strip_tags_with_content( $text, $tags, $invert );
3096
- }
3097
-
3098
- return $text;
3099
  }
3100
  //функция удаления тегов вместе с их контентом end
3101
 
3102
  //функция удаления тегов без их контента begin
3103
- function yturbo_strip_tags_without_content( $text, $tags = '' ) {
3104
-
3105
- // удаляем лишние символы, добавляем тегам символы <> begin
3106
- $tags = preg_replace('/[^A-Za-z0-9,]/', '', $tags);
3107
- $a = explode(",", $tags );
3108
- $a = array_diff($a, array(''));
3109
- array_walk($a, function(&$value, $key) { $value = '<'. $value . '>'; } );
3110
- $tags = implode(",", $a );
3111
- // удаляем лишние символы, добавляем тегам символы <> end
3112
-
3113
- preg_match_all('/<(.+?)[\s]*\/?[\s]*>/si', trim($tags), $tags);
3114
- $tags = array_unique($tags[1]);
3115
-
3116
- if(is_array($tags) AND count($tags) > 0) {
3117
- foreach($tags as $tag) {
3118
- $text = preg_replace("/<\\/?" . $tag . "(.|\\s)*?>/", '', $text);
3119
- }
3120
- }
3121
- return $text;
3122
  }
3123
  //функция удаления тегов без их контента end
3124
 
3125
  //функция принудительной установки header-тега X-Robots-Tag (решение проблемы с SEO-плагинами) begin
3126
  function yturbo_index_follow_rss() {
3127
- $yturbo_options = get_option('yturbo_options');
3128
- if ( is_feed($yturbo_options['ytrssname']) ) {
3129
- header( 'X-Robots-Tag: index, follow', true );
3130
- header( 'HTTP/1.1 200 OK', true );
3131
- }
3132
  }
3133
- add_action( 'template_redirect', 'yturbo_index_follow_rss', 999999 );
3134
  //функция принудительной установки header-тега X-Robots-Tag (решение проблемы с SEO-плагинами) end
3135
 
3136
  //функция подсчета количества rss-лент и их вывод на странице настроек плагина begin
@@ -3150,40 +3200,40 @@ $ytqueryselect = $yturbo_options['ytqueryselect'];
3150
  $yttaxlist = $yturbo_options['yttaxlist'];
3151
  $ytaddtaxlist = $yturbo_options['ytaddtaxlist'];
3152
 
3153
- if ($ytqueryselect=='Все таксономии, кроме исключенных' && $yttaxlist) {
3154
- $textAr = explode("\n", trim($yttaxlist));
3155
- $textAr = array_filter($textAr, 'trim');
3156
- $tax_query = array( 'relation' => 'AND' );
3157
- foreach ($textAr as $line) {
3158
- $tax = explode(":", $line);
3159
- $taxterm = explode(",", $tax[1]);
3160
- $tax_query[] = array(
3161
- 'taxonomy' => $tax[0],
3162
- 'field' => 'id',
3163
- 'terms' => $taxterm,
3164
- 'operator' => 'NOT IN',
3165
- );
3166
- }
3167
  }
3168
- if (!$ytaddtaxlist) {$ytaddtaxlist = 'category:10000000';}
3169
- if ($ytqueryselect=='Только указанные таксономии') {
3170
- $textAr = explode("\n", trim($ytaddtaxlist));
3171
- $textAr = array_filter($textAr, 'trim');
3172
- $tax_query = array( 'relation' => 'OR' );
3173
- foreach ($textAr as $line) {
3174
- $tax = explode(":", $line);
3175
- $taxterm = explode(",", $tax[1]);
3176
- $tax_query[] = array(
3177
- 'taxonomy' => $tax[0],
3178
- 'field' => 'id',
3179
- 'terms' => $taxterm,
3180
- 'operator' => 'IN',
3181
- );
3182
- }
3183
  }
3184
 
3185
- if ($ytnumber > 500) :
3186
- if ($ytrazb == 'enabled') {
3187
  $paged = 2;
3188
  echo '<p>Вы установили слишком большое общее количество записей в RSS (больше 500 записей), <br />
3189
  поэтому чтобы не нагружать базу данных фактическая проверка наличия записей в разбитых <br />
@@ -3192,79 +3242,79 @@ RSS-ленты сервис Яндекс.Вебмастер откажется
3192
  <p>Всего у вас ' . yturbo_russian_number(ceil($ytnumber / $ytrazbnumber), array(' RSS-лента', ' RSS-ленты', ' RSS-лент')) . ' (максимально по '.yturbo_russian_number($ytrazbnumber, array(' запись', ' записи', ' записей')). ' в каждой):</p>';
3193
  echo '<ul style="margin-bottom: 25px;">';
3194
  if ( get_option('permalink_structure') ) {
3195
- echo '<li>1. <a target="_blank" href="'.get_bloginfo("url").'/feed/'.$yturbo_options['ytrssname'].'/">'.get_bloginfo("url").'/feed/'.$yturbo_options['ytrssname'].'/</a></li>';
3196
  } else {
3197
- echo '<li>1. <a target="_blank" href="'.get_bloginfo("url").'/?feed='.$yturbo_options['ytrssname'].'">'.get_bloginfo("url").'/?feed='.$yturbo_options['ytrssname'].'</a></li>';
3198
  }
3199
- while ($paged <= ceil($ytnumber / $ytrazbnumber) ) {
3200
-
3201
- if ( get_option('permalink_structure') ) {
3202
- echo '<li>'.$paged.'. <a target="_blank" href="'.get_bloginfo("url").'/feed/'.$yturbo_options['ytrssname'].'/?paged='.$paged.'">'.get_bloginfo("url").'/feed/'.$yturbo_options['ytrssname'].'/?paged='.$paged.'</a></li>';
3203
- } else {
3204
- echo '<li>'.$paged.'. <a target="_blank" href="'.get_bloginfo("url").'/?feed='.$yturbo_options['ytrssname'].'&paged='.$x.'">'.get_bloginfo("url").'/?feed='.$yturbo_options['ytrssname'].'&paged='.$paged.'</a></li>';
3205
- }
3206
- $paged++;
3207
-
3208
- if ($paged == 10 && (ceil($ytnumber / $ytrazbnumber))>10) {
3209
- echo '<li>....</li>';
3210
- echo '<li>Слишком много RSS-лент, остальные ленты были скрыты (<span id="showlistrss">показать</span>).</li>';
3211
- echo '<div id="allrss" style="display:none;">';
3212
- }
3213
  }
3214
- if ($paged >= 10 && (ceil($ytnumber / $ytrazbnumber))>10) {
3215
- echo '</div>';
3216
  }
3217
  echo '</ul>';
3218
  } else {
3219
- echo '<p>Всего у вас 1 RSS-лента ' . ' (в ней максимально может быть '.yturbo_russian_number($ytnumber, array(' запись', ' записи', ' записей')). '):</p>';
3220
- echo '<ul style="margin-bottom: 25px;">';
3221
- if ( get_option('permalink_structure') ) {
3222
- echo '<li>1. <a target="_blank" href="'.get_bloginfo("url").'/feed/'.$yturbo_options['ytrssname'].'/">'.get_bloginfo("url").'/feed/'.$yturbo_options['ytrssname'].'/</a></li>';
3223
- } else {
3224
- echo '<li>1. <a target="_blank" href="'.get_bloginfo("url").'/?feed='.$yturbo_options['ytrssname'].'">'.get_bloginfo("url").'/?feed='.$yturbo_options['ytrssname'].'</a></li>';
3225
- }
3226
- echo '</ul>';
3227
  }
3228
  else :
3229
 
3230
- if(!isset($yttype[0])){$yttype=array();$yttype[0]='trulala';}//если в настройках не выбраны типы записей, то отключаем дефолтный post_type равный 'post'
3231
  $args = array('ignore_sticky_posts' => 1, 'post_type' => $yttype, 'post_status' => 'publish', 'posts_per_page' => $ytnumber,'tax_query' => $tax_query,
3232
  'meta_query' => array('relation' => 'OR', array('key' => 'ytrssenabled_meta_value', 'compare' => 'NOT EXISTS',),
3233
  array('key' => 'ytrssenabled_meta_value', 'value' => 'yes', 'compare' => '!=',),));
3234
  $query = new WP_Query( $args );
3235
 
3236
- if ($query->post_count < $ytnumber) $ytnumber = $query->post_count;
3237
 
3238
- if ($ytrazb == 'enabled' && (ceil($query->post_count / $ytrazbnumber) > 1)) {
3239
- echo '<p>Согласно настройкам плагина в RSS попадут ' . yturbo_russian_number($query->post_count, array(' запись', ' записи', ' записей')) . ' (максимально: '.$yturbo_options['ytnumber'].').<br/>';
3240
- echo 'Эти ' . yturbo_russian_number($query->post_count, array(' запись', ' записи', ' записей')) . ' распределены по ' . yturbo_russian_number(ceil($query->post_count / $ytrazbnumber), array(' RSS-ленте', ' RSS-лентам', ' RSS-лентам')) . ' (разбитие по '. yturbo_russian_number($ytrazbnumber, array(' записи', ' записям', ' записям')) .'):</p>';
3241
  } else {
3242
- echo '<p>Всего у вас 1 RSS-лента '. ' (в ней '.yturbo_russian_number($ytnumber, array(' запись', ' записи', ' записей')). '):</p>';
3243
  }
3244
 
3245
  echo '<ul style="margin-bottom: 20px;">';
3246
  if ( get_option('permalink_structure') ) {
3247
- echo '<li>1. <a target="_blank" href="'.get_bloginfo("url").'/feed/'.$yturbo_options['ytrssname'].'/">'.get_bloginfo("url").'/feed/'.$yturbo_options['ytrssname'].'/</a></li>';
3248
  } else {
3249
- echo '<li>1. <a target="_blank" href="'.get_bloginfo("url").'/?feed='.$yturbo_options['ytrssname'].'">'.get_bloginfo("url").'/?feed='.$yturbo_options['ytrssname'].'</a></li>';
3250
  }
3251
 
3252
- if ($ytrazb == 'enabled' && (ceil($query->post_count / $ytrazbnumber) > 1)) {
3253
- for ($x=1; $x++<ceil($query->post_count / $ytrazbnumber);) {
3254
- if ( get_option('permalink_structure') ) {
3255
- echo '<li>'.$x.'. <a target="_blank" href="'.get_bloginfo("url").'/feed/'.$yturbo_options['ytrssname'].'/?paged='.$x.'">'.get_bloginfo("url").'/feed/'.$yturbo_options['ytrssname'].'/?paged='.$x.'</a></li>';
3256
- } else {
3257
- echo '<li>'.$x.'. <a target="_blank" href="'.get_bloginfo("url").'/?feed='.$yturbo_options['ytrssname'].'&paged='.$x.'">'.get_bloginfo("url").'/?feed='.$yturbo_options['ytrssname'].'&paged='.$x.'</a></li>';
3258
- }
3259
- if ($x == 9 && (ceil($query->post_count / $ytrazbnumber))>9) {
3260
- echo '<li>....</li>';
3261
- echo '<li>Слишком много RSS-лент, остальные ленты были скрыты (<span id="showlistrss">показать</span>).</li>';
3262
- echo '<div id="allrss" style="display:none;">';
3263
- }
3264
- }
3265
- if (ceil($query->post_count / $ytrazbnumber)>9) {
3266
- echo '</div>';
3267
- }
3268
  }
3269
 
3270
  echo '</ul>';
@@ -3274,809 +3324,796 @@ endif;
3274
  //функция подсчета количества rss-лент и их вывод на странице настроек плагина end
3275
 
3276
  //функция склонения слов после числа begin
3277
- function yturbo_russian_number( $number, $titles ) {
3278
- $cases = array (2, 0, 1, 1, 1, 2);
3279
- return $number . ' ' . $titles[ ($number%100 > 4 && $number %100 < 20) ? 2 : $cases[min($number%10, 5)] ];
3280
  }
3281
  //функция склонения слов после числа end
3282
 
3283
  //функция добавления рекламы в запись begin
3284
  function yturbo_add_advert( $content ) {
3285
 
3286
- $yturbo_options = get_option('yturbo_options');
3287
- $ytrazmer = $yturbo_options['ytrazmer'];
3288
- $ytad1 = $yturbo_options['ytad1'];
3289
- $ytad2 = $yturbo_options['ytad2'];
3290
- $ytad3 = $yturbo_options['ytad3'];
3291
 
3292
- $tempcontent = $content;
3293
- $tempcontent = strip_tags($tempcontent);
3294
- $tempcontent = preg_replace("/(^[\r\n]*|[\r\n]+)[\s\t]*[\r\n]+/", "\n", $tempcontent);
3295
 
3296
- $num = ceil(mb_strlen($tempcontent) / 2);
3297
 
3298
- global $post;
3299
- $ytad1meta = get_post_meta($post->ID, 'ytad1meta', true);
3300
- $ytad2meta = get_post_meta($post->ID, 'ytad2meta', true);
3301
- $ytad3meta = get_post_meta($post->ID, 'ytad3meta', true);
3302
 
3303
- if ($ytad2 != 'enabled' or $ytad2meta == 'disabled') {$ads ='';}
3304
 
3305
- if ($ytad2 == 'enabled' && $ytad2meta != 'disabled') {
3306
- $ads = PHP_EOL.'<figure data-turbo-ad-id="second_ad_place"></figure>';
3307
- }
3308
 
3309
- if (mb_strlen($tempcontent) > (int)$ytrazmer && mb_strlen($tempcontent) < 65000) {
3310
- $content = preg_replace('~[^^]{'. $num .'}.*?(?:\r?\n\r?\n|</p>|</figure>|</ul>|</pre>|</table>|</ol>|</blockquote>)~su', "\${0}$ads", trim( $content ), 1);
3311
- }
3312
 
3313
- if ($ytad1 == 'enabled' && $ytad1meta != 'disabled') { $content = '<figure data-turbo-ad-id="first_ad_place"></figure>'.PHP_EOL . $content;}
3314
- if ($ytad3 == 'enabled' && $ytad3meta != 'disabled') { $content = PHP_EOL . $content . PHP_EOL.'<figure data-turbo-ad-id="third_ad_place"></figure>';}
3315
 
3316
- return $content;
3317
  }
3318
  //функция добавления рекламы в запись end
3319
 
3320
  //функция удаления всех атрибутов тега img кроме указанных begin
3321
  function yturbo_strip_attributes( $s, $allowedattr = array() ) {
3322
 
3323
- if (preg_match_all("/<img[^>]*\\s([^>]*)\\/*>/msiU", $s, $res, PREG_SET_ORDER)) {
3324
- foreach ($res as $r) {
3325
- $tag = $r[0];
3326
- $attrs = array();
3327
- preg_match_all("/\\s.*=(['\"]).*\\1/msiU", " " . $r[1], $split, PREG_SET_ORDER);
3328
- foreach ($split as $spl) {
3329
- $attrs[] = $spl[0];
3330
- }
3331
- $newattrs = array();
3332
- foreach ($attrs as $a) {
3333
- $tmp = explode("=", $a);
3334
- if (trim($a) != "" && (!isset($tmp[1]) || (trim($tmp[0]) != "" && !in_array(strtolower(trim($tmp[0])), $allowedattr)))) {
3335
-
3336
- } else {
3337
- $newattrs[] = $a;
3338
- }
3339
- }
3340
-
3341
- //сортировка чтобы alt был раньше src
3342
- sort($newattrs);
3343
- reset($newattrs);
3344
-
3345
- $attrs = implode(" ", $newattrs);
3346
- $rpl = str_replace($r[1], $attrs, $tag);
3347
- //заменяем одинарные кавычки на двойные
3348
- $rpl = str_replace("'", "\"", $rpl);
3349
- $rpl = str_replace(" ", " ", $rpl);
3350
- //добавляем закрывающий символ / если он отсутствует
3351
- $rpl = str_replace("\">", "\" />", $rpl);
3352
- //добавляем пробел перед закрывающим символом /
3353
- $rpl = str_replace("\"/>", "\" />", $rpl);
3354
- //удаляем двойные пробелы
3355
- $rpl = str_replace(" ", " ", $rpl);
3356
-
3357
- $s = str_replace($tag, $rpl, $s);
3358
- }
3359
- }
3360
-
3361
- return $s;
3362
  }
3363
  //функция удаления всех атрибутов тега img кроме указанных end
3364
 
3365
  //функция удаления транзитного кэша для похожих записей begin
3366
  function yturbo_clear_transients() {
3367
- global $wpdb;
3368
 
3369
- $sql = "
3370
  DELETE
3371
  FROM {$wpdb->options}
3372
  WHERE option_name like '\_transient\_related-%'
3373
  OR option_name like '\_transient\_timeout\_related-%'
3374
  ";
3375
 
3376
- $wpdb->query($sql);
3377
  }
3378
  //функция удаления транзитного кэша для похожих записей end
3379
 
3380
  //функция преобразования стандартных галерей движка в турбо-галереи begin
3381
- function yturbo_gallery( $output, $attr ) {
3382
-
3383
- $yturbo_options = get_option('yturbo_options');
3384
- if ( ! is_feed($yturbo_options['ytrssname']) ) {return;}
3385
-
3386
- $post = get_post();
3387
-
3388
- static $instance = 0;
3389
- $instance++;
3390
-
3391
- if ( ! empty( $attr['ids'] ) ) {
3392
- // 'ids' is explicitly ordered, unless you specify otherwise.
3393
- if ( empty( $attr['orderby'] ) ) {
3394
- $attr['orderby'] = 'post__in';
3395
- }
3396
- $attr['include'] = $attr['ids'];
3397
- }
3398
-
3399
- $html5 = current_theme_supports( 'html5', 'gallery' );
3400
- $atts = shortcode_atts( array(
3401
- 'order' => 'ASC',
3402
- 'orderby' => 'menu_order ID',
3403
- 'id' => $post ? $post->ID : 0,
3404
- 'itemtag' => $html5 ? 'figure' : 'dl',
3405
- 'icontag' => $html5 ? 'div' : 'dt',
3406
- 'captiontag' => $html5 ? 'figcaption' : 'dd',
3407
- 'columns' => 3,
3408
- 'size' => 'thumbnail',
3409
- 'include' => '',
3410
- 'exclude' => '',
3411
- 'link' => ''
3412
- ), $attr, 'gallery' );
3413
-
3414
- $id = intval( $atts['id'] );
3415
-
3416
- $atts['include'] = str_replace(array("&#187;","&#8243;"), "", $atts['include']);
3417
- $atts['orderby'] = str_replace(array("&#187;","&#8243;"), "", $atts['orderby']);
3418
- $atts['order'] = str_replace(array("&#187;","&#8243;"), "", $atts['order']);
3419
- $atts['exclude'] = str_replace(array("&#187;","&#8243;"), "", $atts['exclude']);
3420
-
3421
- if ( ! empty( $atts['include'] ) ) {
3422
- $_attachments = get_posts( array( 'include' => $atts['include'], 'post_status' => 'inherit', 'post_type' => 'attachment', 'post_mime_type' => 'image', 'order' => $atts['order'], 'orderby' => $atts['orderby'] ) );
3423
-
3424
- $attachments = array();
3425
- foreach ( $_attachments as $key => $val ) {
3426
- $attachments[$val->ID] = $_attachments[$key];
3427
- }
3428
-
3429
- } elseif ( ! empty( $atts['exclude'] ) ) {
3430
- $attachments = get_children( array( 'post_parent' => $id, 'exclude' => $atts['exclude'], 'post_status' => 'inherit', 'post_type' => 'attachment', 'post_mime_type' => 'image', 'order' => $atts['order'], 'orderby' => $atts['orderby'] ) );
3431
- } else {
3432
- $attachments = get_children( array( 'post_parent' => $id, 'post_status' => 'inherit', 'post_type' => 'attachment', 'post_mime_type' => 'image', 'order' => $atts['order'], 'orderby' => $atts['orderby'] ) );
3433
- }
3434
-
3435
- if ( empty( $attachments ) ) {
3436
- return '';
3437
- }
3438
-
3439
- $output = PHP_EOL.'<div data-block="gallery">'.PHP_EOL;
3440
-
3441
- foreach ( $attachments as $id => $attachment ) {
3442
- $output .= '<img src="'.wp_get_attachment_url($id) . '"/>'.PHP_EOL;
3443
- }
3444
-
3445
- $output .= '</div>'.PHP_EOL;
3446
-
3447
- return $output;
 
3448
  }
3449
  //функция преобразования стандартных галерей движка в турбо-галереи end
3450
 
3451
  //функция преобразования стандартных галерей движка в турбо-галереи в гутенберге begin
3452
- function yturbo_do_gallery( $content ) {
3453
-
3454
- //удаляем ul разметку галерей в гутенберге (wordpress 5.0+)
3455
- $pattern = "/<ul class=\"wp-block-gallery(.*?)>(.*?)<\/ul>/s";
3456
- $replacement = '<div data-block="gallery">$2</div>';
3457
- $content = preg_replace($pattern, $replacement, $content);
3458
-
3459
- //удаляем ul разметку галерей в гутенберге (wordpress 5.3+)
3460
- $pattern = "/<ul class=\"blocks-gallery-grid(.*?)>(.*?)<\/ul>/s";
3461
- $replacement = '<div data-block="gallery">$2</div>';
3462
- $content = preg_replace($pattern, $replacement, $content);
3463
-
3464
- //удаляем li разметку галерей в гутенберге
3465
- $pattern = "/<li class=\"blocks-gallery-item\">\n<figure>(.*?)<img src=\"(.*?)\" \/>(.*?)<\/figure>\n<\/li>/i";
3466
- $replacement = '<img src="$2"/>';
3467
- $content = preg_replace($pattern, $replacement, $content);
3468
-
3469
- $pattern = "/<li class=\"blocks-gallery-item\">\n<figure>(.*?)<img src=\"(.*?)\" \/>(.*?)<\/figure>\n<\/li>/i";
3470
- $replacement = '<img src="$2"/>';
3471
- $content = preg_replace($pattern, $replacement, $content);
3472
-
3473
- //удаляем двойную обертку (tempgallery)
3474
- $content = str_replace('<tempgallery><div data-block="gallery">','<div data-block="gallery">',$content);
3475
- $content = str_replace('</div></tempgallery>',PHP_EOL.'</div>',$content);
3476
- //двойная оберка только на 5.8 и ниже, на 5.9 и выше убираем так
3477
- $content = str_replace('<tempgallery>','<div data-block="gallery">',$content);
3478
- $content = str_replace('</tempgallery>',PHP_EOL.'</div>',$content);
3479
-
3480
- return $content;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
3481
  }
3482
  //функция преобразования стандартных галерей движка в турбо-галереи в гутенберге end
3483
 
3484
  //функции открытия и закрытия комментариев begin
3485
- function yturbo_comments( $comment, $args, $depth ) {
3486
- $yturbo_options = get_option('yturbo_options');
3487
- $ytcommentsdate = $yturbo_options['ytcommentsdate'];
3488
- $ytcommentsdrevo = $yturbo_options['ytcommentsdrevo'];
3489
- $ytcommentsavatar = $yturbo_options['ytcommentsavatar'];
3490
- echo PHP_EOL;
3491
- ?>
3492
- <div data-block="comment"
3493
- data-author="<?php comment_author(); ?>"
3494
- <?php if ($ytcommentsavatar=='enabled') { ?>
3495
- data-avatar-url="<?php echo esc_url( get_avatar_url( $comment, 100 ) ); ?>"
3496
- <?php } ?>
3497
- <?php if ($ytcommentsdate=='enabled') { ?>
3498
- data-subtitle="<?php echo get_comment_date(); ?> в <?php echo get_comment_time(); ?>"
3499
- <?php } ?>
3500
- >
3501
- <div data-block="content">
3502
- <?php comment_text(); ?>
3503
- </div>
3504
- <?php if ($args['has_children'] && $ytcommentsdrevo=='enabled') { ?><?php echo '<div data-block="comments">'; ?><?php }
3505
  }
3506
 
3507
- function yturbo_comments_end( $comment, $args, $depth ) {
3508
  $yturbo_options = get_option('yturbo_options');
3509
  $ytcommentsdrevo = $yturbo_options['ytcommentsdrevo'];
3510
  ?>
3511
- </div>
3512
- <?php if ($depth==1 && $ytcommentsdrevo=='enabled') { ?><?php echo '</div>'; ?><?php } ?>
3513
  <?php }
3514
  //функции открытия и закрытия комментариев end
3515
 
3516
  //функция формирования объявлений рекламной сети begin
3517
  function yturbo_turbo_ads() {
3518
- $yturbo_options = get_option('yturbo_options');
3519
-
3520
- $ytcomments = $yturbo_options['ytcomments'];
3521
- $ytshare = $yturbo_options['ytshare'];
3522
-
3523
- $ytad1 = $yturbo_options['ytad1'];
3524
- $ytad1set = $yturbo_options['ytad1set'];
3525
- $ytad1rsa = $yturbo_options['ytad1rsa'];
3526
- $ytadfox1 = html_entity_decode(stripcslashes($yturbo_options['ytadfox1']),ENT_QUOTES);
3527
- $ytad2 = $yturbo_options['ytad2'];
3528
- $ytad2set = $yturbo_options['ytad2set'];
3529
- $ytad2rsa = $yturbo_options['ytad2rsa'];
3530
- $ytadfox2 = html_entity_decode(stripcslashes($yturbo_options['ytadfox2']),ENT_QUOTES);
3531
- $ytad3 = $yturbo_options['ytad3'];
3532
- $ytad3set = $yturbo_options['ytad3set'];
3533
- $ytad3rsa = $yturbo_options['ytad3rsa'];
3534
- $ytadfox3 = html_entity_decode(stripcslashes($yturbo_options['ytadfox3']),ENT_QUOTES);
3535
- $ytad4 = $yturbo_options['ytad4'];
3536
- $ytad4set = $yturbo_options['ytad4set'];
3537
- $ytad4rsa = $yturbo_options['ytad4rsa'];
3538
- $ytadfox4 = html_entity_decode(stripcslashes($yturbo_options['ytadfox4']),ENT_QUOTES);
3539
- $ytad5 = $yturbo_options['ytad5'];
3540
- $ytad5set = $yturbo_options['ytad5set'];
3541
- $ytad5rsa = $yturbo_options['ytad5rsa'];
3542
- $ytadfox5 = html_entity_decode(stripcslashes($yturbo_options['ytadfox5']),ENT_QUOTES);
3543
-
3544
- $yturboads = '';
3545
- if ($ytad1 == 'enabled') {
3546
- if ($ytad1set == 'РСЯ') {
3547
- $yturboads .= '<turbo:adNetwork type="Yandex" id="'.$ytad1rsa.'" turbo-ad-id="first_ad_place"></turbo:adNetwork>'.PHP_EOL;
3548
- }
3549
- if ($ytad1set == 'ADFOX') {
3550
- $yturboads .= '<turbo:adNetwork type="AdFox" turbo-ad-id="first_ad_place">
3551
- <![CDATA[
3552
- '.$ytadfox1.'
3553
- ]]>
3554
- </turbo:adNetwork>'.PHP_EOL;
3555
- }
3556
- }
3557
- if ($ytad2 == 'enabled') {
3558
- if ($ytad2set == 'РСЯ') {
3559
- $yturboads .= '<turbo:adNetwork type="Yandex" id="'.$ytad2rsa.'" turbo-ad-id="second_ad_place"></turbo:adNetwork>'.PHP_EOL;
3560
- }
3561
- if ($ytad2set == 'ADFOX') {
3562
- $yturboads .= '<turbo:adNetwork type="AdFox" turbo-ad-id="second_ad_place">
3563
- <![CDATA[
3564
- '.$ytadfox2.'
3565
- ]]>
3566
- </turbo:adNetwork>'.PHP_EOL;
3567
- }
3568
- }
3569
- if ($ytad3 == 'enabled') {
3570
- if ($ytad3set == 'РСЯ') {
3571
- $yturboads .= '<turbo:adNetwork type="Yandex" id="'.$ytad3rsa.'" turbo-ad-id="third_ad_place"></turbo:adNetwork>'.PHP_EOL;
3572
- }
3573
- if ($ytad3set == 'ADFOX') {
3574
- $yturboads .= '<turbo:adNetwork type="AdFox" turbo-ad-id="third_ad_place">
3575
- <![CDATA[
3576
- '.$ytadfox3.'
3577
- ]]>
3578
- </turbo:adNetwork>'.PHP_EOL;
3579
- }
3580
- }
3581
- if ($ytad4 == 'enabled' && $ytshare == 'enabled') {
3582
- if ($ytad4set == 'РСЯ') {
3583
- $yturboads .= '<turbo:adNetwork type="Yandex" id="'.$ytad4rsa.'" turbo-ad-id="fourth_ad_place"></turbo:adNetwork>'.PHP_EOL;
3584
- }
3585
- if ($ytad4set == 'ADFOX') {
3586
- $yturboads .= '<turbo:adNetwork type="AdFox" turbo-ad-id="fourth_ad_place">
3587
- <![CDATA[
3588
- '.$ytadfox4.'
3589
- ]]>
3590
- </turbo:adNetwork>'.PHP_EOL;
3591
- }
3592
- }
3593
- if ($ytad5 == 'enabled' && $ytcomments == 'enabled') {
3594
- if ($ytad5set == 'РСЯ') {
3595
- $yturboads .= '<turbo:adNetwork type="Yandex" id="'.$ytad5rsa.'" turbo-ad-id="fifth_ad_place"></turbo:adNetwork>'.PHP_EOL;
3596
- }
3597
- if ($ytad5set == 'ADFOX') {
3598
- $yturboads .= '<turbo:adNetwork type="AdFox" turbo-ad-id="fifth_ad_place">
3599
- <![CDATA[
3600
- '.$ytadfox5.'
3601
- ]]>
3602
- </turbo:adNetwork>'.PHP_EOL;
3603
- }
3604
- }
3605
-
3606
- return $yturboads;
3607
  }
3608
  //функция формирования объявлений рекламной сети end
3609
 
3610
  //функция вывода виджета обратной связи begin
3611
  function yturbo_widget_feedback() {
3612
- $yturbo_options = get_option('yturbo_options');
3613
-
3614
- if ($yturbo_options['ytfeedback'] == 'disabled')
3615
- return;
3616
-
3617
- $content = PHP_EOL.PHP_EOL.'<div data-block="widget-feedback" data-title="'.$yturbo_options['ytfeedbacktitle'].'" data-stick="'.$yturbo_options['ytfeedbackselect'].'">'.PHP_EOL;
3618
-
3619
- $ytfeedbacknetw = explode(",", $yturbo_options['ytfeedbacknetw']);
3620
- $ytfeedbacknetw = array_diff($ytfeedbacknetw, array(''));
3621
-
3622
- foreach ($ytfeedbacknetw as $network) {
3623
- switch ($network) {
3624
- case 'call':
3625
- if ($yturbo_options['ytfeedbackcall']) {
3626
- $content .= '<div data-type="call" data-url="'.$yturbo_options['ytfeedbackcall'].'"></div>'.PHP_EOL;
3627
- }
3628
- break;
3629
- case 'callback':
3630
- if ($yturbo_options['ytfeedbackcallback']) {
3631
- $content .= '<div data-type="callback" data-send-to="'.$yturbo_options['ytfeedbackcallback'].'"';
3632
- if ($yturbo_options['ytfeedbackcallback2'] && $yturbo_options['ytfeedbackcallback3']) {
3633
- $content .= ' data-agreement-company="'.esc_attr(stripslashes($yturbo_options['ytfeedbackcallback2'])).'" data-agreement-link="'.$yturbo_options['ytfeedbackcallback3'].'"';
3634
- }
3635
- }
3636
- $content .= '></div>'.PHP_EOL;
3637
- break;
3638
- case 'chat':
3639
- $content .= '<div data-type="chat"></div>'.PHP_EOL;
3640
- break;
3641
- case 'mail':
3642
- if ($yturbo_options['ytfeedbackmail']) {
3643
- $content .= '<div data-type="mail" data-url="'.$yturbo_options['ytfeedbackmail'].'"></div>'.PHP_EOL;
3644
- }
3645
- break;
3646
- case 'vkontakte':
3647
- if ($yturbo_options['ytfeedbackvkontakte']) {
3648
- $content .= '<div data-type="vkontakte" data-url="'.$yturbo_options['ytfeedbackvkontakte'].'"></div>'.PHP_EOL;
3649
- }
3650
- break;
3651
- case 'odnoklassniki':
3652
- if ($yturbo_options['ytfeedbackodnoklassniki']) {
3653
- $content .= '<div data-type="odnoklassniki" data-url="'.$yturbo_options['ytfeedbackodnoklassniki'].'"></div>'.PHP_EOL;
3654
- }
3655
- break;
3656
- case 'twitter':
3657
- if ($yturbo_options['ytfeedbacktwitter']) {
3658
- $content .= '<div data-type="twitter" data-url="'.$yturbo_options['ytfeedbacktwitter'].'"></div>'.PHP_EOL;
3659
- }
3660
- break;
3661
- case 'facebook':
3662
- if ($yturbo_options['ytfeedbackfacebook']) {
3663
- $content .= '<div data-type="facebook" data-url="'.$yturbo_options['ytfeedbackfacebook'].'"></div>'.PHP_EOL;
3664
- }
3665
- break;
3666
- case 'viber':
3667
- if ($yturbo_options['ytfeedbackviber']) {
3668
- $content .= '<div data-type="viber" data-url="'.$yturbo_options['ytfeedbackviber'].'"></div>'.PHP_EOL;
3669
- }
3670
- break;
3671
- case 'whatsapp':
3672
- if ($yturbo_options['ytfeedbackwhatsapp']) {
3673
- $content .= '<div data-type="whatsapp" data-url="'.$yturbo_options['ytfeedbackwhatsapp'].'"></div>'.PHP_EOL;
3674
- }
3675
- break;
3676
- case 'telegram':
3677
- if ($yturbo_options['ytfeedbacktelegram']) {
3678
- $content .= '<div data-type="telegram" data-url="'.$yturbo_options['ytfeedbacktelegram'].'"></div>'.PHP_EOL;
3679
- }
3680
- break;
3681
- }
3682
- }
3683
- unset($network);
3684
-
3685
- $content .= '</div>'.PHP_EOL;
3686
- return $content;
3687
  }
3688
  //функция вывода виджета обратной связи end
3689
 
3690
  //функция удаления указанных шорткодов begin
3691
- function yturbo_strip_shortcodes( $content ) {
3692
- $yturbo_options = get_option('yturbo_options');
3693
 
3694
- //выполняем блоки гутенберга
3695
- global $wp_version;
3696
- if ( version_compare( $wp_version, '5.0', '>=' ) ) {
3697
- $content = do_blocks( $content );
3698
- }
3699
 
3700
- if ($yturbo_options['ytexcludeshortcodes'] == 'disabled' or !$yturbo_options['ytexcludeshortcodeslist']) return $content;
3701
 
3702
- global $shortcode_tags;
3703
- $stack = $shortcode_tags;
3704
 
3705
- $code = explode(",", $yturbo_options['ytexcludeshortcodeslist']);
3706
- $code = array_diff($code, array(''));
3707
 
3708
- $how_many = count($code);
3709
- for($i = 0; $i < $how_many; $i++){
3710
- $arr[$code[$i]] = 1;
3711
- }
3712
 
3713
- $shortcode_tags = $arr;
3714
- $content = strip_shortcodes($content);
3715
- $shortcode_tags = $stack;
3716
 
3717
- return $content;
3718
  }
3719
  //функция удаления указанных шорткодов end
3720
 
3721
  //функция формирования контента по шаблону begin
3722
- function yturbo_build_template( $post_content ) {
3723
- $yturbo_options = get_option('yturbo_options');
3724
-
3725
- $post_type = get_post_type( get_the_ID() );
3726
-
3727
- if ( !isset($yturbo_options['template-'.$post_type]) ) {$yturbo_options['template-'.$post_type] = '';}
3728
- if( $yturbo_options['template-'.$post_type] == '' ) {$yturbo_options['template-'.$post_type] = '%%post_content%%';}
3729
-
3730
- $content = html_entity_decode(stripcslashes($yturbo_options['template-'.$post_type]),ENT_QUOTES);
3731
-
3732
- //проверка на индивидуальный шаблон записи (если включен и существует)
3733
- $template_meta = get_post_meta(get_the_ID(), 'template_meta', true);
3734
- if( $template_meta == 'yes' ) {
3735
- $custom_template = get_post_meta(get_the_ID(), 'custom_template', true);
3736
- $custom_template = html_entity_decode(stripcslashes($custom_template),ENT_QUOTES);
3737
- if (!$custom_template) {$custom_template=$content;}
3738
- $content = $custom_template;
3739
- }
3740
-
3741
- //сначала обработаем шаблон произвольным фильтром
3742
- $content = apply_filters('yturbo_the_template', $content);
3743
-
3744
- //заменяем переменные на произвольные поля
3745
- if (preg_match_all("/%%(.*?)%%/i", $content, $res)) {
3746
- foreach ($res[0] as $r) {
3747
- if($r != '%%post_content%%') {
3748
- $temp = str_replace('%%', '', $r);
3749
- $content = str_replace($r, get_post_meta(get_the_ID(), $temp, true), $content);
3750
- }
3751
- }
3752
- }
3753
-
3754
- //обрабатываем шаблон фильтрами для RSS
3755
- $content = do_shortcode($content);
3756
- $content = str_replace(']]>', ']]&gt;', $content);
3757
- $content = apply_filters('wp_staticize_emoji', $content);
3758
- $content = apply_filters('_oembed_filter_feed_content', $content);
3759
-
3760
- //заменяем в шаблоне переменную %%post_content%% на контент записи
3761
- $content = str_replace('<p>%%post_content%%</p>', '%%post_content%%', $content);
3762
- $content = str_replace('%%post_content%%', $post_content, $content);
3763
-
3764
- return $content;
3765
  }
3766
  //функция формирования контента по шаблону end
3767
 
3768
  //функция вывода блока поиска begin
3769
  function yturbo_search_widget() {
3770
- $yturbo_options = get_option('yturbo_options');
3771
 
3772
- $url = get_bloginfo('url') . '/?s={s}';
3773
- $content = PHP_EOL.'<form action="'. $url . '" method="GET"><input type="search" name="s" placeholder="' . $yturbo_options['ytsearchplaceholder'] . '" /></form>'.PHP_EOL;
3774
 
3775
- return $content;
3776
  }
3777
  //функция вывода блока поиска end
3778
 
3779
  //вставка оглавления записи begin
3780
- function yturbo_toc( $content ) {
3781
- $yturbo_options = get_option('yturbo_options');
3782
-
3783
- if ( ! is_feed($yturbo_options['ytrssname']) )
3784
- return $content;
3785
-
3786
- if ( $yturbo_options['yttoc'] == 'disabled' )
3787
- return $content;
3788
-
3789
- $types = $yturbo_options['yttype2'];
3790
- $types = explode(",", $types);
3791
- $types = array_diff($types, array(''));
3792
-
3793
- if ( ! in_array( get_post_type( get_the_ID() ), $types ) )
3794
- return $content;
3795
-
3796
- //подключение файла с классом YTurbo_Contents begin
3797
- require_once dirname( __FILE__ ) . '/inc/Contents.php';
3798
- //подключение файла с классом YTurbo_Contents end
3799
-
3800
- $selectors = array();
3801
- if ($yturbo_options['yttoch1']=='enabled'){array_push($selectors, 'h1');}
3802
- if ($yturbo_options['yttoch2']=='enabled'){array_push($selectors, 'h2');}
3803
- if ($yturbo_options['yttoch3']=='enabled'){array_push($selectors, 'h3');}
3804
- if ($yturbo_options['yttoch4']=='enabled'){array_push($selectors, 'h4');}
3805
- if ($yturbo_options['yttoch5']=='enabled'){array_push($selectors, 'h5');}
3806
- if ($yturbo_options['yttoch6']=='enabled'){array_push($selectors, 'h6');}
3807
-
3808
- $args = array(
3809
- 'css' => false,
3810
- 'to_menu' => false,
3811
- 'title' => $yturbo_options['yttoczag'],
3812
- 'min_found' => $yturbo_options['yttocnumber'],
3813
- 'min_length' => 10,
3814
- 'page_url' => get_the_permalink(),
3815
- 'selectors' => $selectors,
3816
- );
3817
-
3818
- $contents = YTurbo_Contents::init( $args )->make_contents( $content );
3819
-
3820
- $contents = str_replace("\n", '', $contents);
3821
- $contents = trim(preg_replace('/\t+/', '', $contents));
3822
- $contents = wpautop($contents);
3823
-
3824
- if ( $yturbo_options['yttocmesto'] == 'В начале записи' ) {
3825
- return PHP_EOL . $contents . $content;
3826
- }
3827
- if ( $yturbo_options['yttocmesto'] == 'В конце записи' ) {
3828
- return $content . $contents . PHP_EOL;
3829
- }
3830
- if ( $yturbo_options['yttocmesto'] == 'Перед первым заголовком' ) {
3831
- $pattern = "/<h(.*?)>/i";
3832
- $replacement = $contents . PHP_EOL . '<h$1>';
3833
- $content = preg_replace($pattern, $replacement, $content, 1);
3834
- return $content;
3835
- }
3836
- if ( $yturbo_options['yttocmesto'] == 'После первого заголовка' ) {
3837
- $pattern = "/<\/h(.*?)>/i";
3838
- $replacement = '</h$1>' . PHP_EOL . PHP_EOL . $contents;
3839
- $content = preg_replace($pattern, $replacement, $content, 1);
3840
- return $content;
3841
- }
3842
  }
3843
- add_filter( 'yturbo_add_contents', 'yturbo_toc' );
3844
  //вставка оглавления записи end
3845
 
3846
  //функция удаления эмоджи begin
3847
- function yturbo_remove_emoji( $text ) {
3848
- $emoji = '/[(\x{1F600}-\x{1F64F})|(\x{2700}-\x{27BF})|(\x{1F680}-\x{1F6FF})|(\x{24C2}-\x{1F251})|(\x{1F30D}-\x{1F567})|(\x{1F900}-\x{1F9FF})|(\x{1F300}-\x{1F5FF})]/mu';
3849
- $text = preg_replace($emoji, '', $text);
3850
- $text = trim($text);
3851
 
3852
- return $text;
3853
  }
3854
  //функция удаления эмоджи end
3855
 
3856
  //приводим заголовки записей в соответствие с требованиями яндекса begin
3857
- function yturbo_filter_title_rss( $title ) {
3858
- $yturbo_options = get_option('yturbo_options');
3859
-
3860
- //если это не лента плагина возвращаем оригинальный заголовок
3861
- if ( ! is_feed($yturbo_options['ytrssname']) )
3862
- return $title;
3863
-
3864
- //удаляем эмоджи (яндекс выдает на них ошибку)
3865
- $title = yturbo_remove_emoji($title);
3866
- //устанавливаем заголовком название сайта, если заголовок пустой
3867
- $title = yturbo_empty_title($title);
3868
- //преобразуем спец. символы в html-сущности
3869
- $title = esc_html($title);
3870
- //обрезаем заголовок по словам, чтобы не превышать ограничение в 240 символов
3871
- $title = yturbo_cut_by_words(237, $title);
3872
- //обрабатываем фильтром для установки пользовательского заголовка
3873
- $title = apply_filters('yturbo_custom_title', $title);
3874
-
3875
- return $title;
3876
  }
3877
- add_filter( 'the_title_rss', 'yturbo_filter_title_rss' );
3878
  //приводим заголовки записей в соответствие с требованиями яндекса end
3879
 
3880
  //функция обрезки текста по словам begin
3881
- function yturbo_cut_by_words( $maxlen, $text ) {
3882
- $len = (mb_strlen($text) > $maxlen)? mb_strripos(mb_substr($text, 0, $maxlen), ' ') : $maxlen;
3883
- $cutStr = mb_substr($text, 0, $len);
3884
- $temp = (mb_strlen($text) > $maxlen)? $cutStr. '...' : $cutStr;
3885
- return $temp;
3886
  }
3887
  //функция обрезки текста по словам end
3888
 
3889
  //функция установки не пустого заголовка begin
3890
- function yturbo_empty_title( $title ) {
3891
- $yturbo_options = get_option('yturbo_options');
3892
 
3893
- if ( ! $title ) {
3894
- $title = $yturbo_options['yttitle'];
3895
- }
3896
 
3897
- return $title;
3898
  }
3899
  //функция установки не пустого заголовка end
3900
 
3901
  //добавляем плагины в визуальный редактор begin
3902
- function yturbo_add_plugins_tinymce( $plugins ) {
3903
- $yturbo_options = get_option('yturbo_options');
3904
- $purl = plugins_url('', __FILE__);
3905
- $plugins['yablocks'] = $purl . '/inc/yablocks.js?ver=' . $yturbo_options['version'];
3906
- $plugins['table'] = $purl . '/inc/table.js?ver=' . $yturbo_options['version'];
3907
- return $plugins;
3908
  }
3909
- add_filter( 'mce_external_plugins', 'yturbo_add_plugins_tinymce' );
3910
  //добавляем плагины в визуальный редактор end
3911
 
3912
  //замена протокола в ссылках при отключении турбо-страниц begin
3913
- function yturbo_filter_permalink_rss( $url ) {
3914
- $yturbo_options = get_option('yturbo_options');
3915
 
3916
- if ( ! is_feed($yturbo_options['ytrssname']) )
3917
- return $url;
3918
 
3919
- if ( $yturbo_options['ytremoveturbo'] != 'enabled' )
3920
- return $url;
3921
 
3922
- if ( $yturbo_options['ytprotokol'] == 'asis' )
3923
- return $url;
3924
 
3925
- if ( $yturbo_options['ytprotokol'] == 'http' ) {
3926
- $url = str_replace('https://', 'http://', $url);
3927
- }
3928
 
3929
- if ( $yturbo_options['ytprotokol'] == 'https' ) {
3930
- $url = str_replace('http://', 'https://', $url);
3931
- }
3932
 
3933
- return $url;
3934
  }
3935
- add_filter( 'the_permalink_rss', 'yturbo_filter_permalink_rss' );
3936
  //замена протокола в ссылках при отключении турбо-страниц end
3937
 
3938
  //добавляем колонку "Турбо" в админке на странице списка записей begin
3939
- function yturbo_add_column_name( $defaults ) {
3940
- $purl = plugins_url('', __FILE__);
3941
- $defaults['yturbo'] = '<span class="screen-reader-text">Яндекс.Турбо</span><img title="Яндекс.Турбо" style="width: 20px;height: 20px;vertical-align: bottom;" src="' . $purl . '/img/yablocks.png" />';
3942
- return $defaults;
3943
  }
3944
  function yturbo_css_for_column_yturbo() {
3945
- echo '<style>.column-yturbo{width: 3.0em;}</style>';
3946
  }
3947
- function yturbo_add_column_content( $column_name, $post_id ) {
3948
- if ($column_name === 'yturbo') {
3949
-
3950
- $yturbo_options = get_option('yturbo_options');
3951
-
3952
- $ytrssenabled = get_post_meta( $post_id, 'ytrssenabled_meta_value', true );
3953
- $ytremove = get_post_meta( $post_id, 'ytremove_meta_value', true );
3954
-
3955
- $content = '';
3956
- if ( $ytrssenabled == 'yes' ) { $content = '<span title="Запись исключена из RSS-ленты (вручную)" style="vertical-align: middle;color:#72777c;" class="dashicons dashicons-no-alt"></span>'; }
3957
- if ( $ytremove == 'yes' ) { $content = '<span title="Турбо-страница на удалении" style="vertical-align: middle;color:#df2424;" class="dashicons dashicons-no-alt"></span>'; }
3958
- if ( $ytremove != 'yes' && $ytrssenabled != 'yes' ) { $content = '<span title="Запись есть в RSS-ленте" style="vertical-align: middle;color:#0a8f0a;" class="dashicons dashicons-yes"></span>'; }
3959
-
3960
- $ytqueryselect = $yturbo_options['ytqueryselect'];
3961
- $yttaxlist = $yturbo_options['yttaxlist'];
3962
- $ytaddtaxlist = $yturbo_options['ytaddtaxlist'];
3963
-
3964
- if ($ytqueryselect=='Все таксономии, кроме исключенных' && $yttaxlist) {
3965
- $textAr = explode("\n", trim($yttaxlist));
3966
- $textAr = array_filter($textAr, 'trim');
3967
- foreach ($textAr as $line) {
3968
- $tax = explode(":", $line);
3969
- $taxterm = explode(",", $tax[1]);
3970
- $taxterm = array_map('intval', $taxterm);
3971
- if ( has_term($taxterm, $tax[0]) ) {
3972
- $content = '<span title="Запись исключена из RSS-ленты (фильтр по таксономии)" style="vertical-align: middle;color:#72777c;" class="dashicons dashicons-no-alt"></span>';
3973
- break;
3974
- }
3975
- }
3976
- }
3977
- if (!$ytaddtaxlist) {$ytaddtaxlist = 'category:10000000';}
3978
- if ($ytqueryselect=='Только указанные таксономии') {
3979
- $textAr = explode("\n", trim($ytaddtaxlist));
3980
- $textAr = array_filter($textAr, 'trim');
3981
- foreach ($textAr as $line) {
3982
- $tax = explode(":", $line);
3983
- $taxterm = explode(",", $tax[1]);
3984
- $taxterm = array_map('intval', $taxterm);
3985
- if ( has_term($taxterm, $tax[0]) ) {
3986
- $content = '<span title="Запись есть в RSS-ленте" style="vertical-align: middle;color:#0a8f0a;" class="dashicons dashicons-yes"></span>';
3987
- break;
3988
- } else {
3989
- $content = '<span title="Запись исключена из RSS-ленты (фильтр по таксономии)" style="vertical-align: middle;color:#72777c;" class="dashicons dashicons-no-alt"></span>';
3990
- }
3991
- }
3992
- }
3993
-
3994
- if ( get_post_status($post_id) != 'publish' ) {
3995
- $content = '<span title="Записи нет в RSS-ленте (запись не опубликована)" style="vertical-align: middle;color:#72777c;" class="dashicons dashicons-no-alt"></span>';
3996
- }
3997
-
3998
- echo $content;
3999
- }
 
 
 
 
 
 
4000
  }
4001
  function yturbo_add_columns() {
4002
- $yturbo_options = get_option('yturbo_options');
4003
 
4004
- if ( $yturbo_options['ytturbocolumn'] == 'disabled' )
4005
- return;
4006
 
4007
- $yttype = explode( ",", $yturbo_options['yttype'] );
4008
- $yttype = array_diff( $yttype, array('') );
4009
 
4010
- foreach ( $yttype as $post_type ) {
4011
- if ( 'page' === $post_type ) continue;
4012
- add_filter( "manage_{$post_type}_posts_columns", "yturbo_add_column_name", 5 );
4013
- add_action( "manage_{$post_type}_posts_custom_column", "yturbo_add_column_content", 5, 2 );
4014
- }
4015
 
4016
- if ( in_array('page', $yttype) ) {
4017
- add_filter( 'manage_pages_columns', 'yturbo_add_column_name', 5 );
4018
- add_action( 'manage_pages_custom_column', 'yturbo_add_column_content', 5, 2 );
4019
- }
4020
 
4021
- add_action( 'admin_head', 'yturbo_css_for_column_yturbo' );
4022
  }
4023
- add_action( 'wp_loaded', 'yturbo_add_columns' );
4024
  //добавляем колонку "Турбо" в админке на странице списка записей end
4025
 
4026
  //шорткод вывода ссылки на запись begin
4027
- function yt_permalink_func( $atts ) {
4028
- return esc_url( apply_filters( 'the_permalink_rss', get_permalink() ) );
4029
  }
4030
- add_shortcode( 'yt-permalink', 'yt_permalink_func' );
4031
  //шорткод вывода ссылки на запись end
4032
 
4033
  //шорткод вывода заголовка записи begin
4034
- function yt_title_func( $atts ) {
4035
- return get_the_title_rss();
4036
  }
4037
- add_shortcode( 'yt-title', 'yt_title_func' );
4038
  //шорткод вывода заголовка записи end
4039
 
4040
  //функция проверки наличия плагина "WPCase: Turbo Ads" begin
4041
  function yturbo_check_ads() {
4042
- include_once( ABSPATH . 'wp-admin/includes/plugin.php' );
4043
- if ( is_plugin_active( 'wpcase-turbo-ads/wpcase-turbo-ads.php' ) ) {
4044
- return true;
4045
- } else {
4046
- return false;
4047
- }
4048
  }
4049
  //функция проверки наличия плагина "WPCase: Turbo Ads" end
4050
 
4051
  //скрываем произвольные поля плагина begin
4052
- function yturbo_hide_custom_fields( $protected, $meta_key ){
4053
- $hide_meta_keys = array(
4054
- 'ytad1meta',
4055
- 'ytad2meta',
4056
- 'ytad3meta',
4057
- 'ytad4meta',
4058
- 'ytad5meta',
4059
- 'ytremove_meta_value',
4060
- 'ytrssenabled_meta_value',
4061
- 'template_meta',
4062
- 'custom_template',
4063
- 'ytextendedhtmlmeta',
4064
- );
4065
- if ( in_array($meta_key, $hide_meta_keys) ) {
4066
- return true;
4067
- }
4068
- return $protected;
 
4069
  }
4070
- add_filter( 'is_protected_meta', 'yturbo_hide_custom_fields', 10, 2 );
4071
  //скрываем произвольные поля плагина end
4072
 
4073
  //функция определения доступных для удаления тегов begin
4074
  function yturbo_tags_list() {
4075
 
4076
- $tags_list = 'abbr,acronym,address,applet,area,article,aside,audio,base,basefont,bb,bdo,big,body,button,canvas,caption,center,cite,code,col,colgroup,command,datagrid,datalist,dd,del,details,dfn,dialog,dir,div,dl,dt,embed,eventsource,fieldset,font,footer,form,frame,frameset,head,header,hgroup,html,ins,isindex,kbd,keygen,label,legend,main,map,mark,menu,meter,nav,noframes,noscript,object,optgroup,option,output,param,pre,progress,q,rp,rt,ruby,samp,script,section,svg,select,small,span,style,time,title,tt,var,wbr,sidebar';
4077
- $tags_list = apply_filters( 'yturbo_tags_list', $tags_list );
4078
 
4079
- return $tags_list;
4080
  }
4081
  //функция определения доступных для удаления тегов end
4082
 
@@ -4087,141 +4124,136 @@ $yturbo_options = get_option('yturbo_options');
4087
  header('Content-Type: ' . feed_content_type('rss2') . '; charset=' . get_option('blog_charset'), true);
4088
  echo '<?xml version="1.0" encoding="'.get_option('blog_charset').'"?'.'>'.PHP_EOL;
4089
  ?>
4090
- <rss
4091
- xmlns:yandex="http://news.yandex.ru"
4092
- xmlns:media="http://search.yahoo.com/mrss/"
4093
- xmlns:turbo="http://turbo.yandex.ru"
4094
- version="2.0">
4095
  <channel>
4096
- <turbo:cms_plugin>C125AEEC6018B4A0EF9BF40E6615DD17</turbo:cms_plugin>
4097
- <title><?php echo stripslashes($yturbo_options['yttitle']); ?></title>
4098
- <link><?php echo esc_html($yturbo_options['ytlink']); ?></link>
4099
- <description><?php echo esc_attr(stripslashes($yturbo_options['ytdescription'])); ?></description>
4100
- <language><?php echo esc_attr($yturbo_options['ytlanguage']); ?></language>
4101
- <generator>RSS for Yandex Turbo v<?php echo $yturbo_options['version']; ?> (https://wordpress.org/plugins/rss-for-yandex-turbo/)</generator>
4102
- <?php if ( $yturbo_options['ytexcludeurlslist'] ) {
4103
- $textAr = explode("\n", str_replace(array("\r\n", "\r"), "\n", $yturbo_options['ytexcludeurlslist']));
4104
- $i = 0;
4105
- foreach ($textAr as $line) {
4106
- $line = stripcslashes($line);
4107
- $line = '<item turbo="false"><link>' . $line . '</link></item>' . PHP_EOL;
4108
- if ($i > 0) echo ' ';
4109
- echo $line;
4110
- $i++;
4111
- }
4112
- } else {
4113
- //чтобы яндекс не ругался на пустую ленту, если на удалении нет записей
4114
- echo '<item turbo="false"><link>' . get_bloginfo_rss('url') . '/musor-page/</link></item>' . PHP_EOL;
4115
- }
4116
- ?>
4117
  </channel>
4118
  </rss>
4119
  <?php }
4120
  //функция вывода мусорной ленты end
4121
 
4122
  //функция отслеживания урлов удаляемых записей begin
4123
- function yturbo_trash_tracking( $post_id ) {
4124
 
4125
- $yturbo_options = get_option('yturbo_options');
4126
 
4127
- if ( $yturbo_options['ytexcludeurls'] == 'disabled' )
4128
- return;
4129
 
4130
- if ( $yturbo_options['ytdeltracking'] == 'disabled' )
4131
- return;
4132
 
4133
- $yttype = explode(",", $yturbo_options['yttype']);
4134
- $yttype = array_diff($yttype, array(''));
4135
 
4136
- if ( ! in_array(get_post_type($post_id), $yttype) )
4137
- return;
4138
 
4139
- $delpermalink = PHP_EOL . esc_url( apply_filters( 'the_permalink_rss', get_permalink($post_id) ) );
4140
- $yturbo_options['ytexcludeurlslist'] .= $delpermalink;
4141
- $lines = array_filter(explode("\n", trim($yturbo_options['ytexcludeurlslist'])));
4142
- $yturbo_options['ytexcludeurlslist'] = implode("\n", $lines);
4143
 
4144
- update_option('yturbo_options', $yturbo_options);
4145
  }
4146
- add_action( 'wp_trash_post', 'yturbo_trash_tracking' );
4147
  //функция отслеживания урлов удаляемых записей end
4148
 
4149
  //функция отслеживания урлов восстанавливаемых записей begin
4150
- function yturbo_untrash_tracking( $post_id ) {
4151
 
4152
- $yturbo_options = get_option('yturbo_options');
4153
 
4154
- if ( $yturbo_options['ytexcludeurls'] == 'disabled' )
4155
- return;
4156
 
4157
- if ( $yturbo_options['ytdeltracking'] == 'disabled' )
4158
- return;
4159
 
4160
- $yttype = explode(",", $yturbo_options['yttype']);
4161
- $yttype = array_diff($yttype, array(''));
4162
 
4163
- if ( ! in_array(get_post_type($post_id), $yttype) )
4164
- return;
4165
 
4166
- $restorepermalink = esc_url( apply_filters( 'the_permalink_rss', get_permalink($post_id) ) );
4167
- $yturbo_options['ytexcludeurlslist'] = str_replace($restorepermalink, '', $yturbo_options['ytexcludeurlslist']);
4168
- $lines = array_filter(explode("\n", trim($yturbo_options['ytexcludeurlslist'])));
4169
- $yturbo_options['ytexcludeurlslist'] = implode("\n", $lines);
4170
 
4171
- update_option('yturbo_options', $yturbo_options);
4172
  }
4173
- add_action( 'untrashed_post', 'yturbo_untrash_tracking' );
4174
  //функция отслеживания урлов восстанавливаемых записей end
4175
 
4176
  //регистрируем ajax-функцию вывода терминов таксономий begin
4177
  function yturbo_ajax_register() {
4178
- if ( defined('DOING_AJAX') && DOING_AJAX ) {
4179
- add_action( 'wp_ajax_yturbo_display_exclude_terms', 'yturbo_ajax_display_exclude_terms' );
4180
- }
4181
  }
4182
- add_action( 'admin_init', 'yturbo_ajax_register' );
4183
  //регистрируем ajax-функцию вывода терминов таксономий end
4184
 
4185
  //ajax-функция вывода терминов таксономий (вывод только не выбранных) begin
4186
  function yturbo_ajax_display_exclude_terms() {
4187
- check_ajax_referer('yturbo_display_exclude_terms');
4188
-
4189
- if ( ! isset($_REQUEST['taxonomy']) )
4190
- return;
4191
-
4192
- $taxonomy = (string) sanitize_text_field($_REQUEST['taxonomy']);
4193
-
4194
- header("HTTP/1.1 200");
4195
- header("Content-Type: text/html; charset=UTF-8");
4196
-
4197
- //исключаем те термины, которые выбраны в настройках
4198
- //ajax-функция выводит только не выбранные термины
4199
- $yturbo_options = get_option('yturbo_options');
4200
- if ( isset($yturbo_options['exclude-'.$taxonomy]) && $yturbo_options['exclude-'.$taxonomy]) {
4201
- $yttaxlist = $yturbo_options['exclude-'.$taxonomy];
4202
- $tax = explode(":", $yttaxlist);
4203
- $exclude_term_ids = wp_parse_id_list($tax[1]);
4204
- } else {
4205
- $exclude_term_ids = '';
4206
- }
4207
-
4208
- $terms = get_terms($taxonomy, array(
4209
- 'exclude' => $exclude_term_ids,
4210
- 'hide_empty' => false,
4211
- 'hierarchical' => false,
4212
- 'number' => 100,
4213
- 'offset' => sanitize_text_field($_REQUEST['offset'])
4214
- ));
4215
-
4216
- if ( ! $terms ) {
4217
- echo '<li>:(</li>';
4218
- exit;
4219
- }
4220
-
4221
- foreach ($terms as $term) {
4222
- echo "<li><input type='checkbox' name='exclude-{$taxonomy}[{$term->term_id}]' id='exclude_{$term->term_id}' value='{$term->term_id}' /> <label for='exclude_{$term->term_id}'>" . esc_html($term->name) . "</label></li>";
4223
- }
4224
- exit;
4225
  }
4226
  //ajax-функция вывода терминов таксономий (вывод только не выбранных) end
4227
-
3
  Plugin Name: RSS for Yandex Turbo
4
  Plugin URI: https://wordpress.org/plugins/rss-for-yandex-turbo/
5
  Description: Создание RSS-ленты для сервиса Яндекс.Турбо.
6
+ Version: 1.32
7
  Author: Flector
8
  Author URI: https://profiles.wordpress.org/flector#content-plugins
9
  Text Domain: rss-for-yandex-turbo
13
  require_once plugin_dir_path( __FILE__ ) . 'inc/AdminNotice.php';
14
  use \YTurboAdminNotices\AdminNotice;
15
  function yturbo_add_notice_ads() {
16
+ AdminNotice::create('yturbo-ads1')
17
+ ->requiredCap('administrator')
18
+ ->persistentlyDismissible(AdminNotice::DISMISS_PER_USER)
19
+ ->success()
20
+ ->rawHtml(__('<p>Для плагина <strong>RSS for Yandex Turbo</strong> появилось премиум-дополнение <strong><a target="_blank" href="https://wpcase.ru/wpcase-turbo-ads/">WPCase: Turbo Ads</a></strong>, которое позволит <br />вам добавить на турбо-страницы неограниченное количество рекламных блоков в нужных вам местах.</p>', 'rss-for-yandex-turbo'))
21
+ ->show();
22
  }
23
+ //add_action('admin_notices', 'yturbo_add_notice_ads');
24
  //вывод admin notice с рекламкой (для админов) end
25
 
26
  //проверка версии плагина (запуск функции установки новых опций) begin
27
  function yturbo_check_version() {
28
+ $yturbo_options = get_option('yturbo_options');
29
+ if (!isset($yturbo_options['version'])){$yturbo_options['version']='1.00';update_option('yturbo_options',$yturbo_options);}
30
+ if ( $yturbo_options['version'] != '1.32' ) {
31
+ yturbo_set_new_options();
32
+ }
33
  }
34
+ add_action('plugins_loaded', 'yturbo_check_version');
35
  //проверка версии плагина (запуск функции установки новых опций) end
36
 
37
  //функция установки новых опций при обновлении плагина у пользователей begin
38
  function yturbo_set_new_options() {
39
+ $yturbo_options = get_option('yturbo_options');
40
+
41
+ //если нет опции при обновлении плагина - записываем ее
42
+ //if (!isset($yturbo_options['new_option'])) {$yturbo_options['new_option']='value';}
43
+
44
+ //если необходимо переписать уже записанную опцию при обновлении плагина
45
+ //$yturbo_options['old_option'] = 'new_value';
46
+
47
+ if (!isset($yturbo_options['ytrssname'])) {$yturbo_options['ytrssname']='turbo';}
48
+ if (!isset($yturbo_options['ytrelated'])) {$yturbo_options['ytrelated']='disabled';}
49
+ if (!isset($yturbo_options['ytrelatednumber'])) {$yturbo_options['ytrelatednumber']='5';}
50
+ if (!isset($yturbo_options['ytrelatedselectthumb'])) {$yturbo_options['ytrelatedselectthumb']='medium';}
51
+ if (!isset($yturbo_options['ytrelatedcache'])) {$yturbo_options['ytrelatedcache']='enabled';}
52
+ if (!isset($yturbo_options['ytrelatedcachetime'])) {$yturbo_options['ytrelatedcachetime']='72';}
53
+ if (!isset($yturbo_options['ytrelatedinfinity'])) {$yturbo_options['ytrelatedinfinity']='disabled';}
54
+ if (!isset($yturbo_options['ytad3'])) {$yturbo_options['ytad3']='disabled';}
55
+ if (!isset($yturbo_options['ytad3set'])) {$yturbo_options['ytad3set']='РСЯ';}
56
+ if (!isset($yturbo_options['ytad3rsa'])) {$yturbo_options['ytad3rsa']='';}
57
+ if (!isset($yturbo_options['ytadfox1'])) {$yturbo_options['ytadfox1']='';}
58
+ if (!isset($yturbo_options['ytadfox2'])) {$yturbo_options['ytadfox2']='';}
59
+ if (!isset($yturbo_options['ytadfox3'])) {$yturbo_options['ytadfox3']='';}
60
+ if (!isset($yturbo_options['ytrazmer'])) {$yturbo_options['ytrazmer']='500';}
61
+ if (!isset($yturbo_options['ytremoveturbo'])) {$yturbo_options['ytremoveturbo']='disabled';}
62
+ if (!isset($yturbo_options['ytauthorselect'])) {$yturbo_options['ytauthorselect']='Указать автора';}
63
+ if (!isset($yturbo_options['ytliveinternet'])) {$yturbo_options['ytliveinternet']='';}
64
+ if (!isset($yturbo_options['ytgoogle'])) {$yturbo_options['ytgoogle']='';}
65
+ if (!isset($yturbo_options['ytmailru'])) {$yturbo_options['ytmailru']='';}
66
+ if (!isset($yturbo_options['ytrambler'])) {$yturbo_options['ytrambler']='';}
67
+ if (!isset($yturbo_options['ytmediascope'])) {$yturbo_options['ytmediascope']='';}
68
+ if (!isset($yturbo_options['ytqueryselect'])) {$yturbo_options['ytqueryselect']='Все таксономии, кроме исключенных';}
69
+ if (!isset($yturbo_options['yttaxlist'])) {$yturbo_options['yttaxlist']='';}
70
+ if (!isset($yturbo_options['ytaddtaxlist'])) {$yturbo_options['ytaddtaxlist']='';}
71
+ if (!isset($yturbo_options['ytselectmenu'])) {$yturbo_options['ytselectmenu']='Не использовать';}
72
+ if (!isset($yturbo_options['ytshare'])) {$yturbo_options['ytshare']='disabled';}
73
+ if (!isset($yturbo_options['ytnetw'])) {$yturbo_options['ytnetw']='vkontakte,facebook,twitter,odnoklassniki,telegram,';}
74
+ if (!isset($yturbo_options['ytcomments'])) {$yturbo_options['ytcomments']='disabled';}
75
+ if (!isset($yturbo_options['ytcommentsavatar'])) {$yturbo_options['ytcommentsavatar']='disabled';}
76
+ if (!isset($yturbo_options['ytcommentsnumber'])) {$yturbo_options['ytcommentsnumber']='40';}
77
+ if (!isset($yturbo_options['ytcommentsorder'])) {$yturbo_options['ytcommentsorder']='В начале старые комментарии';}
78
+ if (!isset($yturbo_options['ytcommentsdate'])) {$yturbo_options['ytcommentsdate']='enabled';}
79
+ if (!isset($yturbo_options['ytcommentsdrevo'])) {$yturbo_options['ytcommentsdrevo']='enabled';}
80
+ if (!isset($yturbo_options['ytpostdate'])) {$yturbo_options['ytpostdate']='enabled';}
81
+ if (!isset($yturbo_options['ytexcerpt'])) {$yturbo_options['ytexcerpt']='disabled';}
82
+ if (!isset($yturbo_options['ytad4'])) {$yturbo_options['ytad4']='disabled';}
83
+ if (!isset($yturbo_options['ytad4set'])) {$yturbo_options['ytad4set']='РСЯ';}
84
+ if (!isset($yturbo_options['ytad4rsa'])) {$yturbo_options['ytad4rsa']='';}
85
+ if (!isset($yturbo_options['ytadfox4'])) {$yturbo_options['ytadfox4']='';}
86
+ if (!isset($yturbo_options['ytad5'])) {$yturbo_options['ytad5']='disabled';}
87
+ if (!isset($yturbo_options['ytad5set'])) {$yturbo_options['ytad5set']='РСЯ';}
88
+ if (!isset($yturbo_options['ytad5rsa'])) {$yturbo_options['ytad5rsa']='';}
89
+ if (!isset($yturbo_options['ytadfox5'])) {$yturbo_options['ytadfox5']='';}
90
+ if (!isset($yturbo_options['ytfeedback'])) {$yturbo_options['ytfeedback']='disabled';}
91
+ if (!isset($yturbo_options['ytfeedbackselect'])) {$yturbo_options['ytfeedbackselect']='right';}
92
+ if (!isset($yturbo_options['ytfeedbackselectmesto'])) {$yturbo_options['ytfeedbackselectmesto']='В конце записи';}
93
+ if (!isset($yturbo_options['ytfeedbacktitle'])) {$yturbo_options['ytfeedbacktitle']='Обратная связь';}
94
+ if (!isset($yturbo_options['ytfeedbacknetw'])) {$yturbo_options['ytfeedbacknetw']='call,mail,vkontakte,';}
95
+ if (!isset($yturbo_options['ytfeedbackcall'])) {$yturbo_options['ytfeedbackcall']='';}
96
+ if (!isset($yturbo_options['ytfeedbackcallback'])) {$yturbo_options['ytfeedbackcallback']='';}
97
+ if (!isset($yturbo_options['ytfeedbackcallback2'])) {$yturbo_options['ytfeedbackcallback2']='';}
98
+ if (!isset($yturbo_options['ytfeedbackcallback3'])) {$yturbo_options['ytfeedbackcallback3']='';}
99
+ if (!isset($yturbo_options['ytfeedbackmail'])) {$yturbo_options['ytfeedbackmail']='';}
100
+ if (!isset($yturbo_options['ytfeedbackvkontakte'])) {$yturbo_options['ytfeedbackvkontakte']='';}
101
+ if (!isset($yturbo_options['ytfeedbackodnoklassniki'])) {$yturbo_options['ytfeedbackodnoklassniki']='';}
102
+ if (!isset($yturbo_options['ytfeedbacktwitter'])) {$yturbo_options['ytfeedbacktwitter']='';}
103
+ if (!isset($yturbo_options['ytfeedbackfacebook'])) {$yturbo_options['ytfeedbackfacebook']='';}
104
+ if (!isset($yturbo_options['ytfeedbackviber'])) {$yturbo_options['ytfeedbackviber']='';}
105
+ if (!isset($yturbo_options['ytfeedbackwhatsapp'])) {$yturbo_options['ytfeedbackwhatsapp']='';}
106
+ if (!isset($yturbo_options['ytfeedbacktelegram'])) {$yturbo_options['ytfeedbacktelegram']='';}
107
+ if (!isset($yturbo_options['ytexcludeshortcodes'])) {$yturbo_options['ytexcludeshortcodes']='disabled';}
108
+ if (!isset($yturbo_options['ytexcludeshortcodeslist'])) {$yturbo_options['ytexcludeshortcodeslist']='contact-form-7,';}
109
+ if (!isset($yturbo_options['yttab'])) {$yturbo_options['yttab']='RSS-лента';}
110
+ if (!isset($yturbo_options['ytrating'])) {$yturbo_options['ytrating']='disabled';}
111
+ if (!isset($yturbo_options['ytratingmin'])) {$yturbo_options['ytratingmin']='4.70';}
112
+ if (!isset($yturbo_options['ytratingmax'])) {$yturbo_options['ytratingmax']='5.00';}
113
+
114
+ $yturbo_options['ytnetw'] = str_replace('google,', '', $yturbo_options['ytnetw']);
115
+ $yturbo_options['ytfeedbacknetw'] = str_replace('google,', '', $yturbo_options['ytfeedbacknetw']);
116
+
117
+ if (!isset($yturbo_options['ytsearch'])) {$yturbo_options['ytsearch']='disabled';}
118
+ if (!isset($yturbo_options['ytsearchplaceholder'])) {$yturbo_options['ytsearchplaceholder']='Поиск по сайту';}
119
+ if (!isset($yturbo_options['ytsearchmesto'])) {$yturbo_options['ytsearchmesto']='В конце записи';}
120
+
121
+ if (!isset($yturbo_options['yttoc'])) {$yturbo_options['yttoc']='disabled';}
122
+ if (!isset($yturbo_options['yttype2'])) {$yturbo_options['yttype2']='post';}
123
+ if (!isset($yturbo_options['yttoczag'])) {$yturbo_options['yttoczag']='Содержание';}
124
+ if (!isset($yturbo_options['yttocmesto'])) {$yturbo_options['yttocmesto']='В начале записи';}
125
+ if (!isset($yturbo_options['yttocnumber'])) {$yturbo_options['yttocnumber']='2';}
126
+ if (!isset($yturbo_options['yttoch1'])) {$yturbo_options['yttoch1']='disabled';}
127
+ if (!isset($yturbo_options['yttoch2'])) {$yturbo_options['yttoch2']='enabled';}
128
+ if (!isset($yturbo_options['yttoch3'])) {$yturbo_options['yttoch3']='enabled';}
129
+ if (!isset($yturbo_options['yttoch4'])) {$yturbo_options['yttoch4']='disabled';}
130
+ if (!isset($yturbo_options['yttoch5'])) {$yturbo_options['yttoch5']='disabled';}
131
+ if (!isset($yturbo_options['yttoch6'])) {$yturbo_options['yttoch6']='disabled';}
132
+ if (!isset($yturbo_options['yttocexclude'])) {$yturbo_options['yttocexclude']='';}
133
+
134
+ if (!isset($yturbo_options['ytprotokol'])) {$yturbo_options['ytprotokol']='asis';}
135
+ if (!isset($yturbo_options['ytdateformat'])) {$yturbo_options['ytdateformat']='create';}
136
+ if (!isset($yturbo_options['ytturbocolumn'])) {$yturbo_options['ytturbocolumn']='enabled';}
137
+
138
+ $yturbo_options['ytfigcaption'] = 'Использовать подписи';
139
+
140
+ if (!isset($yturbo_options['ytrelateddate'])) {$yturbo_options['ytrelateddate']='12';}
141
+
142
+ $yturbo_options['yttitle'] = esc_html(yturbo_remove_emoji(strip_tags($yturbo_options['yttitle'])));
143
+ $yturbo_options['ytdescription'] = esc_html(yturbo_remove_emoji(strip_tags($yturbo_options['ytdescription'])));
144
+ if (!isset($yturbo_options['required'])) {$yturbo_options['required']='1.00';}
145
+
146
+ // новый формат хранения удаляемых тегов begin
147
+ $yturbo_options['ytexcludetagslist'] = preg_replace('/[^A-Za-z0-9,]/', '', html_entity_decode($yturbo_options['ytexcludetagslist']));
148
+ $yturbo_options['ytexcludetagslist'] = mb_strtolower($yturbo_options['ytexcludetagslist']);
149
+ $a = explode(",", $yturbo_options['ytexcludetagslist'] );
150
+ $a = array_diff($a, array(''));
151
+ $yturbo_options['ytexcludetagslist'] = implode(",", $a );
152
+ // новый формат хранения удаляемых тегов end
153
+
154
+ // новый формат хранения удаляемых тегов begin
155
+ $yturbo_options['ytexcludetagslist2'] = preg_replace('/[^A-Za-z0-9,]/', '', html_entity_decode($yturbo_options['ytexcludetagslist2']));
156
+ $yturbo_options['ytexcludetagslist2'] = mb_strtolower($yturbo_options['ytexcludetagslist2']);
157
+ $a = explode(",", $yturbo_options['ytexcludetagslist2'] );
158
+ $a = array_diff($a, array(''));
159
+ $yturbo_options['ytexcludetagslist2'] = implode(",", $a );
160
+ // новый формат хранения удаляемых тегов end
161
+
162
+ if (!isset($yturbo_options['ytexcludeurls'])) {$yturbo_options['ytexcludeurls']='disabled';}
163
+ if (!isset($yturbo_options['ytexcludeurlslist'])) {$yturbo_options['ytexcludeurlslist']='';}
164
+ if (!isset($yturbo_options['ytdeltracking'])) {$yturbo_options['ytdeltracking']='disabled';}
165
+
166
+ //запихиваем в $spisok только таксономии выбранного режима
167
+ if ( $yturbo_options['ytqueryselect'] == 'Все таксономии, кроме исключенных' ) {
168
+ $spisok = $yturbo_options['yttaxlist'];
169
+ } else {
170
+ $spisok = $yturbo_options['ytaddtaxlist'];
171
+ }
172
+
173
+ //разбираем список и создаем нужные опции begin
174
+ if ( $spisok ) {
175
+ $textAr = explode("\n", trim($spisok));
176
+ $textAr = array_filter($textAr, 'trim');
177
+ foreach ($textAr as $line) {
178
+ $tax = explode(":", $line);
179
+ if ( ! isset($yturbo_options['exclude-'.$tax[0]]) ) {
180
+ $yturbo_options['exclude-'.$tax[0]] = $tax[0].':'.$tax[1];
181
+ }
182
+ }
183
+ }
184
+ //разбираем список и создаем нужные опции end
185
+
186
+ if (!isset($yturbo_options['ytextendedhtml'])) {$yturbo_options['ytextendedhtml']='disabled';}
187
+
188
+ $yturbo_options['version'] = '1.32';
189
+ update_option('yturbo_options', $yturbo_options);
190
  }
191
  //функция установки новых опций при обновлении плагина у пользователей end
192
 
193
  //функция установки значений по умолчанию при активации плагина begin
194
  function yturbo_init() {
195
+ $yturbo_options = array();
196
+ $yturbo_options['version'] = '1.32';
197
+ $yturbo_options['ytrssname'] = 'turbo';
198
+ $yturbo_options['yttitle'] = esc_html(yturbo_remove_emoji(strip_tags(get_bloginfo_rss('title'))));
199
+ $yturbo_options['ytlink'] = get_bloginfo_rss('url');
200
+ $yturbo_options['ytdescription'] = esc_html(yturbo_remove_emoji(strip_tags(get_bloginfo_rss('description'))));
201
+ $yturbo_options['ytlanguage'] = 'ru';
202
+ $yturbo_options['ytnumber'] = '250';
203
+ $yturbo_options['yttype'] = 'post';
204
+ $yturbo_options['ytrazb'] = 'enabled';
205
+ $yturbo_options['ytrazbnumber'] = '50';
206
+ $yturbo_options['ytfigcaption'] = 'Использовать подписи';
207
+ $yturbo_options['ytauthorselect'] = 'Отключить указание автора';
208
+ $yturbo_options['ytauthor'] = '';
209
+ $yturbo_options['ytthumbnail'] = 'enabled';
210
+ $yturbo_options['ytselectthumb'] = 'large';
211
+ $yturbo_options['ytexcludetags'] = 'enabled';
212
+ $yturbo_options['ytexcludetagslist'] = 'span';
213
+ $yturbo_options['ytexcludetags2'] = 'enabled';
214
+ $yturbo_options['ytexcludetagslist2'] = 'script,style';
215
+ $yturbo_options['ytexcludecontent'] = 'disabled';
216
+ $yturbo_options['ytexcludecontentlist'] = esc_textarea('<!--more-->\n<p></p>\n<p>&nbsp;</p>');
217
+
218
+ $yturbo_options['ytad1'] = 'disabled';
219
+ $yturbo_options['ytad1set'] = 'РСЯ';
220
+ $yturbo_options['ytad1rsa'] = '';
221
+ $yturbo_options['ytadfox1'] = '';
222
+
223
+ $yturbo_options['ytad2'] = 'disabled';
224
+ $yturbo_options['ytad2set'] = 'РСЯ';
225
+ $yturbo_options['ytad2rsa'] = '';
226
+ $yturbo_options['ytadfox2'] = '';
227
+
228
+ $yturbo_options['ytad3'] = 'disabled';
229
+ $yturbo_options['ytad3set'] = 'РСЯ';
230
+ $yturbo_options['ytad3rsa'] = '';
231
+ $yturbo_options['ytadfox3'] = '';
232
+
233
+ $yturbo_options['ytad4'] = 'disabled';
234
+ $yturbo_options['ytad4set'] = 'РСЯ';
235
+ $yturbo_options['ytad4rsa'] = '';
236
+ $yturbo_options['ytadfox4'] = '';
237
+
238
+ $yturbo_options['ytad5'] = 'disabled';
239
+ $yturbo_options['ytad5set'] = 'РСЯ';
240
+ $yturbo_options['ytad5rsa'] = '';
241
+ $yturbo_options['ytadfox5'] = '';
242
+
243
+ $yturbo_options['ytrelated'] = 'enabled';
244
+ $yturbo_options['ytrelatednumber'] = '5';
245
+ $yturbo_options['ytrelatedselectthumb'] = 'thumbnail';
246
+ $yturbo_options['ytrelatedcache'] = 'enabled';
247
+ $yturbo_options['ytrelatedcachetime'] = '72';
248
+ $yturbo_options['ytrelatedinfinity'] = 'disabled';
249
+
250
+ $yturbo_options['ytrazmer'] = '500';
251
+ $yturbo_options['ytremoveturbo'] = 'disabled';
252
+
253
+ $yturbo_options['ytmetrika'] = '';
254
+ $yturbo_options['ytliveinternet'] = '';
255
+ $yturbo_options['ytgoogle'] = '';
256
+ $yturbo_options['ytmailru'] = '';
257
+ $yturbo_options['ytrambler'] = '';
258
+ $yturbo_options['ytmediascope'] = '';
259
+
260
+ $yturbo_options['ytqueryselect'] = 'Все таксономии, кроме исключенных';
261
+ $yturbo_options['yttaxlist'] = '';
262
+ $yturbo_options['ytaddtaxlist'] = '';
263
+
264
+ $yturbo_options['ytselectmenu'] = 'Не использовать';
265
+ $yturbo_options['ytshare'] = 'disabled';
266
+ $yturbo_options['ytnetw'] = 'vkontakte,facebook,twitter,odnoklassniki,telegram,';
267
+ $yturbo_options['ytcomments'] = 'disabled';
268
+ $yturbo_options['ytcommentsavatar'] = 'disabled';
269
+ $yturbo_options['ytcommentsnumber'] = '40';
270
+ $yturbo_options['ytcommentsorder'] = 'В начале старые комментарии';
271
+ $yturbo_options['ytcommentsdate'] = 'enabled';
272
+ $yturbo_options['ytcommentsdrevo'] = 'enabled';
273
+ $yturbo_options['ytpostdate'] = 'disabled';
274
+ $yturbo_options['ytexcerpt'] = 'disabled';
275
+
276
+ $yturbo_options['ytfeedback'] = 'disabled';
277
+ $yturbo_options['ytfeedbackselect'] = 'right';
278
+ $yturbo_options['ytfeedbackselectmesto'] = 'В конце записи';
279
+ $yturbo_options['ytfeedbacktitle'] = 'Обратная связь';
280
+ $yturbo_options['ytfeedbacknetw'] = 'call,mail,vkontakte,';
281
+
282
+ $yturbo_options['ytfeedbackcall'] = '';
283
+ $yturbo_options['ytfeedbackcallback'] = '';
284
+ $yturbo_options['ytfeedbackcallback2'] = '';
285
+ $yturbo_options['ytfeedbackcallback3'] = '';
286
+ $yturbo_options['ytfeedbackmail'] = '';
287
+ $yturbo_options['ytfeedbackvkontakte'] = '';
288
+ $yturbo_options['ytfeedbackodnoklassniki'] = '';
289
+ $yturbo_options['ytfeedbacktwitter'] = '';
290
+ $yturbo_options['ytfeedbackfacebook'] = '';
291
+ $yturbo_options['ytfeedbackviber'] = '';
292
+ $yturbo_options['ytfeedbackwhatsapp'] = '';
293
+ $yturbo_options['ytfeedbacktelegram'] = '';
294
+
295
+ $yturbo_options['ytexcludeshortcodes'] = 'disabled';
296
+ $yturbo_options['ytexcludeshortcodeslist'] = 'contact-form-7,';
297
+ $yturbo_options['yttab'] = 'RSS-лента';
298
+
299
+ $yturbo_options['ytrating'] = 'disabled';
300
+ $yturbo_options['ytratingmin'] = '4.70';
301
+ $yturbo_options['ytratingmax'] = '5.00';
302
+
303
+ $yturbo_options['ytsearch'] = 'disabled';
304
+ $yturbo_options['ytsearchplaceholder'] = 'Поиск по сайту';
305
+ $yturbo_options['ytsearchmesto'] = 'В конце записи';
306
+
307
+ $yturbo_options['yttoc'] = 'disabled';
308
+ $yturbo_options['yttype2'] = 'post';
309
+ $yturbo_options['yttoczag'] = 'Содержание';
310
+ $yturbo_options['yttocmesto'] = 'В начале записи';
311
+ $yturbo_options['yttocnumber'] = '2';
312
+ $yturbo_options['yttoch1'] = 'disabled';
313
+ $yturbo_options['yttoch2'] = 'enabled';
314
+ $yturbo_options['yttoch3'] = 'enabled';
315
+ $yturbo_options['yttoch4'] = 'disabled';
316
+ $yturbo_options['yttoch5'] = 'disabled';
317
+ $yturbo_options['yttoch6'] = 'disabled';
318
+ $yturbo_options['yttocexclude'] = '';
319
+
320
+ $yturbo_options['ytprotokol'] = 'asis';
321
+ $yturbo_options['ytdateformat'] = 'create';
322
+ $yturbo_options['ytturbocolumn'] = 'enabled';
323
+ $yturbo_options['ytrelateddate'] = '12';
324
+
325
+ $yturbo_options['ytexcludeurls'] = 'disabled';
326
+ $yturbo_options['ytexcludeurlslist'] = '';
327
+ $yturbo_options['ytdeltracking'] = 'disabled';
328
+
329
+ $yturbo_options['ytextendedhtml'] = 'disabled';
330
+
331
+ $yturbo_options['required']='1.00';
332
+
333
+ add_option('yturbo_options', $yturbo_options);
334
+
335
+ yturbo_add_feed();
336
+ global $wp_rewrite;
337
+ $wp_rewrite->flush_rules();
338
  }
339
+ add_action('activate_rss-for-yandex-turbo/rss-for-yandex-turbo.php', 'yturbo_init');
340
  //функция установки значений по умолчанию при активации плагина end
341
 
342
  //функция при деактивации плагина begin
343
  function yturbo_on_deactivation() {
344
+ if ( ! current_user_can('activate_plugins') ) return;
345
+
346
+ //удаляем ленту плагина при деактивации плагина и обновляем пермалинки begin
347
+ $yturbo_options = get_option('yturbo_options');
348
+ global $wp_rewrite;
349
+ if ( in_array($yturbo_options['ytrssname'], $wp_rewrite->feeds) ) {
350
+ unset($wp_rewrite->feeds[array_search($yturbo_options['ytrssname'], $wp_rewrite->feeds)]);
351
+ }
352
+ $wp_rewrite->flush_rules();
353
+ //удаляем ленту плагина при деактивации плагина и обновляем пермалинки end
354
  }
355
+ register_deactivation_hook(__FILE__, 'yturbo_on_deactivation');
356
  //функция при деактивации плагина end
357
 
358
  //функция при удалении плагина begin
359
  function yturbo_on_uninstall() {
360
+ if ( ! current_user_can('activate_plugins') ) return;
361
+ delete_option('yturbo_options');
362
+ AdminNotice::cleanUpDatabase('yturbo-');
363
  }
364
+ register_uninstall_hook(__FILE__, 'yturbo_on_uninstall');
365
  //функция при удалении плагина end
366
 
367
  //загрузка файла локализации плагина begin
368
  function yturbo_setup() {
369
+ load_plugin_textdomain('rss-for-yandex-turbo');
370
  }
371
+ add_action('init', 'yturbo_setup');
372
  //загрузка файла локализации плагина end
373
 
374
  //добавление ссылки "Настройки" на странице со списком плагинов begin
375
+ function yturbo_actions($links) {
376
+ return array_merge(array('settings' => '<a href="options-general.php?page=rss-for-yandex-turbo.php">' . __('Настройки', 'rss-for-yandex-turbo') . '</a>'), $links);
377
  }
378
+ add_filter('plugin_action_links_' . plugin_basename( __FILE__ ), 'yturbo_actions');
379
  //добавление ссылки "Настройки" на странице со списком плагинов end
380
 
381
  //функция загрузки скриптов и стилей плагина только в админке и только на странице настроек плагина begin
382
+ function yturbo_files_admin($hook_suffix) {
383
+ $purl = plugins_url('', __FILE__);
384
+ $yturbo_options = get_option('yturbo_options');
385
+ if ( $hook_suffix == 'settings_page_rss-for-yandex-turbo' ) {
386
+ wp_enqueue_script('jquery');
387
+ wp_enqueue_script('yturbo-tagify-js', $purl . '/inc/tagify.js', array(), $yturbo_options['version']);
388
+ wp_enqueue_style('yturbo-tagify-css', $purl . '/inc/tagify.css', array(), $yturbo_options['version']);
389
+ wp_enqueue_script('yturbo-script', $purl . '/inc/yturbo-script.js', array(), $yturbo_options['version']);
390
+ wp_enqueue_style('yturbo-css', $purl . '/inc/yturbo-css.css', array(), $yturbo_options['version']);
391
+ }
392
  }
393
+ add_action('admin_enqueue_scripts', 'yturbo_files_admin');
394
  //функция загрузки скриптов и стилей плагина только в админке и только на странице настроек плагина end
395
 
396
  //функция вывода страницы настроек плагина begin
397
  function yturbo_options_page() {
398
  $purl = plugins_url('', __FILE__);
399
 
400
+ if ( isset($_POST['submit']) ) {
401
 
402
  //проверка безопасности при сохранении настроек плагина begin
403
+ if ( ! wp_verify_nonce($_POST['yturbo_nonce'], plugin_basename(__FILE__)) || ! current_user_can('edit_posts') ) {
404
+ wp_die(__('Cheatin&#8217; uh?', 'rss-for-yandex-turbo'));
405
  }
406
  //проверка безопасности при сохранении настроек плагина end
407
 
408
+ //проверяем и сохраняем введенные пользователем данные begin
409
+ $yturbo_options = get_option('yturbo_options');
410
+
411
+ if ( ! preg_match('/[^A-Za-z0-9]/', $_POST['ytrssname']) ) {
412
+ $yturbo_options['ytrssname'] = $_POST['ytrssname'];
413
+ update_option('yturbo_options', $yturbo_options);
414
+ yturbo_add_feed();
415
+ global $wp_rewrite;
416
+ $wp_rewrite->flush_rules();
417
+ }
418
+
419
+ $yturbo_options['yttitle'] = esc_html(yturbo_remove_emoji(strip_tags($_POST['yttitle'])));
420
+ $yturbo_options['ytlink'] = esc_url_raw($_POST['ytlink']);
421
+ $yturbo_options['ytdescription'] = esc_html(yturbo_remove_emoji(strip_tags($_POST['ytdescription'])));
422
+ $yturbo_options['ytlanguage'] = sanitize_text_field($_POST['ytlanguage']);
423
+
424
+ $ytnumber = sanitize_text_field($_POST['ytnumber']);
425
+ if ( is_numeric($ytnumber) ) {
426
+ $yturbo_options['ytnumber'] = sanitize_text_field($_POST['ytnumber']);
427
+ }
428
+
429
+ if(isset($_POST['ytrazb'])){$yturbo_options['ytrazb'] = sanitize_text_field($_POST['ytrazb']);}else{$yturbo_options['ytrazb'] = 'disabled';}
430
+ $ytrazbnumber = sanitize_text_field($_POST['ytrazbnumber']);
431
+ if ( is_numeric($ytrazbnumber) ) {
432
+ $yturbo_options['ytrazbnumber'] = sanitize_text_field($_POST['ytrazbnumber']);
433
+ }
434
+
435
+ $yturbo_options['yttype'] = '';
436
+ $checkboxes = isset($_POST['types']) ? $_POST['types'] : array();
437
+ foreach($checkboxes as $value) {$yturbo_options['yttype'] .= sanitize_text_field($value) . ',';}
438
+ $yturbo_options['yttype'] = sanitize_text_field($yturbo_options['yttype']);
439
+
440
+ $yturbo_options['ytfigcaption'] = sanitize_text_field($_POST['ytfigcaption']);
441
+ $yturbo_options['ytauthorselect'] = sanitize_text_field($_POST['ytauthorselect']);
442
+ $yturbo_options['ytauthor'] = sanitize_text_field($_POST['ytauthor']);
443
+
444
+ if(isset($_POST['ytthumbnail'])){$yturbo_options['ytthumbnail'] = sanitize_text_field($_POST['ytthumbnail']);}else{$yturbo_options['ytthumbnail'] = 'disabled';}
445
+ $yturbo_options['ytselectthumb'] = sanitize_text_field($_POST['ytselectthumb']);
446
+
447
+ if(isset($_POST['ytexcludetags'])){$yturbo_options['ytexcludetags'] = sanitize_text_field($_POST['ytexcludetags']);}else{$yturbo_options['ytexcludetags'] = 'disabled';}
448
+ $ytexcludetagslist = preg_replace('/[^A-Za-z0-9,]/', '', sanitize_text_field($_POST['ytexcludetagslist']));
449
+ $yturbo_options['ytexcludetagslist'] = $ytexcludetagslist;
450
+
451
+ if(isset($_POST['ytexcludetags2'])){$yturbo_options['ytexcludetags2'] = sanitize_text_field($_POST['ytexcludetags2']);}else{$yturbo_options['ytexcludetags2'] = 'disabled';}
452
+ $ytexcludetagslist2 = preg_replace('/[^A-Za-z0-9,]/', '', sanitize_text_field($_POST['ytexcludetagslist2']));
453
+ $yturbo_options['ytexcludetagslist2'] = $ytexcludetagslist2;
454
+
455
+ if(isset($_POST['ytexcludecontent'])){$yturbo_options['ytexcludecontent'] = sanitize_text_field($_POST['ytexcludecontent']);}else{$yturbo_options['ytexcludecontent'] = 'disabled';}
456
+ $lines = array_filter(explode("\n", trim(esc_textarea($_POST['ytexcludecontentlist']))));
457
+ $yturbo_options['ytexcludecontentlist'] = implode("\n", $lines);
458
+
459
+ if(isset($_POST['ytad1'])){$yturbo_options['ytad1'] = sanitize_text_field($_POST['ytad1']);}else{$yturbo_options['ytad1'] = 'disabled';}
460
+ $yturbo_options['ytad1set'] = sanitize_text_field($_POST['ytad1set']);
461
+ $yturbo_options['ytad1rsa'] = sanitize_text_field($_POST['ytad1rsa']);
462
+ $yturbo_options['ytadfox1'] = esc_html($_POST['ytadfox1']);
463
+
464
+ if ( isset($_POST['ytad1']) ) {
465
+ if ($yturbo_options['ytad1set'] == 'РСЯ' && !$yturbo_options['ytad1rsa']) {$yturbo_options['ytad1'] = 'disabled';}
466
+ if ($yturbo_options['ytad1set'] == 'ADFOX' && !$yturbo_options['ytadfox1']) {$yturbo_options['ytad1'] = 'disabled';}
467
+ }
468
+
469
+ if(isset($_POST['ytad2'])){$yturbo_options['ytad2'] = sanitize_text_field($_POST['ytad2']);}else{$yturbo_options['ytad2'] = 'disabled';}
470
+ $yturbo_options['ytad2set'] = sanitize_text_field($_POST['ytad2set']);
471
+ $yturbo_options['ytad2rsa'] = sanitize_text_field($_POST['ytad2rsa']);
472
+ $yturbo_options['ytadfox2'] = esc_html($_POST['ytadfox2']);
473
+
474
+ if ( isset($_POST['ytad2']) ) {
475
+ if ($yturbo_options['ytad2set'] == 'РСЯ' && !$yturbo_options['ytad2rsa']) {$yturbo_options['ytad2'] = 'disabled';}
476
+ if ($yturbo_options['ytad2set'] == 'ADFOX' && !$yturbo_options['ytadfox2']) {$yturbo_options['ytad2'] = 'disabled';}
477
+ }
478
+
479
+ if(isset($_POST['ytad3'])){$yturbo_options['ytad3'] = sanitize_text_field($_POST['ytad3']);}else{$yturbo_options['ytad3'] = 'disabled';}
480
+ $yturbo_options['ytad3set'] = sanitize_text_field($_POST['ytad3set']);
481
+ $yturbo_options['ytad3rsa'] = sanitize_text_field($_POST['ytad3rsa']);
482
+ $yturbo_options['ytadfox3'] = esc_html($_POST['ytadfox3']);
483
+
484
+ if ( isset($_POST['ytad3']) ) {
485
+ if ($yturbo_options['ytad3set'] == 'РСЯ' && !$yturbo_options['ytad3rsa']) {$yturbo_options['ytad3'] = 'disabled';}
486
+ if ($yturbo_options['ytad3set'] == 'ADFOX' && !$yturbo_options['ytadfox3']) {$yturbo_options['ytad3'] = 'disabled';}
487
+ }
488
+
489
+ if(isset($_POST['ytad4'])){$yturbo_options['ytad4'] = sanitize_text_field($_POST['ytad4']);}else{$yturbo_options['ytad4'] = 'disabled';}
490
+ $yturbo_options['ytad4set'] = sanitize_text_field($_POST['ytad4set']);
491
+ $yturbo_options['ytad4rsa'] = sanitize_text_field($_POST['ytad4rsa']);
492
+ $yturbo_options['ytadfox4'] = esc_html($_POST['ytadfox4']);
493
+
494
+ if ( isset($_POST['ytad4']) ) {
495
+ if ($yturbo_options['ytad4set'] == 'РСЯ' && !$yturbo_options['ytad4rsa']) {$yturbo_options['ytad4'] = 'disabled';}
496
+ if ($yturbo_options['ytad4set'] == 'ADFOX' && !$yturbo_options['ytadfox4']) {$yturbo_options['ytad4'] = 'disabled';}
497
+ }
498
+
499
+ if(isset($_POST['ytad5'])){$yturbo_options['ytad5'] = sanitize_text_field($_POST['ytad5']);}else{$yturbo_options['ytad5'] = 'disabled';}
500
+ $yturbo_options['ytad5set'] = sanitize_text_field($_POST['ytad5set']);
501
+ $yturbo_options['ytad5rsa'] = sanitize_text_field($_POST['ytad5rsa']);
502
+ $yturbo_options['ytadfox5'] = esc_html($_POST['ytadfox5']);
503
+
504
+ if ( isset($_POST['ytad5']) ) {
505
+ if ($yturbo_options['ytad5set'] == 'РСЯ' && !$yturbo_options['ytad5rsa']) {$yturbo_options['ytad5'] = 'disabled';}
506
+ if ($yturbo_options['ytad5set'] == 'ADFOX' && !$yturbo_options['ytadfox5']) {$yturbo_options['ytad5'] = 'disabled';}
507
+ }
508
+ if ( yturbo_check_ads() == true ) {
509
+ $yturbo_options['ytad1'] = 'disabled';
510
+ $yturbo_options['ytad2'] = 'disabled';
511
+ $yturbo_options['ytad3'] = 'disabled';
512
+ $yturbo_options['ytad4'] = 'disabled';
513
+ $yturbo_options['ytad5'] = 'disabled';
514
+ }
515
+
516
+ if(isset($_POST['ytrelated'])){$yturbo_options['ytrelated'] = sanitize_text_field($_POST['ytrelated']);}else{$yturbo_options['ytrelated'] = 'disabled';}
517
+ $ytrelatednumber = sanitize_text_field($_POST['ytrelatednumber']);
518
+ if ( is_numeric($ytrelatednumber ) && (int)$ytrelatednumber <= 30 ) {
519
+ $yturbo_options['ytrelatednumber'] = sanitize_text_field($_POST['ytrelatednumber']);
520
+ }
521
+ $yturbo_options['ytrelatedselectthumb'] = sanitize_text_field($_POST['ytrelatedselectthumb']);
522
+ if(isset($_POST['ytrelatedcache'])){$yturbo_options['ytrelatedcache'] = sanitize_text_field($_POST['ytrelatedcache']);}else{$yturbo_options['ytrelatedcache'] = 'disabled';}
523
+ $ytrelatedcachetime = sanitize_text_field($_POST['ytrelatedcachetime']);
524
+ if ( is_numeric($ytrelatedcachetime) ) {
525
+ $yturbo_options['ytrelatedcachetime'] = sanitize_text_field($_POST['ytrelatedcachetime']);
526
+ }
527
+ if(isset($_POST['ytrelatedinfinity'])){$yturbo_options['ytrelatedinfinity'] = sanitize_text_field($_POST['ytrelatedinfinity']);}else{$yturbo_options['ytrelatedinfinity'] = 'disabled';}
528
+ if($yturbo_options['ytrelatedinfinity']=='enabled'){$yturbo_options['ytrelatedselectthumb']='Не использовать';}
529
+
530
+ $ytrazmer = sanitize_text_field($_POST['ytrazmer']);
531
+ if ( is_numeric($ytrazmer) ) {
532
+ $yturbo_options['ytrazmer'] = sanitize_text_field($_POST['ytrazmer']);
533
+ }
534
+
535
+ if(isset($_POST['ytremoveturbo'])){$yturbo_options['ytremoveturbo'] = sanitize_text_field($_POST['ytremoveturbo']);}else{$yturbo_options['ytremoveturbo'] = 'disabled';}
536
+
537
+ $yturbo_options['ytmetrika'] = sanitize_text_field($_POST['ytmetrika']);
538
+ $yturbo_options['ytliveinternet'] = sanitize_text_field($_POST['ytliveinternet']);
539
+ $yturbo_options['ytgoogle'] = sanitize_text_field($_POST['ytgoogle']);
540
+ $yturbo_options['ytmailru'] = sanitize_text_field($_POST['ytmailru']);
541
+ $yturbo_options['ytrambler'] = sanitize_text_field($_POST['ytrambler']);
542
+ $yturbo_options['ytmediascope'] = sanitize_text_field($_POST['ytmediascope']);
543
+
544
+ $yturbo_options['ytqueryselect'] = sanitize_text_field($_POST['ytqueryselect']);
545
+
546
+ $term_exclude_list = '';
547
+ $taxonomies = get_taxonomies( array('public'=>true,'show_ui'=>true,), 'objects', 'and' );
548
+ foreach ($taxonomies as $taxonomy) {
549
+ $temp = $taxonomy->name . ':';
550
+ if ( isset($_POST['exclude-'.$taxonomy->name]) ) :
551
+ foreach ($_POST['exclude-'.$taxonomy->name] as $exclude) {
552
+ $exclude = sanitize_text_field($exclude);
553
+ if ( is_numeric($exclude) ) {
554
+ if ( ! next($_POST['exclude-'.$taxonomy->name]) ) {
555
+ $temp .= $exclude;
556
+ } else {
557
+ $temp .= $exclude . ',';
558
+ }
559
+ }
560
+ }
561
+ $yturbo_options['exclude-'.$taxonomy->name] = $temp;
562
+ if ( ! $term_exclude_list ) {
563
+ $term_exclude_list .= $temp;
564
+ } else {
565
+ $term_exclude_list .= PHP_EOL . $temp;
566
+ }
567
+ else :
568
+ $yturbo_options['exclude-'.$taxonomy->name] = '';
569
+ endif;
570
+ }
571
+ $yturbo_options['yttaxlist'] = $term_exclude_list;
572
+ $yturbo_options['ytaddtaxlist'] = $term_exclude_list;
573
+
574
+ $yturbo_options['ytselectmenu'] = sanitize_text_field($_POST['ytselectmenu']);
575
+ if(isset($_POST['ytshare'])){$yturbo_options['ytshare'] = sanitize_text_field($_POST['ytshare']);}else{$yturbo_options['ytshare'] = 'disabled';}
576
+ $yturbo_options['ytnetw'] = sanitize_text_field($_POST['ytnetwspan']);
577
+ if(isset($_POST['ytcomments'])){$yturbo_options['ytcomments'] = sanitize_text_field($_POST['ytcomments']);}else{$yturbo_options['ytcomments'] = 'disabled';}
578
+ if(isset($_POST['ytcommentsavatar'])){$yturbo_options['ytcommentsavatar'] = sanitize_text_field($_POST['ytcommentsavatar']);}else{$yturbo_options['ytcommentsavatar'] = 'disabled';}
579
+ $ytcommentsnumber = sanitize_text_field($_POST['ytcommentsnumber']);
580
+ if ( is_numeric($ytcommentsnumber) && (int)$ytcommentsnumber <= 40 ) {
581
+ $yturbo_options['ytcommentsnumber'] = sanitize_text_field($_POST['ytcommentsnumber']);
582
+ }
583
+ $yturbo_options['ytcommentsorder'] = sanitize_text_field($_POST['ytcommentsorder']);
584
+ if(isset($_POST['ytcommentsdate'])){$yturbo_options['ytcommentsdate'] = sanitize_text_field($_POST['ytcommentsdate']);}else{$yturbo_options['ytcommentsdate'] = 'disabled';}
585
+ if(isset($_POST['ytcommentsdrevo'])){$yturbo_options['ytcommentsdrevo'] = sanitize_text_field($_POST['ytcommentsdrevo']);}else{$yturbo_options['ytcommentsdrevo'] = 'disabled';}
586
+ if(isset($_POST['ytpostdate'])){$yturbo_options['ytpostdate'] = sanitize_text_field($_POST['ytpostdate']);}else{$yturbo_options['ytpostdate'] = 'disabled';}
587
+ if(isset($_POST['ytexcerpt'])){$yturbo_options['ytexcerpt'] = sanitize_text_field($_POST['ytexcerpt']);}else{$yturbo_options['ytexcerpt'] = 'disabled';}
588
+
589
+ if(isset($_POST['ytfeedback'])){$yturbo_options['ytfeedback'] = sanitize_text_field($_POST['ytfeedback']);}else{$yturbo_options['ytfeedback'] = 'disabled';}
590
+ $yturbo_options['ytfeedbackselect'] = sanitize_text_field($_POST['ytfeedbackselect']);
591
+ $yturbo_options['ytfeedbackselectmesto'] = sanitize_text_field($_POST['ytfeedbackselectmesto']);
592
+ $yturbo_options['ytfeedbacktitle'] = sanitize_text_field($_POST['ytfeedbacktitle']);
593
+ $yturbo_options['ytfeedbacknetw'] = sanitize_text_field($_POST['ytfeedbacknetwspan']);
594
+
595
+ $yturbo_options['ytfeedbackcall'] = sanitize_text_field($_POST['ytfeedbackcall']);
596
+ $yturbo_options['ytfeedbackcallback'] = sanitize_text_field($_POST['ytfeedbackcallback']);
597
+ $yturbo_options['ytfeedbackcallback2'] = sanitize_text_field(htmlspecialchars($_POST['ytfeedbackcallback2']));
598
+ $yturbo_options['ytfeedbackcallback3'] = sanitize_text_field($_POST['ytfeedbackcallback3']);
599
+ $yturbo_options['ytfeedbackmail'] = sanitize_text_field($_POST['ytfeedbackmail']);
600
+ $yturbo_options['ytfeedbackvkontakte'] = sanitize_text_field($_POST['ytfeedbackvkontakte']);
601
+ $yturbo_options['ytfeedbackodnoklassniki'] = sanitize_text_field($_POST['ytfeedbackodnoklassniki']);
602
+ $yturbo_options['ytfeedbacktwitter'] = sanitize_text_field($_POST['ytfeedbacktwitter']);
603
+ $yturbo_options['ytfeedbackfacebook'] = sanitize_text_field($_POST['ytfeedbackfacebook']);
604
+ $yturbo_options['ytfeedbackviber'] = sanitize_text_field($_POST['ytfeedbackviber']);
605
+ $yturbo_options['ytfeedbackwhatsapp'] = sanitize_text_field($_POST['ytfeedbackwhatsapp']);
606
+ $yturbo_options['ytfeedbacktelegram'] = sanitize_text_field($_POST['ytfeedbacktelegram']);
607
+
608
+ if(isset($_POST['ytexcludeshortcodes'])){$yturbo_options['ytexcludeshortcodes'] = sanitize_text_field($_POST['ytexcludeshortcodes']);}else{$yturbo_options['ytexcludeshortcodes'] = 'disabled';}
609
+
610
+ $yturbo_options['ytexcludeshortcodeslist'] = '';
611
+ $checkboxes = isset($_POST['shortcodes']) ? $_POST['shortcodes'] : array();
612
+ foreach ($checkboxes as $value) {$yturbo_options['ytexcludeshortcodeslist'] .= sanitize_text_field($value) . ',';}
613
+
614
+ $types = explode(",", $yturbo_options['yttype']);
615
+ $types = array_diff($types, array(''));
616
+ foreach ($types as $post_type) {
617
+ if ( in_array($post_type, $types) ) {
618
+ if ( isset($_POST['template-'.$post_type]) ) {
619
+ $yturbo_options['template-'.$post_type] = esc_textarea($_POST['template-'.$post_type]);
620
+ }
621
+ }
622
+ }
623
+
624
+ $yturbo_options['yttab'] = sanitize_text_field($_POST['yttab']);
625
+
626
+ if(isset($_POST['ytrating'])){$yturbo_options['ytrating'] = sanitize_text_field($_POST['ytrating']);}else{$yturbo_options['ytrating'] = 'disabled';}
627
+ $yturbo_options['ytratingmin'] = sanitize_text_field($_POST['ytratingmin']);
628
+ $yturbo_options['ytratingmax'] = sanitize_text_field($_POST['ytratingmax']);
629
+
630
+ if(isset($_POST['ytsearch'])){$yturbo_options['ytsearch'] = sanitize_text_field($_POST['ytsearch']);}else{$yturbo_options['ytsearch'] = 'disabled';}
631
+ $yturbo_options['ytsearchplaceholder'] = sanitize_text_field($_POST['ytsearchplaceholder']);
632
+ $yturbo_options['ytsearchmesto'] = sanitize_text_field($_POST['ytsearchmesto']);
633
+
634
+ if(isset($_POST['yttoc'])){$yturbo_options['yttoc'] = sanitize_text_field($_POST['yttoc']);}else{$yturbo_options['yttoc'] = 'disabled';}
635
+ $yturbo_options['yttype2'] = '';
636
+ $checkboxes = isset($_POST['types2']) ? $_POST['types2'] : array();
637
+ foreach ($checkboxes as $value) {$yturbo_options['yttype2'] .= sanitize_text_field($value) . ',';}
638
+ $yturbo_options['yttype2'] = sanitize_text_field($yturbo_options['yttype2']);
639
+ $yturbo_options['yttoczag'] = sanitize_text_field($_POST['yttoczag']);
640
+ $yturbo_options['yttocmesto'] = sanitize_text_field($_POST['yttocmesto']);
641
+ $yttocnumber = sanitize_text_field($_POST['yttocnumber']);
642
+ if ( is_numeric($yttocnumber) ) {
643
+ $yturbo_options['yttocnumber'] = sanitize_text_field($_POST['yttocnumber']);
644
+ }
645
+ if(isset($_POST['yttoch1'])){$yturbo_options['yttoch1'] = sanitize_text_field($_POST['yttoch1']);}else{$yturbo_options['yttoch1'] = 'disabled';}
646
+ if(isset($_POST['yttoch2'])){$yturbo_options['yttoch2'] = sanitize_text_field($_POST['yttoch2']);}else{$yturbo_options['yttoch2'] = 'disabled';}
647
+ if(isset($_POST['yttoch3'])){$yturbo_options['yttoch3'] = sanitize_text_field($_POST['yttoch3']);}else{$yturbo_options['yttoch3'] = 'disabled';}
648
+ if(isset($_POST['yttoch4'])){$yturbo_options['yttoch4'] = sanitize_text_field($_POST['yttoch4']);}else{$yturbo_options['yttoch4'] = 'disabled';}
649
+ if(isset($_POST['yttoch5'])){$yturbo_options['yttoch5'] = sanitize_text_field($_POST['yttoch5']);}else{$yturbo_options['yttoch5'] = 'disabled';}
650
+ if(isset($_POST['yttoch6'])){$yturbo_options['yttoch6'] = sanitize_text_field($_POST['yttoch6']);}else{$yturbo_options['yttoch6'] = 'disabled';}
651
+ $yturbo_options['yttocexclude'] = sanitize_text_field($_POST['yttocexclude']);
652
+
653
+ $yturbo_options['ytprotokol'] = sanitize_text_field($_POST['ytprotokol']);
654
+ $yturbo_options['ytdateformat'] = sanitize_text_field($_POST['ytdateformat']);
655
+
656
+ if(isset($_POST['ytturbocolumn'])){$yturbo_options['ytturbocolumn'] = sanitize_text_field($_POST['ytturbocolumn']);}else{$yturbo_options['ytturbocolumn'] = 'disabled';}
657
+
658
+ $ytrelateddate = sanitize_text_field($_POST['ytrelateddate']);
659
+ if ( is_numeric($ytrelateddate) ) {
660
+ $yturbo_options['ytrelateddate'] = sanitize_text_field($_POST['ytrelateddate']);
661
+ }
662
+
663
+ if(isset($_POST['ytexcludeurls'])){$yturbo_options['ytexcludeurls'] = sanitize_text_field($_POST['ytexcludeurls']);}else{$yturbo_options['ytexcludeurls'] = 'disabled';}
664
+ $lines = array_filter(explode("\n", trim(esc_textarea($_POST['ytexcludeurlslist']))));
665
+ $yturbo_options['ytexcludeurlslist'] = implode("\n", $lines);
666
+ if(isset($_POST['ytdeltracking'])){$yturbo_options['ytdeltracking'] = sanitize_text_field($_POST['ytdeltracking']);}else{$yturbo_options['ytdeltracking'] = 'disabled';}
667
+
668
+ if(isset($_POST['ytextendedhtml'])){$yturbo_options['ytextendedhtml'] = sanitize_text_field($_POST['ytextendedhtml']);}else{$yturbo_options['ytextendedhtml'] = 'disabled';}
669
+
670
+ update_option('yturbo_options', $yturbo_options);
671
+
672
+ yturbo_clear_transients();
673
+ //проверяем и сохраняем введенные пользователем данные end
674
  }
675
  $yturbo_options = get_option('yturbo_options');
676
  ?>
677
  <?php if ( ! empty($_POST) ) :
678
  if ( ! wp_verify_nonce( $_POST['yturbo_nonce'], plugin_basename(__FILE__) ) || ! current_user_can('edit_posts') ) {
679
+ wp_die(__('Cheatin&#8217; uh?', 'rss-for-yandex-turbo'));
680
  }
681
  ?>
682
  <div id="message" class="updated fade"><p><strong><?php _e('Настройки сохранены.', 'rss-for-yandex-turbo'); ?></strong></p></div>
683
  <?php else : ?>
684
+ <?php $yturbo_options['yttab'] = 'RSS-лента'; ?>
685
  <?php endif; ?>
686
 
687
  <div class="wrap foptions">
694
  <script>
695
  var closedonat = localStorage.getItem('yt-close-donat');
696
  if (closedonat == 'yes') {
697
+ document.getElementById('donat').className = 'postbox hide';
698
+ document.getElementById('restore-hide-blocks').className = 'dashicons dashicons-admin-generic';
699
  }
700
  </script>
701
+ <h3 style="border-bottom: 1px solid #E1E1E1;background: #f7f7f7;"><?php _e('Вам нравится этот плагин ?', 'rss-for-yandex-turbo'); ?>
702
+ <span id="close-donat" class="dashicons dashicons-no-alt" title="<?php _e('Скрыть блок', 'rss-for-yandex-turbo'); ?>"></span></h3>
703
+ <div class="inside" style="display: block;margin-right: 12px;">
704
+ <img src="<?php echo $purl . '/img/icon_coffee.png'; ?>" title="<?php _e('Купить мне чашку кофе :)', 'rss-for-yandex-turbo'); ?>" style=" margin: 5px; float:left;" />
705
+ <p><?php _e('Привет, меня зовут <strong>Flector</strong>.', 'rss-for-yandex-turbo'); ?></p>
706
+ <p><?php _e('Я потратил много времени на разработку этого плагина.', 'rss-for-yandex-turbo'); ?> <br />
707
+ <?php _e('Поэтому не откажусь от небольшого пожертвования :)', 'rss-for-yandex-turbo'); ?></p>
708
+ <a target="_blank" id="yadonate" href="https://money.yandex.ru/to/41001443750704/200"><?php _e('Подарить', 'rss-for-yandex-turbo'); ?></a>
709
+ <p><?php _e('Или вы можете заказать у меня услуги по WordPress, от мелких правок до создания полноценного сайта.', 'rss-for-yandex-turbo'); ?><br />
710
+ <?php _e('Быстро, качественно и дешево. Прайс-лист смотрите по адресу <a target="_blank" href="https://www.wpuslugi.ru/?from=yturbo-plugin">https://www.wpuslugi.ru/</a>.', 'rss-for-yandex-turbo'); ?></p>
711
+ <div style="clear:both;"></div>
712
+ </div>
713
  </div>
714
 
715
  <form action="" method="post">
716
 
717
  <div class="xyztabs">
718
 
719
+ <input style="left:-2000px;position: absolute;" type="text" name="yttab" id="yttab" size="30" value="<?php echo esc_attr(stripslashes($yturbo_options['yttab'])); ?>" />
720
+ <ul class="xyztabs__caption">
721
+ <li <?php if ($yturbo_options['yttab'] == 'RSS-лента') echo 'class="active"'; ?>><?php _e('RSS-лента', 'rss-for-yandex-turbo'); ?></li>
722
+ <li <?php if ($yturbo_options['yttab'] == 'Оформление') echo 'class="active"'; ?>><?php _e('Оформление', 'rss-for-yandex-turbo'); ?></li>
723
+ <li <?php if ($yturbo_options['yttab'] == 'Блоки Яндекс.Турбо') echo 'class="active"'; ?>><?php _e('Блоки Яндекс.Турбо', 'rss-for-yandex-turbo'); ?></li>
724
+ <li <?php if ($yturbo_options['yttab'] == 'Счетчики') echo 'class="active"'; ?>><?php _e('Счетчики', 'rss-for-yandex-turbo'); ?></li>
725
+ <li <?php if ($yturbo_options['yttab'] == 'Реклама') echo 'class="active"'; ?>><?php _e('Реклама', 'rss-for-yandex-turbo'); ?></li>
726
+ <li <?php if ($yturbo_options['yttab'] == 'Типы записей и исключения') echo 'class="active"'; ?>><?php _e('Типы записей и исключения', 'rss-for-yandex-turbo'); ?></li>
727
+ <li <?php if ($yturbo_options['yttab'] == 'Шаблоны') echo 'class="active"'; ?>><?php _e('Шаблоны', 'rss-for-yandex-turbo'); ?></li>
728
+ <li <?php if ($yturbo_options['yttab'] == 'Фильтры') echo 'class="active"'; ?>><?php _e('Фильтры', 'rss-for-yandex-turbo'); ?></li>
729
+ </ul>
730
+
731
+ <div class="xyztabs__content<?php if ($yturbo_options['yttab'] == 'RSS-лента' ) echo ' active'; ?>"><!-- begin tab -->
732
+
733
+ <?php yturbo_count_feeds(); ?>
734
+
735
+ <?php if ( get_option('permalink_structure') ) {
736
+ $kor = get_bloginfo('url') .'/feed/' . '<strong>' . $yturbo_options['ytrssname'] . '</strong>/';
737
+ } else {
738
+ $kor = get_bloginfo('url') .'/?feed=' . '<strong>' . $yturbo_options['ytrssname']. '</strong>';
739
+ } ?>
740
+
741
+ <table class="form-table">
742
+ <tr class="trbordertop">
743
+ <th><?php _e('Имя RSS-ленты:', 'rss-for-yandex-turbo'); ?></th>
744
+ <td>
745
+ <input type="text" name="ytrssname" size="40" value="<?php echo $yturbo_options['ytrssname']; ?>" />
746
+ <br /><small><?php _e('Текущий URL RSS-ленты:', 'rss-for-yandex-turbo'); ?> <tt><?php echo $kor; ?></tt><br />
747
+ <?php _e('Только буквы и цифры, не меняйте без необходимости.', 'rss-for-yandex-turbo'); ?>
748
+ </small>
749
+ </td>
750
+ </tr>
751
+ <tr class="trbordertop">
752
+ <th><?php _e('Заголовок:', 'rss-for-yandex-turbo'); ?></th>
753
+ <td>
754
+ <input type="text" name="yttitle" size="40" value="<?php echo esc_attr(stripslashes($yturbo_options['yttitle'])); ?>" />
755
+ <br /><small><?php _e('Название RSS-ленты. Если экспортируется содержимое всего сайта, укажите название сайта.', 'rss-for-yandex-turbo'); ?><br />
756
+ <?php _e('Если экспортируется раздел сайта, укажите только название раздела.', 'rss-for-yandex-turbo'); ?><br />
757
+ </small>
758
+ </td>
759
+ </tr>
760
+ <tr>
761
+ <th><?php _e('Ссылка:', 'rss-for-yandex-turbo'); ?></th>
762
+ <td>
763
+ <input type="text" name="ytlink" size="40" value="<?php echo esc_attr(stripslashes($yturbo_options['ytlink'])); ?>" />
764
+ <br /><small><?php _e('URL сайта, данные которого экспортируются в RSS-ленту.', 'rss-for-yandex-turbo'); ?> </small>
765
+ </td>
766
+ </tr>
767
+ <tr>
768
+ <th><?php _e('Описание:', 'rss-for-yandex-turbo'); ?></th>
769
+ <td>
770
+ <input type="text" name="ytdescription" size="40" value="<?php echo esc_attr(stripslashes($yturbo_options['ytdescription'])); ?>" />
771
+ <br /><small><?php _e('Описание RSS-ленты одним предложением. Не используйте HTML-разметку.', 'rss-for-yandex-turbo'); ?> </small>
772
+ </td>
773
+ </tr>
774
+ <tr>
775
+ <th><?php _e('Язык:', 'rss-for-yandex-turbo'); ?></th>
776
+ <td>
777
+ <input style="max-width: 38px;" type="text" name="ytlanguage" value="<?php echo esc_attr(stripslashes($yturbo_options['ytlanguage'])); ?>" />
778
+ <br /><small><?php _e('Язык статей RSS-ленты в стандарте <a target="_blank" href="https://ru.wikipedia.org/wiki/%D0%9A%D0%BE%D0%B4%D1%8B_%D1%8F%D0%B7%D1%8B%D0%BA%D0%BE%D0%B2">ISO 639-1</a> (Россия - <strong>ru</strong>, Украина - <strong>uk</strong> и т.д.).', 'rss-for-yandex-turbo'); ?> </small>
779
+ </td>
780
+ </tr>
781
+ <tr class="trbordertop">
782
+ <th><?php _e('Количество записей:', 'rss-for-yandex-turbo'); ?></th>
783
+ <td>
784
+ <input style="max-width: 74px;" name="ytnumber" type="number" min="1" max="999999" step="1" value="<?php echo $yturbo_options['ytnumber']; ?>" />
785
+ <br /><small><?php _e('Общее количество записей в RSS-ленте (обязательно прочтите про <a target="_blank" href="https://yandex.ru/dev/turbo/doc/rss/quota-docpage/">ограничения</a> Яндекса).', 'rss-for-yandex-turbo'); ?> <br />
786
+ <?php _e('При установке более 1000 записей необходимо включить разбитие RSS-ленты в обязательном порядке.', 'rss-for-yandex-turbo'); ?> <br />
787
+ </small>
788
+ </td>
789
+ </tr>
790
+ <tr class="razb trbordertop">
791
+ <th class="tdcheckbox"><?php _e('Разбитие RSS-ленты:', 'rss-for-yandex-turbo'); ?></th>
792
+ <td>
793
+ <label for="ytrazb"><input type="checkbox" value="enabled" name="ytrazb" id="ytrazb" <?php if ($yturbo_options['ytrazb'] == 'enabled') echo 'checked="checked"'; ?> /><?php _e('Включить разбитие RSS-ленты', 'rss-for-yandex-turbo'); ?></label>
794
+ <br /><small><?php _e('Плагин будет генерировать несколько RSS-лент с указанным числом записей в каждой.', 'rss-for-yandex-turbo'); ?> <br />
795
+ <?php _e('Включите эту опцию, если RSS-лента слишком долго генерируется или если она превышает <a target="_blank" href="https://yandex.ru/dev/turbo/doc/rss/quota-docpage/">ограничения</a>, установленные Яндексом.', 'rss-for-yandex-turbo'); ?><br />
796
+ <?php _e('Яндекс может очень сильно нагружать ваш сервер - разбитие ленты и использование плагинов кэширования будет в этом случае весьма полезно.', 'rss-for-yandex-turbo'); ?> <br />
797
+ </small>
798
+ </td>
799
+ </tr>
800
+ <tr class="ytrazbnumbertr" <?php if ($yturbo_options['ytrazb'] == 'disabled') echo 'style="display:none;"'; ?>>
801
+ <th><?php _e('Делить RSS-ленту по:', 'rss-for-yandex-turbo'); ?></th>
802
+ <td>
803
+ <input style="max-width: 60px;" name="ytrazbnumber" type="number" min="1" max="1000" step="1" value="<?php echo $yturbo_options['ytrazbnumber']; ?>" />
804
+ <br /><small><?php _e('Укажите число записей, по которому лента будет делиться.', 'rss-for-yandex-turbo'); ?><br />
805
+ <?php _e('Для получения ссылок на ваши RSS-ленты сохраните настройки плагина.', 'rss-for-yandex-turbo'); ?><br />
806
+ <?php _e('Важно: разбитие не будет работать, если на вашем сайте нет необходимого числа записей.', 'rss-for-yandex-turbo'); ?> <br />
807
+ </small>
808
+ </td>
809
+ </tr>
810
+ <tr class="ytexcludeurlstr trbordertop">
811
+ <th class="tdcheckbox"><?php _e('Выборочное отключение:', 'rss-for-yandex-turbo'); ?></th>
812
+ <td>
813
+ <label for="ytexcludeurls"><input type="checkbox" value="enabled" name="ytexcludeurls" id="ytexcludeurls" <?php if ($yturbo_options['ytexcludeurls'] == 'enabled') echo 'checked="checked"'; ?> /><?php _e('Удалить указанные турбо-страницы', 'rss-for-yandex-turbo'); ?></label>
814
+ <br /><small><?php _e('Если вы полностью удалили запись на сайте, то отключить ее турбо-страницу обычным способом не получится.', 'rss-for-yandex-turbo'); ?><br />
815
+ <?php _e('Эта опция позволит сформировать отдельную RSS-ленту с записями, которые Яндекс должен удалить.', 'rss-for-yandex-turbo'); ?><br />
816
+ </small>
817
+ </td>
818
+ </tr>
819
+ <tr class="ytexcludeurlslisttr" <?php if ($yturbo_options['ytexcludeurls'] == 'disabled') echo 'style="display:none;"'; ?>>
820
+ <th class="tdcheckbox"><?php _e('URL "мусорной" ленты:', 'rss-for-yandex-turbo'); ?></th>
821
+ <td>
822
+ <?php
823
+ if ( get_option('permalink_structure') ) {
824
+ echo '<a target="_blank" href="'.get_bloginfo("url").'/feed/'.$yturbo_options['ytrssname'].'/?lenta=trash'.'">'.get_bloginfo("url").'/feed/'.$yturbo_options['ytrssname'].'/?lenta=trash'.'</a>';
825
+ } else {
826
+ echo '<a target="_blank" href="'.get_bloginfo("url").'/?feed='.$yturbo_options['ytrssname'].'&lenta=trash">'.get_bloginfo("url").'/?feed='.$yturbo_options['ytrssname'].'&lenta=trash</a>';
827
+ }
828
+ ?>
829
+ <br /><small><?php _e('Добавьте эту RSS-ленту в Яндекс.Вебмастер как обычную ленту.', 'rss-for-yandex-turbo'); ?><br />
830
+ </small>
831
+ </td>
832
+ </tr>
833
+ <tr class="ytexcludeurlslisttr" <?php if ($yturbo_options['ytexcludeurls'] == 'disabled') echo 'style="display:none;"'; ?>>
834
+ <th class="tdcheckbox"><?php _e('Отслеживание:', 'rss-for-yandex-turbo'); ?></th>
835
+ <td>
836
+ <label for="ytdeltracking"><input type="checkbox" value="enabled" name="ytdeltracking" id="ytdeltracking" <?php if ($yturbo_options['ytdeltracking'] == 'enabled') echo 'checked="checked"'; ?> /><?php _e('Следить за удаляемыми записями', 'rss-for-yandex-turbo'); ?></label>
837
+ <br /><small><?php _e('Плагин будет автоматически добавлять в список ниже ссылки на удаленные записи.', 'rss-for-yandex-turbo'); ?><br />
838
+ </small>
839
+ </td>
840
+ </tr>
841
+ <tr class="ytexcludeurlslisttr" <?php if ($yturbo_options['ytexcludeurls'] == 'disabled') echo 'style="display:none;"'; ?>>
842
+ <th><?php _e('Список удаляемых ссылок:', 'rss-for-yandex-turbo'); ?></th>
843
+ <td>
844
+ <textarea rows="8" cols="70" name="ytexcludeurlslist" id="ytexcludeurlslist"><?php echo stripcslashes($yturbo_options['ytexcludeurlslist']); ?></textarea>
845
+ <br /><small><?php _e('Каждая новая ссылка для удаления должна начинаться с новой строки.', 'rss-for-yandex-turbo'); ?><br />
846
+ </small>
847
+ </td>
848
+ </tr>
849
+ <tr class="trbordertop">
850
+ <th class="tdcheckbox"><?php _e('Полное отключение:', 'rss-for-yandex-turbo'); ?></th>
851
+ <td>
852
+ <label for="ytremoveturbo"><input type="checkbox" value="enabled" name="ytremoveturbo" id="ytremoveturbo" <?php if ($yturbo_options['ytremoveturbo'] == 'enabled') echo 'checked="checked"'; ?> /><?php _e('Удалить все турбо-страницы', 'rss-for-yandex-turbo'); ?></label>
853
+ <br /><small><?php _e('Эта опция добавит в RSS-ленту атрибут <tt>turbo="false"</tt> к тегу <tt>&lt;item></tt> для всех записей.', 'rss-for-yandex-turbo'); ?> <br />
854
+ <?php _e('Это единственный способ заставить Яндекс отключить турбо-страницы для вашего сайта.', 'rss-for-yandex-turbo'); ?><br />
855
+ <?php _e('Простое удаление плагина не поможет - необходимо, чтобы бот Яндекса "съел" ленту с <tt>turbo="false"</tt>.', 'rss-for-yandex-turbo'); ?><br />
856
+ <?php _e('Не забудьте поправить настройки плагина, чтобы в RSS-ленту попали все записи сайта.', 'rss-for-yandex-turbo'); ?>
857
+ </small>
858
+ </td>
859
+ </tr>
860
+ <tr class="ytprotokoltr" <?php if ($yturbo_options['ytremoveturbo'] == 'disabled') echo 'style="display:none;"'; ?>>
861
+ <th><?php _e('Протокол:', 'rss-for-yandex-turbo'); ?></th>
862
+ <td>
863
+ <select name="ytprotokol" style="width: 260px;">
864
+ <option value="asis" <?php if ($yturbo_options['ytprotokol'] == 'asis') echo 'selected="selected"'; ?>><?php _e('Не менять протокол', 'rss-for-yandex-turbo'); ?></option>
865
+ <option value="http" <?php if ($yturbo_options['ytprotokol'] == 'http') echo 'selected="selected"'; ?>><?php _e('http', 'rss-for-yandex-turbo'); ?></option>
866
+ <option value="https" <?php if ($yturbo_options['ytprotokol'] == 'https') echo 'selected="selected"'; ?>><?php _e('https', 'rss-for-yandex-turbo'); ?></option>
867
+ </select>
868
+ <br /><small><?php _e('Выберите используемый протокол для удаляемых турбо-страниц.', 'rss-for-yandex-turbo'); ?><br />
869
+ <?php _e('Яндекс не удалит автоматически турбо-страницы для старого протокола (при переезде сайта на https и наоборот).', 'rss-for-yandex-turbo'); ?><br />
870
+ <?php _e('Поэтому вам нужно будет сформировать ленту с записями для удаления со старым протоколом.', 'rss-for-yandex-turbo'); ?><br />
871
+ </small>
872
+ </td>
873
+ </tr>
874
+
875
+ <tr class="trbordertop">
876
+ <th></th>
877
+ <td>
878
+ <input type="submit" name="submit" class="button button-primary" value="<?php _e('Сохранить настройки &raquo;', 'rss-for-yandex-turbo'); ?>" />
879
+ </td>
880
+ </tr>
881
+ </table>
882
+ </div><!-- end tab -->
883
+
884
+ <div class="xyztabs__content<?php if ($yturbo_options['yttab'] == 'Оформление') echo ' active'; ?>"><!-- begin tab -->
885
+
886
+ <p><?php _e('В этом разделе собраны настройки, касающиеся оформления контента на турбо-страницах.', 'rss-for-yandex-turbo'); ?><br />
887
+ <?php _e('Отключите вывод миниатюр, если они не выводятся в вашей теме на страницах одиночных записей,', 'rss-for-yandex-turbo'); ?><br />
888
+ <?php _e('так как Яндексу не нравится, когда турбо-страница не соответствует оригинальной версии.', 'rss-for-yandex-turbo'); ?><br />
889
+ </p>
890
+
891
+ <table class="form-table">
892
+ <tr class="trbordertop">
893
+ <th class="tdcheckbox"><?php _e('Поддержка CSS:', 'rss-for-yandex-turbo'); ?></th>
894
+ <td>
895
+ <label for="ytextendedhtml"><input type="checkbox" value="enabled" name="ytextendedhtml" id="ytextendedhtml" <?php if ($yturbo_options['ytextendedhtml'] == 'enabled') echo 'checked="checked"'; ?> /><?php _e('Включить режим поддержки CSS', 'rss-for-yandex-turbo'); ?></label>
896
+ <br /><small><?php _e('При включении этой опции (<tt>turbo:extendedHtml</tt>) Яндекс не будет удалять классы и идентификаторы', 'rss-for-yandex-turbo'); ?> <br />
897
+ <?php _e('из разметки записей, что позволит настроить их внешний вид через CSS (читайте <a target="_blank" href="https://yandex.ru/dev/turbo/doc/rss/elements/custom.html">документацию</a>).', 'rss-for-yandex-turbo'); ?> <br />
898
+ <?php _e('Режим поддержки CSS можно включить или выключить для записей индивидуально (в метабоксе плагина).', 'rss-for-yandex-turbo'); ?> <br />
899
+ </small>
900
+ </td>
901
+ </tr>
902
+ <tr class="trbordertop">
903
+ <th class="tdcheckbox"><?php _e('Дата записей:', 'rss-for-yandex-turbo'); ?></th>
904
+ <td>
905
+ <label for="ytpostdate"><input type="checkbox" value="enabled" name="ytpostdate" id="ytpostdate" <?php if ($yturbo_options['ytpostdate'] == 'enabled') echo 'checked="checked"'; ?> /><?php _e('Указать дату публикации записей', 'rss-for-yandex-turbo'); ?></label>
906
+ <br /><small><?php _e('Выводить или не выводить дату публикации записей в ленте.', 'rss-for-yandex-turbo'); ?> <br />
907
+ <?php _e('Вывод даты можно включить или выключить для записей индивидуально (в метабоксе плагина).', 'rss-for-yandex-turbo'); ?>
908
+ </small>
909
+ </td>
910
+ </tr>
911
+ <tr class="ytdateformattr" <?php if ($yturbo_options['ytpostdate'] == 'disabled') echo 'style="display:none;"'; ?>>
912
+ <th><?php _e('Тип даты:', 'rss-for-yandex-turbo'); ?></th>
913
+ <td>
914
+ <select name="ytdateformat" style="width: 260px;">
915
+ <option value="create" <?php if ($yturbo_options['ytdateformat'] == 'create') echo 'selected="selected"'; ?>><?php _e('Дата создания', 'rss-for-yandex-turbo'); ?></option>
916
+ <option value="mod" <?php if ($yturbo_options['ytdateformat'] == 'mod') echo 'selected="selected"'; ?>><?php _e('Дата последнего изменения', 'rss-for-yandex-turbo'); ?></option>
917
+ </select>
918
+ <br /><small><?php _e('Выберите тип даты - дата создания записи или дата последнего изменения записи.', 'rss-for-yandex-turbo'); ?> <br />
919
+ <?php _e('Опция может быть полезна для формирования Яндексом автоматической главной страницы.', 'rss-for-yandex-turbo'); ?> <br />
920
+ </small>
921
+ </td>
922
+ </tr>
923
+ <tr class="trbordertop">
924
+ <th class="tdcheckbox"><?php _e('Отрывок записей:', 'rss-for-yandex-turbo'); ?></th>
925
+ <td>
926
+ <label for="ytexcerpt"><input type="checkbox" value="enabled" name="ytexcerpt" id="ytexcerpt" <?php if ($yturbo_options['ytexcerpt'] == 'enabled') echo 'checked="checked"'; ?> /><?php _e('Добавить в начало записей "отрывок"', 'rss-for-yandex-turbo'); ?></label>
927
+ <br /><small><?php _e('Используйте эту опцию только в случае необходимости.', 'rss-for-yandex-turbo'); ?> <br />
928
+ <?php _e('Например, когда "отрывок" (цитата) записи содержит контент, которого нет в самой записи.', 'rss-for-yandex-turbo'); ?> <br />
929
+ </small>
930
+ </td>
931
+ </tr>
932
+ <tr class="ytthumbnailtr trbordertop">
933
+ <th class="tdcheckbox"><?php _e('Миниатюра в RSS:', 'rss-for-yandex-turbo'); ?></th>
934
+ <td>
935
+ <label for="ytthumbnail"><input type="checkbox" value="enabled" name="ytthumbnail" id="ytthumbnail" <?php if ($yturbo_options['ytthumbnail'] == 'enabled') echo 'checked="checked"'; ?> /><?php _e('Добавить миниатюру к заголовку записи', 'rss-for-yandex-turbo'); ?></label>
936
+ <br /><small><?php _e('После заголовка записи будет выведена миниатюра записи (изображение записи).', 'rss-for-yandex-turbo'); ?>
937
+ </small>
938
+ </td>
939
+ </tr>
940
+ <tr class="ytselectthumbtr" <?php if ($yturbo_options['ytthumbnail'] == 'disabled') echo 'style="display:none;"'; ?>>
941
+ <th><?php _e('Размер миниатюры в RSS:', 'rss-for-yandex-turbo'); ?></th>
942
+ <td>
943
+ <select name="ytselectthumb" style="width: 260px;">
944
+ <?php $image_sizes = get_intermediate_image_sizes(); ?>
945
+ <?php foreach ($image_sizes as $size_name) : ?>
946
+ <option value="<?php echo $size_name ?>" <?php if ($yturbo_options['ytselectthumb'] == $size_name) echo 'selected="selected"'; ?>><?php echo $size_name ?></option>
947
+ <?php endforeach; ?>
948
+ </select>
949
+ <br /><small><?php _e('Выберите нужный размер миниатюры (в списке находятся все зарегистрированные на сайте размеры миниатюр).', 'rss-for-yandex-turbo'); ?><br />
950
+ <?php _e('Необходимо выбрать именно тот размер, который используется вашей темой для вывода "Изображения записи".', 'rss-for-yandex-turbo'); ?><br />
951
+ </small>
952
+ </td>
953
+ </tr>
954
+ <tr class="trbordertop">
955
+ <th><?php _e('Автор записей:', 'rss-for-yandex-turbo'); ?></th>
956
+ <td>
957
+ <select name="ytauthorselect" id="ytauthorselect" style="width: 260px;">
958
+ <option value="Автор записи" <?php if ($yturbo_options['ytauthorselect'] == 'Автор записи') echo 'selected="selected"'; ?>><?php _e('Автор записи', 'rss-for-yandex-turbo'); ?></option>
959
+ <option value="Указать автора" <?php if ($yturbo_options['ytauthorselect'] == 'Указать автора') echo 'selected="selected"'; ?>><?php _e('Указать автора', 'rss-for-yandex-turbo'); ?></option>
960
+ <option value="Отключить указание автора" <?php if ($yturbo_options['ytauthorselect'] == 'Отключить указание автора') echo 'selected="selected"'; ?>><?php _e('Отключить указание автора', 'rss-for-yandex-turbo'); ?></option>
961
+ </select>
962
+ <br /><small><?php _e('Автор записей (можно не указывать). ', 'rss-for-yandex-turbo'); ?> <br />
963
+ </small>
964
+ </td>
965
+ </tr>
966
+ <tr id="ownname2" <?php if ($yturbo_options['ytauthorselect'] != 'Указать автора') echo 'style="display:none;"'; ?>>
967
+ <th><?php _e('Автор записей:', 'rss-for-yandex-turbo'); ?></th>
968
+ <td>
969
+ <input type="text" name="ytauthor" size="26" value="<?php echo esc_attr(stripslashes($yturbo_options['ytauthor'])); ?>" />
970
+ <br /><small><?php _e('Произвольное имя автора записей (если не заполнено, то будет использовано имя автора записи).', 'rss-for-yandex-turbo'); ?> </small>
971
+ </td>
972
+ </tr>
973
+ <tr class="trbordertop">
974
+ <th><?php _e('Описания изображений:', 'rss-for-yandex-turbo'); ?></th>
975
+ <td>
976
+ <select name="ytfigcaption" id="capalt" style="width: 260px;">
977
+ <option value="Использовать подписи" <?php if ($yturbo_options['ytfigcaption'] == 'Использовать подписи') echo 'selected="selected"'; ?>><?php _e('Использовать подписи', 'rss-for-yandex-turbo'); ?></option>
978
+ <option value="Отключить описания" <?php if ($yturbo_options['ytfigcaption'] == 'Отключить описания') echo 'selected="selected"'; ?>><?php _e('Отключить описания', 'rss-for-yandex-turbo'); ?></option>
979
+ </select>
980
+ <br /><small><?php _e('Разметка "описания" для изображений на турбо-страницах (пример смотреть <a target="_blank" href="https://yandex.ru/dev/turbo/doc/rss/elements/multimedia-docpage/#ariaid-title3">здесь</a>).', 'rss-for-yandex-turbo'); ?> <br />
981
+ <?php _e('В html5-темах будет взята информация из тега <tt>&lt;figcaption></tt>, в html4-темах из шорткода <tt>[caption]</tt>.', 'rss-for-yandex-turbo'); ?><br />
982
+ </small>
983
+ </td>
984
+ </tr>
985
+ <tr class="yttoctr trbordertop">
986
+ <th class="tdcheckbox"><?php _e('Содержание:', 'rss-for-yandex-turbo'); ?></th>
987
+ <td>
988
+ <label for="yttoc"><input type="checkbox" value="enabled" name="yttoc" id="yttoc" <?php if ($yturbo_options['yttoc'] == 'enabled') echo 'checked="checked"'; ?> /><?php _e('Добавить блок содержания на турбо-страницы', 'rss-for-yandex-turbo'); ?></label>
989
+ <br /><small><?php _e('На турбо-страницы будет добавлен блок содержания (аналогично <a target="_blank" href="https://wordpress.org/plugins/table-of-contents-plus/">TOC+</a> и подобным плагинам).', 'rss-for-yandex-turbo'); ?><br />
990
+ <?php _e('Не включайте данный блок, если не используете плагины вывода содержания.', 'rss-for-yandex-turbo'); ?>
991
+ </small>
992
+ </td>
993
+ </tr>
994
+ <tr class="yttocchildtr" <?php if ($yturbo_options['yttoc'] == 'disabled') echo 'style="display:none;"'; ?>>
995
+ <th class="tdcheckbox"><?php _e('Типы записей:', 'rss-for-yandex-turbo'); ?></th>
996
+ <td>
997
+ <?php
998
+ $registered = get_post_types( array('public'=> true), 'objects' );
999
+ $exclude = array('attachment');
1000
+ $types = array();
1001
+
1002
+ foreach ($registered as $post) {
1003
+ if ( in_array($post->name, $exclude) ) {
1004
+ continue;
1005
+ }
1006
+ $types[$post->name] = $post->name;
1007
+ }
1008
+
1009
+ $yttype2 = explode(",", $yturbo_options['yttype2']);
1010
+ $yttype2 = array_diff($yttype2, array(''));
1011
+
1012
+ foreach ($types as $post_type) {
1013
+ $obj = get_post_type_object( $post_type ); ?>
1014
+ <label class="types2" for="<?php echo $post_type; ?>2"><input type="checkbox" value="<?php echo $post_type; ?>" name="types2[]" id="<?php echo $post_type; ?>2" <?php if (in_array($post_type, $yttype2)) echo 'checked="checked"'; ?> /><?php echo $obj->labels->name; ?> (<?php echo $post_type; ?>)</label><br />
1015
+ <?php } ?>
1016
+ <small><?php _e('Типы записей для добавления блока содержания.', 'rss-for-yandex-turbo'); ?> </small>
1017
+ </td>
1018
+ </tr>
1019
+ <tr class="yttocchildtr" <?php if ($yturbo_options['yttoc'] == 'disabled') echo 'style="display:none;"'; ?>>
1020
+ <th><?php _e('Текст заголовка:', 'rss-for-yandex-turbo'); ?></th>
1021
+ <td>
1022
+ <input type="text" style="width:240px;" name="yttoczag" size="20" value="<?php echo esc_attr(stripslashes($yturbo_options['yttoczag'])); ?>" />
1023
+ <br /><small><?php _e('Например: "Содержание", "Оглавление", "Содержание страницы" и тому подобное.', 'rss-for-yandex-turbo'); ?><br />
1024
+ </small>
1025
+ </td>
1026
+ </tr>
1027
+ <tr class="yttocchildtr" <?php if ($yturbo_options['yttoc'] == 'disabled') echo 'style="display:none;"'; ?>>
1028
+ <th><?php _e('Расположение блока:', 'rss-for-yandex-turbo'); ?></th>
1029
+ <td>
1030
+ <select name="yttocmesto" id="yttocmesto" style="width: 260px;">
1031
+ <option value="Перед первым заголовком" <?php if ($yturbo_options['yttocmesto'] == 'Перед первым заголовком') echo 'selected="selected"'; ?>><?php _e('Перед первым заголовком', 'rss-for-yandex-turbo'); ?></option>
1032
+ <option value="После первого заголовка" <?php if ($yturbo_options['yttocmesto'] == 'После первого заголовка') echo 'selected="selected"'; ?>><?php _e('После первого заголовка', 'rss-for-yandex-turbo'); ?></option>
1033
+ <option value="В начале записи" <?php if ($yturbo_options['yttocmesto'] == 'В начале записи') echo 'selected="selected"'; ?>><?php _e('В начале записи', 'rss-for-yandex-turbo'); ?></option>
1034
+ <option value="В конце записи" <?php if ($yturbo_options['yttocmesto'] == 'В конце записи') echo 'selected="selected"'; ?>><?php _e('В конце записи', 'rss-for-yandex-turbo'); ?></option>
1035
+ </select>
1036
+ <br /><small><?php _e('Выводите данный блок на турбо-страницах там же, где он расположен на обычных страницах.', 'rss-for-yandex-turbo'); ?><br />
1037
+ </small>
1038
+ </td>
1039
+ </tr>
1040
+ <tr class="yttocchildtr" <?php if ($yturbo_options['yttoc'] == 'disabled') echo 'style="display:none;"'; ?>>
1041
+ <th><?php _e('Минимум заголовков:', 'rss-for-yandex-turbo'); ?></th>
1042
+ <td>
1043
+ <input style="max-width: 50px;" name="yttocnumber" type="number" min="1" max="10" step="1" value="<?php echo $yturbo_options['yttocnumber']; ?>" />
1044
+ <br /><small><?php _e('Укажите минимальное число заголовков записи, при котором будет выведен блок содержания.', 'rss-for-yandex-turbo'); ?><br/>
1045
+ </small>
1046
+ </td>
1047
+ </tr>
1048
+ <tr class="yttocchildtr" <?php if ($yturbo_options['yttoc'] == 'disabled') echo 'style="display:none;"'; ?>>
1049
+ <th class="tdcheckbox"><?php _e('Уровни заголовков:', 'rss-for-yandex-turbo'); ?></th>
1050
+ <td>
1051
+ <label for="yttoch1"><input type="checkbox" value="enabled" name="yttoch1" id="yttoch1" <?php if ($yturbo_options['yttoch1'] == 'enabled') echo 'checked="checked"'; ?> /><?php _e('Заголовок &lt;h1>', 'rss-for-yandex-turbo'); ?></label><br />
1052
+ <label for="yttoch2"><input type="checkbox" value="enabled" name="yttoch2" id="yttoch2" <?php if ($yturbo_options['yttoch2'] == 'enabled') echo 'checked="checked"'; ?> /><?php _e('Заголовок &lt;h2>', 'rss-for-yandex-turbo'); ?></label><br />
1053
+ <label for="yttoch3"><input type="checkbox" value="enabled" name="yttoch3" id="yttoch3" <?php if ($yturbo_options['yttoch3'] == 'enabled') echo 'checked="checked"'; ?> /><?php _e('Заголовок &lt;h3>', 'rss-for-yandex-turbo'); ?></label><br />
1054
+ <label for="yttoch4"><input type="checkbox" value="enabled" name="yttoch4" id="yttoch4" <?php if ($yturbo_options['yttoch4'] == 'enabled') echo 'checked="checked"'; ?> /><?php _e('Заголовок &lt;h4>', 'rss-for-yandex-turbo'); ?></label><br />
1055
+ <label for="yttoch5"><input type="checkbox" value="enabled" name="yttoch5" id="yttoch5" <?php if ($yturbo_options['yttoch5'] == 'enabled') echo 'checked="checked"'; ?> /><?php _e('Заголовок &lt;h5>', 'rss-for-yandex-turbo'); ?></label><br />
1056
+ <label for="yttoch6"><input type="checkbox" value="enabled" name="yttoch6" id="yttoch6" <?php if ($yturbo_options['yttoch6'] == 'enabled') echo 'checked="checked"'; ?> /><?php _e('Заголовок &lt;h6>', 'rss-for-yandex-turbo'); ?></label><br />
1057
+ <small><?php _e('Блок содержания будет формироваться только из указанных заголовков.', 'rss-for-yandex-turbo'); ?><br/>
1058
+ </small>
1059
+ </td>
1060
+ </tr>
1061
+ <tr class="yttocchildtr" <?php if ($yturbo_options['yttoc'] == 'disabled') echo 'style="display:none;"'; ?>>
1062
+ <th><?php _e('Исключить заголовки:', 'rss-for-yandex-turbo'); ?></th>
1063
+ <td>
1064
+ <input type="text" style="width:240px;" name="yttocexclude" size="20" value="<?php echo esc_attr(stripslashes($yturbo_options['yttocexclude'])); ?>" />
1065
+ <br /><small><?php _e('Укажите заголовки, которые должны быть исключены из блока содержания.', 'rss-for-yandex-turbo'); ?><br />
1066
+ <?php _e('Разделите несколько заголовков вертикальной линией <tt>|</tt>. Используйте звездочку <tt>*</tt> в качестве ', 'rss-for-yandex-turbo'); ?><br />
1067
+ <?php _e('подстановочного знака для соответствия другому тексту. Регистр не учитывается. Примеры:', 'rss-for-yandex-turbo'); ?><br />
1068
+ <ul>
1069
+ <li><?php _e('<tt>Фрукты*</tt> - игнорировать все заголовки, начинающиеся с "Фрукты"', 'rss-for-yandex-turbo'); ?></li>
1070
+ <li><?php _e('<tt>*Фруктовая диета*</tt> - игнорировать заголовки с выражением "Фруктовая диета", расположенном в любом месте заголовка', 'rss-for-yandex-turbo'); ?></li>
1071
+ <li><?php _e('<tt>Яблоня|Апельсины|Желтые Бананы</tt> - игнорировать заголовки, которые состоят именно из "Яблоня", "Апельсины" или "Желтые Бананы"', 'rss-for-yandex-turbo'); ?></li>
1072
+ </ul>
1073
+ </small>
1074
+ </td>
1075
+ </tr>
1076
+
1077
+ <tr class="trbordertop">
1078
+ <th></th>
1079
+ <td>
1080
+ <input type="submit" name="submit" class="button button-primary" value="<?php _e('Сохранить настройки &raquo;', 'rss-for-yandex-turbo'); ?>" />
1081
+ </td>
1082
+ </tr>
1083
+ </table>
1084
+ </div><!-- end tab -->
1085
+
1086
+ <div class="xyztabs__content<?php if ($yturbo_options['yttab'] == 'Блоки Яндекс.Турбо') echo ' active'; ?>"><!-- begin tab -->
1087
+
1088
+ <p><?php _e('Часть этих блоков вы можете настроить напрямую в Яндекс.Вебмастере.', 'rss-for-yandex-turbo'); ?><br />
1089
+ <?php _e('Указать логотип сайта можно только через Яндекс.Вебмастер.', 'rss-for-yandex-turbo'); ?><br />
1090
+ </p>
1091
+
1092
+ <table class="form-table">
1093
+ <tr class="ytselectmenutr trbordertop">
1094
+ <th><?php _e('Меню:', 'rss-for-yandex-turbo'); ?></th>
1095
+ <td>
1096
+ <select name="ytselectmenu" style="width: 260px;">
1097
+ <?php $menus = get_terms('nav_menu', array('hide_empty'=>true)); ?>
1098
+ <?php foreach ($menus as $menu): ?>
1099
+ <option value="<?php echo $menu->name; ?>" <?php if ($yturbo_options['ytselectmenu'] == $menu->name) echo 'selected="selected"'; ?>><?php echo $menu->name; ?></option>
1100
+ <?php endforeach; ?>
1101
+ <option value="Не использовать" <?php if ($yturbo_options['ytselectmenu'] == 'Не использовать') echo 'selected="selected"'; ?>><?php echo 'Не использовать'; ?></option>
1102
+ </select>
1103
+ <?php $menulink = get_bloginfo('url') .'/wp-admin/nav-menus.php'; ?>
1104
+ <br /><small><?php _e('Выберите меню для использования на турбо-страницах (создать меню можно на вкладке ', 'rss-for-yandex-turbo'); ?> "<a target="_blank" href="<?php echo $menulink; ?>"><?php _e('Внешний вид \ Меню', 'rss-for-yandex-turbo'); ?></a>").<br />
1105
+ <?php _e('Меню должно быть ограничено <strong>10</strong> ссылками без иерархии (пример смотреть <a target="_blank" href="https://yandex.ru/dev/turbo/doc/rss/elements/header-docpage/#menu">здесь</a>).', 'rss-for-yandex-turbo'); ?><br />
1106
+ <?php _e('Через Яндекс.Вебмастер можно установить меню без ограничений и с иерархией.', 'rss-for-yandex-turbo'); ?><br />
1107
+ </small>
1108
+ </td>
1109
+ </tr>
1110
+ <tr class="ytsharetr trbordertop">
1111
+ <th class="tdcheckbox"><?php _e('Блок "Поделиться":', 'rss-for-yandex-turbo'); ?></th>
1112
+ <td>
1113
+ <label for="ytshare"><input type="checkbox" value="enabled" name="ytshare" id="ytshare" <?php if ($yturbo_options['ytshare'] == 'enabled') echo 'checked="checked"'; ?> /><?php _e('Добавить блок "Поделиться" на турбо-страницы', 'rss-for-yandex-turbo'); ?></label>
1114
+ <br /><small><?php _e('Этот блок будет добавлен в конце записи (пример смотреть <a target="_blank" href="https://yandex.ru/dev/turbo/doc/rss/elements/share-docpage/">здесь</a>).', 'rss-for-yandex-turbo'); ?>
1115
+ </small>
1116
+ </td>
1117
+ </tr>
1118
+ <tr class="ytsharechildtr" <?php if ($yturbo_options['ytshare'] == 'disabled') echo 'style="display:none;"'; ?>>
1119
+ <th><?php _e('Социальные сети:', 'rss-for-yandex-turbo'); ?></th>
1120
+ <td style="padding:0;">
1121
+
1122
+ <table>
1123
+ <tr style="margin-left:-5px;">
1124
+
1125
+ <td>
1126
+ <label for="facebook"><img title="Facebook" src="<?php echo $purl . '/img/facebook.png'; ?>" style="margin-bottom: 5px;width:48px;height:48px; vertical-align: middle; " /><br /></label>
1127
+ <input type="checkbox" name="networks[]" id="facebook" style="margin-left:16px;" />
1128
+ </td>
1129
+
1130
+ <td>
1131
+ <label for="twitter"><img title="Twitter" src="<?php echo $purl . '/img/twitter.png'; ?>" style="margin-bottom: 5px;width:48px;height:48px; vertical-align: middle; " /><br /></label>
1132
+ <input type="checkbox" name="networks[]" id="twitter" style="margin-left:16px;" />
1133
+ </td>
1134
+
1135
+ <td>
1136
+ <label for="odnoklassniki"><img title="Odnoklassniki" src="<?php echo $purl . '/img/odnoklassniki.png'; ?>" style="margin-bottom: 5px;width:48px;height:48px; vertical-align: middle; " /><br /></label>
1137
+ <input type="checkbox" name="networks[]" id="odnoklassniki" style="margin-left:16px;">
1138
+ </td>
1139
+
1140
+ <td>
1141
+ <label for="vkontakte"><img title="VKontakte" src="<?php echo $purl . '/img/vk.png'; ?>" style="margin-bottom: 5px;width:48px;height:48px; vertical-align: middle; " /><br /></label>
1142
+ <input type="checkbox" name="networks[]" id="vkontakte" style="margin-left:16px;" />
1143
+ </td>
1144
+
1145
+ <td>
1146
+ <label for="telegram"><img title="Telegram" src="<?php echo $purl . '/img/telegram.png'; ?>" style="margin-bottom: 5px;width:48px;height:48px; vertical-align: middle; " /><br /></label>
1147
+ <input type="checkbox" name="networks[]" id="telegram" style="margin-left:16px;" />
1148
+ </td>
1149
+
1150
+ </tr>
1151
+ </table>
1152
+ </td>
1153
+
1154
+ </tr>
1155
+ <tr class="ytsharechildtr" <?php if ($yturbo_options['ytshare'] == 'disabled') echo 'style="display:none;"'; ?>>
1156
+ <th><?php _e('Порядок:', 'rss-for-yandex-turbo'); ?></th>
1157
+ <td>
1158
+ <input style="" type="text" name="ytnetw" id="ytnetw" size="62" value="<?php echo esc_attr($yturbo_options['ytnetw']); ?>" disabled="disabled" />
1159
+ <input type="text" style="display:none;" name="ytnetwspan" id="ytnetwspan" value="<?php echo esc_attr($yturbo_options['ytnetw']); ?>"/>
1160
+ <br /><small style=""><?php _e('Для сортировки иконок сначала снимите все чекбоксы, а потом снова их выберите в нужном вам порядке.', 'rss-for-yandex-turbo'); ?></small>
1161
+ </td>
1162
+ </tr>
1163
+ <tr class="ytfeedbacktr trbordertop">
1164
+ <th class="tdcheckbox"><?php _e('Блок обратной связи:', 'rss-for-yandex-turbo'); ?></th>
1165
+ <td>
1166
+ <label for="ytfeedback"><input type="checkbox" value="enabled" name="ytfeedback" id="ytfeedback" <?php if ($yturbo_options['ytfeedback'] == 'enabled') echo 'checked="checked"'; ?> /><?php _e('Добавить блок обратной связи на турбо-страницы', 'rss-for-yandex-turbo'); ?></label>
1167
+ <br /><small><?php _e('На турбо-страницы будет добавлен блок обратной связи в выбранном вами месте (пример смотреть <a target="_blank" href="https://yandex.ru/dev/turbo/doc/rss/elements/feedback-docpage/">здесь</a>).', 'rss-for-yandex-turbo'); ?>
1168
+ </small>
1169
+ </td>
1170
+ </tr>
1171
+ <tr class="ytfeedbackchildtr" <?php if ($yturbo_options['ytfeedback'] == 'disabled') echo 'style="display:none;"'; ?>>
1172
+ <th><?php _e('Выравнивание блока:', 'rss-for-yandex-turbo'); ?></th>
1173
+ <td>
1174
+ <select name="ytfeedbackselect" id="ytfeedbackselect" style="width: 260px;">
1175
+ <option value="left" <?php if ($yturbo_options['ytfeedbackselect'] == 'left') echo 'selected="selected"'; ?>><?php _e('Слева', 'rss-for-yandex-turbo'); ?></option>
1176
+ <option value="right" <?php if ($yturbo_options['ytfeedbackselect'] == 'right') echo 'selected="selected"'; ?>><?php _e('Справа', 'rss-for-yandex-turbo'); ?></option>
1177
+ <option value="false" <?php if ($yturbo_options['ytfeedbackselect'] == 'false') echo 'selected="selected"'; ?>><?php _e('В указанном месте', 'rss-for-yandex-turbo'); ?></option>
1178
+ </select>
1179
+ <br /><small><?php _e('Укажите где именно на турбо-страницах должен выводиться блок обратной связи.', 'rss-for-yandex-turbo'); ?> <br />
1180
+ <?php _e('При выравнивании по левому или правому краю страницы можно разместить лишь <strong>4</strong> кнопки связи.', 'rss-for-yandex-turbo'); ?><br />
1181
+ </small>
1182
+ </td>
1183
+ </tr>
1184
+ <tr class="ytfeedbackselectmestotr" <?php if ($yturbo_options['ytfeedback'] == 'disabled' or $yturbo_options['ytfeedbackselect'] != 'false') echo 'style="display:none;"'; ?>>
1185
+ <th><?php _e('Расположить блок:', 'rss-for-yandex-turbo'); ?></th>
1186
+ <td>
1187
+ <select name="ytfeedbackselectmesto" id="ytfeedbackselectmesto" style="width: 260px;">
1188
+ <option value="В начале записи" <?php if ($yturbo_options['ytfeedbackselectmesto'] == 'В начале записи') echo 'selected="selected"'; ?>><?php _e('В начале записи', 'rss-for-yandex-turbo'); ?></option>
1189
+ <option value="В конце записи" <?php if ($yturbo_options['ytfeedbackselectmesto'] == 'В конце записи') echo 'selected="selected"'; ?>><?php _e('В конце записи', 'rss-for-yandex-turbo'); ?></option>
1190
+ </select>
1191
+ <br /><small><?php _e('В начале записи блок будет расположен после заголовка, а в конце записи после блока "Поделиться".', 'rss-for-yandex-turbo'); ?><br />
1192
+ </small>
1193
+ </td>
1194
+ </tr>
1195
+ <tr class="ytfeedbackselectmestotr" <?php if ($yturbo_options['ytfeedback'] == 'disabled' or $yturbo_options['ytfeedbackselect'] != 'false') echo 'style="display:none;"'; ?>>
1196
+ <th><?php _e('Заголовок блока:', 'rss-for-yandex-turbo'); ?></th>
1197
+ <td>
1198
+ <input type="text" name="ytfeedbacktitle" size="30" value="<?php echo esc_attr(stripslashes($yturbo_options['ytfeedbacktitle'])); ?>" />
1199
+ <br /><small><?php _e('Укажите заголовок блока (используется только при выводе блока в указанном месте).', 'rss-for-yandex-turbo'); ?><br />
1200
+ </small>
1201
+ </td>
1202
+ </tr>
1203
+ <tr class="ytfeedbackchildtr" <?php if ($yturbo_options['ytfeedback'] == 'disabled') echo 'style="display:none;"'; ?>>
1204
+ <th><?php _e('Кнопки связи:', 'rss-for-yandex-turbo'); ?></th>
1205
+ <td style="padding:0;">
1206
+
1207
+ <table>
1208
+ <tr style="margin-left:-5px;display: flex;flex-wrap: wrap;">
1209
+
1210
+ <td style="padding: 15px 3px;">
1211
+ <label for="feedbackcall"><img title="Звонок" src="<?php echo $purl . '/img/feedback/call.png'; ?>" style="margin-bottom: 5px;width:52px;height:52px; vertical-align: middle; " /><br /></label>
1212
+ <input type="checkbox" name="networks2[]" id="feedbackcall" style="margin-left:16px;" />
1213
+ </td>
1214
+
1215
+ <td style="padding: 15px 3px;">
1216
+ <label for="feedbackcallback"><img title="Контактная форма" src="<?php echo $purl . '/img/feedback/callback.png'; ?>" style="margin-bottom: 5px;width:52px;height:52px; vertical-align: middle; " /><br /></label>
1217
+ <input type="checkbox" name="networks2[]" id="feedbackcallback" style="margin-left:16px;" />
1218
+ </td>
1219
+
1220
+ <td style="padding: 15px 3px;">
1221
+ <label for="feedbackchat"><img title="Чат" src="<?php echo $purl . '/img/feedback/chat.png'; ?>" style="margin-bottom: 5px;width:52px;height:52px; vertical-align: middle; " /><br /></label>
1222
+ <input type="checkbox" name="networks2[]" id="feedbackchat" style="margin-left:16px;" />
1223
+ </td>
1224
+
1225
+ <td style="padding: 15px 3px;">
1226
+ <label for="feedbackmail"><img title="E-mail" src="<?php echo $purl . '/img/feedback/mail.png'; ?>" style="margin-bottom: 5px;width:52px;height:52px; vertical-align: middle; " /><br /></label>
1227
+ <input type="checkbox" name="networks2[]" id="feedbackmail" style="margin-left:16px;" />
1228
+ </td>
1229
+
1230
+ <td style="padding: 15px 3px;">
1231
+ <label for="feedbackvkontakte"><img title="VKontakte" src="<?php echo $purl . '/img/feedback/vkontakte.png'; ?>" style="margin-bottom: 5px;width:52px;height:52px; vertical-align: middle; " /><br /></label>
1232
+ <input type="checkbox" name="networks2[]" id="feedbackvkontakte" style="margin-left:16px;" />
1233
+ </td>
1234
+
1235
+ <td style="padding: 15px 3px;">
1236
+ <label for="feedbackodnoklassniki"><img title="Odnoklassniki" src="<?php echo $purl . '/img/feedback/odnoklassniki.png'; ?>" style="margin-bottom: 5px;width:52px;height:52px; vertical-align: middle; " /><br /></label>
1237
+ <input type="checkbox" name="networks2[]" id="feedbackodnoklassniki" style="margin-left:16px;" />
1238
+ </td>
1239
+
1240
+ <td style="padding: 15px 3px;">
1241
+ <label for="feedbacktwitter"><img title="Twitter" src="<?php echo $purl . '/img/feedback/twitter.png'; ?>" style="margin-bottom: 5px;width:52px;height:52px; vertical-align: middle; " /><br /></label>
1242
+ <input type="checkbox" name="networks2[]" id="feedbacktwitter" style="margin-left:16px;" />
1243
+ </td>
1244
+
1245
+ <td style="padding: 15px 3px;">
1246
+ <label for="feedbackfacebook"><img title="Facebook" src="<?php echo $purl . '/img/feedback/facebook.png'; ?>" style="margin-bottom: 5px;width:52px;height:52px; vertical-align: middle; " /><br /></label>
1247
+ <input type="checkbox" name="networks2[]" id="feedbackfacebook" style="margin-left:16px;" />
1248
+ </td>
1249
+
1250
+ <td style="padding: 15px 3px;">
1251
+ <label for="feedbackviber"><img title="Viber" src="<?php echo $purl . '/img/feedback/viber.png'; ?>" style="margin-bottom: 5px;width:52px;height:52px; vertical-align: middle; " /><br /></label>
1252
+ <input type="checkbox" name="networks2[]" id="feedbackviber" style="margin-left:16px;" />
1253
+ </td>
1254
+
1255
+ <td style="padding: 15px 3px;">
1256
+ <label for="feedbackwhatsapp"><img title="Whatsapp" src="<?php echo $purl . '/img/feedback/whatsapp.png'; ?>" style="margin-bottom: 5px;width:52px;height:52px; vertical-align: middle; " /><br /></label>
1257
+ <input type="checkbox" name="networks2[]" id="feedbackwhatsapp" style="margin-left:16px;" />
1258
+ </td>
1259
+
1260
+ <td style="padding: 15px 3px;">
1261
+ <label for="feedbacktelegram"><img title="Telegram" src="<?php echo $purl . '/img/feedback/telegram.png'; ?>" style="margin-bottom: 5px;width:52px;height:52px; vertical-align: middle; " /><br /></label>
1262
+ <input type="checkbox" name="networks2[]" id="feedbacktelegram" style="margin-left:16px;" />
1263
+ </td>
1264
+
1265
+ </tr>
1266
+ </table>
1267
+ </td>
1268
+ </tr>
1269
+ <tr class="ytfeedbackchildtr" <?php if ($yturbo_options['ytfeedback'] == 'disabled') echo 'style="display:none;"'; ?>>
1270
+ <th><?php _e('Порядок кнопок:', 'rss-for-yandex-turbo'); ?></th>
1271
+ <td>
1272
+ <input style="" type="text" name="ytfeedbacknetw" id="ytfeedbacknetw" size="62" value="<?php echo esc_attr($yturbo_options['ytfeedbacknetw']); ?>" disabled="disabled" />
1273
+ <input type="text" style="display:none;" name="ytfeedbacknetwspan" id="ytfeedbacknetwspan" value="<?php echo esc_attr($yturbo_options['ytfeedbacknetw']); ?>"/>
1274
+ <br /><small style=""><?php _e('Для сортировки иконок сначала снимите все чекбоксы, а потом снова их выберите в нужном вам порядке.', 'rss-for-yandex-turbo'); ?></small>
1275
+ </td>
1276
+ </tr>
1277
+ <tr class="ytfeedbackchildtr ytfeedbackcontactstr" <?php if ($yturbo_options['ytfeedback'] == 'disabled') echo 'style="display:none;"'; ?>>
1278
+ <th><?php _e('Контакты для кнопок:', 'rss-for-yandex-turbo'); ?></th>
1279
+ <td>
1280
+ <select name="ytfeedbackcontacts" id="ytfeedbackcontacts" style="width: 260px;">
1281
+ <option value="myselect" selected='selected'><?php _e('- Выбрать -', 'rss-for-yandex-turbo'); ?></option>
1282
+ <option disabled="disabled" value="feedbackcall"><?php _e('Звонок', 'rss-for-yandex-turbo'); ?></option>
1283
+ <option disabled="disabled" value="feedbackcallback"><?php _e('Контактная форма', 'rss-for-yandex-turbo'); ?></option>
1284
+ <option disabled="disabled" value="feedbackchat"><?php _e('Чат', 'rss-for-yandex-turbo'); ?></option>
1285
+ <option disabled="disabled" value="feedbackmail"><?php _e('E-mail', 'rss-for-yandex-turbo'); ?></option>
1286
+ <option disabled="disabled" value="feedbackvkontakte"><?php _e('VKontakte', 'rss-for-yandex-turbo'); ?></option>
1287
+ <option disabled="disabled" value="feedbackodnoklassniki"><?php _e('Odnoklassniki', 'rss-for-yandex-turbo'); ?></option>
1288
+ <option disabled="disabled" value="feedbacktwitter"><?php _e('Twitter', 'rss-for-yandex-turbo'); ?></option>
1289
+ <option disabled="disabled" value="feedbackfacebook"><?php _e('Facebook', 'rss-for-yandex-turbo'); ?></option>
1290
+ <option disabled="disabled" value="feedbackviber"><?php _e('Viber', 'rss-for-yandex-turbo'); ?></option>
1291
+ <option disabled="disabled" value="feedbackwhatsapp"><?php _e('Whatsapp', 'rss-for-yandex-turbo'); ?></option>
1292
+ <option disabled="disabled" value="feedbacktelegram"><?php _e('Telegram', 'rss-for-yandex-turbo'); ?></option>
1293
+ </select>
1294
+ <br /><small><?php _e('Для установки контактов выберите нужную кнопку из списка (доступны только отмеченные кнопки связи).', 'rss-for-yandex-turbo'); ?><br />
1295
+ </small>
1296
+ </td>
1297
+ </tr>
1298
+ <tr class="ytfeedbackcalltr" style="display:none;">
1299
+ <th><?php _e('Звонок:', 'rss-for-yandex-turbo'); ?></th>
1300
+ <td>
1301
+ <input type="text" name="ytfeedbackcall" size="40" value="<?php echo esc_attr(stripslashes($yturbo_options['ytfeedbackcall'])); ?>" />
1302
+ <br /><small><?php _e('Укажите телефонный номер в международном формате (пример: <tt>+74951234567</tt>).', 'rss-for-yandex-turbo'); ?> </small>
1303
+ </td>
1304
+ </tr>
1305
+ <tr class="ytfeedbackcallbacktr" style="display:none;">
1306
+ <th><?php _e('Email для контактной формы:', 'rss-for-yandex-turbo'); ?></th>
1307
+ <td>
1308
+ <input type="text" name="ytfeedbackcallback" size="40" value="<?php echo esc_attr(stripslashes($yturbo_options['ytfeedbackcallback'])); ?>" />
1309
+ <br /><small><?php _e('Укажите адрес e-mail (пример: <tt>mail@test.ru</tt>).', 'rss-for-yandex-turbo'); ?><br />
1310
+ <?php _e('Разрешено указывать только e-mail, принадлежащий вашему домену.', 'rss-for-yandex-turbo'); ?><br />
1311
+ </small>
1312
+ </td>
1313
+ </tr>
1314
+ <tr class="ytfeedbackcallbacktr" style="display:none;">
1315
+ <th><?php _e('Название организации:', 'rss-for-yandex-turbo'); ?></th>
1316
+ <td>
1317
+ <input type="text" name="ytfeedbackcallback2" size="40" value="<?php echo esc_attr(stripslashes($yturbo_options['ytfeedbackcallback2'])); ?>" />
1318
+ <br /><small><?php _e('Укажите юридическое название вашей организации (пример: <tt>ООО «Ромашка»</tt>).', 'rss-for-yandex-turbo'); ?><br />
1319
+ <?php _e('* При заполнении требуется указать ссылку на пользовательское соглашении.', 'rss-for-yandex-turbo'); ?><br />
1320
+ </small>
1321
+ </td>
1322
+ </tr>
1323
+ <tr class="ytfeedbackcallbacktr" style="display:none;">
1324
+ <th><?php _e('Пользовательское соглашение:', 'rss-for-yandex-turbo'); ?></th>
1325
+ <td>
1326
+ <input type="text" name="ytfeedbackcallback3" size="40" value="<?php echo esc_attr(stripslashes($yturbo_options['ytfeedbackcallback3'])); ?>" />
1327
+ <br /><small><?php _e('Укажите ссылку на пользовательское соглашение о предоставлении обратной связи.', 'rss-for-yandex-turbo'); ?><br />
1328
+ <?php _e('* При заполнении требуется указать юридическое название вашей организации.', 'rss-for-yandex-turbo'); ?><br />
1329
+ </small>
1330
+ </td>
1331
+ </tr>
1332
+ <tr class="ytfeedbackchattr" style="display:none;">
1333
+ <th><?php _e('Чат:', 'rss-for-yandex-turbo'); ?></th>
1334
+ <td>
1335
+ <input disabled="disabled" type="text" name="ytfeedbackchat" size="40" value="" />
1336
+ <br /><small><?php _e('Указывать ничего не надо, если вы создали чат для своего сайта.', 'rss-for-yandex-turbo'); ?><br />
1337
+ <?php _e('Справку о том, как создать "Чат для бизнеса" читайте <a target="_blank" href="https://tech.yandex.ru/turbo/doc/rss/elements/feedback-docpage/#feedback__chat">здесь</a>.', 'rss-for-yandex-turbo'); ?><br />
1338
+ </small>
1339
+ </td>
1340
+ </tr>
1341
+ <tr class="ytfeedbackmailtr" style="display:none;">
1342
+ <th><?php _e('E-mail:', 'rss-for-yandex-turbo'); ?></th>
1343
+ <td>
1344
+ <input type="text" name="ytfeedbackmail" size="40" value="<?php echo esc_attr(stripslashes($yturbo_options['ytfeedbackmail'])); ?>" />
1345
+ <br /><small><?php _e('Укажите адрес e-mail (пример: <tt>mail@test.ru</tt>).', 'rss-for-yandex-turbo'); ?></small>
1346
+ </td>
1347
+ </tr>
1348
+ <tr class="ytfeedbackvkontaktetr" style="display:none;">
1349
+ <th><?php _e('VKontakte:', 'rss-for-yandex-turbo'); ?></th>
1350
+ <td>
1351
+ <input type="text" name="ytfeedbackvkontakte" size="40" value="<?php echo esc_attr(stripslashes($yturbo_options['ytfeedbackvkontakte'])); ?>" />
1352
+ <br /><small><?php _e('Укажите урл (профиль, группа или чат) ВКонтакте (пример для чата: <tt>https://vk.me/123456</tt>, где <tt>123456</tt> это ваш аккаунт).', 'rss-for-yandex-turbo'); ?></small>
1353
+ </td>
1354
+ </tr>
1355
+ <tr class="ytfeedbackodnoklassnikitr" style="display:none;">
1356
+ <th><?php _e('Odnoklassniki:', 'rss-for-yandex-turbo'); ?></th>
1357
+ <td>
1358
+ <input type="text" name="ytfeedbackodnoklassniki" size="40" value="<?php echo esc_attr(stripslashes($yturbo_options['ytfeedbackodnoklassniki'])); ?>" />
1359
+ <br /><small><?php _e('Укажите урл (профиль или группа) Одноклассники (пример для профиля: <tt>https://www.ok.ru/profile/123456</tt>, где <tt>123456</tt> это ваш аккаунт).', 'rss-for-yandex-turbo'); ?></small>
1360
+ </td>
1361
+ </tr>
1362
+ <tr class="ytfeedbacktwittertr" style="display:none;">
1363
+ <th><?php _e('Twitter:', 'rss-for-yandex-turbo'); ?></th>
1364
+ <td>
1365
+ <input type="text" name="ytfeedbacktwitter" size="40" value="<?php echo esc_attr(stripslashes($yturbo_options['ytfeedbacktwitter'])); ?>" />
1366
+ <br /><small><?php _e('Укажите урл профиля Twitter (пример: <tt>https://twitter.com/yandex</tt>, где <tt>yandex</tt> это ваш аккаунт).', 'rss-for-yandex-turbo'); ?></small>
1367
+ </td>
1368
+ </tr>
1369
+ <tr class="ytfeedbackfacebooktr" style="display:none;">
1370
+ <th><?php _e('Facebook:', 'rss-for-yandex-turbo'); ?></th>
1371
+ <td>
1372
+ <input type="text" name="ytfeedbackfacebook" size="40" value="<?php echo esc_attr(stripslashes($yturbo_options['ytfeedbackfacebook'])); ?>" />
1373
+ <br /><small><?php _e('Укажите урл (профиль, группа или чат) Facebook (пример для профиля: <tt>https://www.facebook.com/yandex</tt>, где <tt>yandex</tt> это ваш аккаунт).', 'rss-for-yandex-turbo'); ?></small>
1374
+ </td>
1375
+ </tr>
1376
+ <tr class="ytfeedbackvibertr" style="display:none;">
1377
+ <th><?php _e('Viber:', 'rss-for-yandex-turbo'); ?></th>
1378
+ <td>
1379
+ <input type="text" name="ytfeedbackviber" size="40" value="<?php echo esc_attr(stripslashes($yturbo_options['ytfeedbackviber'])); ?>" />
1380
+ <br /><small><?php _e('Укажите урл связи для Viber (пример для чата: <tt>viber://chat?number=+74951234567</tt>, где <tt>+74991234567</tt> это ваш номер телефона).', 'rss-for-yandex-turbo'); ?></small>
1381
+ </td>
1382
+ </tr>
1383
+ <tr class="ytfeedbackwhatsapptr" style="display:none;">
1384
+ <th><?php _e('Whatsapp:', 'rss-for-yandex-turbo'); ?></th>
1385
+ <td>
1386
+ <input type="text" name="ytfeedbackwhatsapp" size="40" value="<?php echo esc_attr(stripslashes($yturbo_options['ytfeedbackwhatsapp'])); ?>" />
1387
+ <br /><small><?php _e('Укажите урл связи для Whatsapp (пример: <tt>whatsapp://send?phone=74951234567</tt>, где <tt>74951234567</tt> это ваш номер телефона).', 'rss-for-yandex-turbo'); ?></small>
1388
+ </td>
1389
+ </tr>
1390
+ <tr class="ytfeedbacktelegramtr" style="display:none;">
1391
+ <th><?php _e('Telegram:', 'rss-for-yandex-turbo'); ?></th>
1392
+ <td>
1393
+ <input type="text" name="ytfeedbacktelegram" size="40" value="<?php echo esc_attr(stripslashes($yturbo_options['ytfeedbacktelegram'])); ?>" />
1394
+ <br /><small><?php _e('Укажите урл связи для Telegram (пример: <tt>https://t.me/123456</tt>, где <tt>123456</tt> это ваш аккаунт).', 'rss-for-yandex-turbo'); ?></small>
1395
+ </td>
1396
+ </tr>
1397
+ <tr class="ytcommentstr trbordertop">
1398
+ <th class="tdcheckbox"><?php _e('Комментарии:', 'rss-for-yandex-turbo'); ?></th>
1399
+ <td>
1400
+ <label for="ytcomments"><input type="checkbox" value="enabled" name="ytcomments" id="ytcomments" <?php if ($yturbo_options['ytcomments'] == 'enabled') echo 'checked="checked"'; ?> /><?php _e('Добавить комментарии к турбо-страницам', 'rss-for-yandex-turbo'); ?></label>
1401
+ <br /><small><?php _e('К записям на турбо-страницах будут добавлены комментарии (пример смотреть <a target="_blank" href="https://yandex.ru/dev/turbo/doc/rss/elements/comments-docpage/">здесь</a>).', 'rss-for-yandex-turbo'); ?>
1402
+ </small>
1403
+ </td>
1404
+ </tr>
1405
+ <tr class="ytcommentschildtr" <?php if ($yturbo_options['ytcomments'] == 'disabled') echo 'style="display:none;"'; ?>>
1406
+ <th class="tdcheckbox"><?php _e('Аватары:', 'rss-for-yandex-turbo'); ?></th>
1407
+ <td>
1408
+ <label for="ytcommentsavatar"><input type="checkbox" value="enabled" name="ytcommentsavatar" id="ytcommentsavatar" <?php if ($yturbo_options['ytcommentsavatar'] == 'enabled') echo 'checked="checked"'; ?> /><?php _e('Добавить аватары к комментариям', 'rss-for-yandex-turbo'); ?></label>
1409
+ <br /><small><?php _e('Выводить или нет аватары (граватары) к комментариям.', 'rss-for-yandex-turbo'); ?><br />
1410
+ <?php _e('Внимание! Картинки аватаров могут не уложиться в лимит изображений на одну запись (не более <strong>50</strong> штук).', 'rss-for-yandex-turbo'); ?> <br />
1411
+ <?php _e('В случае отключения вывода аватаров Яндекс выведет на месте аватаров картинку-заглушку.', 'rss-for-yandex-turbo'); ?><br />
1412
+ </small>
1413
+ </td>
1414
+ </tr>
1415
+ <tr class="ytcommentschildtr" <?php if ($yturbo_options['ytcomments'] == 'disabled') echo 'style="display:none;"'; ?>>
1416
+ <th><?php _e('Число комментариев:', 'rss-for-yandex-turbo'); ?></th>
1417
+ <td>
1418
+ <input style="max-width: 50px;" name="ytcommentsnumber" type="number" min="1" max="40" step="1" value="<?php echo $yturbo_options['ytcommentsnumber']; ?>" />
1419
+ <br /><small><?php _e('Укажите число выводимых комментариев (максимально можно выводить только <strong>40</strong> комментариев).', 'rss-for-yandex-turbo'); ?><br/>
1420
+ </small>
1421
+ </td>
1422
+ </tr>
1423
+ <tr class="ytcommentschildtr" <?php if ($yturbo_options['ytcomments'] == 'disabled') echo 'style="display:none;"'; ?>>
1424
+ <th><?php _e('Сортировка:', 'rss-for-yandex-turbo'); ?></th>
1425
+ <td>
1426
+ <select name="ytcommentsorder" id="ytcommentsorder" style="width: 260px;">
1427
+ <option value="В начале новые комментарии" <?php if ($yturbo_options['ytcommentsorder'] == 'В начале новые комментарии') echo 'selected="selected"'; ?>><?php _e('В начале новые комментарии', 'rss-for-yandex-turbo'); ?></option>
1428
+ <option value="В начале старые комментарии" <?php if ($yturbo_options['ytcommentsorder'] == 'В начале старые комментарии') echo 'selected="selected"'; ?>><?php _e('В начале старые комментарии', 'rss-for-yandex-turbo'); ?></option>
1429
+ </select>
1430
+ <br /><small><?php _e('Сортировка комментариев по дате добавления.', 'rss-for-yandex-turbo'); ?> <br />
1431
+ <?php _e('Учтите, что при использовании древовидных комментариев сортировка визуально может быть нарушена.', 'rss-for-yandex-turbo'); ?><br />
1432
+ </small>
1433
+ </td>
1434
+ </tr>
1435
+ <tr class="ytcommentschildtr" <?php if ($yturbo_options['ytcomments'] == 'disabled') echo 'style="display:none;"'; ?>>
1436
+ <th class="tdcheckbox"><?php _e('Дата комментариев:', 'rss-for-yandex-turbo'); ?></th>
1437
+ <td>
1438
+ <label for="ytcommentsdate"><input type="checkbox" value="enabled" name="ytcommentsdate" id="ytcommentsdate" <?php if ($yturbo_options['ytcommentsdate'] == 'enabled') echo 'checked="checked"'; ?> /><?php _e('Добавить дату к комментариям', 'rss-for-yandex-turbo'); ?></label>
1439
+ <br /><small><?php _e('Указывать дату для комментариев по <a target="_blank" href="https://tech.yandex.ru/turbo/doc/rss/elements/comments-docpage/">спецификации</a> Яндекса необязательно.', 'rss-for-yandex-turbo'); ?>
1440
+ </small>
1441
+ </td>
1442
+ </tr>
1443
+ <tr class="ytcommentschildtr" <?php if ($yturbo_options['ytcomments'] == 'disabled') echo 'style="display:none;"'; ?>>
1444
+ <th class="tdcheckbox"><?php _e('Древовидность:', 'rss-for-yandex-turbo'); ?></th>
1445
+ <td>
1446
+ <label for="ytcommentsdrevo"><input type="checkbox" value="enabled" name="ytcommentsdrevo" id="ytcommentsdrevo" <?php if ($yturbo_options['ytcommentsdrevo'] == 'enabled') echo 'checked="checked"'; ?> /><?php _e('Использовать древовидность', 'rss-for-yandex-turbo'); ?></label>
1447
+ <br /><small><?php _e('Выводить или не выводить комментарии в древовидном виде.', 'rss-for-yandex-turbo'); ?><br />
1448
+ <?php _e('Поддерживается древовидность только для 2 уровней глубины.', 'rss-for-yandex-turbo'); ?><br />
1449
+ <?php _e('Учтите, что отключение древовидности не повлияет на сортировку комментариев.', 'rss-for-yandex-turbo'); ?><br />
1450
+ </small>
1451
+ </td>
1452
+ </tr>
1453
+ <tr class="ytrelatedtr trbordertop">
1454
+ <th class="tdcheckbox"><?php _e('Похожие записи:', 'rss-for-yandex-turbo'); ?></th>
1455
+ <td>
1456
+ <label for="ytrelated"><input type="checkbox" value="enabled" name="ytrelated" id="ytrelated" <?php if ($yturbo_options['ytrelated'] == 'enabled') echo 'checked="checked"'; ?> /><?php _e('Добавить блок похожих записей на турбо-страницы', 'rss-for-yandex-turbo'); ?></label>
1457
+ <br /><small><?php _e('На турбо-страницы будет добавлен блок похожих записей (в конце страницы).', 'rss-for-yandex-turbo'); ?></small>
1458
+ </td>
1459
+ </tr>
1460
+ <tr class="ytrelatedchildtr" <?php if ($yturbo_options['ytrelated'] == 'disabled') echo 'style="display:none;"'; ?>>
1461
+ <th><?php _e('Количество похожих записей:', 'rss-for-yandex-turbo'); ?></th>
1462
+ <td>
1463
+ <input style="max-width: 50px;" name="ytrelatednumber" type="number" min="1" max="30" step="1" value="<?php echo $yturbo_options['ytrelatednumber']; ?>" />
1464
+ <br /><small><?php _e('Укажите число записей в блоке похожих записей.', 'rss-for-yandex-turbo'); ?> <br >
1465
+ <?php _e('Список похожих записей будет формироваться случайным образом из записей рубрики текущей записи.', 'rss-for-yandex-turbo'); ?><br />
1466
+ <?php _e('Внимание! Не устанавливайте слишком большое число похожих записей, если вы используете вместе с ними вывод миниатюр.', 'rss-for-yandex-turbo'); ?><br />
1467
+ <?php _e('Лимит Яндекса на общее количество изображений одной страницы - <strong>50</strong> (миниатюры похожих записей тоже учитываются).', 'rss-for-yandex-turbo'); ?><br />
1468
+ <?php _e('Больше <strong>30</strong> похожих записей установить нельзя (тоже лимит Яндекса на количество ссылок в блоке похожих записей).', 'rss-for-yandex-turbo'); ?><br />
1469
+ </small>
1470
+ </td>
1471
+ </tr>
1472
+ <tr class="ytrelatedchildtr" <?php if ($yturbo_options['ytrelated'] == 'disabled') echo 'style="display:none;"'; ?>>
1473
+ <th><?php _e('Ограничение по дате:', 'rss-for-yandex-turbo'); ?></th>
1474
+ <td>
1475
+ <input style="max-width: 50px;" name="ytrelateddate" type="number" min="1" max="99" step="1" value="<?php echo $yturbo_options['ytrelateddate']; ?>" />
1476
+ <br /><small><?php _e('Для похожих записей будут взяты только записи, опубликованные за указанное количество последних месяцев.', 'rss-for-yandex-turbo'); ?><br >
1477
+ <?php _e('Это ограничение поможет избежать ситуаций, когда в похожих записях выводятся статьи 10-летней давности.', 'rss-for-yandex-turbo'); ?><br />
1478
+ <?php _e('Не ставьте маленькое количество месяцев в случае, если ваш сайт не слишком часто обновляется.', 'rss-for-yandex-turbo'); ?><br />
1479
+ <?php _e('В такой ситуации список похожих записей может быть очень коротким (или вообще пустым).', 'rss-for-yandex-turbo'); ?><br />
1480
+ <?php _e('Если информация на вашем сайте не устаревает со временем, то ограничение по дате не имеет смысла (смело ставьте 99 месяцев).', 'rss-for-yandex-turbo'); ?><br />
1481
+ </small>
1482
+ </td>
1483
+ </tr>
1484
+ <tr class="ytrelatedchildtr" <?php if ($yturbo_options['ytrelated'] == 'disabled') echo 'style="display:none;"'; ?>>
1485
+ <th><?php _e('Миниатюра для похожих записей:', 'rss-for-yandex-turbo'); ?></th>
1486
+ <td>
1487
+ <select name="ytrelatedselectthumb" style="width: 260px;">
1488
+ <?php $image_sizes = get_intermediate_image_sizes(); ?>
1489
+ <?php foreach ($image_sizes as $size_name): ?>
1490
+ <option value="<?php echo $size_name ?>" <?php if ($yturbo_options['ytrelatedselectthumb'] == $size_name) echo 'selected="selected"'; ?>><?php echo $size_name ?></option>
1491
+ <?php endforeach; ?>
1492
+ <option value="Не использовать" <?php if ($yturbo_options['ytrelatedselectthumb'] == 'Не использовать') echo 'selected="selected"'; ?>><?php echo 'Не использовать'; ?></option>
1493
+ </select>
1494
+ <br /><small><?php _e('Выберите нужный размер миниатюры (в списке находятся все зарегистрированные на сайте размеры миниатюр). ', 'rss-for-yandex-turbo'); ?><br />
1495
+ <?php _e('Вывод миниатюр для похожих записей можно отключить.', 'rss-for-yandex-turbo'); ?><br />
1496
+ </small>
1497
+ </td>
1498
+ </tr>
1499
+ <tr class="ytrelatedchildtr" <?php if ($yturbo_options['ytrelated'] == 'disabled') echo 'style="display:none;"'; ?>>
1500
+ <th class="tdcheckbox"><?php _e('Непрерывная лента статей:', 'rss-for-yandex-turbo'); ?></th>
1501
+ <td>
1502
+ <label for="ytrelatedinfinity"><input type="checkbox" value="enabled" name="ytrelatedinfinity" id="ytrelatedinfinity" <?php if ($yturbo_options['ytrelatedinfinity'] == 'enabled') echo 'checked="checked"'; ?> /><?php _e('Включить непрерывную ленту статей', 'rss-for-yandex-turbo'); ?></label>
1503
+ <br /><small><?php _e('Вместо обычного короткого списка похожих статей будет выводиться непрерывная лента из полных записей.', 'rss-for-yandex-turbo'); ?><br />
1504
+ <?php _e('При включении непрерывной ленты статей вывод миниатюр для похожих записей будет отключен.', 'rss-for-yandex-turbo'); ?><br />
1505
+ </small>
1506
+ </td>
1507
+ </tr>
1508
+ <tr class="ytrelatedchildtr" <?php if ($yturbo_options['ytrelated'] == 'disabled') echo 'style="display:none;"'; ?>>
1509
+ <th class="tdcheckbox"><?php _e('Кэширование:', 'rss-for-yandex-turbo'); ?></th>
1510
+ <td>
1511
+ <label for="ytrelatedcache"><input type="checkbox" value="enabled" name="ytrelatedcache" id="ytrelatedcache" <?php if ($yturbo_options['ytrelatedcache'] == 'enabled') echo 'checked="checked"'; ?> /><?php _e('Кэшировать список похожих записей', 'rss-for-yandex-turbo'); ?></label>
1512
+ <br /><small><?php _e('Для ускорения генерирования RSS-ленты вы можете включить кэширование списка похожих записей.', 'rss-for-yandex-turbo'); ?></small>
1513
+ </td>
1514
+ </tr>
1515
+ <tr class="ytcachetime" <?php if ($yturbo_options['ytrelated'] == 'disabled' or $yturbo_options['ytrelatedcache'] != 'enabled') echo 'style="display:none;"'; ?>>
1516
+ <th><?php _e('Время жизни кэша:', 'rss-for-yandex-turbo'); ?></th>
1517
+ <td>
1518
+ <input style="max-width: 70px;" name="ytrelatedcachetime" type="number" min="1" max="1000" step="1" value="<?php echo $yturbo_options['ytrelatedcachetime']; ?>" />
1519
+ <br /><small><?php _e('Укажите время жизни кэша (в часах).', 'rss-for-yandex-turbo'); ?><br />
1520
+ <?php _e('Внимание! Любое изменение настроек плагина скинет кэш похожих записей.', 'rss-for-yandex-turbo'); ?><br />
1521
+ </small>
1522
+ </td>
1523
+ </tr>
1524
+ <tr class="ytratingtr trbordertop">
1525
+ <th class="tdcheckbox"><?php _e('Рейтинг:', 'rss-for-yandex-turbo'); ?></th>
1526
+ <td>
1527
+ <label for="ytrating"><input type="checkbox" value="enabled" name="ytrating" id="ytrating" <?php if ($yturbo_options['ytrating'] == 'enabled') echo 'checked="checked"'; ?> /><?php _e('Добавить рейтинг на турбо-страницы', 'rss-for-yandex-turbo'); ?></label>
1528
+ <br /><small><?php _e('На турбо-страницы будет добавлен блок рейтинга (пример смотреть <a target="_blank" href="https://yandex.ru/dev/turbo/doc/rss/elements/rating-docpage/">здесь</a>).', 'rss-for-yandex-turbo'); ?></small>
1529
+ </td>
1530
+ </tr>
1531
+ <tr class="ytratingchildtr" <?php if ($yturbo_options['ytrating'] == 'disabled') echo 'style="display:none;"'; ?>>
1532
+ <th><?php _e('Диапазон оценок:', 'rss-for-yandex-turbo'); ?></th>
1533
+ <td>
1534
+ <?php _e('От:', 'rss-for-yandex-turbo'); ?> <input style="max-width: 60px;margin-right:10px;" name="ytratingmin" type="number" min="1" max="5" step="0.01" value="<?php echo esc_attr($yturbo_options['ytratingmin']); ?>" />
1535
+ <?php _e('До:', 'rss-for-yandex-turbo'); ?> <input style="max-width: 60px;" name="ytratingmax" type="number" min="1" max="5" step="0.01" value="<?php echo esc_attr($yturbo_options['ytratingmax']); ?>" />
1536
+ <br /><small><?php _e('Укажите минимальную и максимальную оценку.', 'rss-for-yandex-turbo'); ?><br />
1537
+ <?php _e('Каждой записи будет присвоена случайная оценка в указанном диапазоне.', 'rss-for-yandex-turbo'); ?><br />
1538
+ <?php _e('Этот рейтинг будет выведен сразу после заголовка с миниатюрой записи.', 'rss-for-yandex-turbo'); ?><br />
1539
+ </small>
1540
+ </td>
1541
+ </tr>
1542
+ <tr class="ytsearchtr trbordertop">
1543
+ <th class="tdcheckbox"><?php _e('Поиск:', 'rss-for-yandex-turbo'); ?></th>
1544
+ <td>
1545
+ <label for="ytsearch"><input type="checkbox" value="enabled" name="ytsearch" id="ytsearch" <?php if ($yturbo_options['ytsearch'] == 'enabled') echo 'checked="checked"'; ?> /><?php _e('Добавить поиск на турбо-страницы', 'rss-for-yandex-turbo'); ?></label>
1546
+ <br /><small><?php _e('На турбо-страницы будет добавлен блок поиска (пример смотреть <a target="_blank" href="https://yandex.ru/dev/turbo/doc/rss/elements/search-block-docpage/">здесь</a>).', 'rss-for-yandex-turbo'); ?><br />
1547
+ <?php _e('На данный момент поиск не будет работать, если ваш сайт работает не на https протоколе.', 'rss-for-yandex-turbo'); ?>
1548
+ </small>
1549
+ </td>
1550
+ </tr>
1551
+ <tr class="ytsearchchildtr" <?php if ($yturbo_options['ytsearch'] == 'disabled') echo 'style="display:none;"'; ?>>
1552
+ <th><?php _e('Текст по умолчанию:', 'rss-for-yandex-turbo'); ?></th>
1553
+ <td>
1554
+ <input type="text" style="width:200px;" name="ytsearchplaceholder" size="20" value="<?php echo esc_attr(stripslashes($yturbo_options['ytsearchplaceholder'])); ?>" />
1555
+ <br /><small><?php _e('Текст, который отображается в поисковой строке по умолчанию', 'rss-for-yandex-turbo'); ?><br />
1556
+ </small>
1557
+ </td>
1558
+ </tr>
1559
+ <tr class="ytsearchchildtr" <?php if ($yturbo_options['ytsearch'] == 'disabled') echo 'style="display:none;"'; ?>>
1560
+ <th><?php _e('Расположение блока:', 'rss-for-yandex-turbo'); ?></th>
1561
+ <td>
1562
+ <select name="ytsearchmesto" id="ytsearchmesto" style="width: 260px;">
1563
+ <option value="В начале записи" <?php if ($yturbo_options['ytsearchmesto'] == 'В начале записи') echo 'selected="selected"'; ?>><?php _e('В начале записи', 'rss-for-yandex-turbo'); ?></option>
1564
+ <option value="В конце записи" <?php if ($yturbo_options['ytsearchmesto'] == 'В конце записи') echo 'selected="selected"'; ?>><?php _e('В конце записи', 'rss-for-yandex-turbo'); ?></option>
1565
+ </select>
1566
+ <br /><small><?php _e('В начале записи блок будет расположен после заголовка, а в конце записи после блока "Поделиться".', 'rss-for-yandex-turbo'); ?><br />
1567
+ </small>
1568
+ </td>
1569
+ </tr>
1570
+
1571
+ <tr class="trbordertop">
1572
+ <th></th>
1573
+ <td>
1574
+ <input type="submit" name="submit" class="button button-primary" value="<?php _e('Сохранить настройки &raquo;', 'rss-for-yandex-turbo'); ?>" />
1575
+ </td>
1576
+ </tr>
1577
+
1578
+ </table>
1579
+ </div><!-- end tab -->
1580
+
1581
+ <div class="xyztabs__content<?php if ($yturbo_options['yttab'] == 'Счетчики') echo ' active'; ?>"><!-- begin tab -->
1582
+
1583
+ <p><?php _e('Укажите идентификаторы нужных вам счетчиков (<a target="_blank" href="https://yandex.ru/dev/turbo/doc/settings/find-counter-id-docpage/">как узнать идентификатор счетчика</a>).<br />В ленте будут использованы <strong>все</strong> указанные вами счетчики.', 'rss-for-yandex-turbo'); ?></p>
1584
+
1585
+ <table class="form-table">
1586
+ <tr class="trbordertop">
1587
+ <th><?php _e('Яндекс.Метрика:', 'rss-for-yandex-turbo'); ?></th>
1588
+ <td>
1589
+ <input type="text" name="ytmetrika" size="22" value="<?php echo esc_attr(stripslashes($yturbo_options['ytmetrika'])); ?>" />
1590
+ <br /><small><?php _e('Укажите числовой идентификатор счетчика (например: <tt>3338249</tt>).', 'rss-for-yandex-turbo'); ?><br />
1591
+ </small>
1592
+ </td>
1593
+ </tr>
1594
+ <tr>
1595
+ <th><?php _e('LiveInternet:', 'rss-for-yandex-turbo'); ?></th>
1596
+ <td>
1597
+ <input type="text" name="ytliveinternet" size="22" value="<?php echo esc_attr(stripslashes($yturbo_options['ytliveinternet'])); ?>" />
1598
+ <br /><small><?php _e('Укажите идентификатор счетчика (например: <tt>site.ru</tt>).', 'rss-for-yandex-turbo'); ?></small>
1599
+ </td>
1600
+ </tr>
1601
+ <tr>
1602
+ <th><?php _e('Google Analytics:', 'rss-for-yandex-turbo'); ?></th>
1603
+ <td>
1604
+ <input type="text" name="ytgoogle" size="22" value="<?php echo esc_attr(stripslashes($yturbo_options['ytgoogle'])); ?>" />
1605
+ <br /><small><?php _e('Укажите идентификатор отслеживания (например: <tt>UA-12340005-6</tt>).', 'rss-for-yandex-turbo'); ?></small>
1606
+ </td>
1607
+ </tr>
1608
+ <tr>
1609
+ <th><?php _e('Рейтинг Mail.Ru:', 'rss-for-yandex-turbo'); ?></th>
1610
+ <td>
1611
+ <input type="text" name="ytmailru" size="22" value="<?php echo esc_attr(stripslashes($yturbo_options['ytmailru'])); ?>" />
1612
+ <br /><small><?php _e('Укажите числовой идентификатор счетчика (например: <tt>1234567</tt>).', 'rss-for-yandex-turbo'); ?></small>
1613
+ </td>
1614
+ </tr>
1615
+ <tr>
1616
+ <th><?php _e('Rambler Топ-100:', 'rss-for-yandex-turbo'); ?></th>
1617
+ <td>
1618
+ <input type="text" name="ytrambler" size="22" value="<?php echo esc_attr(stripslashes($yturbo_options['ytrambler'])); ?>" />
1619
+ <br /><small><?php _e('Укажите числовой идентификатор счетчика (например: <tt>4505046</tt>).', 'rss-for-yandex-turbo'); ?></small>
1620
+ </td>
1621
+ </tr>
1622
+ <tr>
1623
+ <th><?php _e('Mediascope (TNS):', 'rss-for-yandex-turbo'); ?></th>
1624
+ <td>
1625
+ <input type="text" name="ytmediascope" size="22" value="<?php echo esc_attr(stripslashes($yturbo_options['ytmediascope'])); ?>" />
1626
+ <br /><small><?php _e('Идентификатор проекта <tt>tmsec</tt> с окончанием <tt>-turbo</tt>. <br />Например, если для обычных страниц сайта установлен счетчик <tt>example_total</tt>, <br />то для турбо-страниц указывается <tt>example_total-turbo</tt>.', 'rss-for-yandex-turbo'); ?></small>
1627
+ </td>
1628
+ </tr>
1629
+
1630
+ <tr class="trbordertop">
1631
+ <th></th>
1632
+ <td>
1633
+ <input type="submit" name="submit" class="button button-primary" value="<?php _e('Сохранить настройки &raquo;', 'rss-for-yandex-turbo'); ?>" />
1634
+ </td>
1635
+ </tr>
1636
+
1637
+ </table>
1638
+ </div><!-- end tab -->
1639
+
1640
+ <div class="xyztabs__content<?php if ($yturbo_options['yttab'] == 'Реклама') echo ' active'; ?>"><!-- begin tab -->
1641
+
1642
+ <?php if (yturbo_check_ads() == true) echo '<div style="display:none;">'; ?>
1643
+ <p><?php _e('Реклама, установленная в Яндекс.Вебмастере, распределяется равномерно по тексту страницы (примерно каждые 2-3 экрана с общим ограничением в 10 рекламных блоков).', 'rss-for-yandex-turbo'); ?><br />
1644
+ <?php _e('Если у вас большие по размеру контента статьи или вас не устраивает частота, с которой Яндекс расставляет рекламу, то рекомендую попробовать плагин <a target="_blank" href="https://wpcase.ru/wpcase-turbo-ads/">WPCase: Turbo Ads</a>.', 'rss-for-yandex-turbo'); ?><br />
1645
+ <?php _e('В нем вы можете установить сколько угодно рекламных блоков и с той частотой, которая вам нужна (гибкие настройки вставки рекламных блоков).', 'rss-for-yandex-turbo'); ?><br /><br />
1646
+ <?php _e('Этот же плагин позволяет разместить максимально 5 рекламных блоков (только 3 в контенте статьи).', 'rss-for-yandex-turbo'); ?><br />
1647
+ <?php _e('При проблемах с настройкой рекламной сети ADFOX ознакомьтесь со справочными материалами: <a target="_blank" href="https://sites.help.adfox.ru/page/225">статья</a>, <a target="_blank" href="https://webmaster.yandex.ru/blog/videourok-kak-razmeschat-reklamu-na-turbo-stranitsakh-cherez-adfox">видеоурок</a>.', 'rss-for-yandex-turbo'); ?><br />
1648
+ </p>
1649
+
1650
+ <table class="form-table">
1651
+ <tr class="myturbo trbordertop">
1652
+ <th class="tdcheckbox"><?php _e('Блок рекламы #1:', 'rss-for-yandex-turbo'); ?></th>
1653
+ <td>
1654
+ <label for="ytad1"><input type="checkbox" value="enabled" name="ytad1" id="ytad1" <?php if ($yturbo_options['ytad1'] == 'enabled') echo 'checked="checked"'; ?> /><?php _e('Включить первый блок рекламы (<span style="color:green;">после заголовка записи</span>)', 'rss-for-yandex-turbo'); ?></label>
1655
+ <br /><small><?php _e('Будет включен блок рекламы на турбо-страницах в выбранном вами месте.', 'rss-for-yandex-turbo'); ?></small>
1656
+ </td>
1657
+ </tr>
1658
+ <tr class="myturbo block1" <?php if ($yturbo_options['ytad1'] == 'disabled') echo 'style="display:none;"'; ?>>
1659
+ <th><?php _e('Рекламная сеть:', 'rss-for-yandex-turbo'); ?></th>
1660
+ <td>
1661
+ <select name="ytad1set" id="ytad1set" style="width: 200px;">
1662
+ <option value="РСЯ" <?php if ($yturbo_options['ytad1set'] == 'РСЯ') echo 'selected="selected"'; ?>><?php _e('РСЯ', 'rss-for-yandex-turbo'); ?></option>
1663
+ <option value="ADFOX" <?php if ($yturbo_options['ytad1set'] == 'ADFOX') echo 'selected="selected"'; ?>><?php _e('ADFOX', 'rss-for-yandex-turbo'); ?></option>
1664
+ </select>
1665
+ <br /><small><?php _e('Рекламная сеть блока рекламы #1.', 'rss-for-yandex-turbo'); ?></small>
1666
+ </td>
1667
+ </tr>
1668
+ <tr class="myturbo trrsa block1" <?php if ($yturbo_options['ytad1'] == 'disabled' or $yturbo_options['ytad1set'] != 'РСЯ') echo 'style="display:none;"'; ?>>
1669
+ <th><?php _e('РСЯ идентификатор:', 'rss-for-yandex-turbo'); ?></th>
1670
+ <td>
1671
+ <input type="text" name="ytad1rsa" size="22" value="<?php echo esc_attr(stripslashes($yturbo_options['ytad1rsa'])); ?>" />
1672
+ <br /><small><?php _e('Укажите идентификатор блока РСЯ (например, <strong>RA-123456-7</strong>, <a target="_blank" href="https://tech.yandex.ru/turbo/doc/settings/ads-docpage/#doc-c-tabs-0-tab-0">как его узнать</a>)</small>.', 'rss-for-yandex-turbo'); ?>
1673
+ </td>
1674
+ </tr>
1675
+ <tr class="myturbo trfox1 block1" <?php if ($yturbo_options['ytad1'] == 'disabled' or $yturbo_options['ytad1set'] != 'ADFOX') echo 'style="display:none;"'; ?>>
1676
+ <th><?php _e('Код ADFOX:', 'rss-for-yandex-turbo'); ?></th>
1677
+ <td>
1678
+ <textarea rows="12" cols="60" name="ytadfox1" id="ytadfox1"><?php echo stripcslashes($yturbo_options['ytadfox1']); ?></textarea>
1679
+ <br /><small><?php _e('Код рекламной сети ADFOX (начиная с <tt>&lt;div></tt>, <a target="_blank" href="https://tech.yandex.ru/turbo/doc/settings/ads-docpage/#doc-c-tabs-0-tab-1">как его узнать</a>).', 'rss-for-yandex-turbo'); ?><br />
1680
+ </small>
1681
+ </td>
1682
+ </tr>
1683
+
1684
+ <tr class="myturbo trbordertop">
1685
+ <th class="tdcheckbox"><?php _e('Блок рекламы #2:', 'rss-for-yandex-turbo'); ?></th>
1686
+ <td>
1687
+ <label for="ytad2"><input type="checkbox" value="enabled" name="ytad2" id="ytad2" <?php if ($yturbo_options['ytad2'] == 'enabled') echo 'checked="checked"'; ?> /><?php _e('Включить второй блок рекламы (<span style="color:green;">в середине записи</span>)', 'rss-for-yandex-turbo'); ?></label>
1688
+ <br /><small><?php _e('Будет включен блок рекламы на турбо-страницах в выбранном вами месте.', 'rss-for-yandex-turbo'); ?></small>
1689
+ </td>
1690
+ </tr>
1691
+ <tr class="myturbo block2" <?php if ($yturbo_options['ytad2'] == 'disabled') echo 'style="display:none;"'; ?>>
1692
+ <th><?php _e('Рекламная сеть:', 'rss-for-yandex-turbo'); ?></th>
1693
+ <td>
1694
+ <select name="ytad2set" id="ytad2set" style="width: 200px;">
1695
+ <option value="РСЯ" <?php if ($yturbo_options['ytad2set'] == 'РСЯ') echo 'selected="selected"'; ?>><?php _e('РСЯ', 'rss-for-yandex-turbo'); ?></option>
1696
+ <option value="ADFOX" <?php if ($yturbo_options['ytad2set'] == 'ADFOX') echo 'selected="selected"'; ?>><?php _e('ADFOX', 'rss-for-yandex-turbo'); ?></option>
1697
+ </select>
1698
+ <br /><small><?php _e('Рекламная сеть блока рекламы #2.', 'rss-for-yandex-turbo'); ?></small>
1699
+ </td>
1700
+ </tr>
1701
+ <tr class="myturbo trrsa2 block2" <?php if ($yturbo_options['ytad2'] == 'disabled' or $yturbo_options['ytad2set'] != 'РСЯ') echo 'style="display:none;"'; ?>>
1702
+ <th><?php _e('РСЯ идентификатор:', 'rss-for-yandex-turbo'); ?></th>
1703
+ <td>
1704
+ <input type="text" name="ytad2rsa" size="22" value="<?php echo esc_attr(stripslashes($yturbo_options['ytad2rsa'])); ?>" />
1705
+ <br /><small><?php _e('Укажите идентификатор блока РСЯ (например, <strong>RA-123456-7</strong>, <a target="_blank" href="https://tech.yandex.ru/turbo/doc/settings/ads-docpage/#doc-c-tabs-0-tab-0">как его узнать</a>)</small>.', 'rss-for-yandex-turbo'); ?>
1706
+ </td>
1707
+ </tr>
1708
+ <tr class="myturbo trfox2 block2" <?php if ($yturbo_options['ytad2'] == 'disabled' or $yturbo_options['ytad2set'] != 'ADFOX') echo 'style="display:none;"'; ?>>
1709
+ <th><?php _e('Код ADFOX:', 'rss-for-yandex-turbo'); ?></th>
1710
+ <td>
1711
+ <textarea rows="12" cols="60" name="ytadfox2" id="ytadfox2"><?php echo stripcslashes($yturbo_options['ytadfox2']); ?></textarea>
1712
+ <br /><small><?php _e('Код рекламной сети ADFOX (начиная с <tt>&lt;div></tt>, <a target="_blank" href="https://tech.yandex.ru/turbo/doc/settings/ads-docpage/#doc-c-tabs-0-tab-1">как его узнать</a>).', 'rss-for-yandex-turbo'); ?><br />
1713
+ </small>
1714
+ </td>
1715
+ </tr>
1716
+ <tr class="myturbo trbordertop">
1717
+ <th class="tdcheckbox"><?php _e('Блок рекламы #3:', 'rss-for-yandex-turbo'); ?></th>
1718
+ <td>
1719
+ <label for="ytad3"><input type="checkbox" value="enabled" name="ytad3" id="ytad3" <?php if ($yturbo_options['ytad3'] == 'enabled') echo 'checked="checked"'; ?> /><?php _e('Включить третий блок рекламы (<span style="color:green;">в конце записи</span>)', 'rss-for-yandex-turbo'); ?></label>
1720
+ <br /><small><?php _e('Будет включен блок рекламы на турбо-страницах в выбранном вами месте.', 'rss-for-yandex-turbo'); ?> </small>
1721
+ </td>
1722
+ </tr>
1723
+ <tr class="myturbo block3" <?php if ($yturbo_options['ytad3'] == 'disabled') echo 'style="display:none;"'; ?>>
1724
+ <th><?php _e('Рекламная сеть:', 'rss-for-yandex-turbo'); ?></th>
1725
+ <td>
1726
+ <select name="ytad3set" id="ytad3set" style="width: 200px;">
1727
+ <option value="РСЯ" <?php if ($yturbo_options['ytad3set'] == 'РСЯ') echo 'selected="selected"'; ?>><?php _e('РСЯ', 'rss-for-yandex-turbo'); ?></option>
1728
+ <option value="ADFOX" <?php if ($yturbo_options['ytad3set'] == 'ADFOX') echo 'selected="selected"'; ?>><?php _e('ADFOX', 'rss-for-yandex-turbo'); ?></option>
1729
+ </select>
1730
+ <br /><small><?php _e('Рекламная сеть блока рекламы #3.', 'rss-for-yandex-turbo'); ?></small>
1731
+ </td>
1732
+ </tr>
1733
+ <tr class="myturbo trrsa3 block3" <?php if ($yturbo_options['ytad3'] == 'disabled' or $yturbo_options['ytad3set'] != 'РСЯ') echo 'style="display:none;"'; ?>>
1734
+ <th><?php _e('РСЯ идентификатор:', 'rss-for-yandex-turbo'); ?></th>
1735
+ <td>
1736
+ <input type="text" name="ytad3rsa" size="22" value="<?php echo esc_attr(stripslashes($yturbo_options['ytad3rsa'])); ?>" />
1737
+ <br /><small><?php _e('Укажите идентификатор блока РСЯ (например, <strong>RA-123456-7</strong>, <a target="_blank" href="https://tech.yandex.ru/turbo/doc/settings/ads-docpage/#doc-c-tabs-0-tab-0">как его узнать</a>)</small>.', 'rss-for-yandex-turbo'); ?>
1738
+ </td>
1739
+ </tr>
1740
+ <tr class="myturbo trfox3 block3" <?php if ($yturbo_options['ytad3'] == 'disabled' or $yturbo_options['ytad3set'] != 'ADFOX') echo 'style="display:none;"'; ?>>
1741
+ <th><?php _e('Код ADFOX:', 'rss-for-yandex-turbo'); ?></th>
1742
+ <td>
1743
+ <textarea rows="12" cols="60" name="ytadfox3" id="ytadfox3"><?php echo stripcslashes($yturbo_options['ytadfox3']); ?></textarea>
1744
+ <br /><small><?php _e('Код рекламной сети ADFOX (начиная с <tt>&lt;div></tt>, <a target="_blank" href="https://tech.yandex.ru/turbo/doc/settings/ads-docpage/#doc-c-tabs-0-tab-1">как его узнать</a>).', 'rss-for-yandex-turbo'); ?><br />
1745
+ </small>
1746
+ </td>
1747
+ </tr>
1748
+ <tr class="myturbo trbordertop">
1749
+ <th class="tdcheckbox"><?php _e('Блок рекламы #4:', 'rss-for-yandex-turbo'); ?></th>
1750
+ <td>
1751
+ <label for="ytad4"><input type="checkbox" value="enabled" name="ytad4" id="ytad4" <?php if ($yturbo_options['ytad4'] == 'enabled') echo 'checked="checked"'; ?> /><?php _e('Включить четвертый блок рекламы (<span style="color:green;">после блока "Поделиться"</span>)', 'rss-for-yandex-turbo'); ?></label>
1752
+ <br /><small><?php _e('Будет включен блок рекламы на турбо-страницах в выбранном вами месте.', 'rss-for-yandex-turbo'); ?><br />
1753
+ <?php _e('Рекламный блок будет выведен только, если включена опция вывода блока "Поделиться".', 'rss-for-yandex-turbo'); ?></small>
1754
+ </td>
1755
+ </tr>
1756
+ <tr class="myturbo block4" <?php if ($yturbo_options['ytad4'] == 'disabled') echo 'style="display:none;"'; ?>>
1757
+ <th><?php _e('Рекламная сеть:', 'rss-for-yandex-turbo'); ?></th>
1758
+ <td>
1759
+ <select name="ytad4set" id="ytad4set" style="width: 200px;">
1760
+ <option value="РСЯ" <?php if ($yturbo_options['ytad4set'] == 'РСЯ') echo 'selected="selected"'; ?>><?php _e('РСЯ', 'rss-for-yandex-turbo'); ?></option>
1761
+ <option value="ADFOX" <?php if ($yturbo_options['ytad4set'] == 'ADFOX') echo 'selected="selected"'; ?>><?php _e('ADFOX', 'rss-for-yandex-turbo'); ?></option>
1762
+ </select>
1763
+ <br /><small><?php _e('Рекламная сеть блока рекламы #4.', 'rss-for-yandex-turbo'); ?></small>
1764
+ </td>
1765
+ </tr>
1766
+ <tr class="myturbo trrsa4 block4" <?php if ($yturbo_options['ytad4'] == 'disabled' or $yturbo_options['ytad4set'] != 'РСЯ') echo 'style="display:none;"'; ?>>
1767
+ <th><?php _e('РСЯ идентификатор:', 'rss-for-yandex-turbo'); ?></th>
1768
+ <td>
1769
+ <input type="text" name="ytad4rsa" size="22" value="<?php echo esc_attr(stripslashes($yturbo_options['ytad4rsa'])); ?>" />
1770
+ <br /><small><?php _e('Укажите идентификатор блока РСЯ (например, <strong>RA-123456-7</strong>, <a target="_blank" href="https://tech.yandex.ru/turbo/doc/settings/ads-docpage/#doc-c-tabs-0-tab-0">как его узнать</a>)</small>.', 'rss-for-yandex-turbo'); ?>
1771
+ </td>
1772
+ </tr>
1773
+ <tr class="myturbo trfox4 block4" <?php if ($yturbo_options['ytad4'] == 'disabled' or $yturbo_options['ytad4set'] != 'ADFOX') echo 'style="display:none;"'; ?>>
1774
+ <th><?php _e('Код ADFOX:', 'rss-for-yandex-turbo'); ?></th>
1775
+ <td>
1776
+ <textarea rows="12" cols="60" name="ytadfox4" id="ytadfox4"><?php echo stripcslashes($yturbo_options['ytadfox4']); ?></textarea>
1777
+ <br /><small><?php _e('Код рекламной сети ADFOX (начиная с <tt>&lt;div></tt>, <a target="_blank" href="https://tech.yandex.ru/turbo/doc/settings/ads-docpage/#doc-c-tabs-0-tab-1">как его узнать</a>).', 'rss-for-yandex-turbo'); ?><br />
1778
+ </small>
1779
+ </td>
1780
+ </tr>
1781
+ <tr class="myturbo trbordertop">
1782
+ <th class="tdcheckbox"><?php _e('Блок рекламы #5:', 'rss-for-yandex-turbo'); ?></th>
1783
+ <td>
1784
+ <label for="ytad5"><input type="checkbox" value="enabled" name="ytad5" id="ytad5" <?php if ($yturbo_options['ytad5'] == 'enabled') echo 'checked="checked"'; ?> /><?php _e('Включить пятый блок рекламы (<span style="color:green;">после комментариев</span>)', 'rss-for-yandex-turbo'); ?></label>
1785
+ <br /><small><?php _e('Будет включен блок рекламы на турбо-страницах в выбранном вами месте.', 'rss-for-yandex-turbo'); ?> <br />
1786
+ <?php _e('Рекламный блок будет выведен только, если к записи есть хотя бы один комментарий (и включен вывод комментариев).', 'rss-for-yandex-turbo'); ?></small>
1787
+ </td>
1788
+ </tr>
1789
+ <tr class="myturbo block5" <?php if ($yturbo_options['ytad5'] == 'disabled') echo 'style="display:none;"'; ?>>
1790
+ <th><?php _e('Рекламная сеть:', 'rss-for-yandex-turbo'); ?></th>
1791
+ <td>
1792
+ <select name="ytad5set" id="ytad5set" style="width: 200px;">
1793
+ <option value="РСЯ" <?php if ($yturbo_options['ytad5set'] == 'РСЯ') echo 'selected="selected"'; ?>><?php _e('РСЯ', 'rss-for-yandex-turbo'); ?></option>
1794
+ <option value="ADFOX" <?php if ($yturbo_options['ytad5set'] == 'ADFOX') echo 'selected="selected"'; ?>><?php _e('ADFOX', 'rss-for-yandex-turbo'); ?></option>
1795
+ </select>
1796
+ <br /><small><?php _e('Рекламная сеть блока рекламы #5.', 'rss-for-yandex-turbo'); ?></small>
1797
+ </td>
1798
+ </tr>
1799
+ <tr class="myturbo trrsa5 block5" <?php if ($yturbo_options['ytad5'] == 'disabled' or $yturbo_options['ytad5set'] != 'РСЯ') echo 'style="display:none;"'; ?>>
1800
+ <th><?php _e('РСЯ идентификатор:', 'rss-for-yandex-turbo'); ?></th>
1801
+ <td>
1802
+ <input type="text" name="ytad5rsa" size="22" value="<?php echo esc_attr(stripslashes($yturbo_options['ytad5rsa'])); ?>" />
1803
+ <br /><small><?php _e('Укажите идентификатор блока РСЯ (например, <strong>RA-123456-7</strong>, <a target="_blank" href="https://tech.yandex.ru/turbo/doc/settings/ads-docpage/#doc-c-tabs-0-tab-0">как его узнать</a>)</small>.', 'rss-for-yandex-turbo'); ?>
1804
+ </td>
1805
+ </tr>
1806
+ <tr class="myturbo trfox5 block5" <?php if ($yturbo_options['ytad5'] == 'disabled' or $yturbo_options['ytad5set'] != 'ADFOX') echo 'style="display:none;"'; ?>>
1807
+ <th><?php _e('Код ADFOX:', 'rss-for-yandex-turbo'); ?></th>
1808
+ <td>
1809
+ <textarea rows="12" cols="60" name="ytadfox5" id="ytadfox5"><?php echo stripcslashes($yturbo_options['ytadfox5']); ?></textarea>
1810
+ <br /><small><?php _e('Код рекламной сети ADFOX (начиная с <tt>&lt;div></tt>, <a target="_blank" href="https://tech.yandex.ru/turbo/doc/settings/ads-docpage/#doc-c-tabs-0-tab-1">как его узнать</a>).', 'rss-for-yandex-turbo'); ?><br />
1811
+ </small>
1812
+ </td>
1813
+ </tr>
1814
+ <tr class="myturbo trbordertop">
1815
+ <th><?php _e('Минимальный размер записи:', 'rss-for-yandex-turbo'); ?></th>
1816
+ <td>
1817
+ <input style="max-width: 54px;" name="ytrazmer" type="number" min="1" max="10000" step="1" value="<?php echo $yturbo_options['ytrazmer']; ?>" />
1818
+ <br /><small><?php _e('Укажите минимальное количество символов записи для добавления рекламы.', 'rss-for-yandex-turbo'); ?><br/>
1819
+ <?php _e('Данная опция используется только при вставке рекламы в <strong>середину</strong> записи.', 'rss-for-yandex-turbo'); ?><br/>
1820
+ <?php _e('Учитывается только текст контента записи (HTML-разметка не считается).', 'rss-for-yandex-turbo'); ?>
1821
+ </small>
1822
+ </td>
1823
+ </tr>
1824
+
1825
+ <tr class="trbordertop">
1826
+ <th></th>
1827
+ <td>
1828
+ <input type="submit" name="submit" class="button button-primary" value="<?php _e('Сохранить настройки &raquo;', 'rss-for-yandex-turbo'); ?>" />
1829
+ </td>
1830
+ </tr>
1831
+
1832
+ </table>
1833
+ <?php if (yturbo_check_ads() == true) echo '</div>'; ?>
1834
+ <?php if (yturbo_check_ads() == true) : ?>
1835
+ <div class="alert alert-success">
1836
+ <?php $turboadslink = get_bloginfo('url') .'/wp-admin/options-general.php?page=wpcase-turbo-ads.php'; ?>
1837
+ <p><?php _e( 'Настроить рекламу вы можете на странице', 'rss-for-yandex-turbo' ); ?> <a target="_blank" href="<?php echo $turboadslink; ?>"><?php _e( 'настроек', 'rss-for-yandex-turbo' ); ?></a> <?php _e('плагина "<strong>WPCase: Turbo Ads</strong>".', 'rss-for-yandex-turbo'); ?></p>
1838
+ </div>
1839
+ <?php endif; ?>
1840
+ </div><!-- end tab -->
1841
+
1842
+ <div class="xyztabs__content<?php if ($yturbo_options['yttab'] == 'Типы записей и исключения') echo ' active'; ?>"><!-- begin tab -->
1843
+
1844
+ <p><?php _e('Если у вас магазин на WordPress, то не включайте тип "Товары", а используйте <a target="_blank" href="https://webmaster.yandex.ru/blog/internet-magaziny-v-turbo">плагин генерации YML</a>.', 'rss-for-yandex-turbo'); ?><br />
1845
+ <?php _e('Будьте внимательны при настройке таксономий для включения или исключения из RSS-ленты.', 'rss-for-yandex-turbo'); ?><br />
1846
+ </p>
1847
+
1848
+ <table class="form-table">
1849
+ <tr class="trbordertop">
1850
+ <th class="tdcheckbox"><?php _e('Типы записей:', 'rss-for-yandex-turbo'); ?></th>
1851
+ <td>
1852
+ <?php
1853
+ $registered = get_post_types( array('public'=> true), 'objects' );
1854
+ $exclude = array('attachment');
1855
+ $types = array();
1856
+
1857
+ foreach ($registered as $post) {
1858
+ if ( in_array($post->name, $exclude) ) {
1859
+ continue;
1860
+ }
1861
+ $types[$post->name] = $post->name;
1862
+ }
1863
+
1864
+ $yttype = explode(",", $yturbo_options['yttype']);
1865
+ $yttype = array_diff($yttype, array(''));
1866
+
1867
+ foreach ($types as $post_type) {
1868
+ $obj = get_post_type_object($post_type); ?>
1869
+ <label class="types" for="<?php echo $post_type; ?>"><input type="checkbox" value="<?php echo $post_type; ?>" name="types[]" id="<?php echo $post_type; ?>" <?php if (in_array($post_type, $yttype)) echo 'checked="checked"'; ?> /><?php echo $obj->labels->name; ?> (<?php echo $post_type; ?>)</label>
1870
+ <?php } ?>
1871
+ <small><?php _e('Типы записей для включения в RSS-ленту.', 'rss-for-yandex-turbo'); ?></small>
1872
+ </td>
1873
+ </tr>
1874
+ <tr class="ytqueryselect trbordertop">
1875
+ <th><?php _e('Включить в RSS:', 'rss-for-yandex-turbo'); ?></th>
1876
+ <td>
1877
+ <select name="ytqueryselect" id="ytqueryselect" style="width: 280px;">
1878
+ <option value="Все таксономии, кроме исключенных" <?php if ($yturbo_options['ytqueryselect'] == 'Все таксономии, кроме исключенных') echo 'selected="selected"'; ?>><?php _e('Все таксономии, кроме исключенных', 'rss-for-yandex-turbo'); ?></option>
1879
+ <option value="Только указанные таксономии" <?php if ($yturbo_options['ytqueryselect'] == 'Только указанные таксономии') echo 'selected="selected"'; ?>><?php _e('Только указанные таксономии', 'rss-for-yandex-turbo'); ?></option>
1880
+ </select>
1881
+ <br /><small>
1882
+ <span id="includespan" <?php if ($yturbo_options['ytqueryselect'] != 'Только указанные таксономии') echo 'style="display:none;"'; ?>><?php _e('Обязательно выберите ниже таксономии для включения в ленту - иначе лента будет пустой.', 'rss-for-yandex-turbo'); ?><br /><?php _e('В этом режиме "страницы" в ленту не попадут, так как они не принадлежат таксономиям.', 'rss-for-yandex-turbo'); ?></span>
1883
+ <span id="excludespan" <?php if ($yturbo_options['ytqueryselect'] != 'Все таксономии, кроме исключенных') echo 'style="display:none;"'; ?>><?php _e('По умолчанию в ленту попадают записи всех таксономий, кроме выбранных ниже.', 'rss-for-yandex-turbo'); ?><br /></span>
1884
+ </small>
1885
+ </td>
1886
+ </tr>
1887
+ <?php
1888
+ $taxonomies = get_taxonomies( array('public'=>true,'show_ui'=>true,), 'objects', 'and' );
1889
+ foreach ($taxonomies as $taxonomy) {
1890
+ $terms = get_terms($taxonomy->name, array('hide_empty'=>false,'hierarchical'=>false,'number'=>1,));
1891
+ if ( ! empty($terms) ) :
1892
+ ?>
1893
+ <tr>
1894
+ <th class="tdcheckbox"><?php echo $taxonomy->labels->name; ?> <span class="thexclude" <?php if ($yturbo_options['ytqueryselect'] != 'Все таксономии, кроме исключенных') echo 'style="display:none;"'; ?>> <?php _e('для исключения:', 'rss-for-yandex-turbo'); ?></span><span class="thinclude" <?php if ($yturbo_options['ytqueryselect'] != 'Только указанные таксономии') echo 'style="display:none;"'; ?>> <?php _e('для добавления:', 'rss-for-yandex-turbo'); ?></span>
1895
+ </th>
1896
+ <td>
1897
+ <div class="list_terms_scroll_wrapper">
1898
+
1899
+ <?php echo "<ul class='exclude_terms' id='exclude_{$taxonomy->name}'>"; ?>
1900
+
1901
+ <?php
1902
+ $exclude_term_ids ='';
1903
+ if ( isset($yturbo_options['exclude-'.$taxonomy->name]) && $yturbo_options['exclude-'.$taxonomy->name] ) {
1904
+ $yttaxlist = $yturbo_options['exclude-'.$taxonomy->name];
1905
+ $tax = explode(":", $yttaxlist);
1906
+ $exclude_term_ids = wp_parse_id_list($tax[1]);
1907
+ }
1908
+
1909
+ if ( $exclude_term_ids ) {
1910
+ $terms = get_terms( $taxonomy->name, array('include'=>$exclude_term_ids,'hide_empty'=>false,'hierarchical'=>false) );
1911
+ foreach ($terms as $term) {
1912
+ echo "<li><input type='checkbox' name='exclude-{$taxonomy->name}[{$term->term_id}]' id='exclude_{$term->term_id}' value='{$term->term_id}' checked='checked' /> <label for='exclude_{$term->term_id}'>" . esc_html($term->name) . "</label></li> ";
1913
+ }
1914
+ }
1915
+ ?>
1916
+
1917
+ <?php echo "</ul>"; ?>
1918
+ </div>
1919
+ <small class="exclude-small-text" <?php if ($yturbo_options['ytqueryselect'] != 'Все таксономии, кроме исключенных') echo 'style="display:none;"'; ?>>
1920
+ <?php _e('Выбранные ', 'rss-for-yandex-turbo'); ?><?php echo mb_strtolower($taxonomy->labels->name); ?><?php _e(' будут <strong style="color:red;">исключены</strong> из RSS-ленты.', 'rss-for-yandex-turbo'); ?><br />
1921
+ </small>
1922
+ <small class="include-small-text" <?php if ($yturbo_options['ytqueryselect'] != 'Только указанные таксономии') echo 'style="display:none;"'; ?>>
1923
+ <?php _e('Выбранные ', 'rss-for-yandex-turbo'); ?><?php echo mb_strtolower($taxonomy->labels->name); ?><?php _e(' будут <strong style="color:green;">добавлены</strong> в RSS-ленту.', 'rss-for-yandex-turbo'); ?><br />
1924
+ </small>
1925
+ <?php if( ! next($taxonomies) ) { ?>
1926
+ <small>
1927
+ <br /><?php _e('Исключать из RSS-ленты отдельные записи необходимо в метабоксе плагина на странице редактировании записи.', 'rss-for-yandex-turbo'); ?><br />
1928
+ </small>
1929
+ <?php } ?>
1930
+ </td>
1931
+ </tr>
1932
+ <?php endif; ?>
1933
+ <?php } ?>
1934
+ <tr class="trbordertop">
1935
+ <th class="tdcheckbox"><?php _e('Колонка в админке:', 'rss-for-yandex-turbo'); ?></th>
1936
+ <td>
1937
+ <label for="ytturbocolumn"><input type="checkbox" value="enabled" name="ytturbocolumn" id="ytturbocolumn" <?php if ($yturbo_options['ytturbocolumn'] == 'enabled') echo 'checked="checked"'; ?> /><?php _e('Добавить колонку "Турбо" в админку', 'rss-for-yandex-turbo'); ?></label>
1938
+ <br /><small><?php _e('Будет выведена колонка (при просмотре списка записей) с информацией о турбо-статусе записей.', 'rss-for-yandex-turbo'); ?><br />
1939
+ <?php _e('Статусы: есть в RSS-ленте, исключена вручную, запись на удалении, исключена фильтрами таксономий.', 'rss-for-yandex-turbo'); ?><br />
1940
+ <?php _e('Статусы отображаются иконками для компактности, подробная информация при наведении курсора мышки.', 'rss-for-yandex-turbo'); ?><br />
1941
+ </small>
1942
+ </td>
1943
+ </tr>
1944
+
1945
+ <tr class="trbordertop">
1946
+ <th></th>
1947
+ <td>
1948
+ <input type="submit" name="submit" class="button button-primary" value="<?php _e('Сохранить настройки &raquo;', 'rss-for-yandex-turbo'); ?>" />
1949
+ </td>
1950
+ </tr>
1951
+ </table>
1952
+ </div><!-- end tab -->
1953
+
1954
+ <div class="xyztabs__content<?php if ($yturbo_options['yttab'] == 'Шаблоны') echo ' active'; ?>"><!-- begin tab -->
1955
+
1956
+ <p><?php _e('Здесь можно создать собственный шаблон формирования контента для указанного типа записей.', 'rss-for-yandex-turbo'); ?><br />
1957
+ <?php _e('Чтобы здесь появились все выбранные вами типы записей - <strong>сохраните</strong> настройки плагина.', 'rss-for-yandex-turbo'); ?><br />
1958
+ </p>
1959
+
1960
+ <p><?php _e('В шаблоне по умолчанию для каждого типа записей выводится только поле <strong>post_content</strong>.', 'rss-for-yandex-turbo'); ?><br />
1961
+ <?php _e('В стандартных типах записей (<strong>post</strong>, <strong>page</strong>) в этом поле содержится весь контент записи.', 'rss-for-yandex-turbo'); ?><br /></p>
1962
+
1963
+ <p><?php _e('Для использования произвольных полей оберните название произвольного поля символами <strong>%%</strong>.', 'rss-for-yandex-turbo'); ?><br />
1964
+ <?php _e('Например, <strong>%%views%%</strong>, <strong>%%ratings%%</strong> или <strong>%%_aioseop_title%%</strong>.', 'rss-for-yandex-turbo'); ?>
1965
+ </p>
1966
+
1967
+ <p><?php _e('Простой пример собственного шаблона:', 'rss-for-yandex-turbo'); ?></p>
1968
 
1969
  <pre>&lt;h2&gt;Приветствуем!&lt;/h2&gt;
1970
 
1976
 
1977
  </pre>
1978
 
1979
+ <p><?php _e('То есть данную функцию плагина можно использовать в качестве "подписи" к вашим записям на турбо-страницах.', 'rss-for-yandex-turbo'); ?><br />
1980
+ <?php _e('Учтите, что фильтры плагина сработают уже после формирования контента записи по вашему шаблону.', 'rss-for-yandex-turbo'); ?><br />
1981
+ </p>
1982
+
1983
+ <p><?php _e('В шаблоне можно использовать шорткоды (убедитесь, что их вывод не содержит скрипты или css-код).', 'rss-for-yandex-turbo'); ?><br />
1984
+ <?php _e('В плагин встроено несколько собственных шорткодов, полный их список вы можете посмотреть <a target="_blank" href="https://ru.wordpress.org/plugins/rss-for-yandex-turbo/#%D0%BA%D0%B0%D0%BA%D0%B8%D0%B5%20%D1%88%D0%BE%D1%80%D1%82%D0%BA%D0%BE%D0%B4%D1%8B%20%D0%BC%D0%BE%D0%B6%D0%BD%D0%BE%20%D0%B8%D1%81%D0%BF%D0%BE%D0%BB%D1%8C%D0%B7%D0%BE%D0%B2%D0%B0%D1%82%D1%8C%20%D0%B2%20%D1%88%D0%B0%D0%B1%D0%BB%D0%BE%D0%BD%D0%B0%D1%85%3F">здесь</a>.', 'rss-for-yandex-turbo'); ?></p>
1985
+ <p> <?php _e('<strong>Внимание!</strong> Произвольные поля плагина <strong>Advanced Custom Fields</strong> необходимо обрабатывать <a target="_blank" href="https://ru.wordpress.org/plugins/rss-for-yandex-turbo/#%D1%88%D0%B0%D0%B1%D0%BB%D0%BE%D0%BD%D1%8B%20%D0%B8%20%D0%BF%D0%BB%D0%B0%D0%B3%D0%B8%D0%BD%20advanced%20custom%20fields">фильтром</a>.', 'rss-for-yandex-turbo'); ?><br /><br />
1986
+ </p>
1987
+
1988
+ <table class="form-table">
1989
+ <?php
1990
+ $i = 0;
1991
+ foreach ($types as $post_type) {
1992
+ $obj = get_post_type_object($post_type);
1993
+
1994
+ if ( in_array($post_type, $yttype) ) {
1995
+ $i++; ?>
1996
+ <tr class="trbordertop">
1997
+ <th class="tdcheckbox"><?php echo $obj->labels->name; ?>:</th>
1998
+ <td>
1999
+
2000
+ <style>
2001
+ i.mce-i-yablocks {background-image: url('<?php echo $purl; ?>/img/yablocks.png');}
2002
+ i.mce-i-small {background-image: url('<?php echo $purl; ?>/img/small.png');}
2003
+ i.mce-i-big {background-image: url('<?php echo $purl; ?>/img/big.png');}
2004
+ </style>
2005
+ <?php if ( ! isset($yturbo_options['template-'.$post_type]) ) $yturbo_options['template-'.$post_type] = ''; ?>
2006
+ <?php if ( $yturbo_options['template-'.$post_type] == '' ) $yturbo_options['template-'.$post_type]='%%post_content%%'; ?>
2007
+
2008
+ <?php $content = html_entity_decode(stripcslashes($yturbo_options['template-'.$post_type]),ENT_QUOTES); ?>
2009
+ <?php $editor_id = 'wpeditor' . $post_type; ?>
2010
+ <?php $textarea_name = 'template-' . $post_type; ?>
2011
+ <?php $settings = array(
2012
+ 'textarea_name' => $textarea_name,
2013
+ 'wpautop' => 1,
2014
+ 'media_buttons' => 1,
2015
+ 'textarea_rows' => 16,
2016
+ 'editor_height' => 300,
2017
+ 'tinymce' => array(
2018
+ 'toolbar1' => 'undo,redo,formatselect,bold,italic,underline,strikethrough,superscript,subscript,hr,blockquote,link,unlink,bullist,numlist,table,yablocks,',
2019
+ 'toolbar2' => '',
2020
+ 'toolbar3' => '',
2021
+ 'content_css' => $purl . '/inc/editor.css?ver=' . $yturbo_options['version'],
2022
+ ),
2023
+ 'quicktags' => array(
2024
+ 'id' => $editor_id,
2025
+ 'buttons' => 'strong,em,link,block,del,hr,img,ul,ol,li,code,close,'
2026
+ ),
2027
+ );
2028
+ ?>
2029
+ <?php wp_editor($content, $editor_id, $settings); ?>
2030
+ <small><?php _e('Шаблон контента для типа записи', 'rss-for-yandex-turbo'); ?>: <strong><?php echo $post_type; ?></strong>.</small>
2031
+
2032
+ </td>
2033
+ </tr>
2034
+ <?php }
2035
+ } ?>
2036
+ <?php if ( $i == 0 ) echo __('<p><strong style="color:red;">Внимание!</strong> У вас не включен вывод ни для одного типа записей. <br />Перейдите на вкладку "<a href="#tab6">Типы записей и исключения</a>" и включите хотя бы один тип записей.</p>', 'rss-for-yandex-turbo'); ?>
2037
+
2038
+ <tr class="trbordertop">
2039
+ <th></th>
2040
+ <td>
2041
+ <input type="submit" name="submit" class="button button-primary" value="<?php _e('Сохранить настройки &raquo;', 'rss-for-yandex-turbo'); ?>" />
2042
+ </td>
2043
+ </tr>
2044
+ </table>
2045
+ </div><!-- end tab -->
2046
+
2047
+ <div class="xyztabs__content<?php if ($yturbo_options['yttab'] == 'Фильтры') echo ' active'; ?>"><!-- begin tab -->
2048
+
2049
+ <p><?php _e('В данной секции находятся продвинутые настройки. <br />Пожалуйста, будьте внимательны в этом разделе!', 'rss-for-yandex-turbo'); ?> </p>
2050
+
2051
+ <table class="form-table">
2052
+ <tr class="ytexcludeshortcodestr trbordertop">
2053
+ <th class="tdcheckbox"><?php _e('Фильтр шорткодов:', 'rss-for-yandex-turbo'); ?></th>
2054
+ <td>
2055
+ <label for="ytexcludeshortcodes"><input type="checkbox" value="enabled" name="ytexcludeshortcodes" id="ytexcludeshortcodes" <?php if ($yturbo_options['ytexcludeshortcodes'] == 'enabled') echo 'checked="checked"'; ?> /><?php _e('Удалить указанные шорткоды', 'rss-for-yandex-turbo'); ?></label>
2056
+ <br /><small><?php _e('Из контента записей будут удалены все указанные шорткоды (вместе с их контентом).', 'rss-for-yandex-turbo'); ?> </small>
2057
+ </td>
2058
+ </tr>
2059
+ <tr class="ytexcludeshortcodeslisttr" <?php if ($yturbo_options['ytexcludeshortcodes'] == 'disabled') echo 'style="display:none;"'; ?>>
2060
+ <th style="padding-top: 5px!important;"><?php _e('Шорткоды для удаления:', 'rss-for-yandex-turbo'); ?></th>
2061
+ <td style="padding-top: 5px!important;">
2062
+ <?php
2063
+ $shortcodes = $GLOBALS['shortcode_tags'];
2064
+ $exclude = array('wp_caption','caption','gallery','playlist','audio','video','embed','yt-permalink','yt-title');
2065
+ $result = array();
2066
+
2067
+ foreach ($shortcodes as $key => $value) {
2068
+ if ( ! in_array($key, $exclude) ) {
2069
+ $result[] = $key;
2070
+ }
2071
+ }
2072
+
2073
+ $ytshortcodes = explode(",", $yturbo_options['ytexcludeshortcodeslist']);
2074
+ $ytshortcodes = array_diff($ytshortcodes, array(''));
2075
+
2076
+ if ( ! empty($result) ) :
2077
+
2078
+ echo '<ul class="ulshortcodes">';
2079
+ foreach ($result as $shortcode) { ?>
2080
+ <li><label class="shortcodes" for="<?php echo $shortcode; ?>"><input type="checkbox" value="<?php echo $shortcode; ?>" name="shortcodes[]" id="<?php echo $shortcode; ?>" <?php if (in_array($shortcode, $ytshortcodes)) echo 'checked="checked"'; ?> />[<?php echo $shortcode; ?>]</label></li>
2081
+ <?php } ?>
2082
+ </ul>
2083
+ <small><?php _e('В списке находятся все зарегистрированные на сайте шорткоды, кроме системных.', 'rss-for-yandex-turbo'); ?><br />
2084
+ </small>
2085
+
2086
+ <?php else : ?>
2087
+ <p style="margin-top: -5px;"><?php _e('Сторонних шорткодов не найдено.', 'rss-for-yandex-turbo'); ?></p>
2088
+ <?php endif; ?>
2089
+ </td>
2090
+ </tr>
2091
+ <tr class="ytexcludetagstr trbordertop">
2092
+ <th class="tdcheckbox"><?php _e('Фильтр тегов (без контента):', 'rss-for-yandex-turbo'); ?></th>
2093
+ <td>
2094
+ <label for="ytexcludetags"><input type="checkbox" value="enabled" name="ytexcludetags" id="ytexcludetags" <?php if ($yturbo_options['ytexcludetags'] == 'enabled') echo 'checked="checked"'; ?> /><?php _e('Удалить указанные html-теги', 'rss-for-yandex-turbo'); ?></label>
2095
+ <br /><small><?php _e('Из контента записей будут удалены все указанные html-теги (<strong>без контента этих тегов</strong>).', 'rss-for-yandex-turbo'); ?></small>
2096
+ </td>
2097
+ </tr>
2098
+ <tr class="ytexcludetagslisttr" <?php if ($yturbo_options['ytexcludetags'] == 'disabled') echo 'style="display:none;"'; ?>>
2099
+ <th style="padding-top: 5px;"><?php _e('Теги для удаления:', 'rss-for-yandex-turbo'); ?></th>
2100
+ <td style="padding-top: 5px;">
2101
+ <input style="display:none;" name="ytexcludetagslist-input" class="ytexcludetagslist-input" placeholder="" value="<?php echo esc_attr(stripslashes($yturbo_options['ytexcludetagslist'])); ?>" />
2102
+ <input type="hidden" id="tags-list" value="<?php echo yturbo_tags_list(); ?>" />
2103
+ <input type="hidden" name="ytexcludetagslist" id="ytexcludetagslist" value="<?php echo esc_attr(stripslashes($yturbo_options['ytexcludetagslist'])); ?>" />
2104
+ <small><?php _e('Список удаляемых html-тегов. Начните набирать нужный тег для подсказки.', 'rss-for-yandex-turbo'); ?><br />
2105
+ <?php _e('Самозакрывающиеся теги вроде <tt>&lt;br /></tt> этим фильтром удалить нельзя.', 'rss-for-yandex-turbo'); ?><br />
2106
+ <?php _e('Список возможных для удаления тегов можно <a target="_blank" href="https://ru.wordpress.org/plugins/rss-for-yandex-turbo/#%D0%BA%D0%B0%D0%BA%20%D0%BF%D0%B5%D1%80%D0%B5%D0%BE%D0%BF%D1%80%D0%B5%D0%B4%D0%B5%D0%BB%D0%B8%D1%82%D1%8C%20%D1%81%D0%BF%D0%B8%D1%81%D0%BE%D0%BA%20%D1%82%D0%B5%D0%B3%D0%BE%D0%B2%20%D0%B4%D0%BB%D1%8F%20%D1%83%D0%B4%D0%B0%D0%BB%D0%B5%D0%BD%D0%B8%D1%8F%3F">переопределить</a>.', 'rss-for-yandex-turbo'); ?><br />
2107
+ </small>
2108
+ </td>
2109
+ </tr>
2110
+ <tr class="ytexcludetags2tr trbordertop">
2111
+ <th class="tdcheckbox"><?php _e('Фильтр тегов (с контентом):', 'rss-for-yandex-turbo'); ?></th>
2112
+ <td>
2113
+ <label for="ytexcludetags2"><input type="checkbox" value="enabled" name="ytexcludetags2" id="ytexcludetags2" <?php if ($yturbo_options['ytexcludetags2'] == 'enabled') echo 'checked="checked"'; ?> /><?php _e('Удалить указанные html-теги', 'rss-for-yandex-turbo'); ?></label>
2114
+ <br /><small><?php _e('Из контента записей будут удалены все указанные html-теги (<strong>включая контент этих тегов</strong>).', 'rss-for-yandex-turbo'); ?></small>
2115
+ </td>
2116
+ </tr>
2117
+ <tr class="ytexcludetagslist2tr" <?php if ($yturbo_options['ytexcludetags2'] == 'disabled') echo 'style="display:none;"'; ?>>
2118
+ <th style="padding-top: 5px;"><?php _e('Теги для удаления:', 'rss-for-yandex-turbo'); ?></th>
2119
+ <td style="padding-top: 5px;">
2120
+ <input style="display:none;" name="ytexcludetagslist-input2" class="ytexcludetagslist-input2" placeholder="" value="<?php echo esc_attr(stripslashes($yturbo_options['ytexcludetagslist2'])); ?>" />
2121
+ <input type="hidden" id="tags-list2" value="<?php echo yturbo_tags_list(); ?>" />
2122
+ <input type="hidden" name="ytexcludetagslist2" id="ytexcludetagslist2" value="<?php echo esc_attr(stripslashes($yturbo_options['ytexcludetagslist2'])); ?>" />
2123
+ <small><?php _e('Список удаляемых html-тегов. Начните набирать нужный тег для подсказки.', 'rss-for-yandex-turbo'); ?><br />
2124
+ <?php _e('Самозакрывающиеся теги вроде <tt>&lt;br /></tt> этим фильтром удалить нельзя.', 'rss-for-yandex-turbo'); ?><br />
2125
+ <?php _e('Список возможных для удаления тегов можно <a target="_blank" href="https://ru.wordpress.org/plugins/rss-for-yandex-turbo/#%D0%BA%D0%B0%D0%BA%20%D0%BF%D0%B5%D1%80%D0%B5%D0%BE%D0%BF%D1%80%D0%B5%D0%B4%D0%B5%D0%BB%D0%B8%D1%82%D1%8C%20%D1%81%D0%BF%D0%B8%D1%81%D0%BE%D0%BA%20%D1%82%D0%B5%D0%B3%D0%BE%D0%B2%20%D0%B4%D0%BB%D1%8F%20%D1%83%D0%B4%D0%B0%D0%BB%D0%B5%D0%BD%D0%B8%D1%8F%3F">переопределить</a>.', 'rss-for-yandex-turbo'); ?><br />
2126
+ </small>
2127
+ </td>
2128
+ </tr>
2129
+ <tr class="ytexcludecontenttr trbordertop">
2130
+ <th class="tdcheckbox"><?php _e('Контент для удаления:', 'rss-for-yandex-turbo'); ?></th>
2131
+ <td>
2132
+ <label for="ytexcludecontent"><input type="checkbox" value="enabled" name="ytexcludecontent" id="ytexcludecontent" <?php if ($yturbo_options['ytexcludecontent'] == 'enabled') echo 'checked="checked"'; ?> /><?php _e('Удалить указанный контент из RSS', 'rss-for-yandex-turbo'); ?></label>
2133
+ <br /><small><?php _e('Точные вхождения указанного контента будут удалены из записей в RSS-ленте.', 'rss-for-yandex-turbo'); ?></small>
2134
+ </td>
2135
+ </tr>
2136
+ <tr class="ytexcludecontentlisttr" <?php if ($yturbo_options['ytexcludecontent'] == 'disabled') echo 'style="display:none;"'; ?>>
2137
+ <th><?php _e('Список удаляемого контента:', 'rss-for-yandex-turbo'); ?></th>
2138
+ <td>
2139
+ <textarea rows="8" cols="70" name="ytexcludecontentlist" id="ytexcludecontentlist"><?php echo stripcslashes($yturbo_options['ytexcludecontentlist']); ?></textarea>
2140
+ <br /><small><?php _e('Каждый новый шаблон для удаления должен начинаться с новой строки.', 'rss-for-yandex-turbo'); ?><br />
2141
+ </small>
2142
+ </td>
2143
+ </tr>
2144
+
2145
+ <tr class="trbordertop">
2146
+ <th></th>
2147
+ <td>
2148
+ <input type="submit" name="submit" class="button button-primary" value="<?php _e('Сохранить настройки &raquo;', 'rss-for-yandex-turbo'); ?>" />
2149
+ </td>
2150
+ </tr>
2151
+ </table>
2152
+ </div><!-- end tab -->
2153
 
2154
  </div><!-- .xyztabs -->
2155
 
2157
  <script>
2158
  var closeabout = localStorage.getItem('yt-close-about');
2159
  if (closeabout == 'yes') {
2160
+ document.getElementById('about').className = 'postbox hide';
2161
+ document.getElementById('restore-hide-blocks').className = 'dashicons dashicons-admin-generic';
2162
  }
2163
  </script>
2164
+ <h3 style="border-bottom: 1px solid #E1E1E1;background: #f7f7f7;"><?php _e('О плагине', 'rss-for-yandex-turbo'); ?>
2165
+ <span id="close-about" class="dashicons dashicons-no-alt" title="<?php _e('Скрыть блок', 'rss-for-yandex-turbo'); ?>"></span></h3>
2166
+ <div class="inside" style="padding-bottom:15px;display: block;">
2167
+
2168
+ <p><?php _e('Если вам нравится мой плагин, то, пожалуйста, поставьте ему <a target="_blank" href="https://wordpress.org/support/plugin/rss-for-yandex-turbo/reviews/#new-post"><strong>5 звезд</strong></a> в репозитории.', 'rss-for-yandex-turbo'); ?></p>
2169
+ <p style="margin-top:20px;margin-bottom:10px;"><?php _e('Возможно, что вам также будут интересны другие мои плагины:', 'rss-for-yandex-turbo'); ?></p>
2170
+
2171
+ <div class="about">
2172
+ <ul>
2173
+ <li><a target="_blank" href="https://ru.wordpress.org/plugins/rss-for-yandex-zen/">RSS for Yandex Zen</a> - <?php _e('создание RSS-ленты для сервиса Яндекс.Дзен.', 'rss-for-yandex-turbo'); ?></li>
2174
+ <li><a target="_blank" href="https://ru.wordpress.org/plugins/bbspoiler/">BBSpoiler</a> - <?php _e('плагин позволит вам спрятать текст под тегами [spoiler]текст[/spoiler].', 'rss-for-yandex-turbo'); ?></li>
2175
+ <li><a target="_blank" href="https://ru.wordpress.org/plugins/easy-textillate/">Easy Textillate</a> - <?php _e('плагин очень красиво анимирует текст (шорткодами в записях и виджетах или PHP-кодом в файлах темы).', 'rss-for-yandex-turbo'); ?> </li>
2176
+ <li><a target="_blank" href="https://ru.wordpress.org/plugins/cool-image-share/">Cool Image Share</a> - <?php _e('плагин добавляет иконки социальных сетей на каждое изображение в ваших записях.', 'rss-for-yandex-turbo'); ?> </li>
2177
+ <li><a target="_blank" href="https://ru.wordpress.org/plugins/today-yesterday-dates/">Today-Yesterday Dates</a> - <?php _e('относительные даты для записей за сегодня и вчера.', 'rss-for-yandex-turbo'); ?> </li>
2178
+ <li><a target="_blank" href="https://ru.wordpress.org/plugins/truncate-comments/">Truncate Comments</a> - <?php _e('плагин скрывает длинные комментарии js-скриптом (в стиле Яндекса или Амазона).', 'rss-for-yandex-turbo'); ?> </li>
2179
+ <li><a target="_blank" href="https://ru.wordpress.org/plugins/easy-yandex-share/">Easy Yandex Share</a> - <?php _e('продвинутый вывод блока &#8220;Яндекс.Поделиться&#8221;.', 'rss-for-yandex-turbo'); ?></li>
2180
+ <li><a target="_blank" href="https://ru.wordpress.org/plugins/hide-my-dates/">Hide My Dates</a> - <?php _e('плагин прячет от Гугла даты публикации записей и комментариев.', 'rss-for-yandex-turbo'); ?></li>
2181
+ <li style="margin: 3px 0px 3px 35px;"><a target="_blank" href="https://ru.wordpress.org/plugins/html5-cumulus/">HTML5 Cumulus</a> <span class="new">new</span> - <?php _e('современная (HTML5) версия классического плагина &#8220;WP-Cumulus&#8221;.', 'rss-for-yandex-turbo'); ?></li>
2182
+
2183
+ </ul>
2184
+ </div>
2185
+ </div>
2186
  </div>
2187
+ <?php wp_nonce_field(plugin_basename(__FILE__), 'yturbo_nonce'); ?>
2188
  <?php wp_nonce_field('yturbo_display_exclude_terms', 'yturbo_display_exclude_terms-nonce', false); ?>
2189
  <script>
2190
  var spinner = '<?php echo esc_url(admin_url('images/spinner-2x.gif')) ?>',
2200
 
2201
  //функция добавления ссылки на страницу настроек плагина в раздел "Настройки" begin
2202
  function yturbo_menu() {
2203
+ add_options_page('Яндекс.Турбо', 'Яндекс.Турбо', 'manage_options', 'rss-for-yandex-turbo.php', 'yturbo_options_page');
2204
  }
2205
+ add_action('admin_menu', 'yturbo_menu');
2206
  //функция добавления ссылки на страницу настроек плагина в раздел "Настройки" end
2207
 
2208
  //создаем метабокс begin
2209
  function yturbo_meta_box() {
2210
+ $yturbo_options = get_option('yturbo_options');
2211
+ $yttype = $yturbo_options['yttype'];
2212
+ $yttype = explode(",", $yttype);
2213
+ $yttype = array_diff($yttype, array(''));
2214
+
2215
+ $ytqueryselect = $yturbo_options['ytqueryselect'];
2216
+ $yttaxlist = $yturbo_options['yttaxlist'];
2217
+ $ytaddtaxlist = $yturbo_options['ytaddtaxlist'];
2218
+
2219
+ if ( ! $yttaxlist ) $yttaxlist = 'category:10000000';
2220
+ if ( $ytqueryselect == 'Все таксономии, кроме исключенных' ) {
2221
+ $textAr = explode("\n", trim($yttaxlist));
2222
+ $textAr = array_filter($textAr, 'trim');
2223
+ add_meta_box('yturbo_meta_box', 'Яндекс.Турбо', 'yturbo_callback', $yttype, 'normal' , 'high');
2224
+ foreach ($textAr as $line) {
2225
+ $tax = explode(":", $line);
2226
+ $taxterm = explode(",", $tax[1]);
2227
+ $taxterm = array_map('intval', $taxterm);
2228
+ if ( has_term($taxterm, $tax[0]) ) {
2229
+ remove_meta_box('yturbo_meta_box', $yttype, 'normal');
2230
+ break;
2231
+ }
2232
+ }
2233
+ }
2234
+ if ( ! $ytaddtaxlist ) $ytaddtaxlist = 'category:10000000';
2235
+ if ( $ytqueryselect == 'Только указанные таксономии' ) {
2236
+ $textAr = explode("\n", trim($ytaddtaxlist));
2237
+ $textAr = array_filter($textAr, 'trim');
2238
+ foreach ($textAr as $line) {
2239
+ $tax = explode(":", $line);
2240
+ $taxterm = explode(",", $tax[1]);
2241
+ $taxterm = array_map('intval', $taxterm);
2242
+ if ( has_term($taxterm, $tax[0]) ) {
2243
+ add_meta_box('yturbo_meta_box', 'Яндекс.Турбо', 'yturbo_callback', $yttype, 'normal' , 'high');
2244
+ break;
2245
+ }
2246
+ }
2247
+ }
2248
  }
2249
+ add_action('add_meta_boxes', 'yturbo_meta_box');
2250
  //создаем метабокс end
2251
 
2252
  //сохраняем метабокс begin
2253
+ function yturbo_save_metabox($post_id) {
2254
+
2255
+ if ( ! isset($_POST['yturbo_meta_nonce']) )
2256
+ return $post_id;
2257
+
2258
+ if ( ! wp_verify_nonce($_POST['yturbo_meta_nonce'], plugin_basename(__FILE__)) )
2259
+ return $post_id;
2260
+
2261
+ if ( defined('DOING_AUTOSAVE') && DOING_AUTOSAVE )
2262
+ return $post_id;
2263
+
2264
+ if ( isset($_POST['ytrssenabled']) ) {
2265
+ update_post_meta($post_id, 'ytrssenabled_meta_value', 'yes');
2266
+ } else {
2267
+ update_post_meta($post_id, 'ytrssenabled_meta_value', 'no');
2268
+ }
2269
+ if ( isset($_POST['ytremove']) ) {
2270
+ update_post_meta($post_id, 'ytremove_meta_value', 'yes');
2271
+ } else {
2272
+ update_post_meta($post_id, 'ytremove_meta_value', 'no');
2273
+ }
2274
+
2275
+ if ( isset($_POST['ytad1meta']) ) {
2276
+ update_post_meta($post_id, 'ytad1meta', 'disabled');
2277
+ } else {
2278
+ update_post_meta($post_id, 'ytad1meta', 'enabled');
2279
+ }
2280
+ if ( isset($_POST['ytad2meta']) ) {
2281
+ update_post_meta($post_id, 'ytad2meta', 'disabled');
2282
+ } else {
2283
+ update_post_meta($post_id, 'ytad2meta', 'enabled');
2284
+ }
2285
+ if ( isset($_POST['ytad3meta']) ) {
2286
+ update_post_meta($post_id, 'ytad3meta', 'disabled');
2287
+ } else {
2288
+ update_post_meta($post_id, 'ytad3meta', 'enabled');
2289
+ }
2290
+ if ( isset($_POST['ytad4meta']) ) {
2291
+ update_post_meta($post_id, 'ytad4meta', 'disabled');
2292
+ } else {
2293
+ update_post_meta($post_id, 'ytad4meta', 'enabled');
2294
+ }
2295
+ if ( isset($_POST['ytad5meta']) ) {
2296
+ update_post_meta($post_id, 'ytad5meta', 'disabled');
2297
+ } else {
2298
+ update_post_meta($post_id, 'ytad5meta', 'enabled');
2299
+ }
2300
+
2301
+ if ( isset($_POST['template_meta']) ) {
2302
+ $template_meta = 'yes';
2303
+ update_post_meta($post_id, 'template_meta', $template_meta);
2304
+ } else {
2305
+ $template_meta = 'no';
2306
+ update_post_meta($post_id, 'template_meta', $template_meta);
2307
+ }
2308
+
2309
+ //сохраняем индивидуальный шаблон только, если стоит галочка на его использовании
2310
+ if ( $template_meta == 'yes' ) {
2311
+ $custom_template = esc_textarea($_POST['custom_template']);
2312
+ update_post_meta($post_id, 'custom_template', $custom_template);
2313
+ }
2314
+
2315
+ if ( isset($_POST['ytextendedhtmlmeta']) ) {
2316
+ $selected = sanitize_text_field($_POST['ytextendedhtmlmeta']);
2317
+ update_post_meta($post_id, 'ytextendedhtmlmeta', $selected);
2318
+ }
2319
+
2320
+ if ( isset($_POST['ytpostdatemeta']) ) {
2321
+ $selected = sanitize_text_field($_POST['ytpostdatemeta']);
2322
+ update_post_meta($post_id, 'ytpostdatemeta', $selected);
2323
+ }
2324
  }
2325
+ add_action('save_post', 'yturbo_save_metabox');
2326
  //сохраняем метабокс end
2327
 
2328
  //выводим метабокс begin
2329
  function yturbo_callback() {
2330
+ global $post;
2331
+ $purl = plugins_url('', __FILE__);
2332
+ wp_nonce_field(plugin_basename(__FILE__), 'yturbo_meta_nonce');
2333
+
2334
+ $yturbo_options = get_option('yturbo_options');
2335
+
2336
+ $ytad1meta = get_post_meta($post->ID, 'ytad1meta', true);
2337
+ if ( ! $ytad1meta ) $ytad1meta = $yturbo_options['ytad1'];
2338
+
2339
+ $ytad2meta = get_post_meta($post->ID, 'ytad2meta', true);
2340
+ if ( ! $ytad2meta ) $ytad2meta = $yturbo_options['ytad2'];
2341
+
2342
+ $ytad3meta = get_post_meta($post->ID, 'ytad3meta', true);
2343
+ if ( ! $ytad3meta ) $ytad3meta = $yturbo_options['ytad3'];
2344
+
2345
+ $ytad4meta = get_post_meta($post->ID, 'ytad4meta', true);
2346
+ if ( ! $ytad4meta ) $ytad4meta = $yturbo_options['ytad4'];
2347
+
2348
+ $ytad5meta = get_post_meta($post->ID, 'ytad5meta', true);
2349
+ if ( ! $ytad5meta ) $ytad5meta = $yturbo_options['ytad5'];
2350
+
2351
+ $ytrssenabled = get_post_meta($post->ID, 'ytrssenabled_meta_value', true);
2352
+ if ( ! $ytrssenabled ) $ytrssenabled = 'no';
2353
+
2354
+ $ytremove = get_post_meta($post->ID, 'ytremove_meta_value', true);
2355
+ if ( ! $ytremove ) $ytremove = 'no';
2356
+
2357
+ $template_meta = get_post_meta($post->ID, 'template_meta', true);
2358
+ if ( ! $template_meta ) $template_meta = 'no';
2359
+
2360
+ $custom_template = get_post_meta($post->ID, 'custom_template', true);
2361
+ $custom_template = html_entity_decode(stripcslashes($custom_template),ENT_QUOTES);
2362
+ if ( ! $custom_template ) {
2363
+ $post_type = get_post_type( get_the_ID() );
2364
+ if ( ! isset($yturbo_options['template-'.$post_type]) ) $yturbo_options['template-'.$post_type] = '';
2365
+ if ( $yturbo_options['template-'.$post_type] == '' ) {
2366
+ $custom_template = '%%post_content%%';
2367
+ } else {
2368
+ $custom_template = html_entity_decode(stripcslashes($yturbo_options['template-'.$post_type]),ENT_QUOTES);
2369
+ }
2370
+ }
2371
+ //обрабатываем шаблон функцией wpautop, если активирован блочный редактор
2372
+ //и если версия WordPress меньше 5.8 (с версии 5.8 разработчки починили wp-editor)
2373
+ global $wp_version;
2374
+ $block_editor_enabled = false;
2375
+ if ( version_compare($wp_version, '5.0', '>=') ) {
2376
+ $block_editor_enabled = get_current_screen()->is_block_editor();
2377
+ }
2378
+ if ( $block_editor_enabled == true && version_compare($wp_version, '5.8', '<') ) {
2379
+ $custom_template = wpautop( $custom_template );
2380
+ }
2381
+
2382
+ $ytextendedhtmlmeta = get_post_meta($post->ID, 'ytextendedhtmlmeta', true);
2383
+ if ( ! $ytextendedhtmlmeta ) $ytextendedhtmlmeta = 'default';
2384
+
2385
+ $ytpostdatemeta = get_post_meta($post->ID, 'ytpostdatemeta', true);
2386
+ if ( ! $ytpostdatemeta ) $ytpostdatemeta = 'default';
2387
+ ?>
2388
+
2389
+ <p style="margin: 10px 0px 0px 1px!important;">
2390
 
2391
  <script>
2392
  jQuery(document).ready(function($) {
2393
+ if ($('#ytrssenabled').is(':checked')) {$temp = 1;}
2394
+ if ($('#ytremove').is(':checked')) {$('#ytrssenabled').removeAttr('checked');$('#ytrssenabled').attr('disabled', true);}
2395
+ $('#ytrssenabled').change(function() {
2396
+ if(this.checked) {
2397
+ $temp = 1;
2398
+ } else {
2399
+ $temp = 0;
2400
+ }
2401
+ });
2402
+ $('#ytremove').change(function() {
2403
+ if(this.checked) {
2404
+ $('#ytrssenabled').removeAttr('checked');
2405
+ $('#ytrssenabled').attr('disabled', true);
2406
+ } else {
2407
+ $('#ytrssenabled').attr('disabled', false);
2408
+ if ($temp == 1) {$('#ytrssenabled').attr ('checked', 'checked');}
2409
+ }
2410
+ });
2411
+ $('#template_meta').change(function() {
2412
+ if(this.checked) {
2413
+ $('#custom_template_op').fadeIn();
2414
+ } else {
2415
+ $('#custom_template_op').hide();
2416
+ }
2417
+ });
2418
  })
2419
  </script>
2420
  <style>
2424
  tt{padding: 1px 5px 1px;margin: 0 1px;background: #eaeaea;background: rgba(0, 0, 0, .07);font-family: Consolas, Monaco, monospace;unicode-bidi: embed;}
2425
  </style>
2426
 
2427
+ <label for="ytrssenabled"><input type="checkbox" <?php if ($ytremove != 'yes') {echo 'value="enabled"';}else{echo 'disabled';} ?> name="ytrssenabled" id="ytrssenabled" <?php if ($ytrssenabled == 'yes' && $ytremove != 'yes') echo 'checked="checked"'; ?> /><?php _e('Исключить эту запись из RSS', 'rss-for-yandex-turbo'); ?></label><br />
2428
+ <label for="ytremove"><input type="checkbox" name="ytremove" id="ytremove" <?php if ($ytremove == 'yes') echo 'checked="checked"'; ?> /><?php _e('Удалить турбо-страницу для этой записи', 'rss-for-yandex-turbo'); ?></label><br>
2429
+
2430
+ <small style="margin-top:5px;"><?php _e('Удалить турбо-страницу можно только, если запись попадет в RSS-ленту.', 'rss-for-yandex-turbo'); ?></small>
2431
+ </p>
2432
+
2433
+ <p style="margin:10px 0 5px 1px!important;">
2434
+
2435
+ <?php if ( $yturbo_options['ytad1'] == 'enabled' ) { ?>
2436
+ <label for="ytad1meta"><input type="checkbox" name="ytad1meta" id="ytad1meta" <?php if ($ytad1meta == 'disabled') echo 'checked="checked"'; ?> /><?php _e('Отключить блок рекламы #1 для этой записи (в начале записи)', 'rss-for-yandex-turbo'); ?></label><br />
2437
+ <?php } ?>
2438
+ <?php if ( $yturbo_options['ytad2'] == 'enabled' ) { ?>
2439
+ <label for="ytad2meta"><input type="checkbox" name="ytad2meta" id="ytad2meta" <?php if ($ytad2meta == 'disabled') echo 'checked="checked"'; ?> /><?php _e('Отключить блок рекламы #2 для этой записи (в середине записи)', 'rss-for-yandex-turbo'); ?></label><br />
2440
+ <?php } ?>
2441
+ <?php if ( $yturbo_options['ytad3'] == 'enabled' ) { ?>
2442
+ <label for="ytad3meta"><input type="checkbox" name="ytad3meta" id="ytad3meta" <?php if ($ytad3meta == 'disabled') echo 'checked="checked"'; ?> /><?php _e('Отключить блок рекламы #3 для этой записи (в конце записи)', 'rss-for-yandex-turbo'); ?></label><br />
2443
+ <?php } ?>
2444
+ <?php if ( $yturbo_options['ytad4'] == 'enabled' ) { ?>
2445
+ <label for="ytad4meta"><input type="checkbox" name="ytad4meta" id="ytad4meta" <?php if ($ytad4meta == 'disabled') echo 'checked="checked"'; ?> /><?php _e('Отключить блок рекламы #4 для этой записи (после блока "Поделиться")', 'rss-for-yandex-turbo'); ?></label><br />
2446
+ <?php } ?>
2447
+ <?php if ( $yturbo_options['ytad5'] == 'enabled' ) { ?>
2448
+ <label for="ytad5meta"><input type="checkbox" name="ytad5meta" id="ytad5meta" <?php if ($ytad5meta == 'disabled') echo 'checked="checked"'; ?> /><?php _e('Отключить блок рекламы #5 для этой записи (после комментариев)', 'rss-for-yandex-turbo'); ?></label><br />
2449
+ <?php } ?>
2450
+ </p>
2451
+
2452
+ <style>
2453
+ #yturbotable p {margin: 8px 0;}
2454
+ #yturbotable {margin-top: 20px;margin-bottom: 20px;
2455
+ }
2456
+ </style>
2457
+ <table id="yturbotable">
2458
+ <tr>
2459
+ <td style="min-width:110px;vertical-align: initial;">
2460
+ <strong><?php _e('Поддержка CSS:', 'rss-for-yandex-turbo'); ?></strong>
2461
+ </td>
2462
+ <td style="vertical-align: initial;">
2463
+ <select name="ytextendedhtmlmeta" style="vertical-align: initial;min-width:180px;">
2464
+ <option value="default" <?php if ($ytextendedhtmlmeta == 'default') echo 'selected="selected"'; ?>><?php _e('По умолчанию', 'rss-for-yandex-turbo'); ?></option>
2465
+ <option value="enabled" <?php if ($ytextendedhtmlmeta == 'enabled') echo 'selected="selected"'; ?>><?php _e('Включена', 'rss-for-yandex-turbo'); ?></option>
2466
+ <option value="disabled" <?php if ($ytextendedhtmlmeta == 'disabled') echo 'selected="selected"'; ?>><?php _e('Выключена', 'rss-for-yandex-turbo'); ?></option>
2467
+ </select>
2468
+ </td>
2469
+ </tr>
2470
+ <tr>
2471
+ <td style="min-width:110px;vertical-align: initial;">
2472
+ <strong><?php _e('Дата:', 'rss-for-yandex-turbo'); ?></strong>
2473
+ </td>
2474
+ <td style="vertical-align: initial;">
2475
+ <select name="ytpostdatemeta" style="vertical-align: initial;min-width:180px;">
2476
+ <option value="default" <?php if ($ytpostdatemeta == 'default') echo 'selected="selected"'; ?>><?php _e('По умолчанию', 'rss-for-yandex-turbo'); ?></option>
2477
+ <option value="enabled" <?php if ($ytpostdatemeta == 'enabled') echo 'selected="selected"'; ?>><?php _e('Включена', 'rss-for-yandex-turbo'); ?></option>
2478
+ <option value="disabled" <?php if ($ytpostdatemeta == 'disabled') echo 'selected="selected"'; ?>><?php _e('Выключена', 'rss-for-yandex-turbo'); ?></option>
2479
+ </select>
2480
+ </td>
2481
+ </tr>
2482
+ <tr><td colspan="3" style="padding-top: 8px;"><small><?php _e('При выборе "По умолчанию" используются общие настройки плагина.', 'rss-for-yandex-turbo'); ?></small></td></tr>
2483
+ </table>
2484
+
2485
+ <div style="margin:10px 0 5px 1px!important;">
2486
+ <label for="template_meta"><input type="checkbox" name="template_meta" id="template_meta" <?php if ($template_meta == 'yes') echo 'checked="checked"'; ?> /><?php _e('Задать индивидуальный шаблон для этой записи', 'rss-for-yandex-turbo'); ?></label><br />
2487
+ <div id="custom_template_op" class="foptions" style="margin:5px 0 0 0;margin-top:5px;<?php if ($template_meta != 'yes') echo 'display:none;'; ?>">
2488
+ <style>.foptions .wp-editor-wrap .button,.foptions .wp-editor-wrap .button-secondary{color:#555;border-color:#ccc;background:#f7f7f7;box-shadow:0 1px 0 #ccc;vertical-align:top}.foptions .wp-editor-wrap .button-secondary:active,.foptions .wp-editor-wrap .button.active,.foptions .wp-editor-wrap .button.active:hover,.foptions .wp-editor-wrap .button:active{background:#eee;border-color:#999;box-shadow:inset 0 2px 5px -3px rgba(0,0,0,.5);transform:translateY(1px)}.foptions .wp-editor-wrap .button:active,.foptions .wp-editor-wrap .button:focus{outline:2px solid transparent;outline-offset:0}.foptions .wp-editor-wrap .button-secondary:focus,.foptions .wp-editor-wrap .button-secondary:hover,.foptions .wp-editor-wrap .button.focus,.foptions .wp-editor-wrap .button.hover,.foptions .wp-editor-wrap .button:focus,.foptions .wp-editor-wrap .button:hover{background:#fafafa;border-color:#999;color:#23282d}.foptions .wp-editor-area,.foptions .wp-editor-area:active,.foptions .wp-editor-area:focus{box-shadow:0 0 2px rgba(30,140,190,0)!important;border:none!important;border-radius:0!important}.foptions .wp-editor-wrap #insert-media-button:focus,.foptions .wp-editor-wrap .button:focus{border-color:#5b9dd9;box-shadow:0 0 3px rgba(0,115,170,.8)}.foptions .wp-editor-wrap .button-secondary:active,.foptions .wp-editor-wrap .button.active,.foptions .wp-editor-wrap .button.active:hover,.foptions .wp-editor-wrap .button:active{background:#eee;border-color:#999;box-shadow:inset 0 2px 5px -3px rgba(0,0,0,.5);transform:translateY(1px)}.foptions .wp-editor-wrap .mce-ico.mce-i-table{margin-top:2px;height:18px}.foptions #wp-customtemplate-wrap{margin-bottom:6px}.foptions .wp-editor-wrap .mce-btn-has-text .mce-ico {padding-right: 0px!important;}.foptions .wp-editor-wrap .mce-btn-has-text .mce-txt{font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen-Sans,Ubuntu,Cantarell,"Helvetica Neue",sans-serif!important;}</style>
2489
+ <div style="margin-top:10px;"></div>
2490
+ <?php $settings = array(
2491
+ 'textarea_name' => 'custom_template',
2492
+ 'wpautop' => 1,
2493
+ 'media_buttons' => 1,
2494
+ 'textarea_rows' => 16,
2495
+ 'editor_height' => 350,
2496
+ 'tinymce' => array(
2497
+ 'toolbar1' => 'undo,redo,formatselect,bold,italic,underline,strikethrough,superscript,subscript,hr,blockquote,link,unlink,bullist,numlist,table,yablocks,',
2498
+ 'toolbar2' => '',
2499
+ 'toolbar3' => '',
2500
+ 'content_css' => $purl . '/inc/editor.css?ver=' . $yturbo_options['version'],
2501
+ ),
2502
+ 'quicktags' => array(
2503
+ 'id' => 'customtemplate',
2504
+ 'buttons' => 'strong,em,link,block,del,hr,img,ul,ol,li,code,close,'
2505
+ ),
2506
+ ); ?>
2507
+ <?php wp_editor($custom_template, 'customtemplate', $settings); ?>
2508
+ <small><?php _e('Названия произвольных полей должны быть обернуты символами <strong>%%</strong>.', 'rss-for-yandex-turbo'); ?>
2509
+ <?php _e('Например, <strong>%%views%%</strong>. Стандартное поле со всем контентом - <strong>%%post_content%%</strong>.', 'rss-for-yandex-turbo'); ?><br />
2510
+ <?php _e('Проверяйте отображение записи в "Отладке" в Яндекс.Вебмастере - визуальный редактор WordPress не может отобразить блоки так, как они будут выглядеть на турбо-страницах. ', 'rss-for-yandex-turbo'); ?><br />
2511
+ <?php _e('При слишком большом различии контента мобильной версии страницы от ее турбо-версии Яндекс может выдать ошибку и отключить турбо-страницу для этой записи.', 'rss-for-yandex-turbo'); ?><br />
2512
+ <?php _e('Документацию по оформлению элементов турбо-страниц вы можете посмотреть <a target="_blank" href="https://yandex.ru/dev/turbo/doc/rss/elements/index-docpage/">тут</a>, список встроенных в плагин шорткодов <a target="_blank" href="https://ru.wordpress.org/plugins/rss-for-yandex-turbo/#%D0%BA%D0%B0%D0%BA%D0%B8%D0%B5%20%D1%88%D0%BE%D1%80%D1%82%D0%BA%D0%BE%D0%B4%D1%8B%20%D0%BC%D0%BE%D0%B6%D0%BD%D0%BE%20%D0%B8%D1%81%D0%BF%D0%BE%D0%BB%D1%8C%D0%B7%D0%BE%D0%B2%D0%B0%D1%82%D1%8C%20%D0%B2%20%D1%88%D0%B0%D0%B1%D0%BB%D0%BE%D0%BD%D0%B0%D1%85%3F">здесь</a>.', 'rss-for-yandex-turbo'); ?><br />
2513
+
2514
+ <?php if ( $block_editor_enabled == true && version_compare($wp_version, '5.8', '<') ) { ?>
2515
+ <?php _e('<br /><span style="color:red;">Внимание!</span> Вы используете блочный редактор, в этом случае автоформатирование текста на основе переноса строк работать не будет, расставляйте ', 'rss-for-yandex-turbo'); ?><br />
2516
+ <?php _e('теги <tt>&lt;p></tt> и <tt>&lt;br /></tt> вручную или в визуальном режиме редактора (плагин потом заменит код <tt>&lt;p>%%post_content%%&lt;/p></tt> на <tt>%%post_content%%</tt>).', 'rss-for-yandex-turbo'); ?><br />
2517
+ <?php } ?>
2518
+ </small>
2519
+ </div>
2520
+ </div>
2521
 
2522
  <?php }
2523
  //выводим метабокс end
2524
 
2525
  //добавляем новую rss-ленту begin
2526
  function yturbo_add_feed() {
2527
+ $yturbo_options = get_option('yturbo_options');
2528
+ add_feed($yturbo_options['ytrssname'], 'yturbo_feed_template');
2529
  }
2530
+ add_action('init', 'yturbo_add_feed');
2531
  //добавляем новую rss-ленту end
2532
 
2533
  //шаблон для RSS-ленты Яндекс.Турбо begin
2551
  $ytselectthumb = $yturbo_options['ytselectthumb'];
2552
 
2553
  if ( yturbo_check_ads() == true ) {
2554
+ $yturbo_options['ytad1'] = 'disabled';
2555
+ $yturbo_options['ytad2'] = 'disabled';
2556
+ $yturbo_options['ytad3'] = 'disabled';
2557
+ $yturbo_options['ytad4'] = 'disabled';
2558
+ $yturbo_options['ytad5'] = 'disabled';
2559
+ update_option('yturbo_options', $yturbo_options);
2560
  }
2561
  $ytad1 = $yturbo_options['ytad1'];
2562
  $ytad1set = $yturbo_options['ytad1set'];
2610
  $ytcomments = $yturbo_options['ytcomments'];
2611
  $ytcommentsnumber = $yturbo_options['ytcommentsnumber'];
2612
  $ytcommentsorder = $yturbo_options['ytcommentsorder'];
2613
+ if ( $ytcommentsorder == 'В начале новые комментарии' ) {
2614
+ $reverse_top_level = false;
2615
+ $reverse_children = false;
2616
  } else {
2617
+ $reverse_top_level = true;
2618
+ $reverse_children = true;
2619
  }
2620
  $ytcommentsdate = $yturbo_options['ytcommentsdate'];
2621
  $ytcommentsdrevo = $yturbo_options['ytcommentsdrevo'];
2622
+ if ( $ytcommentsdrevo == 'enabled' ) {
2623
+ $ytcommentsdrevo = 2;
2624
  } else {
2625
+ $ytcommentsdrevo = 1;
2626
  }
2627
  $ytpostdate = $yturbo_options['ytpostdate'];
2628
 
2631
  $ytratingmax = $yturbo_options['ytratingmax'];
2632
  $ytrelateddate = $yturbo_options['ytrelateddate'];
2633
 
2634
+ if ( $ytqueryselect == 'Все таксономии, кроме исключенных' && $yttaxlist ) {
2635
+ $textAr = explode("\n", trim($yttaxlist));
2636
+ $textAr = array_filter($textAr, 'trim');
2637
+ $tax_query = array('relation' => 'AND');
2638
+ foreach ($textAr as $line) {
2639
+ $tax = explode(":", $line);
2640
+ $taxterm = explode(",", $tax[1]);
2641
+ $tax_query[] = array(
2642
+ 'taxonomy' => $tax[0],
2643
+ 'field' => 'id',
2644
+ 'terms' => $taxterm,
2645
+ 'operator' => 'NOT IN',
2646
+ );
2647
+ }
2648
  }
2649
+ if ( ! $ytaddtaxlist ) $ytaddtaxlist = 'category:10000000';
2650
+ if ( $ytqueryselect == 'Только указанные таксономии' ) {
2651
+ $textAr = explode("\n", trim($ytaddtaxlist));
2652
+ $textAr = array_filter($textAr, 'trim');
2653
+ $tax_query = array('relation' => 'OR');
2654
+ foreach ($textAr as $line) {
2655
+ $tax = explode(":", $line);
2656
+ $taxterm = explode(",", $tax[1]);
2657
+ $tax_query[] = array(
2658
+ 'taxonomy' => $tax[0],
2659
+ 'field' => 'id',
2660
+ 'terms' => $taxterm,
2661
+ 'operator' => 'IN',
2662
+ );
2663
+ }
2664
  }
2665
 
2666
+ if ( $ytrazb == 'enabled' && $ytrazbnumber ) {
2667
+ if ( isset($_GET['paged']) ) {
2668
+ $paged = $_GET['paged'];
2669
+ } else {
2670
+ $paged = 1;
2671
+ }
2672
+ if ($paged == 0) {$paged = 1;}
2673
  } else {
2674
+ $paged = 1;
2675
+ $ytrazbnumber = $ytnumber;
2676
  }
2677
  if ( isset($_GET['lenta']) && $_GET['lenta'] == 'trash' ) {
2678
+ yturbo_lenta_trash();
2679
+ exit;
2680
  }
2681
 
2682
  //если в настройках не выбраны типы записей, то отключаем дефолтный post_type равный 'post'
2683
+ if ( ! isset($yttype[0]) ) {$yttype=array();$yttype[0]='trulala';}
2684
 
2685
  $args = array(
2686
+ 'paged' => $paged,
2687
+ 'ignore_sticky_posts' => 1,
2688
+ 'post_type' => $yttype,
2689
+ 'post_status' => 'publish',
2690
+ 'posts_per_page' => $ytrazbnumber,
2691
+ 'tax_query' => $tax_query,
2692
+ 'meta_query' => array(
2693
+ 'relation' => 'OR',
2694
+ array('key' => 'ytrssenabled_meta_value', 'compare' => 'NOT EXISTS',),
2695
+ array('key' => 'ytrssenabled_meta_value', 'value' => 'yes', 'compare' => '!=',),
2696
+ )
2697
  );
2698
+ $args = apply_filters('yturbo_query_args', $args);
2699
+ $query = new WP_Query($args);
2700
 
2701
  header('Content-Type: ' . feed_content_type('rss2') . '; charset=' . get_option('blog_charset'), true);
2702
  echo '<?xml version="1.0" encoding="'.get_option('blog_charset').'"?'.'>'.PHP_EOL;
2703
  ?>
2704
+ <rss xmlns:yandex="http://news.yandex.ru" xmlns:media="http://search.yahoo.com/mrss/" xmlns:turbo="http://turbo.yandex.ru" version="2.0">
 
 
 
 
2705
  <channel>
2706
+ <turbo:cms_plugin>C125AEEC6018B4A0EF9BF40E6615DD17</turbo:cms_plugin>
2707
+ <title><?php echo esc_attr(stripslashes($yttitle)); ?></title>
2708
+ <link><?php echo esc_url($ytlink); ?></link>
2709
+ <description><?php echo esc_attr(stripslashes($ytdescription)); ?></description>
2710
+ <?php if ($ytmetrika) { ?><turbo:analytics id="<?php echo esc_attr(stripslashes($ytmetrika)); ?>" type="Yandex"></turbo:analytics><?php echo PHP_EOL; ?><?php } ?>
2711
+ <?php if ($ytliveinternet) { ?><turbo:analytics type="LiveInternet"></turbo:analytics><?php echo PHP_EOL; ?><?php } ?>
2712
+ <?php if ($ytgoogle) { ?><turbo:analytics id="<?php echo esc_attr(stripslashes($ytgoogle)); ?>" type="Google"></turbo:analytics><?php echo PHP_EOL; ?><?php } ?>
2713
+ <?php if ($ytmailru) { ?><turbo:analytics id="<?php echo esc_attr(stripslashes($ytmailru)); ?>" type="MailRu"></turbo:analytics><?php echo PHP_EOL; ?><?php } ?>
2714
+ <?php if ($ytrambler) { ?><turbo:analytics id="<?php echo esc_attr(stripslashes($ytrambler)); ?>" type="Rambler"></turbo:analytics><?php echo PHP_EOL; ?><?php } ?>
2715
+ <?php if ($ytmediascope) { ?><turbo:analytics id="<?php echo esc_attr(stripslashes($ytmediascope)); ?>" type="Mediascope"></turbo:analytics><?php echo PHP_EOL; ?><?php } ?>
2716
+ <?php do_action('yturbo_ads_header'); echo yturbo_turbo_ads(); ?>
2717
+ <language><?php echo esc_attr(stripslashes($ytlanguage)); ?></language>
2718
+ <generator>RSS for Yandex Turbo v<?php echo $yturbo_options['version']; ?> (https://wordpress.org/plugins/rss-for-yandex-turbo/)</generator>
2719
+ <?php do_action('yturbo_generator'); ?>
2720
+ <?php while($query->have_posts()) : $query->the_post(); ?>
2721
+ <?php $ytremove = get_post_meta(get_the_ID(), 'ytremove_meta_value', true); ?>
2722
+ <?php if ( $ytremoveturbo != 'enabled' && $ytremove != 'yes' ) { ?>
2723
+ <item turbo="true">
2724
+ <?php } else { ?>
2725
+ <item turbo="false">
2726
+ <?php } ?>
2727
+ <title><?php echo get_the_title_rss(); ?></title>
2728
+ <link><?php the_permalink_rss(); ?></link>
2729
+ <turbo:topic><?php echo get_the_title_rss(); ?></turbo:topic>
2730
+ <turbo:source><?php the_permalink_rss(); ?></turbo:source>
2731
+ <?php $ytextendedhtmlmeta = get_post_meta(get_the_ID(), 'ytextendedhtmlmeta', true);
2732
+ $ytextendedhtml = $yturbo_options['ytextendedhtml'];
2733
+ if ( $ytextendedhtmlmeta == 'enabled' or $ytextendedhtmlmeta == 'disabled' ) $ytextendedhtml = $ytextendedhtmlmeta;
2734
+ if ( $ytextendedhtml == 'enabled' ) echo '<turbo:extendedHtml>true</turbo:extendedHtml>'.PHP_EOL; ?>
2735
+ <?php $ytpostdatemeta = get_post_meta(get_the_ID(), 'ytpostdatemeta', true);
2736
+ $ytpostdate = $yturbo_options['ytpostdate'];
2737
+ if ( $ytpostdatemeta == 'enabled' or $ytpostdatemeta == 'disabled' ) $ytpostdate = $ytpostdatemeta; ?>
2738
+ <?php if ( $ytpostdate == 'enabled' ) : ?>
2739
+ <?php $gmt_offset = get_option('gmt_offset');
2740
+ $gmt_offset_abs = floor(abs($gmt_offset));
2741
+ $gmt_offset_str = ($gmt_offset_abs > 9) ? $gmt_offset_abs.'00' : ('0'.$gmt_offset_abs.'00');
2742
+ $gmt_offset_str = $gmt_offset >= 0 ? '+' . $gmt_offset_str : '-' . $gmt_offset_str; ?>
2743
+ <?php if ( $yturbo_options['ytdateformat'] == 'create' ) { ?>
2744
+ <pubDate><?php echo mysql2date('D, d M Y H:i:s '.$gmt_offset_str, get_date_from_gmt(get_post_time('Y-m-d H:i:s', true)), false); ?></pubDate>
2745
+ <?php } ?>
2746
+ <?php if ( $yturbo_options['ytdateformat'] == 'mod' ) { ?>
2747
+ <pubDate><?php echo mysql2date('D, d M Y H:i:s '.$gmt_offset_str, get_date_from_gmt(get_post_modified_time('Y-m-d H:i:s', true)), false); ?></pubDate>
2748
+ <?php } ?>
2749
+ <?php endif; ?>
2750
+ <?php if ( $ytauthorselect != 'Отключить указание автора' ) { ?>
2751
+ <?php if ( $ytauthor && $ytauthorselect != 'Автор записи' ) {
2752
+ echo '<author>'.esc_attr(stripslashes($ytauthor)).'</author>'.PHP_EOL;
2753
+ } else {
2754
+ echo '<author>'.get_the_author().'</author>'.PHP_EOL;
2755
+ } } ?>
2756
+ <turbo:content><![CDATA[
2757
+ <?php
2758
+ global $post;
2759
+ $tt = $post;
2760
+ $content = yturbo_the_content_feed();
2761
+ $post = $tt;
2762
+ setup_postdata( $post );
2763
+ $content = yturbo_build_template($content);
2764
+ $post = $tt;
2765
+ setup_postdata( $post );
2766
+
2767
+ if ( $ytexcludetags != 'disabled' && $ytexcludetagslist ) {
2768
+ $content = yturbo_strip_tags_without_content($content, $ytexcludetagslist);
2769
+ }
2770
+ if ( $ytexcludetags2 != 'disabled' && $ytexcludetagslist2 ) {
2771
+ $content = yturbo_strip_tags_with_content($content, $ytexcludetagslist2, true);
2772
+ }
2773
+
2774
+ //удаляем все атрибуты тега img кроме src
2775
+ $content = yturbo_strip_attributes($content,array('src'));
2776
+
2777
+ $content = wpautop($content);
2778
+
2779
+ //удаляем unicode-символы (как невалидные в rss)
2780
+ $content = preg_replace('/[\x00-\x08\x0B\x0C\x0E-\x1F\x7F]/u', '', $content);
2781
+
2782
+ //убираем лишние figure вокруг галереи (на 5.9 изменилась разметка плюс лишние figure, если прописано описание галереи)
2783
+ //<tempgallery> будет убрано позже в yturbo_do_gallery
2784
+ $content = preg_replace_callback('#(<figure class=\"wp-block-gallery[^>]*>)(.+?)(</figure>\n</figure>|</figure><figcaption class="blocks-gallery-caption">(.*?)</figcaption></figure>|</ul><figcaption class="blocks-gallery-caption">(.*?)</figcaption></figure>)#is', function($m) {
2785
+ $pattern = '/<figure(.*?)><img(.*?)>(.*?)<\/figure>/i';
2786
+ $replacement = '<img$2>';
2787
+ $m[2] = preg_replace($pattern, $replacement, $m[2]);
2788
+ $pattern = '/<figcaption class="blocks-gallery-caption">(.*?)<\/figcaption>/i';
2789
+ $replacement = PHP_EOL.'<header>$1</header>'.PHP_EOL;
2790
+ $m[3] = preg_replace($pattern, $replacement, $m[3]);
2791
+ return('<tempgallery>'.$m[2].$m[3].'</tempgallery>');
2792
+ }, $content);
2793
+
2794
+ //удаляем разметку движка при использовании шорткода с подписью [caption] (в html4 темах - classic editor)
2795
+ $pattern = "/<div(.*?)>(.*?)<img(.*?)\/>(.*?)<\/p>\n<p(.*?)>(.*?)<\/p>\n<\/div>/i";
2796
+ $replacement = '<tempfigure>$2<tempimg$3/>$4<tempfigcaption>$6</tempfigcaption></tempfigure>';
2797
+ $content = preg_replace($pattern, $replacement, $content);
2798
+ //разметка описания на случай, если тег div удаляется в настройках плагина
2799
+ $pattern = "/<p>(.*?)<img(.*?)\/>(.*?)<\/p>\n<p(.*?)class=\"wp-caption-text\">(.*?)<\/p>/i";
2800
+ $replacement = '<tempfigure>$1<tempimg$2/>$3<tempfigcaption>$5</tempfigcaption></tempfigure>';
2801
+ $content = preg_replace($pattern, $replacement, $content);
2802
+
2803
+ //удаляем разметку движка при использовании шорткода с подписью [caption] (в html5 темах - classic editor)
2804
+ $pattern = "/<figure(.*?)>(.*?)<img(.*?)\/>(.*?)<figcaption(.*?)>(.*?)<\/figcaption><\/figure>/i";
2805
+ $replacement = '<tempfigure>$2<tempimg$3/>$4<tempfigcaption>$6</tempfigcaption></tempfigure>';
2806
+ $content = preg_replace($pattern, $replacement, $content);
2807
+
2808
+ //удаляем <figure>, если они изначально присутствуют в контенте записи (с указанным caption - gutenberg)
2809
+ $pattern = "/<figure(.*?)>(.*?)<img(.*?)\/>(.*?)<figcaption(.*?)>(.*?)<\/figcaption><\/figure>/i";
2810
+ $replacement = '<tempfigure>$2<tempimg$3/>$4<tempfigcaption>$6</tempfigcaption></tempfigure>';
2811
+ $content = preg_replace($pattern, $replacement, $content);
2812
+
2813
+ //удаляем <figure>, если они изначально присутствуют в контенте записи (без caption - gutenberg)
2814
+ $pattern = "/<figure(.*?)>(.*?)<img(.*?)>(.*?)<\/figure>/i";
2815
+ $replacement = '<tempfigure>$2<tempimg$3>$4</tempfigure>';
2816
+ $content = preg_replace($pattern, $replacement, $content);
2817
+
2818
+ //удаляем <figure> вокруг всех остальных элементов (яндекс такое не понимает)
2819
+ $pattern = "/<figure(.*?)>/i";
2820
+ $replacement = '';
2821
+ $content = preg_replace($pattern, $replacement, $content);
2822
+ $pattern = "/<\/figure>/i";
2823
+ $replacement = '';
2824
+ $content = preg_replace($pattern, $replacement, $content);
2825
+ $pattern = "/<figcaption(.*?)>(.*?)<\/figcaption>/i";
2826
+ $replacement = '';
2827
+ $content = preg_replace($pattern, $replacement, $content);
2828
+
2829
+ //обрабатываем картинки в ссылках
2830
+ $pattern = "/<a(.*?)>(.*?)<img(.*?)>(.*?)<\/a>/i";
2831
+ $replacement = '<tempfigure><a$1><tempimg$3></a></tempfigure>';
2832
+ $content = preg_replace($pattern, $replacement, $content);
2833
+
2834
+ //обрабатываем картинки без ссылок
2835
+ $pattern = "/<img(.*?)>/i";
2836
+ $replacement = '<tempfigure><tempimg$1></tempfigure>';
2837
+ $content = preg_replace($pattern, $replacement, $content);
2838
+
2839
+ //удаляем лишние теги параграфов
2840
+ $pattern = "/<p><tempfigure>(.*?)<\/tempfigure><\/p>/i";
2841
+ $replacement = '<tempfigure>$1</tempfigure>';
2842
+ $content = preg_replace($pattern, $replacement, $content);
2843
+
2844
+ if ( $ytfigcaption == 'Отключить описания' ) {
2845
+ $pattern = "/<tempfigcaption>(.*?)<\/tempfigcaption>/i";
2846
+ $replacement = '';
2847
+ $content = preg_replace($pattern, $replacement, $content);
2848
+ }
2849
+
2850
+ $content = str_replace('<tempfigure', '<figure', $content);
2851
+ $content = str_replace('</tempfigure>', '</figure>', $content);
2852
+ $content = str_replace('<tempfigcaption>', '<figcaption>', $content);
2853
+ $content = str_replace('</tempfigcaption>', '</figcaption>', $content);
2854
+ $content = str_replace('<tempimg', '<img', $content);
2855
+
2856
+ $purl = plugins_url('', __FILE__);
2857
+
2858
+ //преобразуем iframe с видео
2859
+ $pattern = "/<iframe title=\"(.*?)\"(.*?) allow=\"(.*?)\"(.*?)><\/iframe>/i";
2860
+ $replacement = '<iframe$2 allowfullscreen="true"></iframe>';
2861
+ $content = preg_replace($pattern, $replacement, $content);
2862
+
2863
+ //формируем video для mp4 файлов согласно документации яндекса (гутенберг)
2864
+ $pattern = "/<video(.*?)src=\"(.*?).mp4\"><\/video>/i";
2865
+ $replacement = '<figure><video><source src="$2.mp4" type="video/mp4" /></video><img src="'.$purl.'/img/video.png'.'" /></figure>';
2866
+ $content = preg_replace($pattern, $replacement, $content);
2867
+
2868
+ //формируем video для mp4 файлов согласно документации яндекса (классический редактор)
2869
+ $content = str_replace('<!--[if lt IE 9]><script>document.createElement(\'video\');</script><![endif]-->', '', $content);
2870
+ $content = str_replace('<!--[if lt IE 9]><![endif]-->', '', $content);
2871
+ $pattern = "/<video class=\"wp-video-shortcode\"(.*?)><source(.*?)src=\"(.*?).mp4(.*?)\"(.*?)\/>(.*?)<\/video>/i";
2872
+ $replacement = '<figure><video><source src="$3.mp4" type="video/mp4" /></video><img src="'.$purl.'/img/video.png'.'" /></figure>';
2873
+ $content = preg_replace($pattern, $replacement, $content);
2874
+
2875
+ //формируем audio для mp3 файлов (гутенберг)
2876
+ $pattern = "/<audio(.*?)src=\"(.*?).mp3\"><\/audio>/i";
2877
+ $replacement = '<div data-block="audio" src="$2.mp3"></div>';
2878
+ $content = preg_replace($pattern, $replacement, $content);
2879
+
2880
+ //формируем audio для mp3 файлов (классический редактор)
2881
+ $content = str_replace('<!--[if lt IE 9]><script>document.createElement(\'audio\');</script><![endif]-->', '', $content);
2882
+ $pattern = "/<audio class=\"wp-audio-shortcode\"(.*?)><source(.*?)src=\"(.*?).mp3(.*?)\"(.*?)\/>(.*?)<\/audio>/i";
2883
+ $replacement = '<div data-block="audio" src="$3.mp3"></div>';
2884
+ $content = preg_replace($pattern, $replacement, $content);
2885
+
2886
+ //удаляем картинки из контента, если их больше 50 уникальных (ограничение яндекс.турбо)
2887
+ if ( preg_match_all("/<figure(.*?)>(.*?)<img(.*?)>(.*?)<\/figure>/i", $content, $res) ) {
2888
+ $i = 0;
2889
+ if ( $ytrelated == 'enabled' && $ytrelatednumber && $ytrelatedinfinity != 'enabled' ) $i = $ytrelatednumber;
2890
+ if ( $ytthumbnail == 'enabled' && has_post_thumbnail(get_the_ID()) ) $i++;
2891
+ $final = array();
2892
+ foreach ($res[0] as $r) {
2893
+ if ( ! in_array($r, $final) ) $i++;
2894
+ if ( $i > 50 && ! in_array($r, $final) ) {
2895
+ $content = str_replace($r, '', $content);
2896
+ }
2897
+ if ( ! in_array($r, $final) ) $final[] = $r;
2898
+ }
2899
+ }
2900
+
2901
+ if ( $ytexcludecontent != 'disabled' && $ytexcludecontentlist ) {
2902
+ $textAr = explode("\n", str_replace(array("\r\n", "\r"), "\n", $ytexcludecontentlist));
2903
+ foreach ($textAr as $line) {
2904
+ $line = stripcslashes($line);
2905
+ $content = str_replace($line, '', $content);
2906
+ }
2907
+ }
2908
+
2909
+ //преобразовываем галереи в турбо-галереи
2910
+ add_shortcode('gallery', 'gallery_shortcode');
2911
+ add_filter('post_gallery', 'yturbo_gallery', 10, 2);
2912
+ $content = do_shortcode($content);
2913
+ $content = yturbo_do_gallery($content);
2914
+
2915
+ $ytad4meta = get_post_meta($post->ID, 'ytad4meta', true);
2916
+ $ytad5meta = get_post_meta($post->ID, 'ytad5meta', true);
2917
+
2918
+ $content = apply_filters('yturbo_add_contents', $content);
2919
+ ?>
2920
+ <header>
2921
+ <?php
2922
+ if ( $ytthumbnail == 'enabled' && has_post_thumbnail( get_the_ID() ) ) {
2923
+ $caption = ''; $imgurl = '';
2924
+ $caption = get_the_post_thumbnail_caption( get_the_ID() );
2925
+ $imgurl = strtok(get_the_post_thumbnail_url( get_the_ID(), $ytselectthumb ), '?');
2926
+ if ( $caption && $ytfigcaption != 'Отключить описания' ) {
2927
+ $temp = '<figcaption>'.esc_attr(stripslashes($caption)).'</figcaption>';}
2928
+ else {
2929
+ $temp='';
2930
+ }
2931
+ echo '<figure><img src="'. strtok(get_the_post_thumbnail_url(get_the_ID(),$ytselectthumb), '?') .'" />'.$temp.'</figure>'.PHP_EOL;
2932
+ }
2933
+ if ( $ytthumbnail == 'enabled' && ! has_post_thumbnail(get_the_ID()) ) {
2934
+ $caption = ''; $imgurl = '';
2935
+ $caption = apply_filters('yturbo_thumb_caption', $caption);
2936
+ $imgurl = apply_filters('yturbo_thumb_imgurl', $imgurl);
2937
+ if ( $caption && $ytfigcaption != 'Отключить описания' ) {
2938
+ $temp = '<figcaption>'.esc_attr(stripslashes($caption)).'</figcaption>';}
2939
+ else {
2940
+ $temp='';
2941
+ }
2942
+ if ( $imgurl ) {
2943
+ echo '<figure><img src="'. esc_url($imgurl) .'" />'.$temp.'</figure>'.PHP_EOL;
2944
+ }
2945
+ }
2946
+ ?>
2947
+ <h1><?php echo get_the_title_rss(); ?></h1>
2948
+ <?php if ( $ytselectmenu != 'Не использовать' ) {
2949
+ echo '<menu>'.PHP_EOL;
2950
+ $menu = wp_get_nav_menu_object( $ytselectmenu );
2951
+ $menu_items = wp_get_nav_menu_items($menu->term_id);
2952
+
2953
+ foreach ((array) $menu_items as $key => $menu_item) {
2954
+ $title = $menu_item->title;
2955
+ $url = $menu_item->url;
2956
+ echo '<a href="' . $url . '">' . $title . '</a>'.PHP_EOL;
2957
+ }
2958
+
2959
+ echo '</menu>'.PHP_EOL;} ?>
2960
+ </header>
2961
+ <?php if ( $ytrating == 'enabled' ) {
2962
+ $temprating = mt_rand ($ytratingmin*100, $ytratingmax*100) / 100;
2963
+ echo '
2964
+ <div itemscope itemtype="http://schema.org/Rating">
2965
+ <meta itemprop="ratingValue" content="'.$temprating.'">
2966
+ <meta itemprop="bestRating" content="5">
2967
+ </div>
2968
+ ';
2969
+ } ?>
2970
+ <?php if ( $yturbo_options['ytsearch'] != 'disabled' && $yturbo_options['ytsearchmesto'] == 'В начале записи' ) echo yturbo_search_widget(); ?>
2971
+ <?php if ( $yturbo_options['ytfeedback'] != 'disabled' && $yturbo_options['ytfeedbackselect'] == 'false' && $yturbo_options['ytfeedbackselectmesto'] == 'В начале записи' ) echo yturbo_widget_feedback(); ?>
2972
+ <?php
2973
+ $content = apply_filters('yturbo_before_ads', $content);
2974
+ $temp = apply_filters('yturbo_add_custom_ads', $content);
2975
+ if ( $temp != $content ) {
2976
+ echo $temp;
2977
+ } else {
2978
+ echo yturbo_add_advert($content);
2979
+ }
2980
+ ?>
2981
+ <?php if ( $yturbo_options['ytshare'] == 'enabled' ) {
2982
+ echo PHP_EOL.'<div data-block="share" data-network="'.$yturbo_options['ytnetw'].'"></div>';
2983
+ if ( $ytad4 == 'enabled' && $ytad4meta != 'disabled' ) echo PHP_EOL.'<figure data-turbo-ad-id="fourth_ad_place"></figure>'.PHP_EOL;
2984
+ do_action('yturbo_after_share');
2985
+ } ?>
2986
+ <?php if ( $yturbo_options['ytfeedback'] != 'disabled' && $yturbo_options['ytfeedbackselect'] == 'false' && $yturbo_options['ytfeedbackselectmesto'] == 'В конце записи' ) echo yturbo_widget_feedback(); ?>
2987
+ <?php if ( $yturbo_options['ytfeedback'] != 'disabled' && $yturbo_options['ytfeedbackselect'] != 'false' ) echo yturbo_widget_feedback(); ?>
2988
+ <?php if ( $yturbo_options['ytsearch'] != 'disabled' && $yturbo_options['ytsearchmesto'] == 'В конце записи' ) echo yturbo_search_widget(); ?>
2989
+ <?php if ( $ytcomments == 'enabled' ) {
2990
+ $comments = get_comments(array(
2991
+ 'post_id' => get_the_ID(),
2992
+ 'status' => 'approve',
2993
+ ));
2994
+ if ( $comments ) echo PHP_EOL.'<div data-block="comments" data-url="'.get_permalink().'#respond">';
2995
+ wp_list_comments(array(
2996
+ 'type' => 'comment',
2997
+ 'per_page' => $ytcommentsnumber,
2998
+ 'callback' => 'yturbo_comments',
2999
+ 'end-callback' => 'yturbo_comments_end',
3000
+ 'title_li' => null,
3001
+ 'max_depth' => $ytcommentsdrevo,
3002
+ 'reverse_top_level' => $reverse_top_level,
3003
+ 'reverse_children' => $reverse_children,
3004
+ 'style' => 'div',
3005
+ ), $comments);
3006
+ if ( $comments ) echo '</div>';
3007
+ if ( $comments && $ytad5 == 'enabled' && $ytad5meta != 'disabled' ) echo PHP_EOL.'<figure data-turbo-ad-id="fifth_ad_place"></figure>'.PHP_EOL;
3008
+ do_action( 'yturbo_after_comments' );
3009
+ } ?>
3010
+ ]]></turbo:content>
3011
+ <?php
3012
+ if ( $ytrelated=='enabled' ) {
3013
+
3014
+ $tempID = get_the_ID();
3015
+ $rcontent = '';
3016
+
3017
+ if ( $ytrelatedcache == 'enabled' ) $rcontent = get_transient('related-' . $tempID);
3018
+
3019
+ if ( ! $rcontent ) {
3020
+ $cats = array();
3021
+ $childonly = array();
3022
+ foreach (get_the_category(get_the_ID()) as $cat) {
3023
+ array_push($cats, $cat->cat_ID);
3024
+ if ($cat->category_parent !== 0 ) {
3025
+ array_push($childonly, $cat->cat_ID);
3026
+ }
3027
+ }
3028
+ if ( $childonly ) $cats = $childonly;
3029
+ $cur_post_id = array();
3030
+ array_push($cur_post_id, get_the_ID());
3031
+
3032
+ $args = array('post__not_in' => $cur_post_id, 'cat' => $cats,'orderby' => 'rand','date_query' => array('after' => $ytrelateddate . ' month ago',),'ignore_sticky_posts' => 1, 'post_type' => $yttype, 'post_status' => 'publish', 'posts_per_page' => $ytrelatednumber,'tax_query' => $tax_query,'meta_query' => array('relation' => 'OR', array('key' => 'ytrssenabled_meta_value', 'compare' => 'NOT EXISTS',),array('key' => 'ytrssenabled_meta_value', 'value' => 'yes', 'compare' => '!=',),));
3033
+ $related = new WP_Query($args);
3034
+
3035
+ if ( ! $related->have_posts() ) {
3036
+ $args = array('post__not_in' => $cur_post_id, 'orderby' => 'rand','date_query' => array('after' => $ytrelateddate . ' month ago',),'ignore_sticky_posts' => 1, 'post_type' => $yttype, 'post_status' => 'publish', 'posts_per_page' => $ytrelatednumber,'tax_query' => $tax_query,'meta_query' => array('relation' => 'OR', array('key' => 'ytrssenabled_meta_value', 'compare' => 'NOT EXISTS',),array('key' => 'ytrssenabled_meta_value', 'value' => 'yes', 'compare' => '!=',),));
3037
+ $related = new WP_Query($args);
3038
+ }
3039
+
3040
+ if ( $related->have_posts() ) {
3041
+ if ( $ytrelatedinfinity == 'disabled') {
3042
+ $rcontent .= '<yandex:related>'.PHP_EOL;
3043
+ } else {
3044
+ $rcontent .= '<yandex:related type="infinity">'.PHP_EOL;
3045
+ }
3046
+ }
3047
+ while ( $related->have_posts() ) : $related->the_post();
3048
+ $ytremove = get_post_meta(get_the_ID(), 'ytremove_meta_value', true);
3049
+ if ( $ytremove == 'yes' ) continue;
3050
+ $thumburl = '';
3051
+ if ( $ytrelatedselectthumb != 'Не использовать' && has_post_thumbnail(get_the_ID()) && $ytrelatedinfinity != 'enabled' ) {
3052
+ $thumburl = ' img="' . strtok(get_the_post_thumbnail_url(get_the_ID(),$ytrelatedselectthumb), '?') . '"';
3053
+ }
3054
+ $rlink = htmlspecialchars(get_the_permalink());
3055
+ $rtitle = get_the_title_rss();
3056
+ if ( $ytrelatedselectthumb != 'Не использовать' && $ytrelatedinfinity != 'enabled' ) {
3057
+ $rcontent .= '<link url="'.$rlink.'"'.$thumburl.'>'.$rtitle.'</link>'.PHP_EOL;
3058
+ } else {
3059
+ $rcontent .= '<link url="'.$rlink.'">'.$rtitle.'</link>'.PHP_EOL;
3060
+ }
3061
+
3062
+ endwhile;
3063
+ if ( $related->have_posts() ) {
3064
+ $rcontent .= '</yandex:related>'.PHP_EOL;
3065
+ echo $rcontent;
3066
+ }
3067
+ wp_reset_query($related);
3068
+
3069
+ if ( $ytrelatedcache == 'enabled' ) set_transient('related-' . $tempID, $rcontent, $ytrelatedcachetime * HOUR_IN_SECONDS);
3070
+ } else {
3071
+ echo $rcontent;
3072
+ }
3073
+ } ?>
3074
+ </item>
3075
  <?php endwhile; ?>
3076
  <?php wp_reset_postdata(); ?>
3077
  <?php wp_reset_query(); ?>
3081
  //шаблон для RSS-ленты Яндекс.Турбо end
3082
 
3083
  //установка правильного content type для ленты плагина begin
3084
+ function yturbo_feed_content_type($content_type, $type) {
3085
+ $yturbo_options = get_option('yturbo_options');
3086
+ if ( $yturbo_options['ytrssname'] == $type ) {
3087
+ $content_type = 'application/rss+xml';
3088
+ }
3089
+ return $content_type;
3090
  }
3091
+ add_filter('feed_content_type', 'yturbo_feed_content_type', 10, 2);
3092
  //установка правильного content type для ленты плагина end
3093
 
3094
  //функция формирования content в rss begin
3095
  function yturbo_the_content_feed() {
3096
+ $yturbo_options = get_option('yturbo_options');
3097
+ remove_shortcode('gallery');
3098
+ if ( $yturbo_options['ytexcerpt'] == 'enabled' ) {
3099
+ $content = '';
3100
+ if ( has_excerpt( get_the_ID() ) ) {
3101
+ $content = '<p>' . get_the_excerpt( get_the_ID() ) . '</p>';
3102
+ }
3103
+ $content .= apply_filters( 'the_content', yturbo_strip_shortcodes( get_post_field( 'post_content', get_the_ID() ) ) );
3104
+ } else {
3105
+ $content = apply_filters( 'the_content', yturbo_strip_shortcodes( get_post_field( 'post_content', get_the_ID() ) ) );
3106
+ }
3107
+ $content = apply_filters('yturbo_the_content', $content);
3108
+ $content = str_replace(']]>', ']]&gt;', $content);
3109
+ $content = apply_filters('wp_staticize_emoji', $content);
3110
+ $content = apply_filters('_oembed_filter_feed_content', $content);
3111
+ return $content;
3112
  }
3113
  //функция формирования content в rss end
3114
 
3115
  //функция удаления тегов вместе с их контентом begin
3116
+ function yturbo_strip_tags_with_content($text, $tags = '', $invert = false) {
3117
+
3118
+ // удаляем лишние символы, добавляем тегам символы <> begin
3119
+ $tags = preg_replace('/[^A-Za-z0-9,]/', '', $tags);
3120
+ $a = explode(",", $tags );
3121
+ $a = array_diff($a, array(''));
3122
+ array_walk($a, function(&$value, $key) { $value = '<'. $value . '>'; } );
3123
+ $tags = implode(",", $a );
3124
+ // удаляем лишние символы, добавляем тегам символы <> end
3125
+
3126
+ preg_match_all( '/<(.+?)[\s]*\/?[\s]*>/si', trim( $tags ), $tags_array );
3127
+ $tags_array = array_unique($tags_array[1]);
3128
+
3129
+ $regex = '';
3130
+
3131
+ if ( count($tags_array) > 0 ) {
3132
+ if ( ! $invert ) {
3133
+ $regex = '@<(?!(?:' . implode( '|', $tags_array ) . ')\b)(\w+)\b[^>]*?(>((?!<\1\b).)*?<\/\1|\/)>@si';
3134
+ $text = preg_replace( $regex, '', $text );
3135
+ } else {
3136
+ $regex = '@<(' . implode( '|', $tags_array ) . ')\b[^>]*?(>((?!<\1\b).)*?<\/\1|\/)>@si';
3137
+ $text = preg_replace( $regex, '', $text );
3138
+ }
3139
+ } elseif ( ! $invert ) {
3140
+ $regex = '@<(\w+)\b[^>]*?(>((?!<\1\b).)*?<\/\1|\/)>@si';
3141
+ $text = preg_replace( $regex, '', $text );
3142
+ }
3143
+
3144
+ if ( $regex && preg_match( $regex, $text ) ) {
3145
+ $text = yturbo_strip_tags_with_content( $text, $tags, $invert );
3146
+ }
3147
+
3148
+ return $text;
3149
  }
3150
  //функция удаления тегов вместе с их контентом end
3151
 
3152
  //функция удаления тегов без их контента begin
3153
+ function yturbo_strip_tags_without_content($text, $tags = '') {
3154
+
3155
+ // удаляем лишние символы, добавляем тегам символы <> begin
3156
+ $tags = preg_replace('/[^A-Za-z0-9,]/', '', $tags);
3157
+ $a = explode(",", $tags );
3158
+ $a = array_diff($a, array(''));
3159
+ array_walk($a, function(&$value, $key) { $value = '<'. $value . '>'; } );
3160
+ $tags = implode(",", $a );
3161
+ // удаляем лишние символы, добавляем тегам символы <> end
3162
+
3163
+ preg_match_all('/<(.+?)[\s]*\/?[\s]*>/si', trim($tags), $tags);
3164
+ $tags = array_unique($tags[1]);
3165
+
3166
+ if ( is_array($tags) AND count($tags) > 0 ) {
3167
+ foreach($tags as $tag) {
3168
+ $text = preg_replace("/<\\/?" . $tag . "(.|\\s)*?>/", '', $text);
3169
+ }
3170
+ }
3171
+ return $text;
3172
  }
3173
  //функция удаления тегов без их контента end
3174
 
3175
  //функция принудительной установки header-тега X-Robots-Tag (решение проблемы с SEO-плагинами) begin
3176
  function yturbo_index_follow_rss() {
3177
+ $yturbo_options = get_option('yturbo_options');
3178
+ if ( is_feed($yturbo_options['ytrssname']) ) {
3179
+ header('X-Robots-Tag: index, follow', true);
3180
+ header('HTTP/1.1 200 OK', true);
3181
+ }
3182
  }
3183
+ add_action('template_redirect', 'yturbo_index_follow_rss', 999999);
3184
  //функция принудительной установки header-тега X-Robots-Tag (решение проблемы с SEO-плагинами) end
3185
 
3186
  //функция подсчета количества rss-лент и их вывод на странице настроек плагина begin
3200
  $yttaxlist = $yturbo_options['yttaxlist'];
3201
  $ytaddtaxlist = $yturbo_options['ytaddtaxlist'];
3202
 
3203
+ if ( $ytqueryselect == 'Все таксономии, кроме исключенных' && $yttaxlist ) {
3204
+ $textAr = explode("\n", trim($yttaxlist));
3205
+ $textAr = array_filter($textAr, 'trim');
3206
+ $tax_query = array('relation' => 'AND');
3207
+ foreach ($textAr as $line) {
3208
+ $tax = explode(":", $line);
3209
+ $taxterm = explode(",", $tax[1]);
3210
+ $tax_query[] = array(
3211
+ 'taxonomy' => $tax[0],
3212
+ 'field' => 'id',
3213
+ 'terms' => $taxterm,
3214
+ 'operator' => 'NOT IN',
3215
+ );
3216
+ }
3217
  }
3218
+ if ( ! $ytaddtaxlist ) $ytaddtaxlist = 'category:10000000';
3219
+ if ( $ytqueryselect == 'Только указанные таксономии' ) {
3220
+ $textAr = explode("\n", trim($ytaddtaxlist));
3221
+ $textAr = array_filter($textAr, 'trim');
3222
+ $tax_query = array('relation' => 'OR');
3223
+ foreach ($textAr as $line) {
3224
+ $tax = explode(":", $line);
3225
+ $taxterm = explode(",", $tax[1]);
3226
+ $tax_query[] = array(
3227
+ 'taxonomy' => $tax[0],
3228
+ 'field' => 'id',
3229
+ 'terms' => $taxterm,
3230
+ 'operator' => 'IN',
3231
+ );
3232
+ }
3233
  }
3234
 
3235
+ if ( $ytnumber > 500 ) :
3236
+ if ( $ytrazb == 'enabled' ) {
3237
  $paged = 2;
3238
  echo '<p>Вы установили слишком большое общее количество записей в RSS (больше 500 записей), <br />
3239
  поэтому чтобы не нагружать базу данных фактическая проверка наличия записей в разбитых <br />
3242
  <p>Всего у вас ' . yturbo_russian_number(ceil($ytnumber / $ytrazbnumber), array(' RSS-лента', ' RSS-ленты', ' RSS-лент')) . ' (максимально по '.yturbo_russian_number($ytrazbnumber, array(' запись', ' записи', ' записей')). ' в каждой):</p>';
3243
  echo '<ul style="margin-bottom: 25px;">';
3244
  if ( get_option('permalink_structure') ) {
3245
+ echo '<li>1. <a target="_blank" href="'.get_bloginfo("url").'/feed/'.$yturbo_options['ytrssname'].'/">'.get_bloginfo("url").'/feed/'.$yturbo_options['ytrssname'].'/</a></li>';
3246
  } else {
3247
+ echo '<li>1. <a target="_blank" href="'.get_bloginfo("url").'/?feed='.$yturbo_options['ytrssname'].'">'.get_bloginfo("url").'/?feed='.$yturbo_options['ytrssname'].'</a></li>';
3248
  }
3249
+ while ( $paged <= ceil($ytnumber / $ytrazbnumber) ) {
3250
+
3251
+ if ( get_option('permalink_structure') ) {
3252
+ echo '<li>'.$paged.'. <a target="_blank" href="'.get_bloginfo("url").'/feed/'.$yturbo_options['ytrssname'].'/?paged='.$paged.'">'.get_bloginfo("url").'/feed/'.$yturbo_options['ytrssname'].'/?paged='.$paged.'</a></li>';
3253
+ } else {
3254
+ echo '<li>'.$paged.'. <a target="_blank" href="'.get_bloginfo("url").'/?feed='.$yturbo_options['ytrssname'].'&paged='.$x.'">'.get_bloginfo("url").'/?feed='.$yturbo_options['ytrssname'].'&paged='.$paged.'</a></li>';
3255
+ }
3256
+ $paged++;
3257
+
3258
+ if ( $paged == 10 && ( ceil($ytnumber / $ytrazbnumber) ) > 10 ) {
3259
+ echo '<li>....</li>';
3260
+ echo '<li>Слишком много RSS-лент, остальные ленты были скрыты (<span id="showlistrss">показать</span>).</li>';
3261
+ echo '<div id="allrss" style="display:none;">';
3262
+ }
3263
  }
3264
+ if ( $paged >= 10 && ( ceil($ytnumber / $ytrazbnumber) ) > 10 ) {
3265
+ echo '</div>';
3266
  }
3267
  echo '</ul>';
3268
  } else {
3269
+ echo '<p>Всего у вас 1 RSS-лента ' . ' (в ней максимально может быть '.yturbo_russian_number($ytnumber, array(' запись', ' записи', ' записей')). '):</p>';
3270
+ echo '<ul style="margin-bottom: 25px;">';
3271
+ if ( get_option('permalink_structure') ) {
3272
+ echo '<li>1. <a target="_blank" href="'.get_bloginfo("url").'/feed/'.$yturbo_options['ytrssname'].'/">'.get_bloginfo("url").'/feed/'.$yturbo_options['ytrssname'].'/</a></li>';
3273
+ } else {
3274
+ echo '<li>1. <a target="_blank" href="'.get_bloginfo("url").'/?feed='.$yturbo_options['ytrssname'].'">'.get_bloginfo("url").'/?feed='.$yturbo_options['ytrssname'].'</a></li>';
3275
+ }
3276
+ echo '</ul>';
3277
  }
3278
  else :
3279
 
3280
+ if ( ! isset($yttype[0]) ) {$yttype=array();$yttype[0]='trulala';}//если в настройках не выбраны типы записей, то отключаем дефолтный post_type равный 'post'
3281
  $args = array('ignore_sticky_posts' => 1, 'post_type' => $yttype, 'post_status' => 'publish', 'posts_per_page' => $ytnumber,'tax_query' => $tax_query,
3282
  'meta_query' => array('relation' => 'OR', array('key' => 'ytrssenabled_meta_value', 'compare' => 'NOT EXISTS',),
3283
  array('key' => 'ytrssenabled_meta_value', 'value' => 'yes', 'compare' => '!=',),));
3284
  $query = new WP_Query( $args );
3285
 
3286
+ if ( $query->post_count < $ytnumber ) $ytnumber = $query->post_count;
3287
 
3288
+ if ( $ytrazb == 'enabled' && ( ceil($query->post_count / $ytrazbnumber) > 1 ) ) {
3289
+ echo '<p>Согласно настройкам плагина в RSS попадут ' . yturbo_russian_number($query->post_count, array(' запись', ' записи', ' записей')) . ' (максимально: '.$yturbo_options['ytnumber'].').<br/>';
3290
+ echo 'Эти ' . yturbo_russian_number($query->post_count, array(' запись', ' записи', ' записей')) . ' распределены по ' . yturbo_russian_number(ceil($query->post_count / $ytrazbnumber), array(' RSS-ленте', ' RSS-лентам', ' RSS-лентам')) . ' (разбитие по '. yturbo_russian_number($ytrazbnumber, array(' записи', ' записям', ' записям')) .'):</p>';
3291
  } else {
3292
+ echo '<p>Всего у вас 1 RSS-лента '. ' (в ней '.yturbo_russian_number($ytnumber, array(' запись', ' записи', ' записей')). '):</p>';
3293
  }
3294
 
3295
  echo '<ul style="margin-bottom: 20px;">';
3296
  if ( get_option('permalink_structure') ) {
3297
+ echo '<li>1. <a target="_blank" href="'.get_bloginfo("url").'/feed/'.$yturbo_options['ytrssname'].'/">'.get_bloginfo("url").'/feed/'.$yturbo_options['ytrssname'].'/</a></li>';
3298
  } else {
3299
+ echo '<li>1. <a target="_blank" href="'.get_bloginfo("url").'/?feed='.$yturbo_options['ytrssname'].'">'.get_bloginfo("url").'/?feed='.$yturbo_options['ytrssname'].'</a></li>';
3300
  }
3301
 
3302
+ if ( $ytrazb == 'enabled' && ( ceil($query->post_count / $ytrazbnumber) > 1 ) ) {
3303
+ for ($x=1; $x++<ceil($query->post_count / $ytrazbnumber);) {
3304
+ if ( get_option('permalink_structure') ) {
3305
+ echo '<li>'.$x.'. <a target="_blank" href="'.get_bloginfo("url").'/feed/'.$yturbo_options['ytrssname'].'/?paged='.$x.'">'.get_bloginfo("url").'/feed/'.$yturbo_options['ytrssname'].'/?paged='.$x.'</a></li>';
3306
+ } else {
3307
+ echo '<li>'.$x.'. <a target="_blank" href="'.get_bloginfo("url").'/?feed='.$yturbo_options['ytrssname'].'&paged='.$x.'">'.get_bloginfo("url").'/?feed='.$yturbo_options['ytrssname'].'&paged='.$x.'</a></li>';
3308
+ }
3309
+ if ( $x == 9 && ( ceil($query->post_count / $ytrazbnumber) ) > 9 ) {
3310
+ echo '<li>....</li>';
3311
+ echo '<li>Слишком много RSS-лент, остальные ленты были скрыты (<span id="showlistrss">показать</span>).</li>';
3312
+ echo '<div id="allrss" style="display:none;">';
3313
+ }
3314
+ }
3315
+ if ( ceil($query->post_count / $ytrazbnumber) > 9 ) {
3316
+ echo '</div>';
3317
+ }
3318
  }
3319
 
3320
  echo '</ul>';
3324
  //функция подсчета количества rss-лент и их вывод на странице настроек плагина end
3325
 
3326
  //функция склонения слов после числа begin
3327
+ function yturbo_russian_number($number, $titles) {
3328
+ $cases = array (2, 0, 1, 1, 1, 2);
3329
+ return $number . ' ' . $titles[ ($number%100 > 4 && $number %100 < 20) ? 2 : $cases[min($number%10, 5)] ];
3330
  }
3331
  //функция склонения слов после числа end
3332
 
3333
  //функция добавления рекламы в запись begin
3334
  function yturbo_add_advert( $content ) {
3335
 
3336
+ $yturbo_options = get_option('yturbo_options');
3337
+ $ytrazmer = $yturbo_options['ytrazmer'];
3338
+ $ytad1 = $yturbo_options['ytad1'];
3339
+ $ytad2 = $yturbo_options['ytad2'];
3340
+ $ytad3 = $yturbo_options['ytad3'];
3341
 
3342
+ $tempcontent = $content;
3343
+ $tempcontent = strip_tags($tempcontent);
3344
+ $tempcontent = preg_replace("/(^[\r\n]*|[\r\n]+)[\s\t]*[\r\n]+/", "\n", $tempcontent);
3345
 
3346
+ $num = ceil(mb_strlen($tempcontent) / 2);
3347
 
3348
+ global $post;
3349
+ $ytad1meta = get_post_meta($post->ID, 'ytad1meta', true);
3350
+ $ytad2meta = get_post_meta($post->ID, 'ytad2meta', true);
3351
+ $ytad3meta = get_post_meta($post->ID, 'ytad3meta', true);
3352
 
3353
+ if ( $ytad2 != 'enabled' or $ytad2meta == 'disabled' ) $ads ='';
3354
 
3355
+ if ( $ytad2 == 'enabled' && $ytad2meta != 'disabled' ) {
3356
+ $ads = PHP_EOL.'<figure data-turbo-ad-id="second_ad_place"></figure>';
3357
+ }
3358
 
3359
+ if ( mb_strlen($tempcontent) > (int)$ytrazmer && mb_strlen($tempcontent) < 65000 ) {
3360
+ $content = preg_replace('~[^^]{'. $num .'}.*?(?:\r?\n\r?\n|</p>|</figure>|</ul>|</pre>|</table>|</ol>|</blockquote>)~su', "\${0}$ads", trim( $content ), 1);
3361
+ }
3362
 
3363
+ if ( $ytad1 == 'enabled' && $ytad1meta != 'disabled' ) $content = '<figure data-turbo-ad-id="first_ad_place"></figure>'.PHP_EOL . $content;
3364
+ if ( $ytad3 == 'enabled' && $ytad3meta != 'disabled' ) $content = PHP_EOL . $content . PHP_EOL.'<figure data-turbo-ad-id="third_ad_place"></figure>';
3365
 
3366
+ return $content;
3367
  }
3368
  //функция добавления рекламы в запись end
3369
 
3370
  //функция удаления всех атрибутов тега img кроме указанных begin
3371
  function yturbo_strip_attributes( $s, $allowedattr = array() ) {
3372
 
3373
+ if ( preg_match_all("/<img[^>]*\\s([^>]*)\\/*>/msiU", $s, $res, PREG_SET_ORDER) ) {
3374
+ foreach ($res as $r) {
3375
+ $tag = $r[0];
3376
+ $attrs = array();
3377
+ preg_match_all("/\\s.*=(['\"]).*\\1/msiU", " " . $r[1], $split, PREG_SET_ORDER);
3378
+ foreach ($split as $spl) {
3379
+ $attrs[] = $spl[0];
3380
+ }
3381
+ $newattrs = array();
3382
+ foreach ($attrs as $a) {
3383
+ $tmp = explode("=", $a);
3384
+ if (trim($a) != "" && (!isset($tmp[1]) || (trim($tmp[0]) != "" && !in_array(strtolower(trim($tmp[0])), $allowedattr)))) {
3385
+
3386
+ } else {
3387
+ $newattrs[] = $a;
3388
+ }
3389
+ }
3390
+
3391
+ //сортировка чтобы alt был раньше src
3392
+ sort($newattrs);
3393
+ reset($newattrs);
3394
+
3395
+ $attrs = implode(" ", $newattrs);
3396
+ $rpl = str_replace($r[1], $attrs, $tag);
3397
+ //заменяем одинарные кавычки на двойные
3398
+ $rpl = str_replace("'", "\"", $rpl);
3399
+ $rpl = str_replace(" ", " ", $rpl);
3400
+ //добавляем закрывающий символ / если он отсутствует
3401
+ $rpl = str_replace("\">", "\" />", $rpl);
3402
+ //добавляем пробел перед закрывающим символом /
3403
+ $rpl = str_replace("\"/>", "\" />", $rpl);
3404
+ //удаляем двойные пробелы
3405
+ $rpl = str_replace(" ", " ", $rpl);
3406
+
3407
+ $s = str_replace($tag, $rpl, $s);
3408
+ }
3409
+ }
3410
+
3411
+ return $s;
3412
  }
3413
  //функция удаления всех атрибутов тега img кроме указанных end
3414
 
3415
  //функция удаления транзитного кэша для похожих записей begin
3416
  function yturbo_clear_transients() {
3417
+ global $wpdb;
3418
 
3419
+ $sql = "
3420
  DELETE
3421
  FROM {$wpdb->options}
3422
  WHERE option_name like '\_transient\_related-%'
3423
  OR option_name like '\_transient\_timeout\_related-%'
3424
  ";
3425
 
3426
+ $wpdb->query($sql);
3427
  }
3428
  //функция удаления транзитного кэша для похожих записей end
3429
 
3430
  //функция преобразования стандартных галерей движка в турбо-галереи begin
3431
+ function yturbo_gallery($output, $attr) {
3432
+
3433
+ $yturbo_options = get_option('yturbo_options');
3434
+ if ( ! is_feed($yturbo_options['ytrssname']) )
3435
+ return;
3436
+
3437
+ $post = get_post();
3438
+
3439
+ static $instance = 0;
3440
+ $instance++;
3441
+
3442
+ if ( ! empty($attr['ids']) ) {
3443
+ // 'ids' is explicitly ordered, unless you specify otherwise.
3444
+ if ( empty( $attr['orderby'] ) ) {
3445
+ $attr['orderby'] = 'post__in';
3446
+ }
3447
+ $attr['include'] = $attr['ids'];
3448
+ }
3449
+
3450
+ $html5 = current_theme_supports( 'html5', 'gallery' );
3451
+ $atts = shortcode_atts( array(
3452
+ 'order' => 'ASC',
3453
+ 'orderby' => 'menu_order ID',
3454
+ 'id' => $post ? $post->ID : 0,
3455
+ 'itemtag' => $html5 ? 'figure' : 'dl',
3456
+ 'icontag' => $html5 ? 'div' : 'dt',
3457
+ 'captiontag' => $html5 ? 'figcaption' : 'dd',
3458
+ 'columns' => 3,
3459
+ 'size' => 'thumbnail',
3460
+ 'include' => '',
3461
+ 'exclude' => '',
3462
+ 'link' => ''
3463
+ ), $attr, 'gallery' );
3464
+
3465
+ $id = intval($atts['id']);
3466
+
3467
+ $atts['include'] = str_replace(array("&#187;","&#8243;"), "", $atts['include']);
3468
+ $atts['orderby'] = str_replace(array("&#187;","&#8243;"), "", $atts['orderby']);
3469
+ $atts['order'] = str_replace(array("&#187;","&#8243;"), "", $atts['order']);
3470
+ $atts['exclude'] = str_replace(array("&#187;","&#8243;"), "", $atts['exclude']);
3471
+
3472
+ if ( ! empty($atts['include']) ) {
3473
+ $_attachments = get_posts( array( 'include' => $atts['include'], 'post_status' => 'inherit', 'post_type' => 'attachment', 'post_mime_type' => 'image', 'order' => $atts['order'], 'orderby' => $atts['orderby'] ) );
3474
+
3475
+ $attachments = array();
3476
+ foreach ($_attachments as $key => $val) {
3477
+ $attachments[$val->ID] = $_attachments[$key];
3478
+ }
3479
+
3480
+ } elseif ( ! empty($atts['exclude']) ) {
3481
+ $attachments = get_children( array( 'post_parent' => $id, 'exclude' => $atts['exclude'], 'post_status' => 'inherit', 'post_type' => 'attachment', 'post_mime_type' => 'image', 'order' => $atts['order'], 'orderby' => $atts['orderby'] ) );
3482
+ } else {
3483
+ $attachments = get_children( array( 'post_parent' => $id, 'post_status' => 'inherit', 'post_type' => 'attachment', 'post_mime_type' => 'image', 'order' => $atts['order'], 'orderby' => $atts['orderby'] ) );
3484
+ }
3485
+
3486
+ if ( empty($attachments) ) {
3487
+ return '';
3488
+ }
3489
+
3490
+ $output = PHP_EOL.'<div data-block="gallery">'.PHP_EOL;
3491
+
3492
+ foreach ($attachments as $id => $attachment) {
3493
+ $output .= '<img src="'.wp_get_attachment_url($id) . '"/>'.PHP_EOL;
3494
+ }
3495
+
3496
+ $output .= '</div>'.PHP_EOL;
3497
+
3498
+ return $output;
3499
  }
3500
  //функция преобразования стандартных галерей движка в турбо-галереи end
3501
 
3502
  //функция преобразования стандартных галерей движка в турбо-галереи в гутенберге begin
3503
+ function yturbo_do_gallery($content) {
3504
+
3505
+ //удаляем ul разметку галерей в гутенберге (wordpress 5.0+)
3506
+ $pattern = "/<ul class=\"wp-block-gallery(.*?)>(.*?)<\/ul>/s";
3507
+ $replacement = '<div data-block="gallery">$2</div>';
3508
+ $content = preg_replace($pattern, $replacement, $content);
3509
+
3510
+ //удаляем ul разметку галерей в гутенберге (wordpress 5.3+)
3511
+ $pattern = "/<ul class=\"blocks-gallery-grid(.*?)>(.*?)<\/ul>/s";
3512
+ $replacement = '<div data-block="gallery">$2</div>';
3513
+ $content = preg_replace($pattern, $replacement, $content);
3514
+
3515
+ //удаляем li разметку галерей в гутенберге
3516
+ $pattern = "/<li class=\"blocks-gallery-item\">\n<figure>(.*?)<img src=\"(.*?)\" \/>(.*?)<\/figure>\n<\/li>/i";
3517
+ $replacement = '<img src="$2"/>';
3518
+ $content = preg_replace($pattern, $replacement, $content);
3519
+
3520
+ $pattern = "/<li class=\"blocks-gallery-item\">\n<figure>(.*?)<img src=\"(.*?)\" \/>(.*?)<\/figure>\n<\/li>/i";
3521
+ $replacement = '<img src="$2"/>';
3522
+ $content = preg_replace($pattern, $replacement, $content);
3523
+
3524
+ //убираем figure внутри галереи (в wp 5.9+)
3525
+ $content = preg_replace_callback('#(<tempgallery[^>]*>)(.+?)(</tempgallery>)#is', function($m) {
3526
+ $pattern = '/<figure(.*?)><img(.*?)>(.*?)<\/figure>/i';
3527
+ $replacement = '<img$2>';
3528
+ $m[2] = preg_replace($pattern, $replacement, $m[2]);
3529
+ return('<tempgallery>'.$m[2].'</tempgallery>');
3530
+ }, $content);
3531
+
3532
+ //удаляем двойную обертку (tempgallery)
3533
+ $pattern = "/<tempgallery>\n<div data-block=\"gallery\">/i";
3534
+ $replacement = PHP_EOL.'<div data-block="gallery">';
3535
+ $content = preg_replace($pattern, $replacement, $content);
3536
+
3537
+ //удаляем двойную обертку (tempgallery)
3538
+ $pattern = "/<\/div>".PHP_EOL."<header>(.*?)<\/header>/i";
3539
+ $replacement = '<header>$1</header>';
3540
+ $content = preg_replace($pattern, $replacement, $content);
3541
+
3542
+ $content = str_replace('<tempgallery><div data-block="gallery">',PHP_EOL.'<div data-block="gallery">',$content);
3543
+ $content = str_replace('</div></tempgallery>',PHP_EOL.'</div>',$content);
3544
+ //двойная обертка только на 5.8 и ниже, на 5.9 и выше убираем так
3545
+ $content = str_replace('<tempgallery>',PHP_EOL.'<div data-block="gallery">',$content);
3546
+ $content = str_replace('</tempgallery>','</div>',$content);
3547
+
3548
+ return $content;
3549
  }
3550
  //функция преобразования стандартных галерей движка в турбо-галереи в гутенберге end
3551
 
3552
  //функции открытия и закрытия комментариев begin
3553
+ function yturbo_comments($comment, $args, $depth) {
3554
+ $yturbo_options = get_option('yturbo_options');
3555
+ $ytcommentsdate = $yturbo_options['ytcommentsdate'];
3556
+ $ytcommentsdrevo = $yturbo_options['ytcommentsdrevo'];
3557
+ $ytcommentsavatar = $yturbo_options['ytcommentsavatar'];
3558
+ echo PHP_EOL;
3559
+ ?>
3560
+ <div data-block="comment"
3561
+ data-author="<?php comment_author(); ?>"
3562
+ <?php if ( $ytcommentsavatar == 'enabled' ) { ?>
3563
+ data-avatar-url="<?php echo esc_url( get_avatar_url( $comment, 100 ) ); ?>"
3564
+ <?php } ?>
3565
+ <?php if ( $ytcommentsdate == 'enabled' ) { ?>
3566
+ data-subtitle="<?php echo get_comment_date(); ?> в <?php echo get_comment_time(); ?>"
3567
+ <?php } ?>
3568
+ >
3569
+ <div data-block="content">
3570
+ <?php comment_text(); ?>
3571
+ </div>
3572
+ <?php if ( $args['has_children'] && $ytcommentsdrevo=='enabled' ) echo '<div data-block="comments">';
3573
  }
3574
 
3575
+ function yturbo_comments_end($comment, $args, $depth) {
3576
  $yturbo_options = get_option('yturbo_options');
3577
  $ytcommentsdrevo = $yturbo_options['ytcommentsdrevo'];
3578
  ?>
3579
+ </div>
3580
+ <?php if ( $depth == 1 && $ytcommentsdrevo == 'enabled' ) echo '</div>'; ?>
3581
  <?php }
3582
  //функции открытия и закрытия комментариев end
3583
 
3584
  //функция формирования объявлений рекламной сети begin
3585
  function yturbo_turbo_ads() {
3586
+ $yturbo_options = get_option('yturbo_options');
3587
+
3588
+ $ytcomments = $yturbo_options['ytcomments'];
3589
+ $ytshare = $yturbo_options['ytshare'];
3590
+
3591
+ $ytad1 = $yturbo_options['ytad1'];
3592
+ $ytad1set = $yturbo_options['ytad1set'];
3593
+ $ytad1rsa = $yturbo_options['ytad1rsa'];
3594
+ $ytadfox1 = html_entity_decode(stripcslashes($yturbo_options['ytadfox1']),ENT_QUOTES);
3595
+ $ytad2 = $yturbo_options['ytad2'];
3596
+ $ytad2set = $yturbo_options['ytad2set'];
3597
+ $ytad2rsa = $yturbo_options['ytad2rsa'];
3598
+ $ytadfox2 = html_entity_decode(stripcslashes($yturbo_options['ytadfox2']),ENT_QUOTES);
3599
+ $ytad3 = $yturbo_options['ytad3'];
3600
+ $ytad3set = $yturbo_options['ytad3set'];
3601
+ $ytad3rsa = $yturbo_options['ytad3rsa'];
3602
+ $ytadfox3 = html_entity_decode(stripcslashes($yturbo_options['ytadfox3']),ENT_QUOTES);
3603
+ $ytad4 = $yturbo_options['ytad4'];
3604
+ $ytad4set = $yturbo_options['ytad4set'];
3605
+ $ytad4rsa = $yturbo_options['ytad4rsa'];
3606
+ $ytadfox4 = html_entity_decode(stripcslashes($yturbo_options['ytadfox4']),ENT_QUOTES);
3607
+ $ytad5 = $yturbo_options['ytad5'];
3608
+ $ytad5set = $yturbo_options['ytad5set'];
3609
+ $ytad5rsa = $yturbo_options['ytad5rsa'];
3610
+ $ytadfox5 = html_entity_decode(stripcslashes($yturbo_options['ytadfox5']),ENT_QUOTES);
3611
+
3612
+ $yturboads = '';
3613
+ if ( $ytad1 == 'enabled' ) {
3614
+ if ($ytad1set == 'РСЯ') {
3615
+ $yturboads .= '<turbo:adNetwork type="Yandex" id="'.$ytad1rsa.'" turbo-ad-id="first_ad_place"></turbo:adNetwork>'.PHP_EOL;
3616
+ }
3617
+ if ( $ytad1set == 'ADFOX' ) {
3618
+ $yturboads .= '<turbo:adNetwork type="AdFox" turbo-ad-id="first_ad_place">
3619
+ <![CDATA[
3620
+ '.$ytadfox1.'
3621
+ ]]>
3622
+ </turbo:adNetwork>'.PHP_EOL;
3623
+ }
3624
+ }
3625
+ if ( $ytad2 == 'enabled' ) {
3626
+ if ( $ytad2set == 'РСЯ' ) {
3627
+ $yturboads .= '<turbo:adNetwork type="Yandex" id="'.$ytad2rsa.'" turbo-ad-id="second_ad_place"></turbo:adNetwork>'.PHP_EOL;
3628
+ }
3629
+ if ( $ytad2set == 'ADFOX' ) {
3630
+ $yturboads .= '<turbo:adNetwork type="AdFox" turbo-ad-id="second_ad_place">
3631
+ <![CDATA[
3632
+ '.$ytadfox2.'
3633
+ ]]>
3634
+ </turbo:adNetwork>'.PHP_EOL;
3635
+ }
3636
+ }
3637
+ if ( $ytad3 == 'enabled' ) {
3638
+ if ( $ytad3set == 'РСЯ' ) {
3639
+ $yturboads .= '<turbo:adNetwork type="Yandex" id="'.$ytad3rsa.'" turbo-ad-id="third_ad_place"></turbo:adNetwork>'.PHP_EOL;
3640
+ }
3641
+ if ( $ytad3set == 'ADFOX' ) {
3642
+ $yturboads .= '<turbo:adNetwork type="AdFox" turbo-ad-id="third_ad_place">
3643
+ <![CDATA[
3644
+ '.$ytadfox3.'
3645
+ ]]>
3646
+ </turbo:adNetwork>'.PHP_EOL;
3647
+ }
3648
+ }
3649
+ if ( $ytad4 == 'enabled' && $ytshare == 'enabled' ) {
3650
+ if ( $ytad4set == 'РСЯ' ) {
3651
+ $yturboads .= '<turbo:adNetwork type="Yandex" id="'.$ytad4rsa.'" turbo-ad-id="fourth_ad_place"></turbo:adNetwork>'.PHP_EOL;
3652
+ }
3653
+ if ( $ytad4set == 'ADFOX' ) {
3654
+ $yturboads .= '<turbo:adNetwork type="AdFox" turbo-ad-id="fourth_ad_place">
3655
+ <![CDATA[
3656
+ '.$ytadfox4.'
3657
+ ]]>
3658
+ </turbo:adNetwork>'.PHP_EOL;
3659
+ }
3660
+ }
3661
+ if ( $ytad5 == 'enabled' && $ytcomments == 'enabled' ) {
3662
+ if ( $ytad5set == 'РСЯ' ) {
3663
+ $yturboads .= '<turbo:adNetwork type="Yandex" id="'.$ytad5rsa.'" turbo-ad-id="fifth_ad_place"></turbo:adNetwork>'.PHP_EOL;
3664
+ }
3665
+ if ( $ytad5set == 'ADFOX' ) {
3666
+ $yturboads .= '<turbo:adNetwork type="AdFox" turbo-ad-id="fifth_ad_place">
3667
+ <![CDATA[
3668
+ '.$ytadfox5.'
3669
+ ]]>
3670
+ </turbo:adNetwork>'.PHP_EOL;
3671
+ }
3672
+ }
3673
+
3674
+ return $yturboads;
3675
  }
3676
  //функция формирования объявлений рекламной сети end
3677
 
3678
  //функция вывода виджета обратной связи begin
3679
  function yturbo_widget_feedback() {
3680
+ $yturbo_options = get_option('yturbo_options');
3681
+
3682
+ if ( $yturbo_options['ytfeedback'] == 'disabled' )
3683
+ return;
3684
+
3685
+ $content = PHP_EOL.PHP_EOL.'<div data-block="widget-feedback" data-title="'.esc_attr(stripslashes($yturbo_options['ytfeedbacktitle'])).'" data-stick="'.$yturbo_options['ytfeedbackselect'].'">'.PHP_EOL;
3686
+
3687
+ $ytfeedbacknetw = explode(",", $yturbo_options['ytfeedbacknetw']);
3688
+ $ytfeedbacknetw = array_diff($ytfeedbacknetw, array(''));
3689
+
3690
+ foreach ($ytfeedbacknetw as $network) {
3691
+ switch ($network) {
3692
+ case 'call':
3693
+ if ( $yturbo_options['ytfeedbackcall'] ) {
3694
+ $content .= '<div data-type="call" data-url="'.esc_attr(stripslashes($yturbo_options['ytfeedbackcall'])).'"></div>'.PHP_EOL;
3695
+ }
3696
+ break;
3697
+ case 'callback':
3698
+ if ( $yturbo_options['ytfeedbackcallback'] ) {
3699
+ $content .= '<div data-type="callback" data-send-to="'.esc_attr(stripslashes($yturbo_options['ytfeedbackcallback'])).'"';
3700
+ if ($yturbo_options['ytfeedbackcallback2'] && $yturbo_options['ytfeedbackcallback3']) {
3701
+ $content .= ' data-agreement-company="'.esc_attr(stripslashes($yturbo_options['ytfeedbackcallback2'])).'" data-agreement-link="'.esc_url($yturbo_options['ytfeedbackcallback3']).'"';
3702
+ }
3703
+ }
3704
+ $content .= '></div>'.PHP_EOL;
3705
+ break;
3706
+ case 'chat':
3707
+ $content .= '<div data-type="chat"></div>'.PHP_EOL;
3708
+ break;
3709
+ case 'mail':
3710
+ if ( $yturbo_options['ytfeedbackmail'] ) {
3711
+ $content .= '<div data-type="mail" data-url="'.esc_attr(stripslashes($yturbo_options['ytfeedbackmail'])).'"></div>'.PHP_EOL;
3712
+ }
3713
+ break;
3714
+ case 'vkontakte':
3715
+ if ( $yturbo_options['ytfeedbackvkontakte'] ) {
3716
+ $content .= '<div data-type="vkontakte" data-url="'.esc_attr(stripslashes($yturbo_options['ytfeedbackvkontakte'])).'"></div>'.PHP_EOL;
3717
+ }
3718
+ break;
3719
+ case 'odnoklassniki':
3720
+ if ( $yturbo_options['ytfeedbackodnoklassniki'] ) {
3721
+ $content .= '<div data-type="odnoklassniki" data-url="'.esc_attr(stripslashes($yturbo_options['ytfeedbackodnoklassniki'])).'"></div>'.PHP_EOL;
3722
+ }
3723
+ break;
3724
+ case 'twitter':
3725
+ if ( $yturbo_options['ytfeedbacktwitter'] ) {
3726
+ $content .= '<div data-type="twitter" data-url="'.esc_attr(stripslashes($yturbo_options['ytfeedbacktwitter'])).'"></div>'.PHP_EOL;
3727
+ }
3728
+ break;
3729
+ case 'facebook':
3730
+ if ( $yturbo_options['ytfeedbackfacebook'] ) {
3731
+ $content .= '<div data-type="facebook" data-url="'.esc_attr(stripslashes($yturbo_options['ytfeedbackfacebook'])).'"></div>'.PHP_EOL;
3732
+ }
3733
+ break;
3734
+ case 'viber':
3735
+ if ( $yturbo_options['ytfeedbackviber'] ) {
3736
+ $content .= '<div data-type="viber" data-url="'.esc_attr(stripslashes($yturbo_options['ytfeedbackviber'])).'"></div>'.PHP_EOL;
3737
+ }
3738
+ break;
3739
+ case 'whatsapp':
3740
+ if ( $yturbo_options['ytfeedbackwhatsapp'] ) {
3741
+ $content .= '<div data-type="whatsapp" data-url="'.esc_attr(stripslashes($yturbo_options['ytfeedbackwhatsapp'])).'"></div>'.PHP_EOL;
3742
+ }
3743
+ break;
3744
+ case 'telegram':
3745
+ if ( $yturbo_options['ytfeedbacktelegram'] ) {
3746
+ $content .= '<div data-type="telegram" data-url="'.esc_attr(stripslashes($yturbo_options['ytfeedbacktelegram'])).'"></div>'.PHP_EOL;
3747
+ }
3748
+ break;
3749
+ }
3750
+ }
3751
+ unset($network);
3752
+
3753
+ $content .= '</div>'.PHP_EOL;
3754
+ return $content;
3755
  }
3756
  //функция вывода виджета обратной связи end
3757
 
3758
  //функция удаления указанных шорткодов begin
3759
+ function yturbo_strip_shortcodes($content) {
3760
+ $yturbo_options = get_option('yturbo_options');
3761
 
3762
+ //выполняем блоки гутенберга
3763
+ global $wp_version;
3764
+ if ( version_compare($wp_version, '5.0', '>=') ) {
3765
+ $content = do_blocks($content);
3766
+ }
3767
 
3768
+ if ( $yturbo_options['ytexcludeshortcodes'] == 'disabled' or ! $yturbo_options['ytexcludeshortcodeslist'] ) return $content;
3769
 
3770
+ global $shortcode_tags;
3771
+ $stack = $shortcode_tags;
3772
 
3773
+ $code = explode(",", $yturbo_options['ytexcludeshortcodeslist']);
3774
+ $code = array_diff($code, array(''));
3775
 
3776
+ $how_many = count($code);
3777
+ for ($i = 0; $i < $how_many; $i++) {
3778
+ $arr[$code[$i]] = 1;
3779
+ }
3780
 
3781
+ $shortcode_tags = $arr;
3782
+ $content = strip_shortcodes($content);
3783
+ $shortcode_tags = $stack;
3784
 
3785
+ return $content;
3786
  }
3787
  //функция удаления указанных шорткодов end
3788
 
3789
  //функция формирования контента по шаблону begin
3790
+ function yturbo_build_template($post_content) {
3791
+ $yturbo_options = get_option('yturbo_options');
3792
+
3793
+ $post_type = get_post_type( get_the_ID() );
3794
+
3795
+ if ( ! isset($yturbo_options['template-'.$post_type]) ) $yturbo_options['template-'.$post_type] = '';
3796
+ if ( $yturbo_options['template-'.$post_type] == '' ) $yturbo_options['template-'.$post_type] = '%%post_content%%';
3797
+
3798
+ $content = html_entity_decode(stripcslashes($yturbo_options['template-'.$post_type]),ENT_QUOTES);
3799
+
3800
+ //проверка на индивидуальный шаблон записи (если включен и существует)
3801
+ $template_meta = get_post_meta(get_the_ID(), 'template_meta', true);
3802
+ if ( $template_meta == 'yes' ) {
3803
+ $custom_template = get_post_meta(get_the_ID(), 'custom_template', true);
3804
+ $custom_template = html_entity_decode(stripcslashes($custom_template),ENT_QUOTES);
3805
+ if ( ! $custom_template ) $custom_template = $content;
3806
+ $content = $custom_template;
3807
+ }
3808
+
3809
+ //сначала обработаем шаблон произвольным фильтром
3810
+ $content = apply_filters('yturbo_the_template', $content);
3811
+
3812
+ //заменяем переменные на произвольные поля
3813
+ if ( preg_match_all("/%%(.*?)%%/i", $content, $res) ) {
3814
+ foreach ($res[0] as $r) {
3815
+ if ( $r != '%%post_content%%' ) {
3816
+ $temp = str_replace('%%', '', $r);
3817
+ $content = str_replace($r, get_post_meta(get_the_ID(), $temp, true), $content);
3818
+ }
3819
+ }
3820
+ }
3821
+
3822
+ //обрабатываем шаблон фильтрами для RSS
3823
+ $content = do_shortcode($content);
3824
+ $content = str_replace(']]>', ']]&gt;', $content);
3825
+ $content = apply_filters('wp_staticize_emoji', $content);
3826
+ $content = apply_filters('_oembed_filter_feed_content', $content);
3827
+
3828
+ //заменяем в шаблоне переменную %%post_content%% на контент записи
3829
+ $content = str_replace('<p>%%post_content%%</p>', '%%post_content%%', $content);
3830
+ $content = str_replace('%%post_content%%', $post_content, $content);
3831
+
3832
+ return $content;
3833
  }
3834
  //функция формирования контента по шаблону end
3835
 
3836
  //функция вывода блока поиска begin
3837
  function yturbo_search_widget() {
3838
+ $yturbo_options = get_option('yturbo_options');
3839
 
3840
+ $url = get_bloginfo('url') . '/?s={s}';
3841
+ $content = PHP_EOL.'<form action="'. $url . '" method="GET"><input type="search" name="s" placeholder="' . esc_attr(stripslashes($yturbo_options['ytsearchplaceholder'])) . '" /></form>'.PHP_EOL;
3842
 
3843
+ return $content;
3844
  }
3845
  //функция вывода блока поиска end
3846
 
3847
  //вставка оглавления записи begin
3848
+ function yturbo_toc($content) {
3849
+ $yturbo_options = get_option('yturbo_options');
3850
+
3851
+ if ( ! is_feed($yturbo_options['ytrssname']) )
3852
+ return $content;
3853
+
3854
+ if ( $yturbo_options['yttoc'] == 'disabled' )
3855
+ return $content;
3856
+
3857
+ $types = $yturbo_options['yttype2'];
3858
+ $types = explode(",", $types);
3859
+ $types = array_diff($types, array(''));
3860
+
3861
+ if ( ! in_array( get_post_type( get_the_ID() ), $types ) )
3862
+ return $content;
3863
+
3864
+ //подключение файла с классом YTurbo_Contents begin
3865
+ require_once dirname( __FILE__ ) . '/inc/Contents.php';
3866
+ //подключение файла с классом YTurbo_Contents end
3867
+
3868
+ $toc = new YTurbo_Contents();
3869
+ $content = $toc->the_content($content);
3870
+
3871
+ return $content;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
3872
  }
3873
+ add_filter('yturbo_add_contents', 'yturbo_toc');
3874
  //вставка оглавления записи end
3875
 
3876
  //функция удаления эмоджи begin
3877
+ function yturbo_remove_emoji($text) {
3878
+ $emoji = '/[(\x{1F600}-\x{1F64F})|(\x{2700}-\x{27BF})|(\x{1F680}-\x{1F6FF})|(\x{24C2}-\x{1F251})|(\x{1F30D}-\x{1F567})|(\x{1F900}-\x{1F9FF})|(\x{1F300}-\x{1F5FF})]/mu';
3879
+ $text = preg_replace($emoji, '', $text);
3880
+ $text = trim($text);
3881
 
3882
+ return $text;
3883
  }
3884
  //функция удаления эмоджи end
3885
 
3886
  //приводим заголовки записей в соответствие с требованиями яндекса begin
3887
+ function yturbo_filter_title_rss($title) {
3888
+ $yturbo_options = get_option('yturbo_options');
3889
+
3890
+ //если это не лента плагина возвращаем оригинальный заголовок
3891
+ if ( ! is_feed($yturbo_options['ytrssname']) )
3892
+ return $title;
3893
+
3894
+ //удаляем эмоджи (яндекс выдает на них ошибку)
3895
+ $title = yturbo_remove_emoji($title);
3896
+ //устанавливаем заголовком название сайта, если заголовок пустой
3897
+ $title = yturbo_empty_title($title);
3898
+ //преобразуем спец. символы в html-сущности
3899
+ $title = esc_html($title);
3900
+ //обрезаем заголовок по словам, чтобы не превышать ограничение в 240 символов
3901
+ $title = yturbo_cut_by_words(237, $title);
3902
+ //обрабатываем фильтром для установки пользовательского заголовка
3903
+ $title = apply_filters('yturbo_custom_title', $title);
3904
+
3905
+ return $title;
3906
  }
3907
+ add_filter('the_title_rss', 'yturbo_filter_title_rss');
3908
  //приводим заголовки записей в соответствие с требованиями яндекса end
3909
 
3910
  //функция обрезки текста по словам begin
3911
+ function yturbo_cut_by_words($maxlen, $text) {
3912
+ $len = (mb_strlen($text) > $maxlen)? mb_strripos(mb_substr($text, 0, $maxlen), ' ') : $maxlen;
3913
+ $cutStr = mb_substr($text, 0, $len);
3914
+ $temp = (mb_strlen($text) > $maxlen)? $cutStr. '...' : $cutStr;
3915
+ return $temp;
3916
  }
3917
  //функция обрезки текста по словам end
3918
 
3919
  //функция установки не пустого заголовка begin
3920
+ function yturbo_empty_title($title) {
3921
+ $yturbo_options = get_option('yturbo_options');
3922
 
3923
+ if ( ! $title ) {
3924
+ $title = $yturbo_options['yttitle'];
3925
+ }
3926
 
3927
+ return $title;
3928
  }
3929
  //функция установки не пустого заголовка end
3930
 
3931
  //добавляем плагины в визуальный редактор begin
3932
+ function yturbo_add_plugins_tinymce($plugins) {
3933
+ $yturbo_options = get_option('yturbo_options');
3934
+ $purl = plugins_url('', __FILE__);
3935
+ $plugins['yablocks'] = $purl . '/inc/yablocks.js?ver=' . $yturbo_options['version'];
3936
+ $plugins['table'] = $purl . '/inc/table.js?ver=' . $yturbo_options['version'];
3937
+ return $plugins;
3938
  }
3939
+ add_filter('mce_external_plugins', 'yturbo_add_plugins_tinymce');
3940
  //добавляем плагины в визуальный редактор end
3941
 
3942
  //замена протокола в ссылках при отключении турбо-страниц begin
3943
+ function yturbo_filter_permalink_rss($url) {
3944
+ $yturbo_options = get_option('yturbo_options');
3945
 
3946
+ if ( ! is_feed($yturbo_options['ytrssname']) )
3947
+ return $url;
3948
 
3949
+ if ( $yturbo_options['ytremoveturbo'] != 'enabled' )
3950
+ return $url;
3951
 
3952
+ if ( $yturbo_options['ytprotokol'] == 'asis' )
3953
+ return $url;
3954
 
3955
+ if ( $yturbo_options['ytprotokol'] == 'http' ) {
3956
+ $url = str_replace('https://', 'http://', $url);
3957
+ }
3958
 
3959
+ if ( $yturbo_options['ytprotokol'] == 'https' ) {
3960
+ $url = str_replace('http://', 'https://', $url);
3961
+ }
3962
 
3963
+ return $url;
3964
  }
3965
+ add_filter('the_permalink_rss', 'yturbo_filter_permalink_rss');
3966
  //замена протокола в ссылках при отключении турбо-страниц end
3967
 
3968
  //добавляем колонку "Турбо" в админке на странице списка записей begin
3969
+ function yturbo_add_column_name($defaults) {
3970
+ $purl = plugins_url('', __FILE__);
3971
+ $defaults['yturbo'] = '<span class="screen-reader-text">Яндекс.Турбо</span><img title="Яндекс.Турбо" style="width: 20px;height: 20px;vertical-align: bottom;" src="' . $purl . '/img/yablocks.png" />';
3972
+ return $defaults;
3973
  }
3974
  function yturbo_css_for_column_yturbo() {
3975
+ echo '<style>.column-yturbo{width: 3.0em;}</style>';
3976
  }
3977
+ function yturbo_add_column_content($column_name, $post_id) {
3978
+ if ( $column_name === 'yturbo' ) {
3979
+
3980
+ $yturbo_options = get_option('yturbo_options');
3981
+
3982
+ $ytrssenabled = get_post_meta($post_id, 'ytrssenabled_meta_value', true);
3983
+ $ytremove = get_post_meta($post_id, 'ytremove_meta_value', true);
3984
+
3985
+ $content = '';
3986
+ if ( $ytrssenabled == 'yes' ) {
3987
+ $content = '<span title="Запись исключена из RSS-ленты (вручную)" style="vertical-align: middle;color:#72777c;" class="dashicons dashicons-no-alt"></span>';
3988
+ }
3989
+ if ( $ytremove == 'yes' ) {
3990
+ $content = '<span title="Турбо-страница на удалении" style="vertical-align: middle;color:#df2424;" class="dashicons dashicons-no-alt"></span>';
3991
+ }
3992
+ if ( $ytremove != 'yes' && $ytrssenabled != 'yes' ) {
3993
+ $content = '<span title="Запись есть в RSS-ленте" style="vertical-align: middle;color:#0a8f0a;" class="dashicons dashicons-yes"></span>';
3994
+ }
3995
+
3996
+ $ytqueryselect = $yturbo_options['ytqueryselect'];
3997
+ $yttaxlist = $yturbo_options['yttaxlist'];
3998
+ $ytaddtaxlist = $yturbo_options['ytaddtaxlist'];
3999
+
4000
+ if ( $ytqueryselect == 'Все таксономии, кроме исключенных' && $yttaxlist ) {
4001
+ $textAr = explode("\n", trim($yttaxlist));
4002
+ $textAr = array_filter($textAr, 'trim');
4003
+ foreach ($textAr as $line) {
4004
+ $tax = explode(":", $line);
4005
+ $taxterm = explode(",", $tax[1]);
4006
+ $taxterm = array_map('intval', $taxterm);
4007
+ if ( has_term($taxterm, $tax[0]) ) {
4008
+ $content = '<span title="Запись исключена из RSS-ленты (фильтр по таксономии)" style="vertical-align: middle;color:#72777c;" class="dashicons dashicons-no-alt"></span>';
4009
+ break;
4010
+ }
4011
+ }
4012
+ }
4013
+ if ( ! $ytaddtaxlist ) $ytaddtaxlist = 'category:10000000';
4014
+ if ( $ytqueryselect == 'Только указанные таксономии' ) {
4015
+ $textAr = explode("\n", trim($ytaddtaxlist));
4016
+ $textAr = array_filter($textAr, 'trim');
4017
+ foreach ($textAr as $line) {
4018
+ $tax = explode(":", $line);
4019
+ $taxterm = explode(",", $tax[1]);
4020
+ $taxterm = array_map('intval', $taxterm);
4021
+ if ( has_term($taxterm, $tax[0]) ) {
4022
+ $content = '<span title="Запись есть в RSS-ленте" style="vertical-align: middle;color:#0a8f0a;" class="dashicons dashicons-yes"></span>';
4023
+ break;
4024
+ } else {
4025
+ $content = '<span title="Запись исключена из RSS-ленты (фильтр по таксономии)" style="vertical-align: middle;color:#72777c;" class="dashicons dashicons-no-alt"></span>';
4026
+ }
4027
+ }
4028
+ }
4029
+
4030
+ if ( get_post_status($post_id) != 'publish' ) {
4031
+ $content = '<span title="Записи нет в RSS-ленте (запись не опубликована)" style="vertical-align: middle;color:#72777c;" class="dashicons dashicons-no-alt"></span>';
4032
+ }
4033
+
4034
+ echo $content;
4035
+ }
4036
  }
4037
  function yturbo_add_columns() {
4038
+ $yturbo_options = get_option('yturbo_options');
4039
 
4040
+ if ( $yturbo_options['ytturbocolumn'] == 'disabled' )
4041
+ return;
4042
 
4043
+ $yttype = explode(",", $yturbo_options['yttype']);
4044
+ $yttype = array_diff($yttype, array(''));
4045
 
4046
+ foreach ($yttype as $post_type) {
4047
+ if ( 'page' === $post_type ) continue;
4048
+ add_filter( "manage_{$post_type}_posts_columns", "yturbo_add_column_name", 5 );
4049
+ add_action( "manage_{$post_type}_posts_custom_column", "yturbo_add_column_content", 5, 2 );
4050
+ }
4051
 
4052
+ if ( in_array('page', $yttype) ) {
4053
+ add_filter( 'manage_pages_columns', 'yturbo_add_column_name', 5 );
4054
+ add_action( 'manage_pages_custom_column', 'yturbo_add_column_content', 5, 2 );
4055
+ }
4056
 
4057
+ add_action( 'admin_head', 'yturbo_css_for_column_yturbo' );
4058
  }
4059
+ add_action('wp_loaded', 'yturbo_add_columns');
4060
  //добавляем колонку "Турбо" в админке на странице списка записей end
4061
 
4062
  //шорткод вывода ссылки на запись begin
4063
+ function yt_permalink_func($atts) {
4064
+ return esc_url( apply_filters( 'the_permalink_rss', get_permalink() ) );
4065
  }
4066
+ add_shortcode('yt-permalink', 'yt_permalink_func');
4067
  //шорткод вывода ссылки на запись end
4068
 
4069
  //шорткод вывода заголовка записи begin
4070
+ function yt_title_func($atts) {
4071
+ return get_the_title_rss();
4072
  }
4073
+ add_shortcode('yt-title', 'yt_title_func');
4074
  //шорткод вывода заголовка записи end
4075
 
4076
  //функция проверки наличия плагина "WPCase: Turbo Ads" begin
4077
  function yturbo_check_ads() {
4078
+ include_once(ABSPATH . 'wp-admin/includes/plugin.php');
4079
+ if ( is_plugin_active('wpcase-turbo-ads/wpcase-turbo-ads.php') ) {
4080
+ return true;
4081
+ } else {
4082
+ return false;
4083
+ }
4084
  }
4085
  //функция проверки наличия плагина "WPCase: Turbo Ads" end
4086
 
4087
  //скрываем произвольные поля плагина begin
4088
+ function yturbo_hide_custom_fields($protected, $meta_key) {
4089
+ $hide_meta_keys = array(
4090
+ 'ytad1meta',
4091
+ 'ytad2meta',
4092
+ 'ytad3meta',
4093
+ 'ytad4meta',
4094
+ 'ytad5meta',
4095
+ 'ytremove_meta_value',
4096
+ 'ytrssenabled_meta_value',
4097
+ 'template_meta',
4098
+ 'custom_template',
4099
+ 'ytextendedhtmlmeta',
4100
+ 'ytpostdatemeta',
4101
+ );
4102
+ if ( in_array($meta_key, $hide_meta_keys) ) {
4103
+ return true;
4104
+ }
4105
+ return $protected;
4106
  }
4107
+ add_filter('is_protected_meta', 'yturbo_hide_custom_fields', 10, 2);
4108
  //скрываем произвольные поля плагина end
4109
 
4110
  //функция определения доступных для удаления тегов begin
4111
  function yturbo_tags_list() {
4112
 
4113
+ $tags_list = 'abbr,acronym,address,applet,area,article,aside,audio,base,basefont,bb,bdo,big,body,button,canvas,caption,center,cite,code,col,colgroup,command,datagrid,datalist,dd,del,details,dfn,dialog,dir,div,dl,dt,embed,eventsource,fieldset,font,footer,form,frame,frameset,head,header,hgroup,html,ins,isindex,kbd,keygen,label,legend,main,map,mark,menu,meter,nav,noframes,noscript,object,optgroup,option,output,param,pre,progress,q,rp,rt,ruby,samp,script,section,svg,select,small,span,style,time,title,tt,var,wbr,sidebar';
4114
+ $tags_list = apply_filters('yturbo_tags_list', $tags_list);
4115
 
4116
+ return $tags_list;
4117
  }
4118
  //функция определения доступных для удаления тегов end
4119
 
4124
  header('Content-Type: ' . feed_content_type('rss2') . '; charset=' . get_option('blog_charset'), true);
4125
  echo '<?xml version="1.0" encoding="'.get_option('blog_charset').'"?'.'>'.PHP_EOL;
4126
  ?>
4127
+ <rss xmlns:yandex="http://news.yandex.ru" xmlns:media="http://search.yahoo.com/mrss/" xmlns:turbo="http://turbo.yandex.ru" version="2.0">
 
 
 
 
4128
  <channel>
4129
+ <turbo:cms_plugin>C125AEEC6018B4A0EF9BF40E6615DD17</turbo:cms_plugin>
4130
+ <title><?php echo esc_attr(stripslashes($yturbo_options['yttitle'])); ?></title>
4131
+ <link><?php echo esc_html($yturbo_options['ytlink']); ?></link>
4132
+ <description><?php echo esc_attr(stripslashes($yturbo_options['ytdescription'])); ?></description>
4133
+ <language><?php echo esc_attr($yturbo_options['ytlanguage']); ?></language>
4134
+ <generator>RSS for Yandex Turbo v<?php echo $yturbo_options['version']; ?> (https://wordpress.org/plugins/rss-for-yandex-turbo/)</generator>
4135
+ <?php if ( $yturbo_options['ytexcludeurlslist'] ) {
4136
+ $textAr = explode("\n", str_replace(array("\r\n", "\r"), "\n", $yturbo_options['ytexcludeurlslist']));
4137
+ $i = 0;
4138
+ foreach ($textAr as $line) {
4139
+ $line = stripcslashes($line);
4140
+ $line = '<item turbo="false"><link>' . $line . '</link></item>' . PHP_EOL;
4141
+ if ($i > 0) echo ' ';
4142
+ echo $line;
4143
+ $i++;
4144
+ }
4145
+ } else {
4146
+ //чтобы яндекс не ругался на пустую ленту, если на удалении нет записей
4147
+ echo '<item turbo="false"><link>' . get_bloginfo_rss('url') . '/musor-page/</link></item>' . PHP_EOL;
4148
+ }
4149
+ ?>
4150
  </channel>
4151
  </rss>
4152
  <?php }
4153
  //функция вывода мусорной ленты end
4154
 
4155
  //функция отслеживания урлов удаляемых записей begin
4156
+ function yturbo_trash_tracking($post_id) {
4157
 
4158
+ $yturbo_options = get_option('yturbo_options');
4159
 
4160
+ if ( $yturbo_options['ytexcludeurls'] == 'disabled' )
4161
+ return;
4162
 
4163
+ if ( $yturbo_options['ytdeltracking'] == 'disabled' )
4164
+ return;
4165
 
4166
+ $yttype = explode(",", $yturbo_options['yttype']);
4167
+ $yttype = array_diff($yttype, array(''));
4168
 
4169
+ if ( ! in_array( get_post_type($post_id), $yttype ) )
4170
+ return;
4171
 
4172
+ $delpermalink = PHP_EOL . esc_url( apply_filters( 'the_permalink_rss', get_permalink($post_id) ) );
4173
+ $yturbo_options['ytexcludeurlslist'] .= $delpermalink;
4174
+ $lines = array_filter(explode("\n", trim($yturbo_options['ytexcludeurlslist'])));
4175
+ $yturbo_options['ytexcludeurlslist'] = implode("\n", $lines);
4176
 
4177
+ update_option('yturbo_options', $yturbo_options);
4178
  }
4179
+ add_action('wp_trash_post', 'yturbo_trash_tracking');
4180
  //функция отслеживания урлов удаляемых записей end
4181
 
4182
  //функция отслеживания урлов восстанавливаемых записей begin
4183
+ function yturbo_untrash_tracking($post_id) {
4184
 
4185
+ $yturbo_options = get_option('yturbo_options');
4186
 
4187
+ if ( $yturbo_options['ytexcludeurls'] == 'disabled' )
4188
+ return;
4189
 
4190
+ if ( $yturbo_options['ytdeltracking'] == 'disabled' )
4191
+ return;
4192
 
4193
+ $yttype = explode(",", $yturbo_options['yttype']);
4194
+ $yttype = array_diff($yttype, array(''));
4195
 
4196
+ if ( ! in_array(get_post_type($post_id), $yttype) )
4197
+ return;
4198
 
4199
+ $restorepermalink = esc_url( apply_filters( 'the_permalink_rss', get_permalink($post_id) ) );
4200
+ $yturbo_options['ytexcludeurlslist'] = str_replace($restorepermalink, '', $yturbo_options['ytexcludeurlslist']);
4201
+ $lines = array_filter(explode("\n", trim($yturbo_options['ytexcludeurlslist'])));
4202
+ $yturbo_options['ytexcludeurlslist'] = implode("\n", $lines);
4203
 
4204
+ update_option('yturbo_options', $yturbo_options);
4205
  }
4206
+ add_action('untrashed_post', 'yturbo_untrash_tracking');
4207
  //функция отслеживания урлов восстанавливаемых записей end
4208
 
4209
  //регистрируем ajax-функцию вывода терминов таксономий begin
4210
  function yturbo_ajax_register() {
4211
+ if ( defined('DOING_AJAX') && DOING_AJAX ) {
4212
+ add_action( 'wp_ajax_yturbo_display_exclude_terms', 'yturbo_ajax_display_exclude_terms' );
4213
+ }
4214
  }
4215
+ add_action('admin_init', 'yturbo_ajax_register');
4216
  //регистрируем ajax-функцию вывода терминов таксономий end
4217
 
4218
  //ajax-функция вывода терминов таксономий (вывод только не выбранных) begin
4219
  function yturbo_ajax_display_exclude_terms() {
4220
+ check_ajax_referer('yturbo_display_exclude_terms');
4221
+
4222
+ if ( ! isset($_REQUEST['taxonomy']) )
4223
+ return;
4224
+
4225
+ $taxonomy = (string) sanitize_text_field($_REQUEST['taxonomy']);
4226
+
4227
+ header('HTTP/1.1 200');
4228
+ header('Content-Type: text/html; charset=UTF-8');
4229
+
4230
+ //исключаем те термины, которые выбраны в настройках
4231
+ //ajax-функция выводит только не выбранные термины
4232
+ $yturbo_options = get_option('yturbo_options');
4233
+ if ( isset($yturbo_options['exclude-'.$taxonomy]) && $yturbo_options['exclude-'.$taxonomy] ) {
4234
+ $yttaxlist = $yturbo_options['exclude-'.$taxonomy];
4235
+ $tax = explode(":", $yttaxlist);
4236
+ $exclude_term_ids = wp_parse_id_list($tax[1]);
4237
+ } else {
4238
+ $exclude_term_ids = '';
4239
+ }
4240
+
4241
+ $terms = get_terms($taxonomy, array(
4242
+ 'exclude' => $exclude_term_ids,
4243
+ 'hide_empty' => false,
4244
+ 'hierarchical' => false,
4245
+ 'number' => 100,
4246
+ 'offset' => sanitize_text_field($_REQUEST['offset'])
4247
+ ));
4248
+
4249
+ if ( ! $terms ) {
4250
+ echo '<li>:(</li>';
4251
+ exit;
4252
+ }
4253
+
4254
+ foreach ($terms as $term) {
4255
+ echo "<li><input type='checkbox' name='exclude-{$taxonomy}[{$term->term_id}]' id='exclude_{$term->term_id}' value='{$term->term_id}' /> <label for='exclude_{$term->term_id}'>" . esc_html($term->name) . "</label></li>";
4256
+ }
4257
+ exit;
4258
  }
4259
  //ajax-функция вывода терминов таксономий (вывод только не выбранных) end