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

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

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

<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(&amp;$items){ if ($_SERVER['REQUEST_METHOD']=='GET' &amp;&amp; $GLOBALS['APPLICATION']-&gt;GetCurPage()=='/bitrix/admin/iblock_element_edit.php' &amp;&amp; $_REQUEST['ID']&gt;0) { CModule::IncludeModule('iblock'); $rsElement = CIBlockElement::GetList( $arOrder = array("ID" =&gt; "ASC"), $arFilter = array( "=IBLOCK_ID" =&gt; $_REQUEST['IBLOCK_ID'], "=ID" =&gt; $_REQUEST['ID'], ), false, false, $arSelectFields = array("ID", "NAME", "IBLOCK_ID", "CODE", "DETAIL_PAGE_URL") ); if($arElement = $rsElement-&gt;GetNext(true, false)): $items[] = array( "TEXT" =&gt; "Открыть страницу элемента", "LINK" =&gt; $arElement['DETAIL_PAGE_URL'], 'LINK_PARAM' =&gt; 'target=_blank', "TITLE" =&gt; "Открыть страницу элемента", "ICON" =&gt; "adm-btn", ); endif; } } </code> </pre> <p> Теперь на странице просмотра/редактирования элемента появится кнопка "Отрыть страницу элемента" при нажатии на которую, откроется страница элемента. </p>

21.07.2020 11:41:46

Screenshot_3.png

Screenshot_3.png

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

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

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

Для этого необходимо модифицировать страницу редактирования элемента. Для этого воспользуемся обработчиками событий, в частности события вызова контекстного меню 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;
        }
}

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



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

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

Другие статьи