Подключение своих скриптов на любых страницах коробочного портала

access_time 2018-12-01 16:10:51

Для подключения js скриптов лучше всего использовать слушатель события OnProlog, которое вызывается в начале визуальной части пролога сайта.

Ниже, приведены примеры слушателей события OnProlog с определением страниц на которых надо подключить свои скрипты.

//example for all pages
AddEventHandler('main', 'OnProlog', function(){
    //todo here. Asset::getInstance()->addJs('path/to/script.js')
});

//example for task ( /company/personal/user/1/tasks/task/view/2/ )
AddEventHandler('main', 'OnProlog', function(){
    global $USER;
    $arVariables = null;
    \CComponentEngine::ParseComponentPath("/company/personal/user/".$USER->GetID()."/tasks", ["task" => "task/#action#/#task_id#/"], $arVariables);
    if ($arVariables['action'] == 'view' && !empty($arVariables['task_id'])) {
        //todo here. Asset::getInstance()->addJs('path/to/script.js')
    }
});

//example for task full ( /company/personal/user/1/tasks/task/view/2/ , /workgroups/group/7/tasks/task/view/5/?pgpg=1111&111=333 )
AddEventHandler('main', 'OnProlog', function(){
    $request = \Bitrix\Main\Application::getInstance()->getContext()->getRequest();
    $curUri = parse_url($request->getRequestUri());
    $curUri = $curUri['path'];
    $wantedPath = '/tasks/task/view/';
    $pos = strpos($curUri, $wantedPath);
    if($pos!==false){
        list($unused, $taskId) = explode($wantedPath, $curUri);
        $taskId = str_replace('/', '', $taskId);
        //todo here. Asset::getInstance()->addJs('path/to/script.js')
    }
});


//example for crm deal
AddEventHandler('main', 'OnProlog', function(){
    global $USER;
    $arVariables = null;
    \CComponentEngine::ParseComponentPath("/crm/", ["deal" => "deal/#action#/#deal_id#/"], $arVariables);
    if ($arVariables['action'] == 'view' && !empty($arVariables['deal_id'])) {
        //todo here. Asset::getInstance()->addJs('path/to/script.js')
    }
});

Используя данные примеры, можно внедрятся в интерфейс Б24, обогащая его своим функционалом.

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

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

{{ item.user_name }}
access_time 2018-11-01 20:15:22

{{ item.text }}