Gistrec icon

Редиректы в highload блоке

Gistrec | PRO | 07/25/18 07:46:20 AM UTC | 0 ⭐ | 930 👁️ | Never ⏰ | []
PHP |

1.6 KB

|

None

|

0 👍

/

0 👎

// init.php
 
$redirectHlblock = Bitrix\Highloadblock\HighloadBlockTable::getById(3)->fetch();
$redirectEntity = Bitrix\Highloadblock\HighloadBlockTable::compileEntity($redirectHlblock);
$redirectClass = $redirectEntity->getDataClass();
 
// Редиректы
$redirectData = $redirectClass::getList(
    array(
    "select" => array("*"),
    "filter" => array(
        'UF_SITE_ID'  => SITE_ID,
        'UF_URL_FROM' => $APPLICATION->GetCurPage(false),
        '>UF_ACTIVE'  => 0,
        )
    )
)->fetch();
 
if (isset($redirectData['UF_URL_TO']) && !empty($redirectData['UF_URL_TO'])) {
    $status = CUserFieldEnum::GetList(array(), array('ID' => $redirectData['UF_STATUS']))->fetch();
    LocalRedirect($redirectData['UF_URL_TO'], true, $status['VALUE']);
}
 
// Подмена URL
$replaceData = $redirectClass::getList(
    array(
    "select" => array("*"),
    "filter" => array(
        'UF_SITE_ID' => SITE_ID,
        'UF_URL_TO'  => $APPLICATION->GetCurPage(false),
        '>UF_ACTIVE' => 0,
        )
    )
)->fetch();
if ($replaceData) {
    $context  = Bitrix\Main\Application::getInstance()->getContext();
    $server   = $context->getServer();
    $arServer = $server->toArray();
 
    $_SERVER['REQUEST_URI'] = $replaceData['UF_URL_FROM'];
    $arServer['REQUEST_URI'] = $replaceData['UF_URL_FROM'];
    $server->set($arServer);
    $context->initialize(
        new Bitrix\Main\HttpRequest($server, array() , array() , array() , $_COOKIE),
        $context->getResponse(),
        $server
    );
    $APPLICATION->reinitPath();
    define('INCLUDE_CATALOG_INDEX', true);
}

Comments

  •  icon
    01/01/70 12:00:00 AM UTC
    Plain Text |

    0 B

    |

    👍

    /

    👎