mod: Улучшены SEO-атрибуты, и добавлена разметка shema.org
This commit is contained in:
14
README.md
14
README.md
@@ -10,15 +10,15 @@
|
||||
* Проект получает настройки и секреты через переменные окружения (`.env`) вместо `my_secret*.py`.
|
||||
* Рефакторинг создания `sitemap.xml`: raw ⟶ ORM, создание через Django-команду `generate_sitemaps` в медиа-файлы.
|
||||
* Рефакторинг URL `/catalog/profil/`: raw SQL ⟶ ORM, убран `last_update`, измененs SEO `description` и `keywords`.
|
||||
* Распилен `oknardia/web/catalog.py` на тематические модули (`catalog_companies.py`, `catalog_profiles.py`, `catalog_series.py`, `catalog_openings.py`) с вынесением общей логики в `catalog_utils.py`; маршруты обновлены без изменения внешних URL.
|
||||
* Рефакторинг `catalog_profile_model` (`/catalog/profile/...`): raw SQL ⟶ ORM, упрощена логика, вынесены helper-функции, сокращено дублирование расчёта цветов рейтинга, нормализована подготовка `LIST_OTHER`/`MERCHANTS`/`PROFILES`/`PROFILE_DETAIL`, сохранена совместимость шаблонов.
|
||||
* Рефакторинг `catalog_profile_manufacture` (`/catalog/profile/<id>-<manufacturer>`): упрощена валидация URL, убран дублирующий код маппинга для `PROFILES` и `MERCHANTS` через общие хелперы, стандартизирован хвост контекста (`LAST_VISIT`, `LOG_VISIT`, `ticks`) через `_append_visit_context`.
|
||||
* Рефакторинг `catalog_seria` (`/catalog/seria/`): raw SQL ⟶ ORM для списка корневых серий, подготовка данных упрощена, хвост контекста с визитами и `ticks` вынесен в общий helper внутри `catalog_series.py`.
|
||||
* Рефакторинг `catalog_seria_info` и связанных функций в `catalog_series.py`: raw SQL ⟶ ORM (`catalog_seria_info`, `seria_nav`, `seria_info_year`, `seria_info_geo_code`), снижена нагрузка на БД за счёт предвыборки и переиспользования агрегатов (`quantities_by_pair`, `offers_by_window`), добавлены безопасные fallback-значения для пустых выборок, включена потоковая обработка `iterator(chunk_size=500)` для гео-данных, обновлены комментарии и docstring под фактическую логику (таблица окон, pre-render light/heavy шаблонов, гео+статистика серии).
|
||||
* Распилен `oknardia/web/catalog.py` на тематические модули (`catalog_companies.py`, `catalog_profiles.py`, `catalog_series.py`, `catalog_openings.py`) с вынесением общей логики в `catalog_utils.py`; маршруты обновлены без изменения внешних URL. Улучшены SEO-атрибуты, и добавлена разметка shema.org.
|
||||
* Рефакторинг `catalog_profile_model` (`/catalog/profile/...`): raw SQL ⟶ ORM, упрощена логика, вынесены helper-функции, сокращено дублирование расчёта цветов рейтинга, нормализована подготовка `LIST_OTHER`/`MERCHANTS`/`PROFILES`/`PROFILE_DETAIL`, сохранена совместимость шаблонов. Улучшены SEO-атрибуты, и добавлена разметка shema.org.
|
||||
* Рефакторинг `catalog_profile_manufacture` (`/catalog/profile/<id>-<manufacturer>`): упрощена валидация URL, убран дублирующий код маппинга для `PROFILES` и `MERCHANTS` через общие хелперы, стандартизирован хвост контекста (`LAST_VISIT`, `LOG_VISIT`, `ticks`) через `_append_visit_context`. Улучшены SEO-атрибуты, и добавлена разметка shema.org.
|
||||
* Рефакторинг `catalog_seria` (`/catalog/seria/`): raw SQL ⟶ ORM для списка корневых серий, подготовка данных упрощена, хвост контекста с визитами и `ticks` вынесен в общий helper внутри `catalog_series.py`. Улучшены SEO-атрибуты, и добавлена разметка shema.org.
|
||||
* Рефакторинг `catalog_seria_info` и связанных функций в `catalog_series.py`: raw SQL ⟶ ORM (`catalog_seria_info`, `seria_nav`, `seria_info_year`, `seria_info_geo_code`), снижена нагрузка на БД за счёт предвыборки и переиспользования агрегатов (`quantities_by_pair`, `offers_by_window`), добавлены безопасные fallback-значения для пустых выборок, включена потоковая обработка `iterator(chunk_size=500)` для гео-данных, обновлены комментарии и docstring под фактическую логику (таблица окон, pre-render light/heavy шаблонов, гео+статистика серии). Улучшены SEO-атрибуты, и добавлена разметка shema.org.
|
||||
* Добавлена management-команда `regenerate_seria_prerender` для оффлайн-пересборки pre-render шаблонов `catalog_seria_info` (все или выбранные root-серии), с режимами `--dry-run` и `--force`; серверный reload (Gunicon? uWSGI или что там еще будет) должен быть вынесен из кода приложения в оркестрацию (cron/systemd/deploy step).
|
||||
* Рефакторинг `standard_opening`: raw SQL -> ORM, упрощена дедублекация, убраны лишние запросы и переменные контекста, добавлены комментарии, SEO-описание и keywords, стандартизирован хвост контекста с визитами и `ticks` через общий helper внутри `catalog_openings.py`.
|
||||
* Рефакторинг `standard_opening`: raw SQL -> ORM, упрощена дедублекация, убраны лишние запросы и переменные контекста, добавлены комментарии, SEO-описание и keywords, стандартизирован хвост контекста с визитами и `ticks` через общий helper внутри `catalog_openings.py`. Улучшены SEO-атрибуты и добавлена разметка shema.org.
|
||||
* Рефакторинг `catalog_company` и `catalog_company_detail` (`/catalog/company`): raw SQL → ORM для получения списка компаний и их наборов, вынесены вспомогательные функции (`_get_company_statistics`, `_get_company_sets_detail`, `_format_company_for_template`, `_format_set_for_template`, `_clean_text_field`, `_lowercase_first_char`), упрощена логика форматирования данных, добавлены подробные комментарии и docstring для каждой функции, использованы `select_related` и `annotate` для оптимизации запросов, добавлена защита от `Http404` при неправильных slugs. Улучшены SEO-атрибуты, и добавлена разметка shema.org.
|
||||
*
|
||||
* Рефакторирнг главной стртаницы каталога (`/catalog/`): Улучшены SEO-атрибуты, и добавлена разметка shema.org.
|
||||
*
|
||||
|
||||
#### Планы, задачи, маркеры и идеи на будущее:
|
||||
|
||||
@@ -16,7 +16,6 @@
|
||||
<meta name="document-state" content="{{ META_DOCUMENT_STATE|default:"Dynamic" }}" />
|
||||
<meta name="generator" content="OKNARDIA 0.3β by Python/Django" />
|
||||
<title>{% block Title %}{% endblock %} : ОКНАРДИЯ</title>
|
||||
<link rel="alternate" href="https://oknardia.ru" hreflang="ru-ru" />
|
||||
<link rel="icon" href="https://oknardia.ru/favicon.svg" type="image/svg+xml ">
|
||||
<link rel="icon" href="https://oknardia.ru/favicon.png" type="image/png">
|
||||
<link rel="icon" href="https://oknardia.ru/favicon.gif" type="image/gif">
|
||||
@@ -26,7 +25,7 @@
|
||||
<link href="{% static 'css/oknardia1.css' %}" rel="stylesheet" type="text/css" />{% block Top_CSS1 %}{% endblock %}{% block Top_CSS2 %}{% endblock %}{% block Top_CSS3 %}{% endblock %}
|
||||
<script src="{% static 'js/jquery-2.1.1.min.js' %}" type="text/javascript"></script>{# <script src="//ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js" type="text/javascript"></script>#}
|
||||
<script src="{% static 'js/bootstrap.min.js' %}" type="text/javascript"></script>{# <script src="//maxcdn.bootstrapcdn.com/bootstrap/3.3.6/js/bootstrap.min.js" type="text/javascript"></script>#}{% block Top_JS1 %}{% endblock %}{% block Top_JS2 %}{% endblock %}{% block Top_JS3 %}{% endblock %}{% block Top_JS4 %}{% endblock %}{% block Top_JS5 %}{% endblock %}{% block Top_Meta1 %}{% endblock %}
|
||||
<script type="text/javascript">$(document).ready(function(){ $('#login-logout').load('/login-logout' ); })</script>{% block ADD_TO_HEAD %}{% endblock %}
|
||||
<script type="text/javascript">$(document).ready(function(){ $('#login-logout').load('/login-logout' ); })</script>{% block ADD_TO_HEAD %}{% endblock %}
|
||||
</head>
|
||||
|
||||
<body{% block Add_Body_Attribute %}{% endblock %}>
|
||||
|
||||
@@ -13,6 +13,62 @@
|
||||
|
||||
{% block CopyrightAuthor4Meta %}: Каталог{% endblock %}
|
||||
|
||||
{% block Top_Meta1 %}{# <!-- BEGIN Дополнительные Metatags --> #}
|
||||
<meta name="news_keywords" content="каталог оконных профилей, производители профилей, марки профилей" />
|
||||
<link rel="canonical" href="{{ request.scheme }}://{{ request.get_host }}/catalog/profile/" />
|
||||
<meta property="og:locale" content="ru_RU" />
|
||||
<meta property="og:site_name" content="oknardia.ru" />
|
||||
<meta property="og:url" content="{{ request.scheme }}://{{ request.get_host }}/catalog/profile/" />
|
||||
<meta property="og:type" content="website" />
|
||||
<meta property="og:title" content="Каталог оконных профилей | oknardia.ru" />
|
||||
<meta property="og:description" content="Производители и модели оконных профилей с характеристиками и рейтингом в каталоге Окнардии." />
|
||||
<meta property="og:image" content="{{ request.scheme }}://{{ request.get_host }}/static/img/MerDY3gpU0w.jpg" />
|
||||
<link rel="image_src" href="{{ request.scheme }}://{{ request.get_host }}/static/img/MerDY3gpU0w.jpg" />
|
||||
<meta name="twitter:title" content="Каталог оконных профилей | oknardia.ru" />
|
||||
<meta name="twitter:description" content="Производители и модели оконных профилей с характеристиками и рейтингом в каталоге Окнардии." />
|
||||
<meta name="twitter:card" content="summary" />
|
||||
<meta name="twitter:site" content="@oknardia" />
|
||||
<meta property="twitter:url" content="{{ request.scheme }}://{{ request.get_host }}/catalog/profile/" />
|
||||
<meta name="twitter:image" content="{{ request.scheme }}://{{ request.get_host }}/static/img/MerDY3gpU0w.jpg" />
|
||||
{# <!-- END Дополнительные Metатags --> #}{% endblock %}
|
||||
|
||||
{% block ADD_TO_HEAD %}
|
||||
<script type="application/ld+json">
|
||||
{
|
||||
"@context": "https://schema.org",
|
||||
"@type": "CollectionPage",
|
||||
"name": "Каталог оконных профилей",
|
||||
"description": "Список производителей и моделей оконных профилей с переходом на карточки и характеристики.",
|
||||
"url": "{{ request.scheme }}://{{ request.get_host }}/catalog/profile/"
|
||||
}
|
||||
</script>
|
||||
<script type="application/ld+json">
|
||||
{
|
||||
"@context": "https://schema.org",
|
||||
"@type": "BreadcrumbList",
|
||||
"itemListElement": [
|
||||
{
|
||||
"@type": "ListItem",
|
||||
"position": 1,
|
||||
"name": "Главная",
|
||||
"item": "{{ request.scheme }}://{{ request.get_host }}/"
|
||||
},
|
||||
{
|
||||
"@type": "ListItem",
|
||||
"position": 2,
|
||||
"name": "Каталог",
|
||||
"item": "{{ request.scheme }}://{{ request.get_host }}/catalog/"
|
||||
},
|
||||
{
|
||||
"@type": "ListItem",
|
||||
"position": 3,
|
||||
"name": "Оконные профили",
|
||||
"item": "{{ request.scheme }}://{{ request.get_host }}/catalog/profile/"
|
||||
}
|
||||
]
|
||||
}
|
||||
</script>{% endblock %}
|
||||
|
||||
{% block Main_Content %}
|
||||
<div class="container-fluid">
|
||||
{# <!--- Хлебные крошки: НАЧАЛО --> #}<div class="row">
|
||||
@@ -57,4 +113,3 @@
|
||||
{# ОТЛАДКА, ГАСИМ ВЕРХНЕЕ МЕНЮ #}
|
||||
{% endblock %}
|
||||
{% endcomment %}
|
||||
|
||||
|
||||
@@ -9,48 +9,35 @@
|
||||
|
||||
{% block Keywords %}{{ CATALOG_MANUFACT }}, оконные профили {{ CATALOG_MANUFACT }}, производитель {{ CATALOG_MANUFACT }}, {% for i in PROFILES %}{{ i.PROFILE_NAME }}, {% endfor %}каталог оконных профилей, каталог производителей оконных профилей, каталог профилей, оконные профили, oknardia, окнардия {{ META_KEYWORDS|default:"" }} {% endblock %}
|
||||
|
||||
{% block Date4Meta %}{{ PUB_DAT|date:"Y-m-d" }}{% endblock %}
|
||||
|
||||
{% block Last4Meta %}{{ PUB_DAT|date:"Y-m-d" }}{% endblock %}
|
||||
|
||||
{% block Author4Meta %}: Каталог{% endblock %}
|
||||
|
||||
{% block CopyrightAuthor4Meta %}: Каталог{% endblock %}
|
||||
|
||||
{% block Top_Meta1 %}
|
||||
<!-- Дополнительные Metatags -->
|
||||
<meta itemprop="author" content="Каталог «Окнардия»" />{% if IMG_FOR_BLOG %}
|
||||
<meta itemprop="image" content="https://oknardia.ru/media/{{ IMG_FOR_BLOG }}" />{% else %}
|
||||
<meta itemprop="image" content="https://oknardia.ru/static/img/MerDY3gpU0w.jpg" />{% endif %}
|
||||
<meta itemprop="datePublished" content="{{ PUB_DAT|date:"Y-m-d" }}" />
|
||||
<span itemprop="publisher" itemscope itemtype="http://schema.org/Organization"><meta itemprop="name" content="Каталог «Окнардия»: оконные профили" /></span>
|
||||
<span itemprop="author" itemscope itemtype="http://schema.org/Person"><meta itemprop="name" content="Каталог «Окнардия»" /></span>
|
||||
<meta itemprop="articleSection" content="Каталог «Окнардия»: оконные профили {{ CATALOG_MANUFACT }}" />
|
||||
<meta itemprop="headline" content="{{ TIZER|striptags|truncatewords_html:25 }}" />
|
||||
<meta name="news_keywords" content="{{ HEADER|striptags }}" />
|
||||
<link rel="canonical" href="https://oknardia.ru//catalog/profile/{{ CATALOG_URL }}" />
|
||||
<link rel="standout" href="https://oknardia.ru//catalog/profile/{{ CATALOG_URL }}" />
|
||||
<!-- Разметка для соц-сетей Facebook Open Graph -->
|
||||
{% block Top_Meta1 %}{# <!-- BEGIN Дополнительные Metатеги --> #}
|
||||
{# Удалить: itemprop microdata и rel=standout в head (устаревшее), используем JSON-LD ниже #}
|
||||
{# Удалить: twitter:domain (устаревшее поле) #}
|
||||
<meta name="news_keywords" content="{{ HEADER|striptags|default:CATALOG_MANUFACT }}" />
|
||||
<link rel="canonical" href="{{ request.scheme }}://{{ request.get_host }}/catalog/profile/{{ CATALOG_URL }}/" />
|
||||
<meta property="fb:admins" name="admins" content="100000084781830" />
|
||||
<meta property="fb:pages" content="276108456054163" />
|
||||
<meta property="fb:app_id" content="258354027974262" />
|
||||
<meta property="fb:profile_id" name="profile_id" content="https://www.facebook.com/oknardia/" />
|
||||
<meta property="og:locale" content="ru_RU" />
|
||||
<meta property="og:site_name" content="oknardia.ru" />
|
||||
<meta property="og:url" content="https://oknardia.ru//catalog/profile/{{ CATALOG_URL }}" />
|
||||
<meta property="og:url" content="{{ request.scheme }}://{{ request.get_host }}/catalog/profile/{{ CATALOG_URL }}/" />
|
||||
<meta property="og:type" content="article" />
|
||||
<meta property="og:title" content="{{ HEADER|striptags }} | oknardia.ru" />
|
||||
<meta property="og:description" content="{{ TIZER|striptags|truncatewords_html:25 }}" />
|
||||
<meta property="og:image" content="{% if IMG_FOR_BLOG %}https://oknardia.ru/media/{% endif %}{{ IMG_FOR_BLOG|default:"https://oknardia.ru/static/img/MerDY3gpU0w.jpg" }}" />
|
||||
<link rel="image_src" href="{% if IMG_FOR_BLOG %}https://oknardia.ru/media/{% endif %}{{ IMG_FOR_BLOG|default:"https://oknardia.ru/static/img/MerDY3gpU0w.jpg" }}" />
|
||||
<!-- Разметка для соц-сетей Twitter Card -->
|
||||
<meta name="twitter:title" content="{{ HEADER|striptags }} | oknardia.ru" />
|
||||
<meta name="twitter:description" content="{{ TIZER|striptags|truncatewords_html:25 }}" />
|
||||
<meta name="twitter:card" content="summary">
|
||||
<meta property="og:title" content="{{ HEADER|striptags|default:CATALOG_MANUFACT }} | oknardia.ru" />
|
||||
<meta property="og:description" content="{{ TIZER|striptags|truncatewords_html:25|default:'Оконные профили производителя в каталоге Окнардии.' }}" />
|
||||
<meta property="og:image" content="{% if IMG_FOR_BLOG %}{{ request.scheme }}://{{ request.get_host }}/media/{{ IMG_FOR_BLOG }}{% else %}{{ request.scheme }}://{{ request.get_host }}/static/img/MerDY3gpU0w.jpg{% endif %}" />
|
||||
<link rel="image_src" href="{% if IMG_FOR_BLOG %}{{ request.scheme }}://{{ request.get_host }}/media/{{ IMG_FOR_BLOG }}{% else %}{{ request.scheme }}://{{ request.get_host }}/static/img/MerDY3gpU0w.jpg{% endif %}" />
|
||||
<meta name="twitter:title" content="{{ HEADER|striptags|default:CATALOG_MANUFACT }} | oknardia.ru" />
|
||||
<meta name="twitter:description" content="{{ TIZER|striptags|truncatewords_html:25|default:'Оконные профили производителя в каталоге Окнардии.' }}" />
|
||||
<meta name="twitter:card" content="summary" />
|
||||
<meta name="twitter:site" content="@oknardia" />
|
||||
<meta name="twitter:domain" content="oknardia.ru" />
|
||||
<meta property="twitter:url" content="{% if IMG_FOR_BLOG %}https://oknardia.ru/media/{% endif %}{{ IMG_FOR_BLOG|default:"https://oknardia.ru/static/img/MerDY3gpU0w.jpg" }}" />
|
||||
<meta name="relap-image" content="{% if IMG_FOR_BLOG %}https://oknardia.ru/media/{% endif %}{{ IMG_FOR_BLOG|default:"https://oknardia.ru/static/img/MerDY3gpU0w.jpg" }}">{% endblock %}
|
||||
<meta property="twitter:url" content="{{ request.scheme }}://{{ request.get_host }}/catalog/profile/{{ CATALOG_URL }}/" />
|
||||
<meta name="twitter:image" content="{% if IMG_FOR_BLOG %}{{ request.scheme }}://{{ request.get_host }}/media/{{ IMG_FOR_BLOG }}{% else %}{{ request.scheme }}://{{ request.get_host }}/static/img/MerDY3gpU0w.jpg{% endif %}" />
|
||||
<meta name="relap-image" content="{% if IMG_FOR_BLOG %}{{ request.scheme }}://{{ request.get_host }}/media/{{ IMG_FOR_BLOG }}{% else %}{{ request.scheme }}://{{ request.get_host }}/static/img/MerDY3gpU0w.jpg{% endif %}">
|
||||
{# <!-- END Дополнительные Metatags --> #}{% endblock %}
|
||||
|
||||
{% block Top_JS4 %}
|
||||
<script type="text/javascript" src="//www.gstatic.com/charts/loader.js"></script>
|
||||
@@ -79,6 +66,73 @@
|
||||
}
|
||||
</script>{% endblock %}
|
||||
|
||||
{% block ADD_TO_HEAD %}
|
||||
<script type="application/ld+json">
|
||||
{
|
||||
"@context": "https://schema.org",
|
||||
"@type": "CollectionPage",
|
||||
"name": "Оконные профили производства {{ CATALOG_MANUFACT|escapejs }}",
|
||||
"description": "Страница производителя {{ CATALOG_MANUFACT|escapejs }}: список профилей, рейтинг и описание производителя в каталоге Окнардии.",
|
||||
"url": "{{ request.scheme }}://{{ request.get_host }}/catalog/profile/{{ CATALOG_URL }}/",
|
||||
"about": {
|
||||
"@type": "Organization",
|
||||
"name": "{{ CATALOG_MANUFACT|escapejs }}"
|
||||
},
|
||||
"subjectOf": {
|
||||
"@type": "CreativeWork",
|
||||
"name": "Рейтинг Окнардии и как он устроен",
|
||||
"url": "{{ request.scheme }}://{{ request.get_host }}/blogpost/13/rejting-oknardii-i-kak-on-ustroen-2"
|
||||
}
|
||||
}
|
||||
</script>
|
||||
<script type="application/ld+json">
|
||||
{
|
||||
"@context": "https://schema.org",
|
||||
"@type": "BreadcrumbList",
|
||||
"itemListElement": [
|
||||
{
|
||||
"@type": "ListItem",
|
||||
"position": 1,
|
||||
"name": "Главная",
|
||||
"item": "{{ request.scheme }}://{{ request.get_host }}/"
|
||||
},
|
||||
{
|
||||
"@type": "ListItem",
|
||||
"position": 2,
|
||||
"name": "Каталог",
|
||||
"item": "{{ request.scheme }}://{{ request.get_host }}/catalog/"
|
||||
},
|
||||
{
|
||||
"@type": "ListItem",
|
||||
"position": 3,
|
||||
"name": "Оконные профили",
|
||||
"item": "{{ request.scheme }}://{{ request.get_host }}/catalog/profile/"
|
||||
},
|
||||
{
|
||||
"@type": "ListItem",
|
||||
"position": 4,
|
||||
"name": "{{ CATALOG_MANUFACT|escapejs }}",
|
||||
"item": "{{ request.scheme }}://{{ request.get_host }}/catalog/profile/{{ CATALOG_URL }}/"
|
||||
}
|
||||
]
|
||||
}
|
||||
</script>
|
||||
<script type="application/ld+json">
|
||||
{
|
||||
"@context": "https://schema.org",
|
||||
"@type": "ItemList",
|
||||
"name": "Профили {{ CATALOG_MANUFACT|escapejs }}",
|
||||
"itemListElement": [{% for i in PROFILES %}
|
||||
{
|
||||
"@type": "ListItem",
|
||||
"position": {{ forloop.counter }},
|
||||
"url": "{{ request.scheme }}://{{ request.get_host }}/catalog/profile/{{ i.PROFILE_ID }}-{{ CATALOG_MAN2URL }}/{{ i.PROFILE_ID }}-{{ i.PROFILE_URL }}/",
|
||||
"name": "{{ i.PROFILE_NAME|escapejs }}"
|
||||
}{% if not forloop.last %},{% endif %}{% endfor %}
|
||||
]
|
||||
}
|
||||
</script>{% endblock %}
|
||||
|
||||
{% block Main_Content %}
|
||||
<div class="container-fluid">
|
||||
{# <!--- Хлебные крошки: НАЧАЛО --> #}<div class="row">
|
||||
@@ -105,7 +159,9 @@
|
||||
</tr>{% endfor %}
|
||||
</tbody>
|
||||
</table>
|
||||
<p class="small-note">Сравнить компонеты рейтинга профилей можно в разделе <a href="/stat/rating/profiles_rank/">Ретинги</a>.</p>{% if not OFFERS_BY_MAUFACTURE == 0 %}
|
||||
<p class="small-note">Сравнить компонеты рейтинга профилей можно в разделе <a href="/stat/rating/profiles_rank/">Ретинги</a>.<br />
|
||||
Методика расчёта: <a href="/blogpost/13/rejting-oknardii-i-kak-on-ustroen-2" target="_blank"
|
||||
rel="nofollow">«Рейтинг Окнардии и как он устроен»</a>.</p>{% if not OFFERS_BY_MAUFACTURE == 0 %}
|
||||
<h4>Доля предложений окон на основе профилей {{ CATALOG_MANUFACT }} в базе «Окнардия»</h4>
|
||||
<div id="donutchart"></div>
|
||||
<h5>Партнёры «Окнардия» использующие профили производства {{ CATALOG_MANUFACT }} в своих предложениях:</h5>
|
||||
|
||||
@@ -5,31 +5,17 @@
|
||||
|
||||
{% block Add_Body_Attribute %} style="padding-top:70px;"{% endblock %}
|
||||
|
||||
{% block Description %}Характеристики оконного профиля {{ CATALOG_MODEL.sProfileName }} производства {{ CATALOG_MODEL.sProfileManufacturer }}{% endblock %}
|
||||
{% block Description %}Оконный профиль {{ CATALOG_MODEL.sProfileName }} от {{ CATALOG_MODEL.sProfileManufacturer }}: характеристики, рейтинг, комплектация и применение в оконных предложениях партнёров Окнардии.{% endblock %}
|
||||
|
||||
{% block Keywords %}оконный профиль {{ CATALOG_MODEL.sProfileName }}, характеристики профиля {{ CATALOG_MODEL.sProfileName }}, описание профиля {{ CATALOG_MODEL.sProfileName }}, производитель оконный профилей {{ CATALOG_MODEL.sProfileManufacturer }}, каталог оконных профилей, каталог производителей оконных профилей, каталог профилей, оконные профили, oknardia, окнардия {{ META_KEYWORDS|default:"" }} {% endblock %}
|
||||
|
||||
{% block Date4Meta %}{{ PUB_DAT|date:"Y-m-d" }}{% endblock %}
|
||||
|
||||
{% block Last4Meta %}{{ PUB_DAT|date:"Y-m-d" }}{% endblock %}
|
||||
|
||||
{% block Author4Meta %}: Каталог{% endblock %}
|
||||
|
||||
{% block CopyrightAuthor4Meta %}: Каталог{% endblock %}
|
||||
|
||||
{% block Top_Meta1 %}
|
||||
<!-- Дополнительные Metatags -->
|
||||
<meta itemprop="author" content="Каталог «Окнардия»" />{% if IMG_FOR_BLOG %}
|
||||
<meta itemprop="image" content="https://oknardia.ru/media/{{ IMG_FOR_BLOG }}" />{% else %}
|
||||
<meta itemprop="image" content="https://oknardia.ru/static/img/MerDY3gpU0w.jpg" />{% endif %}
|
||||
<meta itemprop="datePublished" content="{{ PUB_DAT|date:"Y-m-d" }}" />
|
||||
<span itemprop="publisher" itemscope itemtype="http://schema.org/Organization"><meta itemprop="name" content="Каталог «Окнардия»: оконные профили" /></span>
|
||||
<span itemprop="author" itemscope itemtype="http://schema.org/Person"><meta itemprop="name" content="Каталог «Окнардия»" /></span>
|
||||
<meta itemprop="articleSection" content="Каталог «Окнардия»: оконные профили {{ CATALOG_MODEL.sProfileName }}" />
|
||||
<meta itemprop="headline" content="Описание и характеристики оконных профилей {{ CATALOG_MODEL.sProfileName }} производства {{ CATALOG_MODEL.sProfileManufacturer }}" />
|
||||
<meta name="news_keywords" content="{{ CATALOG_MODEL.sProfileName }}, характеристики {{ CATALOG_MODEL.sProfileName }}, описание {{ CATALOG_MODEL.sProfileName }}, оконные профили {{ CATALOG_MODEL.sProfileName }}, {{ CATALOG_MODEL.sProfileManufacturer }}, производитель {{ CATALOG_MODEL.sProfileManufacturer }}, каталог оконных профилей, каталог производителей оконных профилей, каталог профилей, оконные профили, oknardia, окнардия" />
|
||||
<link rel="canonical" href="https://oknardia.ru//catalog/profile/{{ CATALOG_URL2 }}/" />
|
||||
<link rel="standout" href="https://oknardia.ru//catalog/profile/{{ CATALOG_URL2 }}/" />
|
||||
{% block Top_Meta1 %}{# <!-- BEGIN Дополнительные Metatags --> #}
|
||||
<meta name="news_keywords" content="{{ CATALOG_MODEL.sProfileName }}, {{ CATALOG_MODEL.sProfileManufacturer }}, каталог оконных профилей, оконные профили" />
|
||||
<link rel="canonical" href="{{ request.scheme }}://{{ request.get_host }}/catalog/profile/{{ CATALOG_URL2 }}" />
|
||||
<!-- Разметка для соц-сетей Facebook Open Graph -->
|
||||
<meta property="fb:admins" name="admins" content="100000084781830" />
|
||||
<meta property="fb:pages" content="276108456054163" />
|
||||
@@ -37,20 +23,100 @@
|
||||
<meta property="fb:profile_id" name="profile_id" content="https://www.facebook.com/oknardia/" />
|
||||
<meta property="og:locale" content="ru_RU" />
|
||||
<meta property="og:site_name" content="oknardia.ru" />
|
||||
<meta property="og:url" content="https://oknardia.ru//catalog/profile/{{ CATALOG_URL2 }}" />
|
||||
<meta property="og:type" content="article" />
|
||||
<meta property="og:title" content="Оконные профили {{ CATALOG_MODEL.sProfileName }} | oknardia.ru" />
|
||||
<meta property="og:description" content="Описание и характеристики оконных профилей {{ CATALOG_MODEL.sProfileName }} производства {{ CATALOG_MODEL.sProfileManufacturer }}" />
|
||||
<meta property="og:image" content="{% if IMG_FOR_BLOG %}https://oknardia.ru/media/{% endif %}{{ IMG_FOR_BLOG|default:"https://oknardia.ru/static/img/MerDY3gpU0w.jpg" }}" />
|
||||
<link rel="image_src" href="{% if IMG_FOR_BLOG %}https://oknardia.ru/media/{% endif %}{{ IMG_FOR_BLOG|default:"https://oknardia.ru/static/img/MerDY3gpU0w.jpg" }}" />
|
||||
<meta property="og:url" content="{{ request.scheme }}://{{ request.get_host }}/catalog/profile/{{ CATALOG_URL2 }}" />
|
||||
<meta property="og:type" content="product" />
|
||||
<meta property="og:title" content="Оконный профиль {{ CATALOG_MODEL.sProfileName }} | oknardia.ru" />
|
||||
<meta property="og:description" content="Оконный профиль {{ CATALOG_MODEL.sProfileName }} от {{ CATALOG_MODEL.sProfileManufacturer }}: характеристики, рейтинг и описание в каталоге Окнардии." />
|
||||
<meta property="og:image" content="{% if IMG_FOR_BLOG %}{{ request.scheme }}://{{ request.get_host }}/media/{{ IMG_FOR_BLOG }}{% else %}{{ request.scheme }}://{{ request.get_host }}/static/img/MerDY3gpU0w.jpg{% endif %}" />
|
||||
<link rel="image_src" href="{% if IMG_FOR_BLOG %}{{ request.scheme }}://{{ request.get_host }}/media/{{ IMG_FOR_BLOG }}{% else %}{{ request.scheme }}://{{ request.get_host }}/static/img/MerDY3gpU0w.jpg{% endif %}" />
|
||||
<!-- Разметка для соц-сетей Twitter Card -->
|
||||
<meta name="twitter:title" content="Оконные профили {{ CATALOG_MODEL.sProfileName }} | oknardia.ru" />
|
||||
<meta name="twitter:description" content="Описание и характеристики оконных профилей {{ CATALOG_MODEL.sProfileName }} производства {{ CATALOG_MODEL.sProfileManufacturer }}" />
|
||||
<meta name="twitter:card" content="summary">
|
||||
<meta name="twitter:title" content="Оконный профиль {{ CATALOG_MODEL.sProfileName }} | oknardia.ru" />
|
||||
<meta name="twitter:description" content="Характеристики, рейтинг и описание профиля {{ CATALOG_MODEL.sProfileName }} производства {{ CATALOG_MODEL.sProfileManufacturer }}." />
|
||||
<meta name="twitter:card" content="summary" />
|
||||
<meta name="twitter:site" content="@oknardia" />
|
||||
<meta name="twitter:domain" content="oknardia.ru" />
|
||||
<meta property="twitter:url" content="{% if IMG_FOR_BLOG %}https://oknardia.ru/media/{% endif %}{{ IMG_FOR_BLOG|default:"https://oknardia.ru/static/img/MerDY3gpU0w.jpg" }}" />
|
||||
<meta name="relap-image" content="{% if IMG_FOR_BLOG %}https://oknardia.ru/media/{% endif %}{{ IMG_FOR_BLOG|default:"https://oknardia.ru/static/img/MerDY3gpU0w.jpg" }}">{% endblock %}
|
||||
<meta property="twitter:url" content="{{ request.scheme }}://{{ request.get_host }}/catalog/profile/{{ CATALOG_URL2 }}" />
|
||||
<meta name="twitter:image" content="{% if IMG_FOR_BLOG %}{{ request.scheme }}://{{ request.get_host }}/media/{{ IMG_FOR_BLOG }}{% else %}{{ request.scheme }}://{{ request.get_host }}/static/img/MerDY3gpU0w.jpg{% endif %}" />
|
||||
<meta name="relap-image" content="{% if IMG_FOR_BLOG %}{{ request.scheme }}://{{ request.get_host }}/media/{{ IMG_FOR_BLOG }}{% else %}{{ request.scheme }}://{{ request.get_host }}/static/img/MerDY3gpU0w.jpg{% endif %}">
|
||||
{# <!-- END Дополнительные Metатags --> #}{% endblock %}
|
||||
|
||||
{% block ADD_TO_HEAD %}
|
||||
{# JSON-LD для карточки оконного профиля и хлебных крошек #}<script type="application/ld+json">
|
||||
{
|
||||
"@context": "https://schema.org",
|
||||
"@type": "Product",
|
||||
"name": "{{ CATALOG_MODEL.sProfileName|escapejs }}",
|
||||
"description": "Оконный профиль {{ CATALOG_MODEL.sProfileName|escapejs }} производства {{ CATALOG_MODEL.sProfileManufacturer|escapejs }}. Характеристики, рейтинг и применение в наборах партнёров Окнардии.",
|
||||
"url": "{{ request.scheme }}://{{ request.get_host }}/catalog/profile/{{ CATALOG_URL2 }}",
|
||||
"image": "{% if IMG_FOR_BLOG %}{{ request.scheme }}://{{ request.get_host }}/media/{{ IMG_FOR_BLOG }}{% else %}{{ request.scheme }}://{{ request.get_host }}/static/img/MerDY3gpU0w.jpg{% endif %}",
|
||||
"brand": {
|
||||
"@type": "Brand",
|
||||
"name": "{{ CATALOG_MODEL.sProfileManufacturer|escapejs }}"
|
||||
},
|
||||
"manufacturer": {
|
||||
"@type": "Organization",
|
||||
"name": "{{ CATALOG_MODEL.sProfileManufacturer|escapejs }}"
|
||||
},
|
||||
"category": "Оконные профили",
|
||||
"subjectOf": {
|
||||
"@type": "CreativeWork",
|
||||
"name": "Рейтинг Окнардии и как он устроен",
|
||||
"url": "{{ request.scheme }}://{{ request.get_host }}/blogpost/13/rejting-oknardii-i-kak-on-ustroen-2"
|
||||
},
|
||||
"additionalProperty": [
|
||||
{
|
||||
"@type": "PropertyValue",
|
||||
"name": "Метод ранжирования",
|
||||
"value": "Mann-Whitney (Манна-Уитни)"
|
||||
}
|
||||
]{% if CATALOG_MODEL.fProfileRating > -0.1 %},
|
||||
"aggregateRating": {
|
||||
"@type": "AggregateRating",
|
||||
"ratingValue": "{{ CATALOG_MODEL.fProfileRating|stringformat:'.2f' }}",
|
||||
"bestRating": "5",
|
||||
"worstRating": "0"{% if PROFILE_RATING_SAMPLE_SIZE > 0 %},
|
||||
"ratingCount": "{{ PROFILE_RATING_SAMPLE_SIZE }}"{% endif %}
|
||||
}{% endif %}
|
||||
}
|
||||
</script>
|
||||
<script type="application/ld+json">
|
||||
{
|
||||
"@context": "https://schema.org",
|
||||
"@type": "BreadcrumbList",
|
||||
"itemListElement": [
|
||||
{
|
||||
"@type": "ListItem",
|
||||
"position": 1,
|
||||
"name": "Главная",
|
||||
"item": "{{ request.scheme }}://{{ request.get_host }}/"
|
||||
},
|
||||
{
|
||||
"@type": "ListItem",
|
||||
"position": 2,
|
||||
"name": "Каталог",
|
||||
"item": "{{ request.scheme }}://{{ request.get_host }}/catalog"
|
||||
},
|
||||
{
|
||||
"@type": "ListItem",
|
||||
"position": 3,
|
||||
"name": "Оконные профили",
|
||||
"item": "{{ request.scheme }}://{{ request.get_host }}/catalog/profile"
|
||||
},
|
||||
{
|
||||
"@type": "ListItem",
|
||||
"position": 4,
|
||||
"name": "{{ CATALOG_MODEL.sProfileManufacturer|escapejs }}",
|
||||
"item": "{{ request.scheme }}://{{ request.get_host }}/catalog/profile/{{ CATALOG_URL }}"
|
||||
},
|
||||
{
|
||||
"@type": "ListItem",
|
||||
"position": 5,
|
||||
"name": "Профиль {{ CATALOG_MODEL.sProfileName|escapejs }}",
|
||||
"item": "{{ request.scheme }}://{{ request.get_host }}/catalog/profile/{{ CATALOG_URL2 }}"
|
||||
}
|
||||
]
|
||||
}
|
||||
</script>
|
||||
{% endblock %}
|
||||
|
||||
|
||||
{% block Main_Content %}<div class="container-fluid">
|
||||
@@ -125,7 +191,12 @@
|
||||
<td colspan="3" {% if not CATALOG_MODEL.sProfileColor == "" %} title="Цвет оконного профиля: {{ CATALOG_MODEL.sProfileColor|capfirst }}"{% endif %}>{% if CATALOG_MODEL.sProfileColor == "" %}—{% else %}<small>{{ CATALOG_MODEL.sProfileColor|capfirst }}{% endif %}</small></td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>{% if LIST_OTHER|length > 1 %}
|
||||
</table>{% if CATALOG_MODEL.fProfileRating > -0.1 %}
|
||||
<p class="small-note">Рейтинг модели рассчитан алгоритмом «Окнардии» по статистическому ранжированию
|
||||
характеристик (метод Манна-Уитни){% if PROFILE_RATING_SAMPLE_SIZE > 0 %} на выборке из
|
||||
{{ PROFILE_RATING_SAMPLE_SIZE }} моделей профилей{% endif %}. Методика расчёта:
|
||||
<a href="/blogpost/13/rejting-oknardii-i-kak-on-ustroen-2" target="_blank"
|
||||
rel="nofollow">«Рейтинг Окнардии и как он устроен»</a>.</p>{% endif %}{% if LIST_OTHER|length > 1 %}
|
||||
<h4>Прочие характеристики профиля:</h4>
|
||||
<ul>{% for LI_BULL in LIST_OTHER %}
|
||||
<li>{{ LI_BULL|safe }}</li>{% endfor %}
|
||||
|
||||
@@ -5,30 +5,18 @@
|
||||
|
||||
{% block Add_Body_Attribute %} style="padding-top:70px;"{% endblock %}
|
||||
|
||||
{% block Description %}Каталог «Окнардия»{% endblock %}
|
||||
{% block Description %}Каталог «Окнардия»: оконные и дверные профили, стеклопакеты, фурнитура, типовые серии домов, стандартные проёмы и партнёры-поставщики окон.{% endblock %}
|
||||
|
||||
{% block Keywords %}Каталог, каталог оконных профилей, каталог стеклопакетов, каталог фурнитуры, каталог серий домов, каталог оконных проёмов, oknardia, окнардия {{ META_KEYWORDS|default:"" }} {% endblock %}
|
||||
|
||||
{% block Date4Meta %}{% if PUB_DAT %}{{ PUB_DAT|date:"Y-m-d" }}{% else %}{% now "c" %}{% endif %}{% endblock %}
|
||||
|
||||
{% block Last4Meta %}{% if PUB_DAT %}{{ PUB_DAT|date:"Y-m-d" }}{% else %}{% now "c" %}{% endif %}{% endblock %}
|
||||
|
||||
{% block Author4Meta %}: Каталог «Окнардия»{% endblock %}
|
||||
|
||||
{% block CopyrightAuthor4Meta %}: Каталог «Окнардия»{% endblock %}
|
||||
|
||||
{% block Top_Meta1 %}{# <!-- BEGIN Дополнительные Metatags --> #}
|
||||
<meta itemprop="author" content="Каталог «Окнардия»" />{% if IMG_FOR_BLOG %}
|
||||
<meta itemprop="image" content="https://oknardia.ru/media/{{ IMG_FOR_BLOG }}" />{% else %}
|
||||
<meta itemprop="image" content="https://oknardia.ru/static/img/MerDY3gpU0w.jpg" />{% endif %}
|
||||
<meta itemprop="datePublished" content="{% if PUB_DAT %}{{ PUB_DAT|date:"Y-m-d" }}{% else %}{% now "c" %}{% endif %}" />
|
||||
<span itemprop="publisher" itemscope itemtype="http://schema.org/Organization"><meta itemprop="name" content="Каталог «Окнардия»" /></span>
|
||||
<span itemprop="author" itemscope itemtype="http://schema.org/Person"><meta itemprop="name" content="Каталог «Окнардия»" /></span>
|
||||
<meta itemprop="articleSection" content="Каталог «Окнардия»" />
|
||||
<meta itemprop="headline" content="Главная страница каталога «Окнардия»: оконные и дверные профили, стеклопакеты, фурнитуов, типовые серии домов, стандартные проемы, партнёры..." />
|
||||
<meta name="news_keywords" content="{{ HEADER }}" />
|
||||
<link rel="canonical" href="https://oknardia.ru//catalog/" />
|
||||
<link rel="standout" href="https://oknardia.ru//catalog/" />
|
||||
{% block Top_Meta1 %}{# <!-- BEGIN Дополнительные Metatags --> #}
|
||||
{# Удалить: itemprop microdata, rel=standout, twitter:domain — устаревшие теги #}
|
||||
<meta name="news_keywords" content="каталог окон, каталог оконных профилей, серии домов, стандартные проёмы" />
|
||||
<link rel="canonical" href="{{ request.scheme }}://{{ request.get_host }}/catalog/" />
|
||||
<!-- Разметка для соц-сетей Facebook Open Graph -->
|
||||
<meta property="fb:admins" name="admins" content="100000084781830" />
|
||||
<meta property="fb:pages" content="276108456054163" />
|
||||
@@ -36,21 +24,76 @@
|
||||
<meta property="fb:profile_id" name="profile_id" content="https://www.facebook.com/oknardia/" />
|
||||
<meta property="og:locale" content="ru_RU" />
|
||||
<meta property="og:site_name" content="oknardia.ru" />
|
||||
<meta property="og:url" content="https://oknardia.ru//catalog/" />
|
||||
<meta property="og:type" content="article" />
|
||||
<meta property="og:url" content="{{ request.scheme }}://{{ request.get_host }}/catalog/" />
|
||||
<meta property="og:type" content="website" />
|
||||
<meta property="og:title" content="Каталог «Окнардия» | oknardia.ru" />
|
||||
<meta property="og:description" content="Главная страница каталога «Окнардия»: оконные и дверные профили, стеклопакеты, фурнитуов, типовые серии домов, стандартные проемы, партнёры..." />
|
||||
<meta property="og:image" content="{% if IMG_FOR_BLOG %}https://oknardia.ru/media/{% endif %}{{ IMG_FOR_BLOG|default:"https://oknardia.ru/static/img/MerDY3gpU0w.jpg" }}" />
|
||||
<link rel="image_src" href="{% if IMG_FOR_BLOG %}https://oknardia.ru/media/{% endif %}{{ IMG_FOR_BLOG|default:"https://oknardia.ru/static/img/MerDY3gpU0w.jpg" }}" />
|
||||
<meta property="og:description" content="Оконные и дверные профили, стеклопакеты, типовые серии домов, стандартные проёмы и партнёры-поставщики окон." />
|
||||
<meta property="og:image" content="{{ request.scheme }}://{{ request.get_host }}/static/img/MerDY3gpU0w.jpg" />
|
||||
<link rel="image_src" href="{{ request.scheme }}://{{ request.get_host }}/static/img/MerDY3gpU0w.jpg" />
|
||||
<!-- Разметка для соц-сетей Twitter Card -->
|
||||
<meta name="twitter:title" content="{{ HEADER }}"/>
|
||||
<meta name="twitter:description" content="Главная страница каталога «Окнардия»: оконные и дверные профили, стеклопакеты, фурнитуов, типовые серии домов, стандартные проемы, партнёры..." />
|
||||
<meta name="twitter:card" content="summary">
|
||||
<meta name="twitter:title" content="Каталог «Окнардия» | oknardia.ru" />
|
||||
<meta name="twitter:description" content="Оконные и дверные профили, стеклопакеты, типовые серии домов, стандартные проёмы и партнёры-поставщики окон." />
|
||||
<meta name="twitter:card" content="summary" />
|
||||
<meta name="twitter:site" content="@oknardia" />
|
||||
<meta name="twitter:domain" content="oknardia.ru" />
|
||||
<meta property="twitter:url" content="{% if IMG_FOR_BLOG %}https://oknardia.ru/media/{% endif %}{{ IMG_FOR_BLOG|default:'https://oknardia.ru/static/img/MerDY3gpU0w.jpg' }}" />
|
||||
<meta name="relap-image" content="{% if IMG_FOR_BLOG %}https://oknardia.ru/media/{% endif %}{{ IMG_FOR_BLOG|default:'https://oknardia.ru/static/img/MerDY3gpU0w.jpg' }}" />
|
||||
{# <!-- END Дополнительные Metatags --> #}{% endblock %}
|
||||
<meta property="twitter:url" content="{{ request.scheme }}://{{ request.get_host }}/catalog/" />
|
||||
<meta name="twitter:image" content="{{ request.scheme }}://{{ request.get_host }}/static/img/MerDY3gpU0w.jpg" />
|
||||
<meta name="relap-image" content="{{ request.scheme }}://{{ request.get_host }}/static/img/MerDY3gpU0w.jpg" />
|
||||
{# <!-- END Дополнительные Metатags --> #}{% endblock %}
|
||||
|
||||
{% block ADD_TO_HEAD %}
|
||||
{# JSON-LD: корневая страница каталога — CollectionPage + BreadcrumbList + структура разделов #}
|
||||
<script type="application/ld+json">
|
||||
{
|
||||
"@context": "https://schema.org",
|
||||
"@type": "CollectionPage",
|
||||
"name": "Каталог «Окнардия»",
|
||||
"description": "Оконные и дверные профили, стеклопакеты, типовые серии домов, стандартные проёмы и партнёры-поставщики окон.",
|
||||
"url": "{{ request.scheme }}://{{ request.get_host }}/catalog/",
|
||||
"hasPart": [
|
||||
{
|
||||
"@type": "CollectionPage",
|
||||
"name": "Оконные и дверные профили",
|
||||
"url": "{{ request.scheme }}://{{ request.get_host }}/catalog/profile/"
|
||||
},
|
||||
{
|
||||
"@type": "CollectionPage",
|
||||
"name": "Каталог серий домов",
|
||||
"url": "{{ request.scheme }}://{{ request.get_host }}/catalog/seria/"
|
||||
},
|
||||
{
|
||||
"@type": "CollectionPage",
|
||||
"name": "Стандартные оконные проёмы и балконные блоки",
|
||||
"url": "{{ request.scheme }}://{{ request.get_host }}/catalog/standard_opening/"
|
||||
},
|
||||
{
|
||||
"@type": "CollectionPage",
|
||||
"name": "Производители и поставщики окон",
|
||||
"url": "{{ request.scheme }}://{{ request.get_host }}/catalog/company/"
|
||||
}
|
||||
]
|
||||
}
|
||||
</script>
|
||||
<script type="application/ld+json">
|
||||
{
|
||||
"@context": "https://schema.org",
|
||||
"@type": "BreadcrumbList",
|
||||
"itemListElement": [
|
||||
{
|
||||
"@type": "ListItem",
|
||||
"position": 1,
|
||||
"name": "Главная",
|
||||
"item": "{{ request.scheme }}://{{ request.get_host }}/"
|
||||
},
|
||||
{
|
||||
"@type": "ListItem",
|
||||
"position": 2,
|
||||
"name": "Каталог",
|
||||
"item": "{{ request.scheme }}://{{ request.get_host }}/catalog/"
|
||||
}
|
||||
]
|
||||
}
|
||||
</script>
|
||||
{% endblock %}
|
||||
|
||||
{% block Main_Content %}
|
||||
<div class="container-fluid">
|
||||
@@ -66,7 +109,7 @@
|
||||
<dIv class="row -catalog2-">
|
||||
{# ПЕРВЫЙ РАЗДЕЛ С РЕКЛАМОЙ СБОКУ #}<div class="col-md-9 col-xs-8">
|
||||
{# И ЕЩЁ ОДИН РАЗДЕЛ #}<h2 class="header"><a href="/catalog/profile">Оконные и дверные профили</a></h2>
|
||||
<p class="col-md-offset-1 col-xs-offset-1">Каталог систем оконных и дверных профилей и описание <nobr>компаний-производителей</nobr>. Каталог содержит детальные характеристики профилей: сопротивление теплопередаче <nobr><i>Ro</i> (<i>м²×°C/Вт</i>)</nobr>, коэффициент звукоизоляции (<i>дБ</i>), число камер рамы и створки, тип и армирования, монтажная ширина и другие. Пластиковые (ПВХ), деревянные, комбинированные и другие системы профилей.</p>
|
||||
<p class="col-md-offset-1 col-xs-offset-1">Каталог систем оконных и дверных профилей и описание <nobr>компаний-производителей</nobr>. Каталог содержит детальные характеристики профилей: сопротивление теплопередаче <nobr><i>Ro</i> (<i>м²×°C/Вт</i>)</nobr>, коэффициент звукоизоляции (<i>дБ</i>), число камер рамы и створки, тип и армирование, монтажная ширина и другие. Пластиковые (ПВХ), деревянные, комбинированные и другие системы профилей.</p>
|
||||
{# И ЕЩЁ ОДИН РАЗДЕЛ #}<h2 class="header"><a href="/catalog/seria">Каталог серий домов</a></h2>
|
||||
<p class="col-md-offset-1 col-xs-offset-1">Типовые проекты жилого строительства, вхождение стандартных оконных проёмов и балконных блоков в планировки типовых квартир серии, графики ввода в эксплуатацию зданий серии, география строительства, износ жилого фонда…</p>
|
||||
</div>
|
||||
@@ -77,7 +120,7 @@
|
||||
</div>
|
||||
{# И ОПЯТЬ РАЗДЕЛ С РЕКЛАМОЙ СБОКУ #}<div class="col-md-9 col-xs-8">
|
||||
{# И ЕЩЁ ОДИН РАЗДЕЛ #}<h2 class="header"><a href="/catalog/company">Производители и поставщики окон</a> <small style="font-size:xx-small;">(в разработке)</small></h2>
|
||||
<p class="col-md-offset-1 col-xs-offset-1">Компании-партнеры «Окнардии», контатная информация, условия и скидки, конфигурации и рейтинги их оконных предложений.</p>
|
||||
<p class="col-md-offset-1 col-xs-offset-1">Компании-партнеры «Окнардии», контактная информация, условия и скидки, конфигурации и рейтинги их оконных предложений.</p>
|
||||
{# ВТОРОЙ РАЗДЕЛ #}
|
||||
{# И ЕЩЁ ОДИН РАЗДЕЛ #}<h2 class="header"><a href="javascript://" class="not-ready">Каталог стеклопакетов</a> <small style="font-size:xx-small;">(в разработке)</small></h2>
|
||||
<p class="col-md-offset-1 col-xs-offset-1">Стеклопакеты и описание <nobr>компаний-производителей</nobr> стекла. Каталог содержит детальные характеристики: схемы стеклопакетов, наличие напыления k- и <nobr>i-микропленок</nobr>, тип <nobr>газа-заполнителя</nobr>, сопротивление теплопередаче <nobr><i>Ro</i> (<i>м²×°C/Вт</i>)</nobr>, коэффициент звукоизоляции (<i>дБ</i>), число камер, тонирование…</p>
|
||||
@@ -98,5 +141,3 @@
|
||||
{% include "report/report_log_user_visit.html" %}
|
||||
</div>
|
||||
</div>{% endblock %}
|
||||
|
||||
|
||||
|
||||
@@ -5,30 +5,17 @@
|
||||
|
||||
{% block Add_Body_Attribute %} style="padding-top:70px;"{% endblock %}
|
||||
|
||||
{% block Description %}Каталог серий зданий и типовое панельное строительство оконного агрегатора Окнардия{% endblock %}
|
||||
{% block Description %}Каталог типовых серий домов России: панельные и блочные серии, ссылки на подробные страницы серий, их планировки и стандартные оконные проёмы.{% endblock %}
|
||||
|
||||
{% block Keywords %}типовое строительство, панельные серии, серии домов, серии зданий, типовые дома, типовые здания, каталог серий типового строительства, oknardia, окнардия {{ META_KEYWORDS|default:"" }} {% endblock %}
|
||||
|
||||
{% block Date4Meta %}{% if PUB_DAT %}{{ PUB_DAT|date:"Y-m-d" }}{% else %}{% now "c" %}{% endif %}{% endblock %}
|
||||
|
||||
{% block Last4Meta %}{% if PUB_DAT %}{{ PUB_DAT|date:"Y-m-d" }}{% else %}{% now "c" %}{% endif %}{% endblock %}
|
||||
{% block Keywords %}типовое строительство, панельные серии, серии домов, серии зданий, типовые дома, типовые здания, каталог серий типового строительства, oknardia, окнардия{% endblock %}
|
||||
|
||||
{% block Author4Meta %}Серии домов : {% endblock %}
|
||||
|
||||
{% block CopyrightAuthor4Meta %}Cерии домов : {% endblock %}
|
||||
|
||||
{% block Top_Meta1 %}{# <!-- BEGIN Дополнительные Metatags --> #}
|
||||
<meta itemprop="author" content="Каталог «Окнардия»" />{% if IMG_FOR_BLOG %}
|
||||
<meta itemprop="image" content="https://oknardia.ru/media/{{ IMG_FOR_BLOG }}" />{% else %}
|
||||
<meta itemprop="image" content="https://oknardia.ru/static/img/MerDY3gpU0w.jpg" />{% endif %}
|
||||
<meta itemprop="datePublished" content="{{ PUB_DAT|date:"Y-m-d" }}" />
|
||||
<span itemprop="publisher" itemscope itemtype="http://schema.org/Organization"><meta itemprop="name" content="Каталог «Окнардия»" /></span>
|
||||
<span itemprop="author" itemscope itemtype="http://schema.org/Person"><meta itemprop="name" content="Каталог «Окнардия»" /></span>
|
||||
<meta itemprop="articleSection" content="Каталог «Окнардия»" />
|
||||
<meta itemprop="headline" content="Серии типового строительства | oknardia.ru" />
|
||||
<meta name="news_keywords" content="{{ HEADER|striptags }}" />
|
||||
<link rel="canonical" href="https://oknardia.ru//catalog/seria/" />
|
||||
<link rel="standout" href="https://oknardia.ru//catalog/seria/" />
|
||||
{# Legacy microdata (itemprop/itemscope) удалена: используем JSON-LD в ADD_TO_HEAD #}
|
||||
<link rel="canonical" href="https://oknardia.ru/catalog/seria/" />
|
||||
<!-- Разметка для соц-сетей Facebook Open Graph -->
|
||||
<meta property="fb:admins" name="admins" content="100000084781830" />
|
||||
<meta property="fb:pages" content="276108456054163" />
|
||||
@@ -36,23 +23,64 @@
|
||||
<meta property="fb:profile_id" name="profile_id" content="https://www.facebook.com/oknardia/" />
|
||||
<meta property="og:locale" content="ru_RU" />
|
||||
<meta property="og:site_name" content="oknardia.ru" />
|
||||
<meta property="og:url" content="https://oknardia.ru//catalog/seria/" />
|
||||
<meta property="og:url" content="https://oknardia.ru/catalog/seria/" />
|
||||
<meta property="og:type" content="article" />
|
||||
<meta property="og:title" content="Каталог «Окнардия» | oknardia.ru" />
|
||||
<meta property="og:description" content="Серии типового строительства, типовые проекты жилого строительства, вхождение стандартных оконных проёмов и балконных блоков в планировки типовых квартир серии, графики ввода в эксплуатацию зданий серии, география строительства, износ жилого фонда..." />
|
||||
<meta property="og:image" content="{% if IMG_FOR_BLOG %}https://oknardia.ru/media/{% endif %}{{ IMG_FOR_BLOG|default:'https://oknardia.ru/static/img/MerDY3gpU0w.jpg' }}" />
|
||||
<link rel="image_src" href="{% if IMG_FOR_BLOG %}https://oknardia.ru/media/{% endif %}{{ IMG_FOR_BLOG|default:'https://oknardia.ru/static/img/MerDY3gpU0w.jpg' }}" />
|
||||
<meta property="og:title" content="Каталог типовых серий домов | oknardia.ru" />
|
||||
<meta property="og:description" content="Серии типового строительства, планировки и ссылки на подробные страницы серий домов с данными по стандартным оконным проёмам." />
|
||||
<meta property="og:image" content="https://oknardia.ru/static/img/MerDY3gpU0w.jpg" />
|
||||
<link rel="image_src" href="https://oknardia.ru/static/img/MerDY3gpU0w.jpg" />
|
||||
<!-- Разметка для соц-сетей Twitter Card -->
|
||||
<meta name="twitter:title" content="Каталог типовых серий домов | oknardia.ru" />
|
||||
<meta name="twitter:description" content="Серии типового строительства, типовые проекты жилого строительства, вхождение стандартных оконных проёмов и балконных блоков в планировки типовых квартир серии, графики ввода в эксплуатацию зданий серии, география строительства, износ жилого фонда..." />
|
||||
<meta name="twitter:description" content="Каталог типовых серий домов России: список серий и переходы на подробные страницы с планировками и окнами." />
|
||||
<meta name="twitter:card" content="summary">
|
||||
<meta name="twitter:site" content="@oknardia" />
|
||||
<meta name="twitter:domain" content="oknardia.ru" />
|
||||
<meta property="twitter:url" content="{% if IMG_FOR_BLOG %}https://oknardia.ru/media/{% endif %}{{ IMG_FOR_BLOG|default:'https://oknardia.ru/static/img/MerDY3gpU0w.jpg' }}" />
|
||||
<meta name="relap-image" content="{% if IMG_FOR_BLOG %}https://oknardia.ru/media/{% endif %}{{ IMG_FOR_BLOG|default:'https://oknardia.ru/static/img/MerDY3gpU0w.jpg' }}">
|
||||
<meta property="twitter:url" content="https://oknardia.ru/catalog/seria/" />
|
||||
<meta name="twitter:image" content="https://oknardia.ru/static/img/MerDY3gpU0w.jpg" />
|
||||
<meta name="relap-image" content="https://oknardia.ru/static/img/MerDY3gpU0w.jpg">
|
||||
{# <!-- END Дополнительные Metatags --> #}{% endblock %}
|
||||
|
||||
|
||||
{% block ADD_TO_HEAD %}{% comment %}
|
||||
JSON-LD для страницы списка типовых серий домов.
|
||||
CollectionPage + ItemList помогают поисковику трактовать страницу как каталог сущностей.
|
||||
{% endcomment %}
|
||||
<script type="application/ld+json">
|
||||
{
|
||||
"@context": "https://schema.org",
|
||||
"@type": "CollectionPage",
|
||||
"name": "Каталог серий типового строительства",
|
||||
"description": "Список типовых серий домов России с переходом на подробные страницы серий.",
|
||||
"url": "https://oknardia.ru/catalog/seria/",
|
||||
"inLanguage": "ru-RU",
|
||||
"isPartOf": {
|
||||
"@type": "WebSite",
|
||||
"name": "Окнардия",
|
||||
"url": "https://oknardia.ru"
|
||||
},
|
||||
"mainEntity": {
|
||||
"@type": "ItemList",
|
||||
"name": "Типовые серии домов",
|
||||
"numberOfItems": {{ SERIAS|length }},
|
||||
"itemListElement": [
|
||||
{% for i in SERIAS %}
|
||||
{
|
||||
"@type": "ListItem",
|
||||
"position": {{ forloop.counter }},
|
||||
"item": {
|
||||
"@type": "Thing",
|
||||
"name": "Серия {{ i.NAME|escapejs }}",
|
||||
"url": "https://oknardia.ru/catalog/seria/{{ i.NAME_T }}/all{{ i.ID }}",
|
||||
"image": "https://oknardia.ru/media/{{ i.URL }}"
|
||||
}
|
||||
}{% if not forloop.last %},{% endif %}
|
||||
{% endfor %}
|
||||
]
|
||||
}
|
||||
}
|
||||
</script>
|
||||
{% endblock %}
|
||||
|
||||
|
||||
{% block Main_Content %}
|
||||
<div class="container-fluid">
|
||||
{# <!--- Хлебные крошки: НАЧАЛО --> #}<div class="row">
|
||||
|
||||
@@ -8,26 +8,16 @@
|
||||
|
||||
{% block Keywords %}типовые окна, размеры окон, оконные проемы, балконный блок, стандартные окна, размеры окон в панельном доме, серия дома, каталог окон, схемы открывания окон, П-44, II-49, 1-515, oknardia, окнардия{% endblock %}
|
||||
|
||||
{% block Date4Meta %}{{ PUB_DAT|date:"Y-m-d" }}{% endblock %}
|
||||
|
||||
{% block Last4Meta %}{{ PUB_DAT|date:"Y-m-d" }}{% endblock %}
|
||||
{# Date4Meta/Last4Meta не переопределяем: используем дефолт из base.html #}
|
||||
|
||||
{% block Author4Meta %}: Каталог «Окнардия»{% endblock %}
|
||||
|
||||
{% block CopyrightAuthor4Meta %}: Каталог «Окнардия»{% endblock %}
|
||||
|
||||
{% block Top_Meta1 %}{# <!-- BEGIN Дополнительные Metatags --> #}
|
||||
<meta itemprop="author" content="Каталог «Окнардия»" />{% if IMG_FOR_BLOG %}
|
||||
<meta itemprop="image" content="https://oknardia.ru/media/{{ IMG_FOR_BLOG }}" />{% else %}
|
||||
<meta itemprop="image" content="https://oknardia.ru/static/img/MerDY3gpU0w.jpg" />{% endif %}
|
||||
<meta itemprop="datePublished" content="{{ PUB_DAT|date:"Y-m-d" }}" />
|
||||
<span itemprop="publisher" itemscope itemtype="http://schema.org/Organization"><meta itemprop="name" content="Каталог «Окнардия»" /></span>
|
||||
<span itemprop="author" itemscope itemtype="http://schema.org/Person"><meta itemprop="name" content="Каталог «Окнардия»" /></span>
|
||||
<meta itemprop="articleSection" content="Каталог «Окнардия»" />
|
||||
<meta itemprop="headline" content="Каталог «Окнардия»: стандартные оконные проёмы типовых серий домов..." />
|
||||
{# Legacy microdata (itemprop/itemscope) удалена: используем JSON-LD в ADD_TO_HEAD #}
|
||||
<meta name="news_keywords" content="{{ HEADER|striptags }}" />
|
||||
<link rel="canonical" href="https://oknardia.ru//catalog/" />
|
||||
<link rel="standout" href="https://oknardia.ru//catalog/" />
|
||||
<link rel="canonical" href="https://oknardia.ru/catalog/standard_opening" />
|
||||
<!-- Разметка для соц-сетей Facebook Open Graph -->
|
||||
<meta property="fb:admins" name="admins" content="100000084781830" />
|
||||
<meta property="fb:pages" content="276108456054163" />
|
||||
@@ -35,21 +25,67 @@
|
||||
<meta property="fb:profile_id" name="profile_id" content="https://www.facebook.com/oknardia/" />
|
||||
<meta property="og:locale" content="ru_RU" />
|
||||
<meta property="og:site_name" content="oknardia.ru" />
|
||||
<meta property="og:url" content="https://oknardia.ru//catalog/" />
|
||||
<meta property="og:url" content="https://oknardia.ru/catalog/standard_opening" />
|
||||
<meta property="og:type" content="article" />
|
||||
<meta property="og:title" content="Каталог «Окнардия» | oknardia.ru" />
|
||||
<meta property="og:description" content="Каталог «Окнардия»: стандартные оконные проёмы типовых серий домов..." />
|
||||
<meta property="og:image" content="{% if IMG_FOR_BLOG %}https://oknardia.ru/media/{% endif %}{{ IMG_FOR_BLOG|default:"https://oknardia.ru/static/img/MerDY3gpU0w.jpg" }}" />
|
||||
<link rel="image_src" href="{% if IMG_FOR_BLOG %}https://oknardia.ru/media/{% endif %}{{ IMG_FOR_BLOG|default:"https://oknardia.ru/static/img/MerDY3gpU0w.jpg" }}" />
|
||||
<meta property="og:title" content="Каталог «Окнардия»: стандартные оконные проёмы типовых серий домов | oknardia.ru" />
|
||||
<meta property="og:description" content="Каталог стандартных оконных проёмов и балконных блоков: размеры, схемы открывания и серии домов, в которых они встречаются." />
|
||||
<meta property="og:image" content="https://oknardia.ru/static/img/MerDY3gpU0w.jpg" />
|
||||
<link rel="image_src" href="https://oknardia.ru/static/img/MerDY3gpU0w.jpg" />
|
||||
<!-- Разметка для соц-сетей Twitter Card -->
|
||||
<meta name="twitter:title" content="Каталог «Окнардия»: стандартные оконные проёмы типовых серий домов... | oknardia.ru"/>
|
||||
<meta name="twitter:description" content="Каталог «Окнардия»: стандартные оконные проёмы типовых серий домов..." />
|
||||
<meta name="twitter:title" content="Стандартные оконные проёмы и балконные блоки | oknardia.ru"/>
|
||||
<meta name="twitter:description" content="Размеры, схемы открывания и типовые серии домов для стандартных оконных проёмов в каталоге Окнардии." />
|
||||
<meta name="twitter:card" content="summary">
|
||||
<meta name="twitter:site" content="@oknardia" />
|
||||
<meta name="twitter:domain" content="oknardia.ru" />
|
||||
<meta property="twitter:url" content="{% if IMG_FOR_BLOG %}https://oknardia.ru/media/{% endif %}{{ IMG_FOR_BLOG|default:'https://oknardia.ru/static/img/MerDY3gpU0w.jpg' }}" />
|
||||
<meta name="relap-image" content="{% if IMG_FOR_BLOG %}https://oknardia.ru/media/{% endif %}{{ IMG_FOR_BLOG|default:'https://oknardia.ru/static/img/MerDY3gpU0w.jpg' }}" />
|
||||
{# <!-- END Дополнительные Metatags --> #}{% endblock %}
|
||||
<meta name="twitter:image" content="https://oknardia.ru/static/img/MerDY3gpU0w.jpg" />
|
||||
<meta name="relap-image" content="https://oknardia.ru/static/img/MerDY3gpU0w.jpg" />
|
||||
{# <!-- END Дополнительные Metатags --> #}{% endblock %}
|
||||
|
||||
{% block ADD_TO_HEAD %}{% comment %}
|
||||
JSON-LD для страницы-списка типовых оконных проемов.
|
||||
CollectionPage + ItemList помогают поисковику понять структуру каталога.
|
||||
{% endcomment %}
|
||||
<script type="application/ld+json">
|
||||
{
|
||||
"@context": "https://schema.org",
|
||||
"@type": "CollectionPage",
|
||||
"name": "Стандартные оконные проёмы и балконные блоки",
|
||||
"description": "Каталог стандартных оконных проёмов и балконных блоков с размерами, схемами открывания и привязкой к типовым сериям домов.",
|
||||
"url": "https://oknardia.ru/catalog/standard_opening",
|
||||
"inLanguage": "ru-RU",
|
||||
"isPartOf": {
|
||||
"@type": "WebSite",
|
||||
"name": "Окнардия",
|
||||
"url": "https://oknardia.ru"
|
||||
},
|
||||
"mainEntity": {
|
||||
"@type": "ItemList",
|
||||
"name": "Типовые оконные проёмы",
|
||||
"numberOfItems": {{ LIST_WIN_OPENING|length }},
|
||||
"itemListElement": [
|
||||
{% for i in LIST_WIN_OPENING %}
|
||||
{
|
||||
"@type": "ListItem",
|
||||
"position": {{ forloop.counter }},
|
||||
"item": {
|
||||
"@type": "Thing",
|
||||
"name": "{{ i.DESCRIPTION|escapejs }}",
|
||||
"description": "{{ i.DESCRIPTION_L|escapejs }}",
|
||||
"url": "https://oknardia.ru/tsena-odnogo-okna/{{ i.W|stringformat:'.0f' }}x{{ i.H|stringformat:'.0f' }}mm/tip{{ i.ID }}",
|
||||
"image": "https://oknardia.ru{% static i.URL2IMG %}",
|
||||
"additionalProperty": [
|
||||
{"@type": "PropertyValue", "name": "Ширина", "value": "{{ i.W|stringformat:'.0f' }} мм"},
|
||||
{"@type": "PropertyValue", "name": "Высота", "value": "{{ i.H|stringformat:'.0f' }} мм"},
|
||||
{"@type": "PropertyValue", "name": "Балконный блок: окно", "value": "{% if i.IS_NEAR_DOOR %}да{% else %}нет{% endif %}"},
|
||||
{"@type": "PropertyValue", "name": "Балконный блок: дверь", "value": "{% if i.IS_DOOR %}да{% else %}нет{% endif %}"}
|
||||
]
|
||||
}
|
||||
}{% if not forloop.last %},{% endif %}
|
||||
{% endfor %}
|
||||
]
|
||||
}
|
||||
}
|
||||
</script>
|
||||
{% endblock %}
|
||||
|
||||
{% block Main_Content %}
|
||||
<div class="container-fluid">
|
||||
|
||||
@@ -7,9 +7,107 @@
|
||||
|
||||
{% block Add_Body_Attribute %} style="padding-top:70px;"{% endblock %}
|
||||
|
||||
{% block Description %}Дома серии {{ THIS_SERIA_NAME }}: детальная информация{% endblock %}
|
||||
{% block Description %}Серия {{ THIS_SERIA_NAME }}: типовые размеры оконных проёмов, схемы открывания, планировки квартир, карта зданий, статистика и цены на замену окон в домах этой серии.{% endblock %}
|
||||
|
||||
{% block Keywords %} {{ THIS_SERIA_NAME }}, серия {{ THIS_SERIA_NAME }}, проект {{ THIS_SERIA_NAME }}, года постройки зданий серии {{ THIS_SERIA_NAME }}, размеры окон в домах серии {{ THIS_SERIA_NAME }}, оконные проемы зданий серии {{ THIS_SERIA_NAME }}, дома серии {{ THIS_SERIA_NAME }} на карте, установка окон, цены на пластиковые окна{% endblock %}
|
||||
{% block Keywords %}{{ THIS_SERIA_NAME }}, серия {{ THIS_SERIA_NAME }}, проект {{ THIS_SERIA_NAME }}, года постройки зданий серии {{ THIS_SERIA_NAME }}, размеры окон в домах серии {{ THIS_SERIA_NAME }}, оконные проемы зданий серии {{ THIS_SERIA_NAME }}, дома серии {{ THIS_SERIA_NAME }} на карте, установка окон, цены на пластиковые окна{% endblock %}
|
||||
|
||||
{% block Top_Meta1 %}
|
||||
{# Canonical — предотвращает дубли при возможных GET-параметрах #}<link rel="canonical" href="https://oknardia.ru/catalog/seria/{{ THIS_SERIA_NAME_T }}/all{{ THIS_SERIA_ID }}/" />
|
||||
<!-- Разметка для соц-сетей Facebook Open Graph -->
|
||||
<meta property="fb:admins" name="admins" content="100000084781830" />
|
||||
<meta property="fb:pages" content="276108456054163" />
|
||||
<meta property="fb:app_id" content="258354027974262" />
|
||||
<meta property="fb:profile_id" name="profile_id" content="https://www.facebook.com/oknardia/" />
|
||||
<meta property="og:type" content="article" />
|
||||
<meta property="og:site_name" content="oknardia.ru" />
|
||||
<meta property="og:locale" content="ru_RU" />
|
||||
<meta property="og:url" content="https://oknardia.ru/catalog/seria/{{ THIS_SERIA_NAME_T }}/all{{ THIS_SERIA_ID }}/" />
|
||||
<meta property="og:title" content="Серия {{ THIS_SERIA_NAME }}: размеры окон, планировки и карта домов | oknardia.ru" />
|
||||
<meta property="og:description" content="Типовые размеры и схемы открывания оконных проёмов в домах серии {{ THIS_SERIA_NAME }}. Карта зданий, статистика ввода в эксплуатацию по годам и цены на замену окон." />{% if THIS_SERIA_IMAGE_URL and THIS_SERIA_IMAGE_URL != "null.gif" %}
|
||||
<meta property="og:image" content="https://oknardia.ru/media/{{ THIS_SERIA_IMAGE_URL }}" />
|
||||
<link rel="image_src" href="https://oknardia.ru/media/{{ THIS_SERIA_IMAGE_URL }}" />{% else %}
|
||||
<meta property="og:image" content="https://oknardia.ru/static/img/MerDY3gpU0w.jpg" />
|
||||
<link rel="image_src" href="https://oknardia.ru/static/img/MerDY3gpU0w.jpg" />{% endif %}
|
||||
<!-- Разметка для соц-сетей Twitter Card -->
|
||||
<meta name="twitter:card" content="summary" />
|
||||
<meta name="twitter:site" content="@oknardia" />
|
||||
<meta name="twitter:title" content="Серия {{ THIS_SERIA_NAME }}: размеры окон, планировки и карта домов | oknardia.ru" />
|
||||
<meta name="twitter:description" content="Типовые оконные проёмы, схемы открывания и цены на замену окон в домах серии {{ THIS_SERIA_NAME }}." />{% if THIS_SERIA_IMAGE_URL and THIS_SERIA_IMAGE_URL != "null.gif" %}
|
||||
<meta name="twitter:image" content="https://oknardia.ru/media/{{ THIS_SERIA_IMAGE_URL }}" />{% else %}
|
||||
<meta name="twitter:image" content="https://oknardia.ru/static/img/MerDY3gpU0w.jpg" />{% endif %}
|
||||
<meta property="twitter:url" content="https://oknardia.ru/catalog/seria/{{ THIS_SERIA_NAME_T }}/all{{ THIS_SERIA_ID }}/" />
|
||||
{% endblock %}
|
||||
|
||||
{% block ADD_TO_HEAD %}{% comment %}
|
||||
JSON-LD для страницы серии типового строительства.
|
||||
BreadcrumbList: Google показывает хлебные крошки в сниппете вместо сырого URL — это важно,
|
||||
т.к. URL вида /catalog/seria/p-44/all7 выглядит некрасиво без расшифровки.
|
||||
TechArticle: описывает страницу как технический справочный материал по серии домов.
|
||||
{% endcomment %}
|
||||
{# JSON-LD: BreadcrumbList #}<script type="application/ld+json">
|
||||
{
|
||||
"@context": "https://schema.org",
|
||||
"@type": "BreadcrumbList",
|
||||
"itemListElement": [
|
||||
{
|
||||
"@type": "ListItem",
|
||||
"position": 1,
|
||||
"name": "Главная",
|
||||
"item": "https://oknardia.ru/"
|
||||
},
|
||||
{
|
||||
"@type": "ListItem",
|
||||
"position": 2,
|
||||
"name": "Каталог",
|
||||
"item": "https://oknardia.ru/catalog/"
|
||||
},
|
||||
{
|
||||
"@type": "ListItem",
|
||||
"position": 3,
|
||||
"name": "Типовые серии домов",
|
||||
"item": "https://oknardia.ru/catalog/seria/"
|
||||
},
|
||||
{
|
||||
"@type": "ListItem",
|
||||
"position": 4,
|
||||
"name": "Серия {{ THIS_SERIA_NAME|escapejs }}",
|
||||
"item": "https://oknardia.ru/catalog/seria/{{ THIS_SERIA_NAME_T }}/all{{ THIS_SERIA_ID }}/"
|
||||
}
|
||||
]
|
||||
}
|
||||
</script>
|
||||
{# JSON-LD: TechArticle — технический справочный материал о серии типового строительства #}<script type="application/ld+json">
|
||||
{
|
||||
"@context": "https://schema.org",
|
||||
"@type": "TechArticle",
|
||||
"inLanguage": "ru-RU",
|
||||
"headline": "Серия {{ THIS_SERIA_NAME|escapejs }}: типовые размеры оконных проёмов, схемы открывания и карта зданий",
|
||||
"description": "Технические характеристики оконных проёмов в домах типовой серии {{ THIS_SERIA_NAME|escapejs }}: размеры, схемы открывания, планировки квартир, карта зданий на территории России. Статистика ввода зданий в эксплуатацию по годам.",
|
||||
"url": "https://oknardia.ru/catalog/seria/{{ THIS_SERIA_NAME_T }}/all{{ THIS_SERIA_ID }}/", {% if THIS_SERIA_IMAGE_URL and THIS_SERIA_IMAGE_URL != "null.gif" %}
|
||||
"image": "https://oknardia.ru/media/{{ THIS_SERIA_IMAGE_URL }}",{% else %}
|
||||
"image": "https://oknardia.ru/static/img/MerDY3gpU0w.jpg",{% endif %}
|
||||
"about": {
|
||||
"@type": "Thing",
|
||||
"name": "Серия типового строительства {{ THIS_SERIA_NAME|escapejs }}",
|
||||
"description": "Типовой проект жилых зданий серии {{ THIS_SERIA_NAME|escapejs }} в России"
|
||||
},
|
||||
"publisher": {
|
||||
"@type": "Organization",
|
||||
"name": "Окнардия",
|
||||
"url": "https://oknardia.ru",
|
||||
"logo": {
|
||||
"@type": "ImageObject",
|
||||
"url": "https://oknardia.ru/static/img/MerDY3gpU0w.jpg"
|
||||
}
|
||||
},
|
||||
"isPartOf": {
|
||||
"@type": "WebSite",
|
||||
"name": "Окнардия — агрегатор цен на замену окон",
|
||||
"url": "https://oknardia.ru"
|
||||
}
|
||||
}
|
||||
</script>
|
||||
{% endblock %}
|
||||
|
||||
{% block Top_JS1 %}
|
||||
<script type="text/javascript">
|
||||
@@ -39,7 +137,7 @@
|
||||
|
||||
<div class="row">
|
||||
<div class="col-lg-10">
|
||||
<h2 class="header">Дома серии {{ THIS_SERIA_NAME }}: типовые размеры и схемы открывания</h2>
|
||||
<h2 class="header">Дома серии {{ THIS_SERIA_NAME }}: типовые размеры и схемы открывания</h2>
|
||||
</div>
|
||||
<div class="col-lg-12" style="padding:1em 0 0 0;margin-left:-1em">
|
||||
{% include 'report/show_big_flap_pictures.html' %}
|
||||
@@ -48,7 +146,7 @@
|
||||
|
||||
<div class="row">
|
||||
<div class="col-lg-8 col-xs-12 col-md-offset-1">
|
||||
<h3 class="header">Оконные проёмы в типовых квартирах <nobr>серии {{ THIS_SERIA_NAME }}</nobr></h3>
|
||||
<h3 class="header">Оконные проёмы в типовых квартирах <nobr>серии {{ THIS_SERIA_NAME }}</nobr></h3>
|
||||
</div>
|
||||
<div class="col-lg-8 col-xs-12 col-md-offset-1">
|
||||
<!--- прешаблон начало ---><table style="padding:2px;">{% templatetag openblock %} for row in TABLE_OF_WINDOWS {% templatetag closeblock %}
|
||||
|
||||
@@ -183,6 +183,9 @@ def catalog_profile_model(request: HttpRequest, manufacture_id: int, manufacture
|
||||
"CATALOG_URL": f"{manufacture_id}-{manufacture_name}",
|
||||
"CATALOG_URL2": f"{manufacture_id}-{manufacture_name}/{model_id}-{model_name}",
|
||||
"PROFILE_RATING_STARS": get_rating_set_for_stars(q_pvc_by_id.fProfileRating)}
|
||||
# Размер выборки для алгоритмического рейтинга: количество моделей профилей в каталоге.
|
||||
# Используется в JSON-LD (ratingCount) и поясняющем тексте на странице.
|
||||
to_template["PROFILE_RATING_SAMPLE_SIZE"] = PVCprofiles.objects.count()
|
||||
try:
|
||||
got_json = json.loads(q_pvc_by_id.sProfileDescription)
|
||||
# раскрашиваем кружочки рейтинга напротив характеристик профиля
|
||||
@@ -299,7 +302,8 @@ def catalog_profile_manufacture(request: HttpRequest, manufacture_id: int, manuf
|
||||
if catalog_entry is None or catalog_entry.kBlogCatalog is None:
|
||||
raise ObjectDoesNotExist
|
||||
manufacture_description = catalog_entry.kBlogCatalog
|
||||
to_template.update({'PUB_DAT': manufacture_description.dPostDataModify})
|
||||
# PUB_DAT убран: на странице производителя дата меняется и от рейтинга, и от статьи,
|
||||
# поэтому Date4Meta/Last4Meta удалены из шаблона — base.html использует {% now %} по умолчанию.
|
||||
if PATH_FOR_IMG_BLOG in (manufacture_description.sImgForBlogSocial or ""):
|
||||
to_template.update({'IMG_FOR_BLOG': manufacture_description.sImgForBlogSocial})
|
||||
content = re.sub(r'<cut[\s\S]*>', '', manufacture_description.sPostContent, 0, re.IGNORECASE)
|
||||
|
||||
@@ -235,7 +235,8 @@ def seria_nav(seria_id: int = DEFAULT_SERIA_ID_FOR_CATALOG) -> tuple[int, dict]:
|
||||
"""
|
||||
q_seria = list(
|
||||
Seria_Info.objects.filter(id=F("kRoot_id"))
|
||||
.only("id", "sName", "sSeriaDescription", "kRoot_id", "kParent_id")
|
||||
# sURL2IMG нужен для OG-image в шаблоне seria_info
|
||||
.only("id", "sName", "sSeriaDescription", "kRoot_id", "kParent_id", "sURL2IMG")
|
||||
.order_by("sName")
|
||||
)
|
||||
if not q_seria:
|
||||
@@ -292,8 +293,21 @@ def all_seria_nav(seria_id: int, q_seria) -> tuple[int, dict]:
|
||||
"SERIA_L": pytils.translit.slugify(seria_name),
|
||||
}
|
||||
if seria_id_value == seria_id:
|
||||
this_return.update({"THIS_SERIA_NAME": seria_name,
|
||||
"THIS_SERIA_DESCRIPTION": seria_description})
|
||||
# Изображение серии: используется в OG-image в шаблоне seria_info
|
||||
seria_image = (
|
||||
count_seria.get("sURL2IMG")
|
||||
if isinstance(count_seria, dict)
|
||||
else count_seria.sURL2IMG
|
||||
)
|
||||
this_return.update({
|
||||
"THIS_SERIA_NAME": seria_name,
|
||||
"THIS_SERIA_DESCRIPTION": seria_description,
|
||||
# ID и slug серии нужны для canonical URL и JSON-LD в шаблоне
|
||||
"THIS_SERIA_ID": seria_id_value,
|
||||
"THIS_SERIA_NAME_T": pytils.translit.slugify(seria_name),
|
||||
# URL изображения серии для OG-тегов (путь относительно /media/)
|
||||
"THIS_SERIA_IMAGE_URL": str(seria_image) if seria_image else "",
|
||||
})
|
||||
seria_nav_dim.append(one_seria)
|
||||
this_return.update({"SERIA_NAV_DIM": seria_nav_dim})
|
||||
return seria_id, this_return
|
||||
|
||||
Reference in New Issue
Block a user