Подгружаем страницу из админки на сайте

В этой статье мы рассмотрим открытие страниц из админпанели для редактирования содержимого сайта прямо на текущей странице.

Автор . Дата: 07.12.2014

Всем привет. Как вы знаете, для того, чтобы отредактировать какой-то элемент в битриксе, требуется или заходить в админпанель, искать его там и редактировать, либо переходить в режим правки, наводить мышкой на область элемента, и в появляющемся списке сверху выбирать Изменить элемент, либо делать двойной клик по области элемента.

Это не очень удобно. Некоторые делают ссылку на странице, которая открывает в новой вкладке страницу админпанели, где можно редактировать элемент. Но мы сделаем немного удобней. Мы будет открывать такое же окно, как и в режиме правки, но при этом нам не нужно будет переходить в режим правки и ссылка будет в удобном для нас месте и иметь удобный вид. Сделает это для нас вот этот простой код:

echo '<a href="javascript:'.$APPLICATION->GetPopupLink(
    array(
        "URL" => "/bitrix/admin/learn_test_edit.php?lang=" . LANGUAGE_ID 
            . "&COURSE_ID=" .$arResult["TEST"]["COURSE_ID"]
            . "&ID=" .$arTest["ID"]
            . "&bxpublic=Y&from_module=learning&return_url="
            . urlencode($addReturnUrl["test"]),
        "PARAMS" => array(
            "width" => 700, 'height' => 500, 'resize' => false,
        ),
    )
).'">Редактировать</a>';

В нем мы создаем ссылку, которая будет выполнять JavaScript код. Функция $APPLICATION->GetPopupLink делает за нас всю черную работу. В качестве аргументов она принимает массив. Первый элемент массива с ключом URL является адресом до страницы в админке с параметрами. В данном случае параметры это язык lang, номер курса COURSE_ID, номер теста ID. bxpublic говорит странице админке о том, что она вызывается из публичной части сайта, from_module содержит название модуля, из которого она была вызвана, а return_url указывает, на какой url делать редирект после закрытия окна.

Второй элемент массива с ключом PARAMS так же содержит массив, в котором содержатся параметры окна, такие как ширина width, высота height, и параметр resize говорящий о том, можно ли изменять размер появляющегося окна.

Достаточно добавить этот код на страницу нашего сайта, и мы получаем удобную ссылку для редактирования элемента:

Не забываем отображать ссылку только тем, кто имеет право редактировать содержимое сайта. Конечно, битрикс не пустит тех пользователей, у которых нет прав на редактирования контента в админпанель, но все же, будет как-то не эстетично, если для обычных смертных будет отображаться различная административная информация. Приятного использования.


comments powered by HyperComments