<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="uk">
	<id>https:///index.php?action=history&amp;feed=atom&amp;title=%D0%A8%D0%B0%D0%B1%D0%BB%D0%BE%D0%BD%D0%B8%D0%B7%D0%B0%D1%82%D0%BE%D1%80</id>
	<title>Шаблонизатор - Історія редагувань</title>
	<link rel="self" type="application/atom+xml" href="https:///index.php?action=history&amp;feed=atom&amp;title=%D0%A8%D0%B0%D0%B1%D0%BB%D0%BE%D0%BD%D0%B8%D0%B7%D0%B0%D1%82%D0%BE%D1%80"/>
	<link rel="alternate" type="text/html" href=""/>
	<updated>2026-05-05T13:37:04Z</updated>
	<subtitle>Історія редагувань цієї сторінки в вікі</subtitle>
	<generator>MediaWiki 1.40.0</generator>
	<entry>
		<id></id>
		<title>Sv: /* Вставка переменной */</title>
		<link rel="alternate" type="text/html" href=""/>
		<updated>2023-08-26T07:00:43Z</updated>

		<summary type="html">&lt;p&gt;&lt;span dir=&quot;auto&quot;&gt;&lt;span class=&quot;autocomment&quot;&gt;Вставка переменной&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Нова сторінка&lt;/b&gt;&lt;/p&gt;&lt;div&gt;Шаблонизатор NoDeny позволяет генерировать файл (обычно html) по шаблону. Шаблонизация полезна тем, что не нужно лезть в код чтобы изменить дизайн, добавить какие-то блоки или поменять их положение. В NoDeny используется в основном для рендеринга личного кабинета абонента, а также для  формирования конфигов модулем make_config.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
В административном интерфейса шаблонизатор практически не используется из-за громадного количества данных, оформление которых осуществляется в коде. На данный момент полный переход на шаблонизацию слишком затратен по ресурсам разработчиков. Тем не менее, некоторые блоки шаблонизированы, например: базовая структура админки в файле base.html, страница логина login.html и некоторые другие.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
По умолчанию шаблоны для админки находятся в /usr/local/nodeny/web/, а кабинета клиента - в /usr/local/nodeny/web/user/&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Шаблонизатор NoDeny во многом повторяет синтаксис стандартного django шаблонизатора, но есть небольшие отличия.&lt;br /&gt;
&lt;br /&gt;
==Вставка переменной==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
{{ имя переменной }}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Например:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Здравствуйте, администратор {{ admin_name }}&lt;br /&gt;
Данные клиента:&lt;br /&gt;
fio = {{user.fio}}&lt;br /&gt;
balance = {{user.balance}}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Пробелы между фигурными скобками и именем переменной необязательны.&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Импорт файла==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
{% include 'test.html' %}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Будет загружен файл /usr/local/nodeny/web/tmpl/test.html&lt;br /&gt;
&lt;br /&gt;
Например:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Привет! Содержимое файла test.html:&lt;br /&gt;
{% include 'test.html' %}&lt;br /&gt;
Ясно?&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Если в разделе документов будет существовать документ с тегом template=test - файл test.html не будет загружаться с диска, а будет взят из данного документа. Естественно, также должен присутствовать тег system для защиты от подмены шаблона персоналом без суперпривилегий.&lt;br /&gt;
&lt;br /&gt;
Если необходимо наследовать шаблон по типу extend в фреймворке django, также необходимо воспользоваться командой include, а блок(и), которые необходимо вставить в «верхний» шаблон, нужно обернуть в global_block. Например. Шаблон test_base:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;html&amp;gt;&lt;br /&gt;
   &amp;lt;boby&amp;gt;&lt;br /&gt;
        {{ template::test_base.body }}&lt;br /&gt;
   &amp;lt;/body&amp;gt;&lt;br /&gt;
&amp;lt;/html&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Шаблон show_info:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
{% global_block template::test_base.body %}&lt;br /&gt;
   Есть интересная информация&lt;br /&gt;
{% endblock %}&lt;br /&gt;
&lt;br /&gt;
{% include 'test_base.html' %}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
При рендеринге шаблона show_info.html будет загружен шаблон test_base.html и в него будет вставлен фрагмент «Есть интересная информация». Обратите внимание, загрузка шаблона test_base.html должна идти после определения блоков, которые вставляются в данный шаблон&lt;/div&gt;</summary>
		<author><name>Sv</name></author>
	</entry>
</feed>