Журнал
Философия
Поддержка
Продукты

Пользовательское соглашение

Настоящее Пользовательское Соглашение (Далее Соглашение) регулирует отношения между ООО “Сомна Секра” (далее Somnasecra или Администрация) с одной стороны и пользователем сайта с другой.
Сайт Somnasecra не является средством массовой информации.

Используя сайт, Вы соглашаетесь с условиями данного соглашения.
Если Вы не согласны с условиями данного соглашения, не используйте сайт Somnasecra!

Права и обязанности сторон

Пользователь имеет право:
– осуществлять поиск информации на сайте
– получать информацию на сайте
– копировать информацию на другие сайты с указанием источника
– копировать информацию на другие сайты с разрешения Администрации сайта
– копировать информацию на другие сайты с разрешения правообладателя
– использовать информацию сайта в личных некоммерческих целях

Администрация имеет право:
– по своему усмотрению и необходимости создавать, изменять, отменять правила
– ограничивать доступ к любой информации на сайте
– создавать, изменять, удалять информацию

Пользователь обязуется:
– обеспечить достоверность предоставляемой информации
– не копировать информацию с других источников
– при копировании информации с других источников, включать в её состав информацию об авторе
– не распространять информацию, которая направлена на пропаганду войны, разжигание национальной, расовой или религиозной ненависти и вражды, а также иной информации, за распространение которой предусмотрена уголовная или административная ответственность
– не нарушать работоспособность сайта
– не создавать несколько учётных записей на Сайте, если фактически они принадлежат одному и тому же лицу
– не совершать действия, направленные на введение других Пользователей в заблуждение
– не передавать в пользование свою учетную запись и/или логин и пароль своей учетной записи третьим лицам
– не регистрировать учетную запись от имени или вместо другого лица за исключением случаев, предусмотренных законодательством РФ
– не размещать материалы рекламного, эротического, порнографического или оскорбительного характера, а также иную информацию, размещение которой запрещено или противоречит нормам действующего законодательства РФ
– не использовать скрипты (программы) для автоматизированного сбора информации и/или взаимодействия с Сайтом и его Сервисами

Администрация обязуется:
– поддерживать работоспособность сайта за исключением случаев, когда это невозможно по независящим от Администрации причинам.

Ответственность сторон

– пользователь лично несет полную ответственность за распространяемую им информацию
– администрация не несет никакой ответственности за достоверность информации, скопированной из других источников
– администрация не несёт ответственность за несовпадение ожидаемых Пользователем и реально полученных услуг
– администрация не несет никакой ответственности за услуги, предоставляемые третьими лицами
– в случае возникновения форс-мажорной ситуации (боевые действия, чрезвычайное положение, стихийное бедствие и т. д.) Администрация не гарантирует сохранность информации, размещённой Пользователем, а также бесперебойную работу информационного ресурса

Условия действия Соглашения

Данное Соглашение вступает в силу при любом использовании данного сайта.
Соглашение перестает действовать при появлении его новой версии.
Администрация оставляет за собой право в одностороннем порядке изменять данное соглашение по своему усмотрению.
Администрация не оповещает пользователей об изменении в Соглашении.

прямо перед закрывающим * (например, через Elementor -> Настройки сайта -> Пользовательский код -> "Перед "). * * Ничего дополнительно настраивать не нужно — скрипт сам находит домен CDN и origin. */ (function () { "use strict"; // Домен CDN, который нужно подменять при ошибке var CDN_HOST = "deekricrodoqueju.begetcdn.cloud"; // Основной домен сайта (origin), куда переключаемся при сбое var ORIGIN_HOST = "somnasecra.ru"; // Чтобы не зациклиться, если и origin вдруг не ответит — помечаем картинку как "уже пробовали" var FALLBACK_ATTR = "data-cdn-fallback-tried"; // URL, куда отправляется "маячок" при срабатывании фоллбека. // Это стандартный WordPress AJAX-обработчик — работает сразу после установки PHP-сниппета // "CDN Fallback Monitor" через WPCode, без дополнительной настройки. var LOG_ENDPOINT = "https://somnasecra.ru/wp-admin/admin-ajax.php?action=cdn_fallback_log"; function logFallback(originalUrl, newUrl) { // Видно сразу в DevTools -> Console у любого, кто откроет консоль в момент сбоя console.warn("[CDN Fallback] Переключение с CDN на origin:", originalUrl, "->", newUrl); if (!LOG_ENDPOINT) return; var payload = JSON.stringify({ original_url: originalUrl, fallback_url: newUrl, page_url: window.location.href, timestamp: new Date().toISOString(), user_agent: navigator.userAgent, }); // sendBeacon — специально для таких "маячков": не блокирует страницу, // отправляется даже если пользователь тут же закроет вкладку try { if (navigator.sendBeacon) { var blob = new Blob([payload], { type: "application/json" }); navigator.sendBeacon(LOG_ENDPOINT, blob); } else { // Фоллбек для очень старых браузеров без sendBeacon fetch(LOG_ENDPOINT, { method: "POST", headers: { "Content-Type": "application/json" }, body: payload, keepalive: true, }).catch(function () {}); } } catch (e) { // Если отправка лога сломалась — это не должно ломать сам фоллбек картинки } } function toOriginUrl(cdnUrl) { try { var url = new URL(cdnUrl, window.location.href); if (url.hostname === CDN_HOST) { url.hostname = ORIGIN_HOST; url.protocol = "https:"; return url.toString(); } } catch (e) { // Некорректный URL — просто ничего не делаем } return null; } function handleImageError(img) { // Если уже пробовали фоллбек для этой картинки — не пытаемся снова (защита от бесконечного цикла) if (img.hasAttribute(FALLBACK_ATTR)) { return; } var originUrl = toOriginUrl(img.src); if (originUrl) { logFallback(img.src, originUrl); img.setAttribute(FALLBACK_ATTR, "1"); img.src = originUrl; } // Дополнительно обрабатываем srcset, если он есть (адаптивные картинки) if (img.srcset) { var newSrcset = img.srcset.split(",").map(function (part) { var trimmed = part.trim(); var spaceIndex = trimmed.indexOf(" "); var urlPart = spaceIndex === -1 ? trimmed : trimmed.substring(0, spaceIndex); var sizePart = spaceIndex === -1 ? "" : trimmed.substring(spaceIndex); var replaced = toOriginUrl(urlPart); return (replaced || urlPart) + sizePart; }); img.srcset = newSrcset.join(", "); } } function attachErrorHandler(img) { // Проверяем: относится ли картинка к CDN-домену if (img.src && img.src.indexOf(CDN_HOST) !== -1) { img.addEventListener("error", function () { handleImageError(img); }); } } function scanAllImages() { var images = document.querySelectorAll("img"); images.forEach(attachErrorHandler); } // Обрабатываем все картинки, которые уже есть на странице при загрузке document.addEventListener("DOMContentLoaded", scanAllImages); // Elementor и многие плагины подгружают картинки динамически (карусели, AJAX, попапы) // Поэтому дополнительно следим за новыми картинками через MutationObserver var observer = new MutationObserver(function (mutations) { mutations.forEach(function (mutation) { mutation.addedNodes.forEach(function (node) { if (node.nodeType !== 1) return; // интересуют только элементы, не текстовые узлы if (node.tagName === "IMG") { attachErrorHandler(node); } else if (node.querySelectorAll) { var nestedImages = node.querySelectorAll("img"); nestedImages.forEach(attachErrorHandler); } }); }); }); observer.observe(document.documentElement, { childList: true, subtree: true, }); // На случай, если DOMContentLoaded уже прошёл к моменту подключения скрипта if (document.readyState === "interactive" || document.readyState === "complete") { scanAllImages(); } })();
Мы используем файлы cookie для улучшения работы сайта и аналитики. Подробнее — Политика конфиденциальности.