События

05 мая 2019, 07:00

Доступны следующие события:

  • rgOnBeforeGetEffectiveUrl
  • rgOnAfterGetEffectiveUrl - получение прямой ссылки
    • data - дата объект
    • url - ссылка
    • value - полученная ссылка
    • clear - флаг

Примеры

Подменить url при защите от парсинга страницы товара

<?php

if ($modx->event->name === 'rgOnAfterGetEffectiveUrl') {

    if (!empty($value)) {
        return;
    }

    $parts = parse_url($url);
    $host = isset($parts['host']) ? $parts['host'] : '';

    $return = false;
    switch (true) {
        case $host[0] !== 'm' AND preg_match("!aliexpress.!usi", $host):
            $parts['host'] = 'm.' . $host;
            $return = true;
            break;
    }

    if ($return) {
        if (!empty($parts['scheme'])) {
            $value = $parts['scheme'] . '://' . $parts['host'];
        } else {
            $value = '//' . $parts['host'];
        }
        if (!empty($parts['path'])) {
            $value .= $parts['path'];
        }
    }

    if ($value) {
        $modx->event->returnedValues['value'] = $value;
    }

}