Добавляем возможность перейти на страницу элемента из админки

  • 2020-04-19
  • Дмитрий М.
  • 36

Добавляем возможность перейти на страницу элемента из админки

<p> Для этого необходимо модифицировать страницу редактирования элемента. Для этого воспользуемся обработчиками событий, в частности события вызова контекстного меню <b>OnAdminContextMenuShow.</b> Для это в файле <b>init.php</b> напишем обработчик события. </p> <blockquote> <i>Файл <b>init.php</b> располагается в папке: ./bitrix/php_interface/ или ./local/php_interface/. Если в этих папках его нет, то нужно его создать.<br> </i> </blockquote> <p> Запишем в файл <b>init.php</b>следующий код: </p> <pre class="line-numbers"><code class="language-php">AddEventHandler('main', 'OnAdminContextMenuShow', 'ElementDetailAdminContextMenuShow'); function ElementDetailAdminContextMenuShow(&$items){ if ($_SERVER['REQUEST_METHOD']=='GET' && $GLOBALS['APPLICATION']->GetCurPage()=='/bitrix/admin/iblock_element_edit.php' && $_REQUEST['ID']>0) { CModule::IncludeModule('iblock'); $rsElement = CIBlockElement::GetList( $arOrder = array("ID" => "ASC"), $arFilter = array( "=IBLOCK_ID" => $_REQUEST['IBLOCK_ID'], "=ID" => $_REQUEST['ID'], ), false, false, $arSelectFields = array("ID", "NAME", "IBLOCK_ID", "CODE", "DETAIL_PAGE_URL") ); if($arElement = $rsElement->GetNext(true, false)): $items[] = array( "TEXT" => "Открыть страницу элемента", "LINK" => $arElement['DETAIL_PAGE_URL'], 'LINK_PARAM' => 'target=_blank', "TITLE" => "Открыть страницу элемента", "ICON" => "adm-btn", ); endif; } } </code> </pre> <p> Теперь на странице просмотра/редактирования элемента появится кнопка "Отрыть страницу элемента" при нажатии на которую, откроется страница элемента. </p>

19.04.2020 18:07:10

Screenshot_3.png

Screenshot_3.png

Добавляем возможность перейти на страницу элемента из админки

Добавляем возможность перейти на страницу элемента из админки

При редактировании элементов в админке Битрикс часто возникает потребность посмотреть как элемент отображается в пользовательской части сайта. Для этого добавим на страницу просмотра/редактирования элемента кнопку при нажатии на которую будет открываться в новом окне страница с элементом.

Для этого необходимо модифицировать страницу редактирования элемента. Для этого воспользуемся обработчиками событий, в частности события вызова контекстного меню OnAdminContextMenuShow. Для это в файле init.php напишем обработчик события.

Файл init.php располагается в папке: ./bitrix/php_interface/ или ./local/php_interface/. Если в этих папках его нет, то нужно его создать.

Запишем в файл init.phpследующий код:

AddEventHandler('main', 'OnAdminContextMenuShow', 'ElementDetailAdminContextMenuShow'); 
 
function ElementDetailAdminContextMenuShow(&$items){
 if ($_SERVER['REQUEST_METHOD']=='GET' && $GLOBALS['APPLICATION']->GetCurPage()=='/bitrix/admin/iblock_element_edit.php' && $_REQUEST['ID']>0)
    {
        CModule::IncludeModule('iblock');
        $rsElement = CIBlockElement::GetList(
            $arOrder  = array("ID" => "ASC"),
            $arFilter = array(
                "=IBLOCK_ID" => $_REQUEST['IBLOCK_ID'],
                "=ID" => $_REQUEST['ID'],
            ),
            false,
            false,
            $arSelectFields = array("ID", "NAME", "IBLOCK_ID", "CODE", "DETAIL_PAGE_URL")
        );
        if($arElement = $rsElement->GetNext(true, false)):
            $items[] = array(
                "TEXT"  => "Открыть страницу элемента",
                "LINK"  => $arElement['DETAIL_PAGE_URL'],
                'LINK_PARAM' => 'target=_blank',
                "TITLE" => "Открыть страницу элемента",
                "ICON"  => "adm-btn",
            );    
        endif;
        }
}

Теперь на странице просмотра/редактирования элемента появится кнопка "Отрыть страницу элемента" при нажатии на которую, откроется страница элемента.



Статья была полезна? Поблагодарите автора.

Возврат к списку