Олег

Олег

Был в сети 15 августа 2023, 15:41
Заказы не принимаю
Дмитрий Меркурьев
Дмитрий Меркурьев
Согласен, и предупредил в посте о перезаписи при обновлении.
Но все же лучше иметь хотя бы такое решение, чем не иметь его вообще. Каждый сам взвесит все плюсы и минусы и решит стоит ли использовать данный подход.
А я в свою очередь постараюсь найти способ использования без правки исходного кода. Если есть мысли в какую сторону копать, то буду рад услышать.
PG
PG
Володя
Володя
можно добавить так
создать плагин на pdoToolsOnFenomInit, в нем добавить модификатор detector
<?php
switch ($modx->event->name) {
    case 'pdoToolsOnFenomInit':
    if (!$fenom = $modx->getOption('fenom', $scriptProperties)) {
        return;
    }
    if (!$MobileDetect = $modx->getService('mobiledetect', 'MobileDetect', MODX_CORE_PATH . 'components/mobiledetect/')) {
	    return;
    }
    
    $key = $MobileDetect->config['force_browser_variable'];
    $device = !empty($_GET) && array_key_exists($key, $_GET)
		? $modx->stripTags($_GET[$key])
		: '';
	if (empty($device)) {
	    $device = $MobileDetect->getSettings();
    }
    if (empty($device)) {
        $detector = $MobileDetect->getDetector();
        $device = ($detector->isMobile() ? ($detector->isTablet() ? 'tablet' : 'mobile') : 'standard');
        $MobileDetect->saveSettings($device);
    }

    $fenom->addModifier("detector", function ($value) use ($device) {
        return $value == $device;
    });

    break;
}

и теперь в любом месте можно делать так
{if 'mobile'|detector}
mobile
{/if}

{if 'tablet'|detector}
tablet
{/if}

{if 'standard'|detector}
standard
{/if}