Наши разработки

Каталог плагинов от TCSE

Вывод содержимого сайта только для определенного браузера - Плагин browser-selection by TCSE


Плагин browser-selection by TCSE это еще один хак для mobiledetect.class.php встроенного в DLE 15.



Добавляем поддержку тегов для мобильных веб-браузеров Chrome, Mobile Safari, Firefox и Opera.

[telegram-bot] текст [/telegram-bot]

выводят текст заключенных в них, в случае если устройство посетителя сайта использует веб-браузер внутри Telegram

[not-telegram-bot] текст [/not-telegram-bot]

выводят текст заключенных в них, в случае если устройство посетителя сайта не использует веб-браузер внутри Telegram

[chrome] текст [/chrome]

выводят текст заключенных в них, в случае если устройство посетителя сайта использует веб-браузер Chrome

[not-chrome] текст [/not-chrome]

выводят текст заключенных в них, в случае если устройство посетителя сайта не использует веб-браузер Chrome

[safari] текст [/safari]

выводят текст заключенных в них, в случае если устройство посетителя сайта использует веб-браузер Mobile Safari

[not-safari] текст [/not-safari]

выводят текст заключенных в них, в случае если устройство посетителя сайта не использует веб-браузер Mobile Safari

[firefox] текст [/firefox]

отображает содержимое, если веб-браузер Firefox

[not-firefox] текст [/not-firefox]

отображает содержимое, если веб-браузер не Firefox

[opera] текст [/opera]

отображает содержимое, если веб-браузер Opera

[not-opera] текст [/not-opera]

отображает содержимое, если веб-браузер не Opera

Для понимания принципов работы плагина несколько поясняющих картинок.
В шаблон сайта (например в файле main.tpl) везде, где работают стандартные теги движка [android]текст[/android] или [not-smartphone]текст[/not-smartphone] можно использовать новые теги данного плагина.





Обратите внимание, как именно отображается информация о веб-браузере Opera. Тут нет никакой ошибки, так как в борьбе с дискриминацией со стороны Google все веб-браузер собранные на основе исходников проекта Chromium почти все такие браузер маскируются под стандартный Chrome.



Установить плагин можно из архива в репозитории https://github.com/tcse/DLE-browser-selection/releases/download/


Краткое видео с демонстрацией работы плагина
[media=https://www.youtube.com/watch?v=adqZYmZeofk]

Скачать плагин


[attachment=49:browser-selection_v0_1.xml] - только xml
[attachment=50:browser-selection_v0_1.zip] - плагин с иконкой
[attachment=93:browser-selection для DLE15.3 v0.2.153] - только xml (Chrome и Safari)
[attachment=94:browser-selection для DLE15.3 v0.2.153.2] - только xml (Chrome,Safari, Firefox, Opera)
[attachment=95:browser-selection для DLE15.3 v0.2.153.2] - плагин с иконкой (Chrome,Safari, Firefox, Opera)
[attachment=108:browser-selection-by-tcse-0_3_181_2.xml] - только xml (Yandex Bro, Telegram bot, Chrome,Safari, Firefox, Opera)




Пример кода для тестирования тегов внутри ваших шаблонов:

<p>
Теги плагина browser-selection<br>
</p>
<p>
[chrome]Ваш браузер: <span style="color: green;">chrome</span> <br>[/chrome]
[safari]Ваш браузер:  <span style="color: green;">mobile safari</span>  <br>[/safari]
[not-safari]это не  <span style="color: red;">mobile safari</span>  <br>[/not-safari]
[not-chrome]это не  <span style="color: red;">Google Chrome</span>  <br>[/not-chrome]
[firefox]Ваш браузер: <span style="color: green;">firefox</span> <br>[/firefox]
[opera]Ваш браузер:  <span style="color: green;">opera</span>  <br>[/opera]
[not-firefox]это не  <span style="color: red;">firefox</span>  <br>[/not-firefox]
[not-opera]это не  <span style="color: red;">opera</span>  <br>[/not-opera]
</p>




Что бы по аналогии добавить поддержку других версий веб-браузеров, прочтите документацию на сайте http://mobiledetect.net

В текущей версии http://mobiledetect.net @version 2.8.34
поддерживаются веб-браузеры


Но если посмотреть статистику Рунета https://www.liveinternet.ru/stat/ru/browsers.html?period=month


То включать поддержку тегов для чего-либо, кроме Chrome и Mobile Safari нужно, разве, что для Яндекс Браузера. Но для него нет описания в mobiledetect.net


Репозиторий плагина https://github.com/tcse/DLE-browser-selection


Версия 0.3.181.2 от 2025-08-12



✅ Что нового в версии 0.3

✅ Добавлена поддержка Яндекс.Браузера (на Android)
✅ Добавлена поддержка Telegram-бота / встроенного браузера Telegram
✅ Совместимость с Mobile_Detect 4.8.x
✅ Автоматическое определение через isYandexBrowser() и isTelegramBot()
✅ Поддержка DLE 18+


⚙️ Как работает

Плагин:

Расширяет класс Mobile_Detect новыми правилами и методами.
Добавляет свойства в dle_template ($this->yandex_bro, $this->telegram_bot).
Обрабатывает теги в шаблонах через str_ireplace и preg_replace.

⚠️ Ограничение iOS:
На iPhone Яндекс.Браузер и Telegram используют встроенный WebView от Safari, поэтому не содержат YaBrowser в User-Agent. Определение работает только на Android.


📦 Установка

Перейдите в Админку DLE → Установка плагинов.
Загрузите файл browser-selection_v0.3.xml.
Плагин автоматически:
Добавит правила в engine/classes/mobiledetect/MobileDetect.php
Расширит функционал engine/classes/templates.class.php

Готово! Можно использовать теги в шаблонах.

🛠 Примеры использования
Перенаправление из Telegram, например в шаблоне TG-IV
вставить
[not-telegram-bot]
<script>window.location.replace("{full-link}");</script>
[/not-telegram-bot]


чтобы при открытии версии предназначенной для телеграм в обычном веб-браузере происходило перенаправление на основную версию сайта.

Контент только для Яндекс.Браузера
[yandex-bro]
Установите наше расширение для Яндекс.Браузера!
[/yandex-bro]



Ну а для тех, кому не нужен плагин, а определение ботом телеграм пригодиться, можно использовать вот такой скрипт

✅ Решение: Чистый JS-редирект (без PHP, без DLE)

<script>
// Проверяем, открыто ли в Telegram (встроенный браузер)
function isInTelegram() {
    const ua = navigator.userAgent || navigator.vendor || window.opera;
    return /TelegramBot|Telegram/i.test(ua) && /Mobile|iP(hone|od)|Android|BlackBerry/.test(ua);
}

// Если НЕ в Telegram — делаем редирект
if (!isInTelegram()) {
    window.location.replace("{full-link}");
}
</script>


подходит для случаев когда в телеге показываем ссылку https://tcse-cms.com/tg-iv,2322-.html
а посетите вместо клика по ПОСМОТРЕТЬ в режиме TG IV нажимают на обычную ссылку





с этим кодом они будут перенаправлены на обычную версию сайта.

Чисто технически может пригодится и обратный код
для перенаправления на Instant View при открытии обычной ссылки на сайт в телеге, но не факт что сработает.

<script>
// Проверяем, открыто ли в Telegram
function isInTelegram() {
    const ua = navigator.userAgent || navigator.vendor || window.opera;
    return /TelegramBot|Telegram/i.test(ua) && /Mobile|iP(hone|od)|Android|BlackBerry/.test(ua);
}

// Если ДА — в Telegram → редиректим на Instant View или t.me
if (isInTelegram()) {
    window.location.replace("/tg-iv,{news-id}-.html"); // Замени на свою ссылку Instant View
}
</script>

Источник:

https://tcse-cms.com/21,31/1438-browser-selection-by-tcse.html

Другие материалы на сайте TCSE разработка и техническое сопровождение сайтов на основе DLE (DataLife Engine)