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

Наши разработки / Скачать модули для DLE

Вывод содержимого сайта только для определенного браузера - Плагин 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]

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


Скачать файл: browser-selection_v0_1.xml [6,06 Kb] (cкачиваний: 165) - только xml
Скачать файл: browser-selection_v0_1.zip [5,59 Kb] (cкачиваний: 139) - плагин с иконкой
Скачать файл: browser-selection для DLE15.3 v0.2.153 [4,02 Kb] (cкачиваний: 33) - только xml (Chrome и Safari)
Скачать файл: browser-selection для DLE15.3 v0.2.153.2 [5,75 Kb] (cкачиваний: 36) - только xml (Chrome,Safari, Firefox, Opera)
Скачать файл: browser-selection для DLE15.3 v0.2.153.2 [7,1 Kb] (cкачиваний: 44) - плагин с иконкой (Chrome,Safari, Firefox, Opera)
Скачать файл: browser-selection-by-tcse-0_3_181_2.xml [9,54 Kb] (cкачиваний: 2) - только 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>
Добавить на главный экран - скрипт для DLE: add-to-homescreen

Для устройств работающих на Android в веб-браузере Chrome можно добавить опцию которая будет помогать сохранять ярлык...

Подробнее
[Перевод] CraSSh: ломаем все современные браузеры вычислениями в CSS

Автор статьи: Константин Сафонов Не хочу читать эту техническую болтовню. Просто повали уже мой браузер. Что такое...

Подробнее
CSS Grid Layout. Быстрый старт

Вступление Всем привет. Февраль-Март 2017 года запомнились для многих, кто работает с HTML и CSS тем, что большинство...

Подробнее
[Перевод] Учим CSS Grid за 5 минут

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

Подробнее
Расширение к браузеру Google Chrome для сайта blogs.smartZone.ru

В своей работе над веб-сайтами мы стараемся предлагать не просто "сайт для компьютера", а комплексное решение, для...

Подробнее
Web-разработка / Url в CSS

Недавно из-за своей невнимательности, наверное, обнаружил забавную вещь в css (поиском искал на Хабре — не нашел). При...

Подробнее

💬 Комментарии

В связи с новыми требованиями законодательства РФ (ФЗ-152, ФЗ «О рекламе») и ужесточением контроля со стороны РКН, мы отключили систему комментариев на сайте.

🔒 Важно Теперь мы не собираем и не храним ваши персональные данные — даже если очень захотим.

💡 Хотите обсудить материал?

Присоединяйтесь к нашему Telegram-каналу:

https://t.me/tcsecms/

Нажмите кнопку ниже — и вы сразу попадёте в чат с комментариями

  1. Интересное решение предложил посетитель Стас

    я пока сделал свое решение.. просто проверяю своим кодом браузер.. и в таком случае пока все работает


    Вместо

    
    if( $mobile_detect->isAndroidOS() ){
         $this->android = true;
       }
    


    Вставить:
    
    $user_agent = $_SERVER["HTTP_USER_AGENT"];
         if (strpos($user_agent, "Firefox") !== false) $browser = "Firefox";
         elseif (strpos($user_agent, "Opera") !== false) $browser = "Opera";
         elseif (strpos($user_agent, "Chrome") !== false) $browser = "Chrome";
         elseif (strpos($user_agent, "MSIE") !== false) $browser = "Internet Explorer";
         elseif (strpos($user_agent, "Safari") !== false) $browser = "Safari";
         else $browser = "Неизвестный";
    
        if ($browser == "Chrome") {
             $this->chrome = true;
        } else {
             $this->chrome = false;
       }
    
    TCSE TCSE 18 сентября 2020 15:50
  2. Что там Яндекс Браузер так и не определить?
    Gus Gus 29 октября 2024 12:51
  3. Что там Яндекс Браузер так и не определить?

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

    открываете https://demo.mobiledetect.net в Яндекс браузере и смотрите информацию

    у меня с телефона выдает следующие:
    устройства: телефон
    Пользователь-агент: Mozilla/5.0 (Linux; arm_64; Android 13; SM-N985F) AppleWebKit/537.36 (KHTML, как Gecko) Chrome/128.0.6613.112 YaBrowser/24.10.1.112.00 SA/3 Mobile Safari/537.36

    есть в самых данных YaBrowser
    но есть ли она в исходном коде mobiledetect?

    https://github.com/serbanghita/Mobile-Detect/tree/4.8.x

    вот тут https://github.com/serbanghita/Mobile-Detect/blob/4.8.x/src/MobileDetect.php самая свежая версия как я понимаю.

    и там все еще нет упоминания про YaBrowser
    TCSE TCSE 29 октября 2024 13:11