Перейти к публикации

Теряются теги во вложенных шаблонах


Рекомендованные сообщения

Ситуация такая, в main.tpl загружается шаблон правого меню right_menu.tpl через строку

{include file="modules/right_menu.tpl"}

в шаблоне правой строки идет подгрузка других шаблонов (боковое меню, банеры, информеры) также через строки типа

{include file="modules/informer.tpl"}

 

Проблема в том, что в первых двух шаблонах ( main.tpl, right_menu.tpl ) подгрузка шаблонных тегов происходит нормально.

Корректно  распознаются шаблонные теги [static=имя страницы] [/static] и [not-static=имя страницы] [/not-static]

 

Но в третьем шаблоне уже эти теги не распознаются и выводятся текстом. Это так и должно быть, ли все таки баг?

Версия DLE 13.0

 

 

Ссылка на сообщение
Поделиться на других сайтах
12 часов назад, YuriBtr сказал:

Но в третьем шаблоне уже эти теги не распознаются и выводятся текстом. Это так и должно быть, ли все таки баг?

Да так и должно быть. Вложенность подгружаемых шаблонов ограничена двумя ветками. Это сделано в целях защиты сайта от зацикливания. Например если подключить в шаблоне самого себя, это может привести к бесконечному зацикливанию, и как следствие падение сервера. Чтобы избежать этого, есть ограничения на количество подключений.

Ссылка на сообщение
Поделиться на других сайтах
4 часа назад, celsoft сказал:

Да так и должно быть. Вложенность подгружаемых шаблонов ограничена двумя ветками. Это сделано в целях защиты сайта от зацикливания. Например если подключить в шаблоне самого себя, это может привести к бесконечному зацикливанию, и как следствие падение сервера. Чтобы избежать этого, есть ограничения на количество подключений.

Странно, зацикливание может быть и в одном шаблоне, если как вы сами написали - вызвать себя же из него.

А про ограничение на уровень вложенностей я в документации не видел. Думаю это важный момент - предлагаю отразить его в документации.

Хотя в идеале такого ограничения не должно быть, но это конечно вам решать.

Ссылка на сообщение
Поделиться на других сайтах

А такой подход для решения можно использовать?

Внутри функции sub_load_template перед 

return $template;

Вставить

if (strpos($template, '{include file=') !== false) {
	$this->include_mode = 'tpl';
	preg_match("#\\{include file=['\"](.+?)['\"]\\}#i", $template, $checkInclude);

	if (strpos($templatefile, $checkInclude[1])) {
		$template = preg_replace("#\\{include file=['\"](.+?)['\"]\\}#i", '', $template);
	} else {
		$template = preg_replace_callback("#\\{include file=['\"](.+?)['\"]\\}#i", [&$this, 'load_file'], $template);
	}
}

Проверил с такой вложенностью

В main.tpl добавляем

{include file="tpl/test.tpl"}

Внутри него

[aviable=main]MAIN 0[/aviable]
{include file="tpl/test1.tpl"}

Внутри test1.tpl

[aviable=main]MAIN 1[/aviable]
{include file="tpl/test2.tpl"}

А внутри test2.tpl

[aviable=main]MAIN 2[/aviable]
{include file="tpl/test3.tpl"}

И в конце

[aviable=main]MAIN 3[/aviable]

Никаких ошибок пока не заметил, и test2.tpl и test3.tpl работает без проблем.

 

А если добавить внутри файла вызов самого себя то в итоге ничего не будет.

Изменено пользователем Gameer
Ссылка на сообщение
Поделиться на других сайтах
  • 2 недели спустя...
В 10.11.2018 в 12:32, celsoft сказал:

Это сделано в целях защиты сайта от зацикливания. Например

есть огромная куча примеров кода, который может привести к зацикливанию сайта. Надеюсь не нужно приводить примеры?

К чему это я? Да к тому, что ИМХО - пользы от такой защиты от зацикливания - ноль... А вред - налицо.

Хотя, пока на DLE будут единицы пользователей делать достаточно сложные шаблоны - большинству от  этой "защиты от зацикливания" - ни тепло, ни холодно...

 

Ссылка на сообщение
Поделиться на других сайтах
2 минуты назад, IgorA100 сказал:

есть огромная куча примеров кода, который может привести к зацикливанию сайта. Надеюсь не нужно приводить примеры?

К чему это я? Да к тому, что ИМХО - пользы от такой защиты от зацикливания - ноль... А вред - налицо.

Хотя, пока на DLE будут единицы пользователей делать достаточно сложные шаблоны - большинству от  этой "защиты от зацикливания" - ни тепло, ни холодно...

 

Ну на самом деле нет, идет рекурсия и сервер ложиться от нагрузки. К примеру мой плагин решает проблему с вложенным подключением, в нем нельзя подключить файл который будет подключать себя же.

Ссылка на сообщение
Поделиться на других сайтах

А такой код не положит сервер? :)

while ( 1 != 2 ) { ++$a ;} 

 

8 минут назад, Gameer сказал:

в нем нельзя подключить файл который будет подключать себя же.

А если так?

 

В main.tpl добавляем

{include file="tpl/test.tpl"}

Внутри него

[aviable=main]MAIN 0[/aviable]
{include file="tpl/test1.tpl"}

Внутри test1.tpl

[aviable=main]MAIN 1[/aviable]
{include file="tpl/test2.tpl"}

А внутри test2.tpl (ВАЖНО!)

[aviable=main]MAIN 2[/aviable]
{include file="tpl/test.tpl"}

Да и вообще, человек, который что-то делает, он должен думать и анализировать!!!

Ссылка на сообщение
Поделиться на других сайтах
6 минут назад, IgorA100 сказал:

А такой код не положит сервер? :)


while ( 1 != 2 ) { ++$a ;} 

 

А если так?

 

В main.tpl добавляем


{include file="tpl/test.tpl"}

Внутри него


[aviable=main]MAIN 0[/aviable]
{include file="tpl/test1.tpl"}

Внутри test1.tpl


[aviable=main]MAIN 1[/aviable]
{include file="tpl/test2.tpl"}

А внутри test2.tpl (ВАЖНО!)


[aviable=main]MAIN 2[/aviable]
{include file="tpl/test.tpl"}

Да и вообще, человек, который что-то делает, он должен думать и анализировать!!!

Хм, этого не проверял, нужно будет.

Ссылка на сообщение
Поделиться на других сайтах
14 часов назад, IgorA100 сказал:

есть огромная куча примеров кода, который может привести к зацикливанию сайта. Надеюсь не нужно приводить примеры?

К чему это я? Да к тому, что ИМХО - пользы от такой защиты от зацикливания - ноль... А вред - налицо.

Нет нужно. Приведите пример, когда стандартный DLE можно привести к зацикливанию.

Ссылка на сообщение
Поделиться на других сайтах
4 часа назад, celsoft сказал:

Приведите пример, когда стандартный DLE можно привести к зацикливанию.

Ох.....

Точно так-же стандартный DLE (со стандартными шаблонами) - не приведет к зацикливанию, даже при отсутствии защиты по уровням вложенности шаблонов!!! Разве не так?

Далее:

- шаблоны может править каждый, верно? Верно...

- плагины может писать каждый, верно? Верно...

 

Или наверное не так? Да, наверное...

Плагины может писать только дипломированный программист по 10 языкам программирования с 20 летним стажем работы, что не позволит ему написать говнокод вешающий сервер?

Шаблоны может писать школьник 2го класса незнающий еще вообще ничего, и его надо как-то защитить от ошибок....

Такая логика что-ли ?

 

ЗЫ: А на JS разве нельзя написать говнокод и вставить его в шаблон, который завесит в усмерть браузер? Можно....

 

Но ведь мы о другом, да ?

 

Ссылка на сообщение
Поделиться на других сайтах
10 минут назад, IgorA100 сказал:

Точно так-же стандартный DLE (со стандартными шаблонами) - не приведет к зацикливанию, даже при отсутствии защиты по уровням вложенности шаблонов!!! Разве не так?

Причем здесь стандартный шаблон? Речь идет о DLE а не шаблонах. DLE не позволяет зациклить его, при использовании любого шаблона. Потому как обладает соответствующей защитой. Вы написали:

19 часов назад, IgorA100 сказал:

есть огромная куча примеров кода, который может привести к зацикливанию сайта. К чему это я? Да к тому, что ИМХО - пользы от такой защиты от зацикливания - ноль...

Поэтому вам и написали, приведите примеры, когда вы сможете зациклить стандартный DLE любой комбинацией своих шаблонных тегов. Потому как если это возможно, то это баг. Но такие комбинации нам неизвестны. А вы же пишите о куче примеров, поэтому и написал, чтобы вы привели этот пример.

10 минут назад, IgorA100 сказал:

ЗЫ: А на JS разве нельзя написать говнокод и вставить его в шаблон, который завесит в усмерть браузер? Можно....

Мы не разработчики браузера. Мы разработчики DLE, и для нас важно чтобы DLE не мог "повесить" и аварийно остановить сервер.

10 минут назад, IgorA100 сказал:

Но ведь мы о другом, да ?

Да о другом. А именно о DLE и только о нем.

 

Ссылка на сообщение
Поделиться на других сайтах
26 минут назад, celsoft сказал:

Причем здесь стандартный шаблон? Речь идет о DLE а не шаблонах

Т.е. Вы разделяете DLE и шаблоны ? Странно, но Вам, как разработчику виднее.....

27 минут назад, celsoft сказал:

Да о другом. А именно о DLE и только о нем.

Так причем тут тогда вообще шаблоны? Если:

28 минут назад, celsoft сказал:

Речь идет о DLE а не шаблонах.

Понятно, что к браузеру Вы не имеете отношения.

29 минут назад, celsoft сказал:

Мы не разработчики браузера. Мы разработчики DLE, и для нас важно чтобы DLE не мог "повесить" и аварийно остановить сервер.

Но, ведь если шаблон повесит сервер, а не DLE, то это же уже не Ваша проблема, ведь (еще раз процитирую Вас):

31 минуту назад, celsoft сказал:

Причем здесь стандартный шаблон? Речь идет о DLE а не шаблонах.

 

И ответьте мне, пожалуйста на пару вопросов:

- Почему у Вас система плагинов позволяет "положить сервер" при условии некорректного плагина ?

- Почему защита от зависания сервера реализована только в рамках вложенности шаблонов и не работает при написании плагинов?

 

 

 

Ссылка на сообщение
Поделиться на других сайтах
16 минут назад, IgorA100 сказал:

Т.е. Вы разделяете DLE и шаблоны ? Странно, но Вам, как разработчику виднее.....

В смысле? Я если честно вообще сейчас не понял, что вы имеете ввиду, о чем речь. Мне кажется что мы с вами вообще говорим о каких то разных вещах. Я об одном, а вы о другом.

 

16 минут назад, IgorA100 сказал:

Но, ведь если шаблон повесит сервер, а не DLE, то это же уже не Ваша проблема, ведь (еще раз процитирую Вас):

На текущий момент шаблон, не может повесить DLE, благодаря тому что в DLE есть защита от этого. Которая работает и эффективно. Вы же написали, что может, и якобы есть примеры. На что я вам написал, чтобы вы эти примеры вы привели. Но вы их не привели. Вот о чем я писал вам и в чем собственно суть.

 

16 минут назад, IgorA100 сказал:

- Почему у Вас система плагинов позволяет "положить сервер" при условии некорректного плагина ?

Плагин это PHP код, PHP это язык программирования, на котором можно сделать все что угодно. И плохо написанный PHP код, может сделать все что угодно: повесить сервер, создать уязвимость и т.д. И это касается любой CMS и любой системы плагинов, а не только DLE. Плагин для любой без исключения CMS, если он "кривой" может это сделать. Потому как плагины это обычный PHP код. И то что вы перепрограммировали эту функциональность, не делает CMS какой либо неправильной. Возможность перепрограммировать, для этого и присутствует, чтобы добавлять свои возможности, или менять стандартные.

 

16 минут назад, IgorA100 сказал:

- Почему защита от зависания сервера реализована только в рамках вложенности шаблонов и не работает при написании плагинов?

Потому что я написал об этом выше. PHP коды, если они разрешены могут делать что угодно, на то они и PHP коды. В этом их суть. Для этого они присутствуют в любой CMS. Это основа собственно программирования. Не зависимо где программируется, в DLE или в любой другой CMS. А ставить себе на сайт "криво" написанный плагин, это решение уже пользователя сайта, и ему решать, пользоваться им или нет. Как например решаете пользоваться ли вам DLE или другой CMS.

Ссылка на сообщение
Поделиться на других сайтах
46 минут назад, celsoft сказал:

В смысле? Я если честно вообще сейчас не понял, что вы имеете ввиду, о чем речь.

Ох, кажется Вы сами стали путаться...

Я написал:

Цитата

Точно так-же стандартный DLE (со стандартными шаблонами) - не приведет к зацикливанию, даже при отсутствии защиты по уровням вложенности шаблонов!!! Разве не так?

Вы ответили:

Цитата

Причем здесь стандартный шаблон? Речь идет о DLE а не шаблонах.

Вы уж определитесь то, о чем мы тут с Вами вообще разговариваем....

А если уж Вы так уверены, что:

Цитата

На текущий момент шаблон, не может повесить DLE ...... Вы же написали, что может, и якобы есть примеры.

Т.е. Вы не знаете как на  JavaScript можно повесить систему? Да неважно какую систему, серверную часть или клиентскую... Для пользователя системы (не для разработчика, не для верстальщика, ни для кодера, а для пользователя, который зашел на сайт) без разницы где там, чего, в каком канале зависло/упало..... Факт - не работает, висит....

 

54 минуты назад, celsoft сказал:

Плагин это PHP код, PHP это язык программирования, на котором можно сделать все что угодно.

Оооохххх..... Да, я понял, наконец-то понял, PHP - это язык программирования, а HTML и JS - это НЕ язык программирования. Спасибо что разъяснили, не знал....

 

Ладно, возможно, когда-то, Вы поймете что были сейчас не правы. А возможно и я пойму, что был не прав... Посмотрим.....

 

В любом случае можно легко подвесить как серверную часть, так и клиентскую часть системы при использовании DLE и написании определенного кода (не важно на каком языке). И при этом не спасет никакая защита от зацикливания в шаблонах. С этим то Вы хоть не поспорите? :)

Ссылка на сообщение
Поделиться на других сайтах
57 минут назад, IgorA100 сказал:

Вы уж определитесь то, о чем мы тут с Вами вообще разговариваем....

Я говорил о вашей фразе:

23 часа назад, IgorA100 сказал:

есть огромная куча примеров кода, который может привести к зацикливанию сайта. Надеюсь не нужно приводить примеры?

К чему это я? Да к тому, что ИМХО - пользы от такой защиты от зацикливания - ноль... А вред - налицо.

Из которой для меня следует, что защита в DLE от бесконечного зацикливания не работает, и есть какие то шаблонные комбинации, которая приведет к неработоспособности этой защиты. И я вам написал, что: Приведите эти коды и комбинации, и если это так, то будет признано багом и эта защита будет улучшена. Все. Больше я ничего не имел ввиду, и ни про что не писал. А вы меня куда то увели дебри рассуждений. Если есть такие шаблонные комбинации, то приводите. Если нет, то собственно обсуждать больше нечего.

 

57 минут назад, IgorA100 сказал:

Т.е. Вы не знаете как на  JavaScript можно повесить систему? Да неважно какую систему, серверную часть или клиентскую... Для пользователя системы (не для разработчика, не для верстальщика, ни для кодера, а для пользователя, который зашел на сайт) без разницы где там, чего, в каком канале зависло/упало..... Факт - не работает, висит....

Мы разработчики DLE, и нас интересуют только проблемы в DLE, и о них вас спрашивали. И больше ни о чем другом. Но вы просто ушли совсем в другие дебри обсуждений, и в то о чем я даже не спрашивал, написав в этой теме.

 

57 минут назад, IgorA100 сказал:

Для пользователя системы (не для разработчика, не для верстальщика, ни для кодера, а для пользователя, который зашел на сайт) без разницы где там, чего, в каком канале зависло/упало..... Факт - не работает, висит....

Вы путаете поддержку DLE, с абстрактным собеседником, которые ведут дискуссии ни о чем. Нас интересуют только проблемы DLE, нас интересует только то что в DLE может неверно работать, по причинам, связанным с DLE, т.к. мы поддержка DLE. Нас совершенно никак не интересует абстракционизм, о том что кто то написал кривой или неработающий JS в шаблоне. Вас попросили привести комбинации шаблонных тегов DLE, которые могут привести стандартный DLE к зацикливанию, все я больше ни о чем не спрашивал. О этих комбинациях я и спросил вас, и больше ни о чем. Если такового вам привести нечего, то и наша дискуссия по этому вопросу также бессмысленна. Если вы имели в этой фразе что то иное, и такие комбинации из шаблонных тегов DLE вам неизвестны, то так и напишите, и для этот вопрос закрыт, а других вопросов у меня и не было.

 

57 минут назад, IgorA100 сказал:

Ладно, возможно, когда-то, Вы поймете что были сейчас не правы. А возможно и я пойму, что был не прав... Посмотрим.....

Я не писал ничего по поводу того кто прав, кто нет. Я вас просил только об одном. Привести примеры шаблонных тегов DLE, которые могут привести к зацикливанию в стандартом DLE. Все и больше ничего. Мне как поддержки интересовало только то имеет ли место баг в защите от бесконечного зацикливания. А вы пошли в какие то непонятные дебри, в которых я просто уже запутался. Я так понимаю таких тегов и комбинаций нет, а вы той своей фразой имели ввиду абстракционизм, что кто то напишет плагин или JS код, который будет что то делать. Но это уже не сфера багов DLE, а значит не сфера интересов поддержки DLE, а значит у меня больше никаких вопросов нет.

Ссылка на сообщение
Поделиться на других сайтах
2 часа назад, celsoft сказал:

Из которой для меня следует, что защита в DLE от бесконечного зацикливания не работает

НЕТ, я этого никогда не говорил!!! Вероятно, Вы не совсем внимательно читали мои сообщения. Где Вы такое увидели? В моем этом сообщении?

Цитата

есть огромная куча примеров кода, который может привести к зацикливанию сайта.

Здесь я нигде не упоминаю защиту от зацикливания с помощью ограничения вложенности шаблонов....

2 часа назад, celsoft сказал:

Приведите эти коды и комбинации, и если это так, то будет признано багом и эта защита будет улучшена.

Да пожалуйста:

<script>
while (1 < 3) { console.log( "Кирдык" );}
</script>

Вставьте в шаблон и наслаждайтесь...

Код - это код, это НЕ тег для шаблона, это программный код.....

 

Я не оспариваю корректную работу ограничений вложенности файлов шаблонов. Я же говорю, что от нее пользы - не больше чем от козла молока. Ну разве что только для тех, кто вообще ничего не понимает.....

Ссылка на сообщение
Поделиться на других сайтах
5 часов назад, IgorA100 сказал:

<script> while (1 < 3) { console.log( "Кирдык" );} </script>

:D Насмешили.

9 часов назад, IgorA100 сказал:

Оооохххх..... Да, я понял, наконец-то понял, PHP - это язык программирования, а HTML и JS - это НЕ язык программирования. Спасибо что разъяснили, не знал....

Это был бесплатный курс обучения для Вас ;)

Вас попросили привести пример, а Вы стали в словесную перепалку лезть и цепляться за слова, при этом ни какой конкретики. Действительно, складывается впечатление, что глухой со слепым разговаривают.

Прочитал всю ветку и только время потратил.

Ссылка на сообщение
Поделиться на других сайтах
3 часа назад, proba сказал:

:D Насмешили.

Я очень рад! Ведь смеяться полезно!!!

3 часа назад, proba сказал:

Вас попросили привести пример,

Я привел пример. Я очень рад, что в Вашем шаблоне данный код никак не работает!!! И что любой посетитель зашедший на сайт будет прекрасно его просматривать...

3 часа назад, proba сказал:

Это был бесплатный курс обучения для Вас ;)

Жаль, что диплом не выдается. А то повесил бы на стену и гордился ;)

Ссылка на сообщение
Поделиться на других сайтах
1 час назад, IgorA100 сказал:

Я привел пример.

Какой именно? Если пример с вложенностью шаблонов test1.tpl, test2.tpl (ВАЖНО!), то у меня на 11.1 Ваш вариант не прокатил. Может быть, чтобы воочию увидеть факт

В 19.11.2018 в 03:04, IgorA100 сказал:

зацикливанию сайта

и написал

22 часа назад, celsoft сказал:

Приведите пример, когда стандартный DLE можно привести к зацикливанию.

То, что в шаблон вносите подобное

11 часов назад, IgorA100 сказал:

<script> while (1 < 3) { console.log( "Кирдык" );} </script>

не обязывает движок каким-то образом пресекать выполнение. Или всё же по Вашему он должен анализировать к чему это приводит и предпринимать какие-то действия?

По поводу сарказма с плагинами, то Вы не правы! Чтобы не лезть в код, проще работать через плагины. А если обезопасить от Вас, то лучше вернуться к тому времени, когда плагинов не было.

 

Ссылка на сообщение
Поделиться на других сайтах
1 час назад, proba сказал:

Если пример с вложенностью шаблонов test1.tpl, test2.tpl (ВАЖНО!), то

Вы хоть читайте уж тогда тему и попробуйте понять к чему я это писал ;)

1 час назад, proba сказал:

Или всё же по Вашему он должен анализировать к чему это приводит и предпринимать какие-то действия?

Вот именно, по моему мнению - НЕ обязан. НЕ обязан движок ограничивать возможности.

 

1 час назад, proba сказал:

По поводу сарказма с плагинами, то Вы не правы! Чтобы не лезть в код, проще работать через плагины.

И где Вы мой сарказм по поводу плагинов нашли? Я говорил что это плохо и неправильно? Где ??? Конечно проще, и я только ЗА....

 

Вы что, вообще ничего не поняли? Персонально для Вас выскажусь, что я против ограничений на вложенность шаблонов, которое спасает от зацикливания. Я же говорю, что кривыми руками можно чего угодно наворотить (и в шаблонах, и в PHP файлах), и не спасут никакие защиты в видео ограничений на вложенность шаблонов....

Ссылка на сообщение
Поделиться на других сайтах
  • 9 месяцев спустя...

Здравствуйте, интересует пару вопросов. Что отвечает за вывод тегов в dle, и как настроить вывод новостей когда кликаешь на любой из тегов? 
Как я понял tagscloud.tpl отвечает за переменную {tags}, она у меня отображается на сайте. Но когда кликаю по любому из тегов, то мне не показывается новости которые соответствуют этому тегу. И так по разному, в каких-то шаблонах новости по тегам выводятся, в каких-то нет.

Ссылка на сообщение
Поделиться на других сайтах
3 минуты назад, Mark456 сказал:

Здравствуйте, интересует пару вопросов. Что отвечает за вывод тегов в dle, и как настроить вывод новостей когда кликаешь на любой из тегов? 
Как я понял tagscloud.tpl отвечает за переменную {tags}, она у меня отображается на сайте. Но когда кликаю по любому из тегов, то мне не показывается новости которые соответствуют этому тегу. И так по разному, в каких-то шаблонах новости по тегам выводятся, в каких-то нет.

Во-первых, не надо писать чужих ветках, да еще и не по теме. Создать свою тему не так и сложно.

Во-вторых, надо выполнять правила форума

Цитата

Внимание !!!

На данном форуме существуют достаточно жесткие правила, поэтому прежде чем создавать свою тему убедитесь, что вы внимательно их прочитали и поняли.

 

1. Если ваша тема начинается с вопроса и вам нужна какая либо помощь, то в самой теме в обязательном порядке вы должны указывать ссылку на ваш сайт. Если ваш сайт находится в локальной сети и вы не можете предоставить ссылку, или вы не хотите публиковать открытой ссылки на ваш сайт, то отправляйте персональное сообщение с вопросом в службу поддержки непосредственно с сайта http://dle-news.ru/, вам ответят на ваш вопрос в персональном порядке, в случае если пользуетесь платной версией скрипта и обладаете лицензией на скрипт. Если вы пользуетесь демоверсией, то вам необходимо разместить сайт в сети интернет, и только потом обращаться за помощью. По находящимся на локальных компьютерах демоверсиям никакой помощи и поддержки на форуме не оказывается. Если вы не указали сайт, то ваша тема будет закрыта, а аккаунт на форуме заблокирован.

 

 

Ссылка на сообщение
Поделиться на других сайтах

Присоединяйтесь к обсуждению

Вы можете опубликовать сообщение сейчас, а зарегистрироваться позже. Если у вас есть аккаунт, войдите в него для написания от своего имени.

Гость
Ответить в тему...

×   Вставлено в виде отформатированного текста.   Вставить в виде обычного текста

  Разрешено не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отобразить как ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставить изображения напрямую. Загрузите или вставьте изображения по ссылке.

×
×
  • Создать...