Хак для DLE SETXT


Представляем хак для DLE SETXT 2.0 способный сделать вывод разного контента так, что он будет виден только на определенных устройствах и браузерах, которые достаточно выделить с помощью специальных тегов. Благодаря хаку SETXT 2.0 можно вывести всякие сообщения для разных браузеров и операционных систем представленные в списке ниже.

Пример настройки тегов:
В нужном tpl доступен тег (несколько значений можно задавать через запятую):
[setxt browser="opera,yandex" os="windows"]текст[/setxt]Кроме того можно писать так[setxt browser="opera"]текст[/setxt]Или так[setxt os="linux"]текст[/setxt]Или так[setxt browser-not="opera,yandex" os="windows"]текст[/setxt]Кроме того можно писать так[setxt browser-not="opera"]текст[/setxt]Или так[setxt os-not="linux"]текст[/setxt]Или так[setxt browser-not="opera,yandex" os-not="windows"]текст[/setxt]


Приставка -not работает в обратном значении, то есть для всех кроме этих значений покажется текст.

Список значений браузера (слева значения для параметра browser):
  • opera - Opera
  • opera_mini - Opera Mini
  • WebTV - WebTV
  • edge - Edge
  • ie - Internet Explorer
  • pie - Pocket Internet Explorer
  • konqueror - Konqueror
  • icab - iCab
  • omniweb - OmniWeb
  • firebird - Firebird
  • firefox - Firefox
  • iceweasel - Iceweasel
  • shiretoko - Shiretoko
  • mozilla - Mozilla
  • amaya - Amaya
  • lynx - Lynx
  • safari - Safari
  • iphone - iPhone
  • ipod - iPod
  • ipad - iPad
  • chrome - Chrome
  • android - Android
  • google - GoogleBot
  • yahoo - Yahoo! Slurp
  • w3c - W3C Validator
  • blackberry - BlackBerry
  • icecat - IceCat
  • nokia_60 - Nokia S60 OSS Browser
  • nokia - Nokia Browser
  • msn - MSN Browser
  • vivalidi - Vivalidi
  • playstation - PlayStation
  • yandex - Yandex


Список значений операционной системы (слева значения для параметра os):
  • windows - Windows
  • windows_ce - Windows CE
  • apple - Apple
  • linux - Linux
  • os2 - OS/2
  • beos - BeOS
  • iphone - iPhone
  • ipod - iPod
  • ipad - iPad
  • blackberry - BlackBerry
  • nokia - Nokia
  • free - FreeBSD
  • open - OpenBSD
  • net - NetBSD
  • sun - SunOS
  • solaris - OpenSolaris
  • android - Android
  • sony - Sony PlayStation


Установка хака SEtxt
Скопируйте все файлы из папки upload в данном архиве на ваш сервер.
Открыть файл /engine/classes/templates.class.php
найти
class dle_template {


Выше вставить:
require_once ROOT_DIR . '/engine/mod/SEtxt.php';Далее найти:$this->dir = ROOT_DIR . '/templates/';Ниже вставить$this->SEtxt = SEtxt::getSingleton();
    $this->SEtxt->construct();


Далее найти:
$this->_clear();

Выше вставить для UTF-8
$this->result[$tpl] = preg_replace_callback("#\\[setxt (.+?)\\](.*?)\\[/setxt\\]#umis", array($this->SEtxt, "checkMatch"), $this->result[$tpl]);

Для CP1251 вставить
$this->result[$tpl] = preg_replace_callback("#\\[setxt (.+?)\\](.*?)\\[/setxt\\]#mis", array($this->SEtxt, "checkMatch"), $this->result[$tpl]);

SEtxt 2.0 описание:
DataLife Engine 9.0 - 11.x
от 23.10.2016
Автор: Gameer. (http:// gameer name/)

Обновленная версия 26.01.2017.


Setxt-master-DLE.zip [72,26 Kb] (cкачиваний: 65)
  • 60

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

Sergo13 от 17 сентября 2017 09:02
Надо не так
$this->SEtxt = SEtxt::getSingleton();
$this->SEtxt->construct();
а так
$this->SEtxt = new SEtxt();
$this->SEtxt->__construct();
Dartus от 7 июля 2017 11:57
Как бы там не было, у меня опять на другой 11.3 после вставки
Далее найти:$this->dir = ROOT_DIR . '/templates/';
Ниже вставить$this->SEtxt = SEtxt::getSingleton();

Выдает
Fatal error: Call to undefined method SEtxt::getSingleton() in W:\domains\DLETest113-1251 .ru\engine\classes\templates.class.php on line 48

Может что-то изменилось с 11.0 и на новых код не проходит или инструкция с ошибкой.
dle9.com от 6 июля 2017 19:37
Цитата: Dartus
Наконец то дорвался до папки модов, и был неприятно огорчен.
Модуль не работает на 11.2 и 11.3 а может и более ранних.
При разном добавлении доработак в инструкции выдает ошибки
Parse error: syntax error, unexpected '$this' (T_VARIABLE) in W:\domains\DLETest112 .ru\engine\classes\templates.class.php on line 927 

вы допускаете ошибку при добавлении кода в файл engine\classes\templates.class.php
дело не модуле
Dartus от 6 июля 2017 16:54
Наконец то дорвался до папки модов, и был неприятно огорчен.
Модуль не работает на 11.2 и 11.3 а может и более ранних.
При разном добавлении доработак в инструкции выдает ошибки
Parse error: syntax error, unexpected '$this' (T_VARIABLE) in W:\domains\DLETest112 .ru\engine\classes\templates.class.php on line 927 
dle9.com от 29 января 2017 06:23
Цитата: Dartus
Спасибо за такой модуль) Может и пригодиться, раньше такого невидел.
Жаль что и версию указывать нельзя, а то бывает что некоторые модули под старые версии браузеров не работают, и тут это палочка выручалочка).

На здоровье. Версию не указал автор, тут выручает даты создания файлов и изменения относительно старой версии.
Dartus от 29 января 2017 05:05
Спасибо за такой модуль) Может и пригодиться, раньше такого невидел.
Жаль что и версию указывать нельзя, а то бывает что некоторые модули под старые версии браузеров не работают, и тут это палочка выручалочка).
Добавить комментарий

Оставить комментарий

    • bowtiesmilelaughingblushsmileyrelaxedsmirk
      heart_eyeskissing_heartkissing_closed_eyesflushedrelievedsatisfiedgrin
      winkstuck_out_tongue_winking_eyestuck_out_tongue_closed_eyesgrinningkissingstuck_out_tonguesleeping
      worriedfrowninganguishedopen_mouthgrimacingconfusedhushed
      expressionlessunamusedsweat_smilesweatdisappointed_relievedwearypensive
      disappointedconfoundedfearfulcold_sweatperseverecrysob
      joyastonishedscreamtired_faceangryragetriumph
      sleepyyummasksunglassesdizzy_faceimpsmiling_imp
      neutral_faceno_mouthinnocent