Commit dbc17af3 authored by Vladimir Kharinenkov's avatar Vladimir Kharinenkov
Browse files

Release

parents
No related merge requests found
Showing with 1754 additions and 0 deletions
+1754 -0
MIT License
Copyright (c) 2021 e-publish
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
Модуль MagicSite Integration для Bitrix
=======================================
# Описание
Модуль предназначен для автоматического встраивания обязательных разделов сайта образовательных организаций, предусмотренных законодательством Российской Федерации, из информационной системы «MagicSite» на сайт под управлением CMS 1С-Битрикс: Управление сайтом.
Внешний вид сайта, включая меню и инкапсулированные обязательные разделы, устанавливается в CMS 1С-Битрикс: Управление сайтом. Модуль не оказывает влияния на необязательные разделы, которые ведутся на сайте CMS 1С-Битрикс: Управление сайтом.
При использовании модуля владелец сайта должен завести аккаунт в информационной системе MagicSite и внести в неё данные о своей организации.
Информационная система «MagicSite» зарегистрирована в РОСПАТЕНТ № 2020662557 от 16 октября 2020 год, включена в Единый реестр российских программ для электронных вычислительных машин и баз данных по Приказу Минцифры России от 15.03.2021 № 151 Приложение № 2, реестровый №9719, совместима со всеми операционными системами, в том числе с операционной системой Альт на платформе х86 и для архитектуры aarch64.
Информационная система «MagicSite» предусматривает ведение следующих обязательных разделов со своими подраздеоами:
Сведения об образовательной организации;
Информационная безопасность;
Противодействие коррупции;
Независимая оценка качества;
Педагоги;
Организация питания.
Представление на сайте производится в строгом соответствии с законодательством. При изменении законодательства в ИС MagicSite вносятся соответствующие правки, что автоматически находит отражение на сайте пользователя. Пользователь избавлен от необходимости отслеживать требования к сайтам образовательных организаций – достаточно заполнять поля ИС MagicSite. Данные попадают в систему мониторинга сайтов.
# Требования
1. Версия главного модуля 14.0.0 или выше
2. Установленные расширения php-curl и php-dom
# Установка
1. Скачайте ZIP архив плагина https://github.com/e-publish/bitrix-magicsite/raw/master/epublish.magicsite.tar.gz;
2. Зайдите в административную панель CMS Bitrix вашего сайта;
> Чтобы войти в административную панель Bitrix, вбейте в адресной строке ссылку http://ваш_сайт/bitrix/, где вместо «ваш_сайт» — доменное имя (адрес) вашего сайта.
> Откроется страница с формой для входа в админ-панель.
3. Перейдите в раздел "Контент" кликнув по соответствующей иконке в левой колонке;
4. В разделе "Структура сайта" -> "Файлы и папки" перейдите в папку bitrix/modules;
5. Нажмите кнопку "Загрузить файл";
6. В открывшейся форме нажмите кнопку "Добавить файл" в первой строке и выберите скачанный в шаге 1 архив, после чего нажмите кнопку "Применить";
7. В случае успешной загрузки файла (отсутствие сообщений об ошибке) вернитесь на страницу обзора файлов "Структура сайта" -> "Файлы и папки" -> "bitrix" -> "modules";
8. Найдите в списке файлов справа загруженный архив. Если вы не видите файл, воспользуйтесь кнопками постраничной навигации, расположенными под таблицей со списком файлов и папок;
9. Щелкните правой кнопкой мыши на имени файла архива и выберите "Распаковать". В открывшемся окне оставьте все как есть и щелкните по кнопке "Распаковать";
10. Перейдите в раздел "Marketplace" кликнув по соответствующей иконке в левой колонке;
11. Щелкните по ссылке "Установленные решения";
12. Нажмите на иконку слева от строки с описанием модуля "Интеграция с ИC "MagicSite" или кликните правой кнопкой мыши на описании модуля "Интеграция с ИC "MagicSite" и выберите "Установить";
13. Убедитесь, что ваша система отвечает требованиям указанным в разделе "Требования". Если требуется, обновите систему и установите недостающие расширения php;
14. Если на вашем сайте присутствует один или более разделов совпадающий с обязательными разделами сайта образовательной организации, данный раздел будет отмечен в таблице как присутствующий и от вас потребуется согласие на замещение индексного файла данного раздела, файлом модуля интеграции. В этом случае, отметьте чекбокс "Перезаписать существующие разделы";
15. По умолчанию, ссылки на обязательные разделы будут добавлены в верхнее и левое меню сайта. Если вы не хотите добавлять их в данные меню, снимите соответствующие чекбоксы. В дальнейшем, вы сможете добавить ссылки в нужное меню используя средства CMS.
16. Если все условия соблюдены, кнопка "Установить модуль" станет доступна. Щелкните по ней.
# Настройка
После успешной установки модуля необходимо указать адрес сайта в ИС MagicSite данные которого будут отображаться на вашем сайте.
Перейти в раздел настройки модуль можно щелкнув по кнопке "Настройка" в окне с сообщением об успешной установке модуля или через раздел настроек модулей. Для этого:
1. Зайдите в административную панель CMS Bitrix вашего сайта;
> Чтобы войти в административную панель Bitrix, вбейте в адресной строке ссылку http://ваш_сайт/bitrix/, где вместо «ваш_сайт» — доменное имя (адрес) вашего сайта.
> Откроется страница с формой для входа в админ-панель.
2. Перейдите в раздел "Настройки" кликнув по соответствующей иконке в левой колонке;
3. Перейдите в раздел "Настройки модулей" -> "Интеграция с ИС MagicSite";
4. В поле "Адрес сайта в ИС MagicSite" укажите адрес сайта, созданного в виртуальном кабинете MagicSite (https://cp.edusite.ru);
5. Нажмите кнопку "Сохранить".
# Подключение меню
При установке модуля во всех добавляемых разделах создается файл левого бокового меню .left.menu.php;
Если при установке вы оставили чекбоксы на пунктах "Добавить ссылки на обязательные разделы сведений в верхнее меню сайта." и/или "Добавить ссылки на обязательные разделы сведений в левое меню сайта." то ссылки на эти разделы были автоматически добавлены в файлы /.top.menu.php и/или /.left.menu.php. В этом случае, дополнительных действий с вашей стороны не требуется.
Если в корневой директории сайта дынные файлы отсутствуют, то они будут созданы;
Если в пункте 15 установки вы сняли оба чекбокса и хотите добавить ссылки самостоятельно, то:
1. Зайдите в административную панель CMS Bitrix вашего сайта;
> Чтобы войти в административную панель Bitrix, вбейте в адресной строке ссылку http://ваш_сайт/bitrix/, где вместо «ваш_сайт» — доменное имя (адрес) вашего сайта.
> Откроется страница с формой для входа в админ-панель.
2. Перейдите на вкладку "Сайт";
3. Включите режим правки (Переключатель расположен справой стороны панели инструментов);
4. Наведите курсор мышки в верхнюю часть области нужного меню и щелкните по ссылке "Редактировать пункты меню" на всплывшем окне;
5. Добавьте необходимые пункты меню в соответствии с приведенными ниже данными:
Ссылка Название
/sveden/ Сведения об образовательной организации
/infosec/ Информационная безопасность
/anticorruption/ Противодействие коррупции
/qualityassessment/ Независимая оценка качества
/distance_education/ Дистанционное обучение
/educative/ Воспитательная работа
/gia/ Государственная итоговая аттестация
/meals/ Организация питания
/labor_protection/ Охрана труда
/accounting_policy/ Основные положения учетной политики
6. Нажмите кнопку "Сохранить";
7. Нажмите на кнопку "Сбросить кэш" в панели инструментов;
8. Отключите режим правки.
# Удаление
1. Зайдите в административную панель CMS Bitrix вашего сайта;
> Чтобы войти в административную панель Bitrix, вбейте в адресной строке ссылку http://ваш_сайт/bitrix/, где вместо «ваш_сайт» — доменное имя (адрес) вашего сайта.
> Откроется страница с формой для входа в админ-панель.
2. Перейдите в раздел "Marketplace" кликнув по соответствующей иконке в левой колонке;
3. Щелкните по ссылке "Установленные решения";
4. Нажмите на иконку слева от строки с описанием модуля "Интеграция с ИC "MagicSite" или кликните правой кнопкой мыши на описании модуля "Интеграция с ИC "MagicSite" и выберите "Удалить";
5. Не оправляйте отзыв. Так как модуль не размещался в Bitrix Marketplace, мы его не получим.
6. Если вы хотите полностью удалить модуль с сайта, нажмите на иконку слева от строки с описанием модуля "Интеграция с ИC "MagicSite" или кликните правой кнопкой мыши на описании модуля "Интеграция с ИC "MagicSite" и выберите "Стереть" и подтвердите действие;
7. Удалите загруженный файл архива, для чего:
* Перейдите в раздел "Контент" кликнув по соответствующей иконке в левой колонке;
* В разделе "Структура сайта" -> "Файлы и папки" перейдите в папку bitrix/modules;
* Найдите в списке файлов справа файл epublish.magicsite.tar.gz. Если вы не видите файл, воспользуйтесь кнопками постраничной навигации, расположенными под таблицей со списком файлов и папок;
* Щелкните правой кнопкой мыши на имени файла архива и выберите "Удалить" и подтвердите действие.
File added
<?php
\Bitrix\Main\Loader::registerAutoLoadClasses(
"epublish.magicsite",
array(
'Epublish\\Magicsite\\Integration' => 'lib/integration.php',
)
);
/*
$arJsConfig = array(
'custom_main' => array(
'js' => '/bitrix/js/custom/main.js',
'css' => '/bitrix/js/custom/main.css',
'rel' => array(),
)
);
foreach ($arJsConfig as $ext => $arExt) {
\CJSCore::RegisterExt($ext, $arExt);
}
//CUtil::InitJSCore(array('custom_main'));
*/
<?php
use \Bitrix\Main\Loader;
use \Bitrix\Main\Application;
use \Bitrix\Main\Entity\Base;
use \Bitrix\Main\Config\Option;
use \Bitrix\Main\Config as Conf;
use \Bitrix\Main\Localization\Loc;
use \Epublish\Magicsite\Integration;
Loc::loadMessages(__FILE__);
Class epublish_magicsite extends CModule
{
var $exclusionAdminFiles;
var $errors = null;
function __construct()
{
$arModuleVersion = array();
include(__DIR__."/version.php");
$this->MODULE_ID = 'epublish.magicsite';
$this->MODULE_VERSION = $arModuleVersion["VERSION"];
$this->MODULE_VERSION_DATE = $arModuleVersion["VERSION_DATE"];
$this->MODULE_NAME = Loc::getMessage("EPUBLISH_MAGICSITE_MODULE_NAME");
$this->MODULE_DESCRIPTION = Loc::getMessage("EPUBLISH_MAGICSITE_MODULE_DESC");
$this->PARTNER_NAME = Loc::getMessage("EPUBLISH_MAGICSITE_PARTNER_NAME");
$this->PARTNER_URI = Loc::getMessage("EPUBLISH_MAGICSITE_PARTNER_URI");
$this->MODULE_SORT = 1;
$this->SHOW_SUPER_ADMIN_GROUP_RIGHTS='Y';
$this->MODULE_GROUP_RIGHTS = "Y";
}
function DoInstall()
{
global $APPLICATION, $step, $top_menu, $left_menu;
$step = intval($step);
if ($step < 2) {
$APPLICATION->IncludeAdminFile(GetMessage("EPUBLISH_MAGICSITE_INSTALL_TITLE"), $_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/epublish.magicsite/install/step1.php");
} elseif ($step==2) {
\Bitrix\Main\ModuleManager::registerModule($this->MODULE_ID);
if (isset($top_menu) && $top_menu == "Y") {
$arParams['top_menu'] = true;
}
if (isset($left_menu) && $left_menu == "Y") {
$arParams['left_menu'] = true;
}
$this->InstallFiles($arParams);
$GLOBALS["errors"] = $this->errors;
$APPLICATION->IncludeAdminFile(GetMessage("EPUBLISH_MAGICSITE_INSTALL_TITLE"), $_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/epublish.magicsite/install/step2.php");
}
}
function DoUninstall()
{
global $APPLICATION;
$context = Application::getInstance()->getContext();
$request = $context->getRequest();
$this->UnInstallFiles();
$this->UnInstallDB();
\Bitrix\Main\ModuleManager::unRegisterModule($this->MODULE_ID);
}
public function GetPath($notDocumentRoot=false)
{
if ($notDocumentRoot) {
return str_ireplace(Application::getDocumentRoot(),'',dirname(__DIR__));
} else {
return dirname(__DIR__);
}
}
public function isVersionD7()
{
return CheckVersion(\Bitrix\Main\ModuleManager::getVersion('main'), '14.00.00');
}
function InstallFiles($arParams = array())
{
$path=$this->GetPath()."/install/js";
if (\Bitrix\Main\IO\Directory::isDirectoryExists($path)) {
CopyDirFiles($path, $_SERVER["DOCUMENT_ROOT"]."/bitrix/js", true, true);
} else {
throw new \Bitrix\Main\IO\InvalidPathException($path);
}
Loader::includeModule("epublish.magicsite");
$arMenu = Integration::getMenu();
foreach ($arMenu as $arItem) {
$this->createPage($arItem);
if (isset($arItem['below'])) {
foreach ($arItem['below'] as $arSubItem) {
$this->createPage($arSubItem);
}
$this->createMenu('.left.menu', $arItem);
}
}
if(isset($arParams['top_menu'])) {
$this->createMenu('.top.menu',
array(
'path' => '/',
'title' => Loc::getMessage('EPUBLISH_MAGICSITE_TOP_MENU_TITLE'),
'below' => $arMenu,
),
);
}
if(isset($arParams['left_menu'])) {
$this->createMenu('.left.menu',
array(
'path' => '/',
'title' => Loc::getMessage('EPUBLISH_MAGICSITE_TOP_MENU_TITLE'),
'below' => $arMenu,
),
);
}
}
function UnInstallFiles()
{
Loader::includeModule("epublish.magicsite");
$arMenu = Integration::getMenu();
foreach ($arMenu as $arItem) {
if (isset($arItem['below'])) {
foreach ($arItem['below'] as $arSubItem) {
if (\Bitrix\Main\IO\Directory::isDirectoryExists($_SERVER["DOCUMENT_ROOT"]."/".$arSubItem['path']."/")) {
\Bitrix\Main\IO\Directory::deleteDirectory($_SERVER["DOCUMENT_ROOT"]."/".$arSubItem['path']."/");
}
}
}
if (\Bitrix\Main\IO\Directory::isDirectoryExists($_SERVER["DOCUMENT_ROOT"]."/".$arItem['path']."/")) {
\Bitrix\Main\IO\Directory::deleteDirectory($_SERVER["DOCUMENT_ROOT"]."/".$arItem['path']."/");
}
}
if (\Bitrix\Main\IO\Directory::isDirectoryExists($_SERVER["DOCUMENT_ROOT"]."/bitrix/js/epublish.magicsite")) {
\Bitrix\Main\IO\Directory::deleteDirectory($_SERVER["DOCUMENT_ROOT"]."/bitrix/js/epublish.magicsite");
}
$this->clearMenu('.top.menu',
array(
'path' => '/',
'title' => Loc::getMessage('EPUBLISH_MAGICSITE_TOP_MENU_TITLE'),
'below' => $arMenu,
)
);
$this->clearMenu('.left.menu',
array(
'path' => '/',
'title' => Loc::getMessage('EPUBLISH_MAGICSITE_TOP_MENU_TITLE'),
'below' => $arMenu,
)
);
return true;
}
function UnInstallDB()
{
Option::delete($this->MODULE_ID);
}
function createPage($arItem) {
$section = "<?php\n";
$section .= '$sSectionName = "'.$arItem['title'].'";'."\n";
$section .= '$arDirProperties = Array();'."\n";
if ($arItem['type'] == 'menu_section') {
$index = "<?php\n\n";
$index .= "use \Bitrix\Main\Loader;\n";
$index .= "use \Bitrix\Main\Config\Option;\n\n";
$index .= 'require($_SERVER["DOCUMENT_ROOT"]."/bitrix/header.php");'."\n";
$index .= '$APPLICATION->SetTitle("'.$arItem['title'].'");'."\n";
$index .= 'if ($url = Option::get("epublish.magicsite", "magicsite_url")) : ?>'."\n";
foreach ($arItem['below'] as $subPath => $subItem ) {
$index .= ' <div calss="magicsite-menu-item"><a href="/'.$subItem['path'].'/">'.$subItem['title']."</a></div>\n";
}
$index .= "<?php else : ?>\n";
$index .= " <div>Ошибка настройки модуля интеграции с MagicSite</div>\n";
$index .= "<?php endif;\n";
$index .= 'require($_SERVER["DOCUMENT_ROOT"]."/bitrix/footer.php");'."\n";
} else {
$index = "<?php\n";
$index .= 'require($_SERVER["DOCUMENT_ROOT"]."/bitrix/header.php");'."\n";
$index .= '$APPLICATION->SetTitle("'.$arItem['title'].'");'."\n";
$index .= "CJSCore::Init(array('jquery2', 'popup'));\n";
$index .= "\Bitrix\Main\Loader::includeModule('epublish.magicsite');\n";
$index .= 'echo \Epublish\Magicsite\Integration::getContent("'.$arItem['section'].'", "'.$arItem['page'].'");'."\n";
$index .= 'require($_SERVER["DOCUMENT_ROOT"]."/bitrix/footer.php");'."\n";
}
$path = $_SERVER["DOCUMENT_ROOT"].'/'.$arItem['path'];
if(!file_exists($path)) {
mkdir($path, 0755, true);
}
file_put_contents($path.'/.section.php', $section);
file_put_contents($path.'/index.php', $index);
}
function createMenu($menuName, $arMenu) {
$aMenuLinks = array();
$aLinksAdd = array();
if (file_exists($_SERVER["DOCUMENT_ROOT"].'/'.$arMenu['path'].'/'.$menuName.'.php')) {
include_once($_SERVER["DOCUMENT_ROOT"].'/'.$arMenu['path'].'/'.$menuName.'.php');
}
foreach ($arMenu['below'] as $arItem) {
$aLinksAdd[] = array(
$arItem['title'],
'/'.$arItem['path'].'/',
array(),
array(),
'',
);
}
$diff = array_diff(array_map('json_encode', $aMenuLinks), array_map('json_encode', $aLinksAdd));
$diff = array_map('json_decode', $diff);
$aMenuLinks = array_merge($diff, $aLinksAdd);
$menu = "<?php\n";
$menu .= '$aMenuLinks = array('."\n";
foreach ($aMenuLinks as $arItem) {
$menu .= " array(\n";
foreach ($arItem as $item) {
if (is_string($item)) {
$menu .= " '".$item."',\n";
} elseif (is_array($item)) {
if (count($item)) {
$menu .= " array(\n";
foreach ($item as $el) {
$menu .= " '".$el."',\n";
}
$menu .= " ),\n";
} else {
$menu .= " array(),\n";
}
}
}
$menu .= " ),\n";
}
$menu .= ");\n";
file_put_contents($_SERVER["DOCUMENT_ROOT"].'/'.$arMenu['path'].'/'.$menuName.'.php', $menu);
}
function clearMenu($menuName, $arMenu) {
$aMenuLinks = array();
$aLinksRemove = array();
if (file_exists($_SERVER["DOCUMENT_ROOT"].'/'.$arMenu['path'].'/'.$menuName.'.php')) {
include_once($_SERVER["DOCUMENT_ROOT"].'/'.$arMenu['path'].'/'.$menuName.'.php');
}
foreach ($arMenu['below'] as $arItem) {
$aLinksRemove[] = array(
$arItem['title'],
'/'.$arItem['path'].'/',
array(),
array(),
'',
);
}
$diff = array_diff(array_map('json_encode', $aMenuLinks), array_map('json_encode', $aLinksRemove));
$diff = array_map('json_decode', $diff);
if (count($diff)) {
$menu = "<?php\n";
$menu .= '$aMenuLinks = array('."\n";
foreach ($diff as $arItem) {
$menu .= " array(\n";
foreach ($arItem as $item) {
if (is_string($item)) {
$menu .= " '".$item."',\n";
} elseif (is_array($item)) {
if (count($item)) {
$menu .= " array(\n";
foreach ($item as $el) {
$menu .= " '".$el."',\n";
}
$menu .= " ),\n";
} else {
$menu .= " array(),\n";
}
}
}
$menu .= " ),\n";
}
$menu .= ");\n";
file_put_contents($_SERVER["DOCUMENT_ROOT"].'/'.$arMenu['path'].'/'.$menuName.'.php', $menu);
} else {
unlink($_SERVER["DOCUMENT_ROOT"].'/'.$arMenu['path'].'/'.$menuName.'.php');
}
}
function getSections() {
return array(
'sveden' => array(
'path' => 'sveden',
'title' => Loc::getMessage('EPUBLISH_MAGICSITE_SECTION_SVEDEN_TITLE'),
'below' => array(
'common' => array(
'path' => 'sveden/common',
'title' => Loc::getMessage('EPUBLISH_MAGICSITE_SECTION_SVEDEN_COMMON_TITLE'),
),
'struct' => array(
'path' => 'sveden/struct',
'title' => Loc::getMessage('EPUBLISH_MAGICSITE_SECTION_SVEDEN_STRUCT_TITLE'),
),
'document' => array(
'path' => 'sveden/document',
'title' => Loc::getMessage('EPUBLISH_MAGICSITE_SECTION_SVEDEN_DOCUMENT_TITLE'),
),
'education' => array(
'path' => 'sveden/education',
'title' => Loc::getMessage('EPUBLISH_MAGICSITE_SECTION_SVEDEN_EDUCATION_TITLE'),
),
'edustandarts' => array(
'path' => 'sveden/edustandarts',
'title' => Loc::getMessage('EPUBLISH_MAGICSITE_SECTION_SVEDEN_EDUSTANDARTS_TITLE'),
),
'employees' => array(
'path' => 'sveden/employees',
'title' => Loc::getMessage('EPUBLISH_MAGICSITE_SECTION_SVEDEN_EMPLOYEES_TITLE'),
),
'objects' => array(
'path' => 'sveden/objects',
'title' => Loc::getMessage('EPUBLISH_MAGICSITE_SECTION_SVEDEN_OBJECTS_TITLE'),
),
'grants' => array(
'path' => 'sveden/grants',
'title' => Loc::getMessage('EPUBLISH_MAGICSITE_SECTION_SVEDEN_GRANTS_TITLE'),
),
'paid_edu' => array(
'path' => 'sveden/strupaid_educt',
'title' => Loc::getMessage('EPUBLISH_MAGICSITE_SECTION_SVEDEN_PAID_EDU_TITLE'),
),
'budget' => array(
'path' => 'sveden/budget',
'title' => Loc::getMessage('EPUBLISH_MAGICSITE_SECTION_SVEDEN_BUDGET_TITLE'),
),
'vacant' => array(
'path' => 'sveden/vacant',
'title' => Loc::getMessage('EPUBLISH_MAGICSITE_SECTION_SVEDEN_VACANT_TITLE'),
),
'ovz' => array(
'path' => 'sveden/ovz',
'title' => Loc::getMessage('EPUBLISH_MAGICSITE_SECTION_SVEDEN_OVZ_TITLE'),
),
'inter' => array(
'path' => 'sveden/inter',
'title' => Loc::getMessage('EPUBLISH_MAGICSITE_SECTION_SVEDEN_INTER_TITLE'),
),
),
),
'infosec' => array(
'path' => 'infosec',
'title' => Loc::getMessage('EPUBLISH_MAGICSITE_SECTION_INFOSEC_TITLE'),
'below' => array(
'common' => array(
'path' => 'infosec/common',
'title' => Loc::getMessage('EPUBLISH_MAGICSITE_SECTION_INFOSEC_COMMON_TITLE'),
),
'normreg' => array(
'path' => 'infosec/normreg',
'title' => Loc::getMessage('EPUBLISH_MAGICSITE_SECTION_INFOSEC_NORMREG_TITLE'),
),
'educator' => array(
'path' => 'infosec/educator',
'title' => Loc::getMessage('EPUBLISH_MAGICSITE_SECTION_INFOSEC_EDUCATOR_TITLE'),
),
'students' => array(
'path' => 'infosec/students',
'title' => Loc::getMessage('EPUBLISH_MAGICSITE_SECTION_INFOSEC_STUDENTS_TITLE'),
),
'parents' => array(
'path' => 'infosec/parents',
'title' => Loc::getMessage('EPUBLISH_MAGICSITE_SECTION_INFOSEC_PARENTS_TITLE'),
),
'sites' => array(
'path' => 'infosec/sites',
'title' => Loc::getMessage('EPUBLISH_MAGICSITE_SECTION_INFOSEC_SITES_TITLE'),
),
),
),
'anticorruption' => array(
'path' => 'anticorruption',
'title' => Loc::getMessage('EPUBLISH_MAGICSITE_SECTION_ANTICORRUPTION_TITLE'),
'below' => array(
'normativnieacti' => array(
'path' => 'anticorruption/normativnieacti',
'title' => Loc::getMessage('EPUBLISH_MAGICSITE_SECTION_ANTICORRUPTION_NORMACTY_TITLE'),
),
'expertise' => array(
'path' => 'anticorruption/expertise',
'title' => Loc::getMessage('EPUBLISH_MAGICSITE_SECTION_ANTICORRUPTION_EXPERTISE_TITLE'),
),
'iniemetodmaterialy' => array(
'path' => 'anticorruption/iniemetodmaterialy',
'title' => Loc::getMessage('EPUBLISH_MAGICSITE_SECTION_ANTICORRUPTION_MATERIALS_TITLE'),
),
'forms' => array(
'path' => 'anticorruption/forms',
'title' => Loc::getMessage('EPUBLISH_MAGICSITE_SECTION_ANTICORRUPTION_FORMS_TITLE'),
),
'svedenodohodah' => array(
'path' => 'anticorruption/svedenodohodah',
'title' => Loc::getMessage('EPUBLISH_MAGICSITE_SECTION_ANTICORRUPTION_DOHODY_TITLE'),
),
'commission' => array(
'path' => 'anticorruption/commission',
'title' => Loc::getMessage('EPUBLISH_MAGICSITE_SECTION_ANTICORRUPTION_COMMISSION_TITLE'),
),
'feedback' => array(
'path' => 'anticorruption/feedback',
'title' => Loc::getMessage('EPUBLISH_MAGICSITE_SECTION_ANTICORRUPTION_FEEDBACK_TITLE'),
),
'responsibility' => array(
'path' => 'anticorruption/responsibility',
'title' => Loc::getMessage('EPUBLISH_MAGICSITE_SECTION_ANTICORRUPTION_RESPONSIBILITY_TITLE'),
),
'infomaterial' => array(
'path' => 'anticorruption/infomaterial',
'title' => Loc::getMessage('EPUBLISH_MAGICSITE_SECTION_ANTICORRUPTION_INFORM_TITLE'),
),
),
),
'qualityassessment' => array(
'path' => 'qualityassessment',
'title' => Loc::getMessage('EPUBLISH_MAGICSITE_SECTION_QUALITY_TITLE'),
),
'distance_education' => array(
'path' => 'distance_education',
'title' => Loc::getMessage('EPUBLISH_MAGICSITE_SECTION_SHEDULE_TITLE'),
),
'educative' => array(
'path' => 'educative',
'title' => Loc::getMessage('EPUBLISH_MAGICSITE_SECTION_EDUCATIVE_TITLE'),
'below' => array(
'edwpartdo' => array(
'path' => 'educative/edwpartdo',
'title' => Loc::getMessage('EPUBLISH_MAGICSITE_SECTION_EDUCATIVE_DO_TITLE'),
),
'edwpartnoo' => array(
'path' => 'educative/edwpartnoo',
'title' => Loc::getMessage('EPUBLISH_MAGICSITE_SECTION_EDUCATIVE_NOO_TITLE'),
),
'edwpartooo' => array(
'path' => 'educative/edwpartooo',
'title' => Loc::getMessage('EPUBLISH_MAGICSITE_SECTION_EDUCATIVE_OOO_TITLE'),
),
'edwpartsoo' => array(
'path' => 'educative/edwpartsoo',
'title' => Loc::getMessage('EPUBLISH_MAGICSITE_SECTION_EDUCATIVE_SOO_TITLE'),
),
'edwanaliz' => array(
'path' => 'educative/edwanaliz',
'title' => Loc::getMessage('EPUBLISH_MAGICSITE_SECTION_EDUCATIVE_ANALISE_TITLE'),
),
'edwinfo' => array(
'path' => 'educative/edwinfo',
'title' => Loc::getMessage('EPUBLISH_MAGICSITE_SECTION_EDUCATIVE_INFO_TITLE'),
),
'edwevents' => array(
'path' => 'educative/edwevents',
'title' => Loc::getMessage('EPUBLISH_MAGICSITE_SECTION_EDUCATIVE_EVENTS_TITLE'),
),
),
),
'gia' => array(
'path' => 'gia',
'title' => Loc::getMessage('EPUBLISH_MAGICSITE_SECTION_GIA_TITLE'),
),
'meals' => array(
'path' => 'meals',
'title' => Loc::getMessage('EPUBLISH_MAGICSITE_SECTION_MEALS_TITLE'),
'below' => array(
'meals' => array(
'path' => 'meals/meals',
'title' => Loc::getMessage('EPUBLISH_MAGICSITE_SECTION_MEALS_TITLE'),
),
'index' => array(
'path' => 'food',
'title' => Loc::getMessage('EPUBLISH_MAGICSITE_SECTION_FOOD_TITLE'),
),
),
),
'labor_protection' => array(
'path' => 'labor_protection',
'title' => Loc::getMessage('EPUBLISH_MAGICSITE_SECTION_LABOR_PROTECTION_TITLE'),
),
'accounting_policy' => array(
'path' => 'accounting_policy',
'title' => Loc::getMessage('EPUBLISH_MAGICSITE_SECTION_ACCOUNTING_POLICY_TITLE'),
),
);
}
}
BX.ready(function(){
$( '#magicsite_content a' ).each( function () {
var re = /^\//;
var hr = this.getAttribute( 'href' );
if ( re.test(hr) == true ) {
$( this ).attr( 'href', magicsite_url + hr );
}
})
$( '#magicsite_content img' ).each( function () {
var re = /^\//;
var hr = this.getAttribute( 'src' );
if ( re.test(hr) == true ) {
$( this ).attr( 'src', magicsite_url + hr );
}
})
var showSign = new BX.PopupWindow("document_signature", null, {
content: BX('ajax-show-sign'),
closeIcon: {right: "20px", top: "10px"},
zIndex: 0,
offsetLeft: 0,
offsetTop: 0,
draggable: {restrict: false},
buttons: [
new BX.PopupWindowButton({
text: "Закрыть",
className: "webform-button-link-cancel",
events: {click: function(){
this.popupWindow.close(); // закрытие окна
}}
})
]
});
$('.check-file-sign').click(function(){
var url = magicsite_url + $( this ).data( 'url' );
var nm = $( this ).data( 'name' );
$.ajax( {
type: 'POST',
url: 'https://sign.edusite.ru/vsignf.php',
data: { url: url },
datatype: 'json',
success: function ( response ) {
if ( response.status == 1 ) {
var msg = '';
if ( response.mess !== undefined ) {
msg += '<div class="error">' + response.mess + '</div>';
}
} else if ( response.data !== undefined ) {
var data = response.data,
msg = '';
if ( data.verify == 1 ) {
msg += '<div class="popup"><div class="popup-title">Подписи</div><div class="signinfo popup-name">' + nm +'</div><div class="signinfo popup-link">' + url + '</div>';
if ( data.signers !== undefined ) {
$.each( data.signers, function ( i, e ) {
dolgn = "";
if ( e.cert.subjectName.T && e.cert.subjectName.T != "" ) {
dolgn = ' (' + e.cert.subjectName.T + ')';
}
msg += '<div class="sign" ng-repeat="item in data.cryptoSigns" ng-if="data.cryptoSigns.length"> \
<div class="signinfo signingTime">' + e.signingTime + '</div> \
<div class="signinfo subjectNameSn">' + e.cert.subjectName.SN + ' ' + e.cert.subjectName.G + dolgn + '</div> \
<div class="signinfo subjectNameO">' + e.cert.subjectName.O + '</div> \
<div class="signinfo subjectNameCN">' + e.cert.subjectName.CN + '</div> \
</div>';
});
msg += '<div class="signinfo subjectSign"><div>' + data.sign + '</div></div>';
}
msg += '</div>';
}
}
$('#ajax-show-sign').html(msg);
showSign.show();
},
error: function ( xhr, ajaxOptions, thrownError ) {
console.log( xhr.status );
console.log( thrownError );
}
});
});
});
<?php
use \Bitrix\Main\Localization\Loc;
use \Epublish\Magicsite\Integration;
Loc::loadMessages(__FILE__);
$warnings = array();
?>
<form action="<?php echo $APPLICATION->GetCurPage(); ?>" name="blog_install">
<?php echo bitrix_sessid_post(); ?>
<input type="hidden" name="lang" value="<?php echo LANG ?>">
<input type="hidden" name="id" value="epublish.magicsite">
<input type="hidden" name="install" value="Y">
<input type="hidden" id="error-main" name="error[main]" value="Y">
<input type="hidden" id="error-curl" name="error[curl]" value="Y">
<input type="hidden" id="error-dom" name="error[dom]" value="Y">
<input type="hidden" name="step" value="2">
<script language="JavaScript">
document.addEventListener('DOMContentLoaded', function(){
ChangeInstallPublic();
});
function ChangeInstallPublic() {
var disabled = false;
if (document.getElementById('error-main').value == "Y") {
disabled = true;
} else if (document.getElementById('error-curl').value == "Y") {
disabled = true;
} else if (document.getElementById('error-dom').value == "Y") {
disabled = true;
} else if (typeof(document.getElementById('overwrite-sections')) != 'undefined' && document.getElementById('overwrite-sections') != null){
if (document.getElementById('overwrite-sections').checked == false) {
disabled = true;
}
}
document.getElementById('inst').disabled = disabled;
}
</script>
<div class="inst-cont-title-wrap">
<div class="inst-cont-title"><?php echo Loc::getMessage('EPUBLISH_MAGICSITE_INSTALL_CHECK_TITLE'); ?></div>
</div>
<div class="step-content">
<?php echo Loc::getMessage('EPUBLISH_MAGICSITE_INSTALL_CHECK_DESC'); ?><br>
<table border="0" class="data-table data-table-multiple-column">
<tr>
<td class="header"><?php echo Loc::getMessage('EPUBLISH_MAGICSITE_INSTALL_CHECK_HEADER_PARAM'); ?></td>
<td class="header"><?php echo Loc::getMessage('EPUBLISH_MAGICSITE_INSTALL_CHECK_HEADER_NEED'); ?></td>
<td class="header"><?php echo Loc::getMessage('EPUBLISH_MAGICSITE_INSTALL_CHECK_HEADER_CURRENT'); ?></td>
</tr>
<tr>
<td valign="top"><?php echo Loc::getMessage('EPUBLISH_MAGICSITE_INSTALL_CHECK_MAIN_MODULE_VERSION_TITLE'); ?></td>
<td valign="top"><?php echo Loc::getMessage('EPUBLISH_MAGICSITE_INSTALL_CHECK_MAIN_MODULE_VERSION_NEED'); ?></td>
<td valign="top">
<?php if (CheckVersion(\Bitrix\Main\ModuleManager::getVersion('main'), '14.00.00')) : ?>
<script language="JavaScript">document.getElementById('error-main').value = "N"</script>
<b><span style="color:green"><?php echo \Bitrix\Main\ModuleManager::getVersion('main'); ?></span></b>
<?php else : ?>
<b><span style="color:red"><?php echo \Bitrix\Main\ModuleManager::getVersion('main'); ?></span></b>
<?php endif; ?>
</td>
</tr>
<tr>
<td colspan="3"><b><?php echo Loc::getMessage('EPUBLISH_MAGICSITE_INSTALL_CHECK_PHP_EXTENSION_TITLE'); ?>:</b></td>
</tr>
<tr>
<td valign="top"><a href="https://www.php.net/manual/en/book.curl.php" target="_blank"><?php echo Loc::getMessage('EPUBLISH_MAGICSITE_INSTALL_CHECK_PHP_EXTENSION_CURL_TITLE'); ?></a></td>
<td valign="top">Установлен</td>
<td valign="top">
<?php if (extension_loaded('curl')) : ?>
<script language="JavaScript">document.getElementById('error-curl').value = "N"</script>
<b><span style="color:green"><?php echo Loc::getMessage('EPUBLISH_MAGICSITE_INSTALL_CHECK_PHP_EXTENSION_LOADED'); ?></span></b>
<?php else : ?>
<b><span style="color:green"><?php echo Loc::getMessage('EPUBLISH_MAGICSITE_INSTALL_CHECK_PHP_EXTENSION_UNLOADED'); ?></span></b>
<?php endif; ?>
</td>
</tr>
<tr>
<td valign="top">
<a href="https://www.php.net/manual/ru/book.dom.php" target="_blank"><?php echo Loc::getMessage('EPUBLISH_MAGICSITE_INSTALL_CHECK_PHP_EXTENSION_DOM_TITLE'); ?></a>
</td>
<td valign="top">Установлен</td>
<td valign="top">
<?php if (extension_loaded('dom')) : ?>
<script language="JavaScript">document.getElementById('error-dom').value = "N"</script>
<b><span style="color:green"><?php echo Loc::getMessage('EPUBLISH_MAGICSITE_INSTALL_CHECK_PHP_EXTENSION_LOADED'); ?></span></b>
<?php else : ?>
<b><span style="color:green"><?php echo Loc::getMessage('EPUBLISH_MAGICSITE_INSTALL_CHECK_PHP_EXTENSION_UNLOADED'); ?></span></b>
<?php endif; ?>
</td>
</tr>
<tr>
<td colspan="3"><b>Разделы сайта:</b></td>
</tr>
<?php $sections = epublish_magicsite::getSections(); ?>
<?php foreach ($sections as $section ) : ?>
<tr>
<td valign="top"><?php echo $section['title']; ?> (<b>/<?php echo $section['path']; ?>/</b>)</td>
<td valign="top"><?php echo Loc::getMessage('EPUBLISH_MAGICSITE_INSTALL_CHECK_SESCTION_NOT_EXISTS'); ?></td>
<td valign="top">
<?php if (file_exists($_SERVER["DOCUMENT_ROOT"].'/'.$section['path'].'/index.php')) :
$warnings['sections'][] = $section['path']; ?>
<b><span style="color:brown"><?php echo Loc::getMessage('EPUBLISH_MAGICSITE_INSTALL_CHECK_SESCTION_EXISTS'); ?></span></b>
<?php else : ?>
<b><span style="color:green"><?php echo Loc::getMessage('EPUBLISH_MAGICSITE_INSTALL_CHECK_SESCTION_NOT_EXISTS'); ?></span></b>
<?php endif; ?>
</td>
</tr>
<?php if (isset($section['below'])) : ?>
<?php foreach ($section['below'] as $subsection ) : ?>
<tr>
<td valign="top"><span><?php echo $subsection['title']; ?> (<b>/<?php echo $subsection['path']; ?>/</b>)</span></td>
<td valign="top"><?php echo Loc::getMessage('EPUBLISH_MAGICSITE_INSTALL_CHECK_SESCTION_NOT_EXISTS'); ?></td>
<td valign="top">
<?php if (file_exists($_SERVER["DOCUMENT_ROOT"].'/'.$subsection['path'].'/index.php')) :
$warnings['sections'][] = $section['path']; ?>
<b><span style="color:brown"><?php echo Loc::getMessage('EPUBLISH_MAGICSITE_INSTALL_CHECK_SESCTION_EXISTS'); ?></span></b>
<?php else : ?>
<b><span style="color:green"><?php echo Loc::getMessage('EPUBLISH_MAGICSITE_INSTALL_CHECK_SESCTION_NOT_EXISTS'); ?></span></b>
<?php endif; ?>
</td>
</tr>
<?php endforeach; ?>
<?php endif; ?>
<?php endforeach; ?>
</table>
<?php if (count($warnings)) : ?>
<p>
<input type="checkbox" name="overwrite_sections" value="Y" id="overwrite-sections" onclick="ChangeInstallPublic();">&nbsp;<label for="overwrite-sections"><?php echo Loc::getMessage('EPUBLISH_MAGICSITE_INSTALL_OVERWRITE_SESCTION'); ?></label><br />
</p>
<br>
<?php endif; ?>
<table class="data-table">
<tr>
<td width="0%">
<font color="green"><?php echo Loc::getMessage('EPUBLISH_MAGICSITE_INSTALL_LEGEND_GREEN'); ?><br></font>
<font color="red"><?php echo Loc::getMessage('EPUBLISH_MAGICSITE_INSTALL_LEGEND_RED'); ?><br></font>
<font color="brown"><?php echo Loc::getMessage('EPUBLISH_MAGICSITE_INSTALL_LEGEND_BROWN'); ?></font>
</td>
</tr>
</table>
<p>
<input type="checkbox" name="top_menu" value="Y" id="top-menu" checked>&nbsp;<label for="top-menu"><?php echo Loc::getMessage('EPUBLISH_MAGICSITE_INSTALL_TOP_MENU'); ?></label><br />
<sub><?php echo Loc::getMessage('EPUBLISH_MAGICSITE_INSTALL_TOP_MENU_DESC'); ?></sub>
</p>
<p>
<input type="checkbox" name="left_menu" value="Y" id="left-menu" checked>&nbsp;<label for="left-menu"><?php echo Loc::getMessage('EPUBLISH_MAGICSITE_INSTALL_LEFT_MENU'); ?></label><br />
<sub><?php echo Loc::getMessage('EPUBLISH_MAGICSITE_INSTALL_LEFT_MENU_DESC'); ?></sub>
</p>
<br>
<input type="submit" name="inst" id="inst" value="<?= GetMessage("MOD_INSTALL")?>">
</div>
</form>
<style>
.inst-cont-title {
background: #e7efc2;
border: 1px solid;
border-color: #d3e1c1 #cbdab4 #c5d4a7;
border-radius: 3px;
-webkit-box-shadow: 0 1px 0 #fff;
box-shadow: inset 0 1px 0 #fff;
color: #000;
font-size: 16px;
font-weight: bold;
line-height: 37px;
height: 37px;
padding: 0 17px;
text-shadow: 0 1px rgb(255 255 255 / 90%);
}
.inst-cont-title {
background: #e7efc2;
border: 1px solid;
border-color: #d3e1c1 #cbdab4 #c5d4a7;
border-radius: 3px;
-webkit-box-shadow: 0 1px 0 #fff;
box-shadow: inset 0 1px 0 #fff;
color: #000;
font-size: 16px;
font-weight: bold;
line-height: 37px;
height: 37px;
padding: 0 17px;
text-shadow: 0 1px rgb(255 255 255 / 90%);
}
.step-content {
background-color: #ffffff;
color: #737373;
text-align: left;
vertical-align: top;
padding: 25px 35px 25px 25px;
}
.data-table{
border:1px solid #e7eff2;
border-bottom:none;
border-radius:5px;
border-spacing:0;
margin-bottom:20px;
width: 100%;
}
.data-table th,
.data-table thead tr td,
.data-table td.header{
background: #e3ebee;
background:-webkit-linear-gradient(top, #e0eaec, #e5ecef);
background:-moz-linear-gradient(top, #e0eaec, #e5ecef);
background:-ms-linear-gradient(top, #e0eaec, #e5ecef);
background:-o-linear-gradient(top, #e0eaec, #e5ecef);
background:linear-gradient(to bottom, #e0eaec, #e5ecef);
border-color: #f1f1f1 #e5e5e5 #bac0c3;
box-shadow: inset 0 1px 0 #fff, inset 0 0 0 1px rgba(255,255,255,.3), 0 1px 0 #eaeded;
color: #000;
font-size: 14px;
font-weight: bold;
line-height: 39px;
margin: 0 -1px 16px;
overflow: hidden;
text-overflow: ellipsis;
padding: 0 17px;
white-space: nowrap;
}
.data-table td{
background:#fafcfd;
border-bottom:1px solid #e6eaeb;
color: #000;
text-shadow:0 1px 1px #fff;
font-size:14px;
padding:10px 10px 10px 17px;
}
.data-table td span{
padding-left: 40px;
}
.data-table-multiple-column th td,
.data-table-multiple-column thead tr td,
.data-table-multiple-column td.header {border-left: 1px solid #d3dddf;}
.data-table-multiple-column td {border-left: 1px solid #e6eaeb;}
.data-table-multiple-column td:first-child {border-left: none;}
.data-table td small {display: inline-block; padding-top: 5px;}
.data-table tr:last-child td:first-child{border-bottom-left-radius:5px;}
.data-table tr:last-child td:last-child{border-bottom-right-radius:5px;}
.data-table tr:first-child td:first-child{border-top-left-radius:5px; margin-top: -1px;}
.data-table tr:first-child td:last-child{border-top-right-radius:5px; margin-top: -1px;}
.data-table input[type="text"],
.data-table input[type="password"] {
background: #fff;
border: 1px solid;
border-color: #c8ced3 #ccd2d7 #d2d8dc;
border-radius: 3px;
-webkit-box-shadow: inset 0 1px 0 #edf0f1, inset 0 2px 0 #f9fafb;
box-shadow: inset 0 1px 0 #edf0f1, inset 0 2px 0 #f9fafb;
font-size: 14px;
font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
height: 29px;
outline: none;
padding: 0 5px;
width: 290px;
}
.data-table select {
font-size: 14px;
font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
height: 29px;
outline: none;
padding: 5px 3px;
width: 290px;
}
.data-table input[type="radio"]{
margin-left: 0;
}
.data-table input[type="checkbox"]{
margin-right: 8px;
}
.data-table input[type="checkbox"]+label {
display: inline-block;
padding-top: 1px;
vertical-align: top;
}
</style>
<?php
use \Bitrix\Main\Localization\Loc;
use \Epublish\Magicsite\Integration;
Loc::loadMessages(__FILE__);
if(!check_bitrix_sessid()) return;
global $errors;
if ($errors == '') {
echo CAdminMessage::ShowNote(Loc::getMessage("MOD_INST_OK"));
echo CAdminMessage::ShowMessage(Array("TYPE"=>"OK", "MESSAGE" =>Loc::getMessage('EPUBLISH_MAGICSITE_INSTALL_SETTINGS_TITLE'), "DETAILS"=>Loc::getMessage('EPUBLISH_MAGICSITE_INSTALL_SETTINGS_DESC'), "HTML"=>true));
} else {
for ($i=0; $i<count($errors); $i++) {
$alErrors .= $errors[$i]."<br>";
}
echo CAdminMessage::ShowMessage(Array("TYPE"=>"ERROR", "MESSAGE" =>Loc::getMessage("MOD_INST_ERR"), "DETAILS"=>$alErrors, "HTML"=>true));
}
if ($ex = $APPLICATION->GetException()) {
echo CAdminMessage::ShowMessage(Array("TYPE" => "ERROR", "MESSAGE" => GetMessage("MOD_INST_ERR"), "HTML" => true, "DETAILS" => $ex->GetString()));
}
?>
<form action="<?php echo $APPLICATION->GetCurPage()?>">
<input type="hidden" name="lang" value="<?php echo LANG?>">
<input type="submit" name="" value="<?php echo Loc::getMessage("MOD_BACK")?>">
<input type="button" name="" onClick="window.location.href='/bitrix/admin/settings.php?mid=epublish.magicsite&lang=<?php echo LANG ?>'") value="<?php echo Loc::getMessage('EPUBLISH_MAGICSITE_INSTALL_SETTINGS'); ?>">
<form>
<?php
$arModuleVersion = [
"VERSION" => "1.0.1",
"VERSION_DATE" => "2021-08-19 14:00:00"
];
<?php
$MESS["EPUBLISH_MAGICSITE_MODULE_NAME"] = "Интеграция с ИС MagicSite";
$MESS["EPUBLISH_MAGICSITE_MODULE_DESC"] = "Модуль для включения обязательных разделов сайта образовательной организации из информационной системы «MagicSite» (https://edusite.ru/) на сайт под управлением CMS Bitrix";
$MESS["EPUBLISH_MAGICSITE_PARTNER_NAME"] = "АО Е-Паблиш";
$MESS["EPUBLISH_MAGICSITE_PARTNER_URI"] = "https://edusite.ru/";
$MESS["EPUBLISH_MAGICSITE_DENIED"] = "Доступ закрыт";
$MESS["EPUBLISH_MAGICSITE_READ_COMPONENT"] = "Доступ к компонентам";
$MESS["EPUBLISH_MAGICSITE_WRITE_SETTINGS"] = "Изменение настроек модуля";
$MESS["EPUBLISH_MAGICSITE_FULL"] = "Полный доступ";
$MESS["EPUBLISH_MAGICSITE_INSTALL_TITLE"] = "Установка модуля MagicSite";
$MESS["EPUBLISH_MAGICSITE_INSTALL_ERROR_VERSION"] = "Версия главного модуля ниже 14. Не поддерживается технология D7, необходимая модулю. Пожалуйста обновите систему.";
$MESS["EPUBLISH_MAGICSITE_TOP_MENU_TITLE"] = "Сведения об образовательной организации";
$MESS['EPUBLISH_MAGICSITE_SECTION_SVEDEN_TITLE'] = 'Сведения об образовательной организации';
$MESS['EPUBLISH_MAGICSITE_SECTION_SVEDEN_COMMON_TITLE'] = 'Основные сведения';
$MESS['EPUBLISH_MAGICSITE_SECTION_SVEDEN_STRUCT_TITLE'] = 'Структура и органы управления образовательной организацией';
$MESS['EPUBLISH_MAGICSITE_SECTION_SVEDEN_DOCUMENT_TITLE'] = 'Документы';
$MESS['EPUBLISH_MAGICSITE_SECTION_SVEDEN_EDUCATION_TITLE'] = 'Образование';
$MESS['EPUBLISH_MAGICSITE_SECTION_SVEDEN_EDUSTANDARTS_TITLE'] = 'Образовательные стандарты';
$MESS['EPUBLISH_MAGICSITE_SECTION_SVEDEN_EMPLOYEES_TITLE'] = 'Руководство. Педагогический (научно-педагогический) состав';
$MESS['EPUBLISH_MAGICSITE_SECTION_SVEDEN_OBJECTS_TITLE'] = 'Материально-техническое обеспечение и оснащенность образовательного процесса';
$MESS['EPUBLISH_MAGICSITE_SECTION_SVEDEN_GRANTS_TITLE'] = 'Стипендии и меры поддержки обучающихся';
$MESS['EPUBLISH_MAGICSITE_SECTION_SVEDEN_PAID_EDU_TITLE'] = 'Платные образовательные услуги';
$MESS['EPUBLISH_MAGICSITE_SECTION_SVEDEN_BUDGET_TITLE'] = 'Финансово-хозяйственная деятельность';
$MESS['EPUBLISH_MAGICSITE_SECTION_SVEDEN_VACANT_TITLE'] = 'Вакантные места для приема (перевода) обучающихся';
$MESS['EPUBLISH_MAGICSITE_SECTION_SVEDEN_OVZ_TITLE'] = 'Доступная среда';
$MESS['EPUBLISH_MAGICSITE_SECTION_SVEDEN_INTER_TITLE'] = 'Международное сотрудничество';
$MESS['EPUBLISH_MAGICSITE_SECTION_INFOSEC_TITLE'] = 'Информационная безопасность';
$MESS['EPUBLISH_MAGICSITE_SECTION_INFOSEC_COMMON_TITLE'] = 'Локальные нормативные акты в сфере обеспечения информационной безопасности обучающихся';
$MESS['EPUBLISH_MAGICSITE_SECTION_INFOSEC_NORMREG_TITLE'] = 'Нормативное регулирование';
$MESS['EPUBLISH_MAGICSITE_SECTION_INFOSEC_EDUCATOR_TITLE'] = 'Педагогическим работникам';
$MESS['EPUBLISH_MAGICSITE_SECTION_INFOSEC_STUDENTS_TITLE'] = 'Обучающимся';
$MESS['EPUBLISH_MAGICSITE_SECTION_INFOSEC_PARENTS_TITLE'] = 'Родителям';
$MESS['EPUBLISH_MAGICSITE_SECTION_INFOSEC_SITES_TITLE'] = 'Детские безопасные сайты';
$MESS['EPUBLISH_MAGICSITE_SECTION_ANTICORRUPTION_TITLE'] = 'Противодействие коррупции';
$MESS['EPUBLISH_MAGICSITE_SECTION_ANTICORRUPTION_NORMACTY_TITLE'] = 'Нормативные правовые и иные акты в сфере противодействия коррупции';
$MESS['EPUBLISH_MAGICSITE_SECTION_ANTICORRUPTION_EXPERTISE_TITLE'] = 'Антикоррупционная экспертиза';
$MESS['EPUBLISH_MAGICSITE_SECTION_ANTICORRUPTION_MATERIALS_TITLE'] = 'Методические материалы';
$MESS['EPUBLISH_MAGICSITE_SECTION_ANTICORRUPTION_FORMS_TITLE'] = 'Формы документов, связанных с противодействием коррупции, для заполнения';
$MESS['EPUBLISH_MAGICSITE_SECTION_ANTICORRUPTION_DOHODY_TITLE'] = 'Сведения о доходах, расходах, об имуществе и обязательствах имущественного характера';
$MESS['EPUBLISH_MAGICSITE_SECTION_ANTICORRUPTION_COMMISSION_TITLE'] = 'Комиссия по соблюдению требований к служебному поведению и урегулированию конфликта интересов (аттестационная комиссия)';
$MESS['EPUBLISH_MAGICSITE_SECTION_ANTICORRUPTION_FEEDBACK_TITLE'] = 'Обратная связь для сообщений о фактах коррупции';
$MESS['EPUBLISH_MAGICSITE_SECTION_ANTICORRUPTION_RESPONSIBILITY_TITLE'] = 'Меры юридической ответственности';
$MESS['EPUBLISH_MAGICSITE_SECTION_ANTICORRUPTION_INFORM_TITLE'] = 'Информационные материалы';
$MESS['EPUBLISH_MAGICSITE_SECTION_QUALITY_TITLE'] = 'Независимая оценка качества';
$MESS['EPUBLISH_MAGICSITE_SECTION_SHEDULE_TITLE'] = 'Дистанционное обучение';
$MESS['EPUBLISH_MAGICSITE_SECTION_EDUCATIVE_TITLE'] = 'Воспитательная работа';
$MESS['EPUBLISH_MAGICSITE_SECTION_EDUCATIVE_DO_TITLE'] = 'Часть основной образовательной программы дошкольного образования';
$MESS['EPUBLISH_MAGICSITE_SECTION_EDUCATIVE_NOO_TITLE'] = 'Часть основной образовательной программы начального общего образования';
$MESS['EPUBLISH_MAGICSITE_SECTION_EDUCATIVE_OOO_TITLE'] = 'Часть основной образовательной программы основного общего образования';
$MESS['EPUBLISH_MAGICSITE_SECTION_EDUCATIVE_SOO_TITLE'] = 'Часть основной образовательной программы среднего общего образования';
$MESS['EPUBLISH_MAGICSITE_SECTION_EDUCATIVE_ANALISE_TITLE'] = 'Анализ достижений';
$MESS['EPUBLISH_MAGICSITE_SECTION_EDUCATIVE_INFO_TITLE'] = 'Информация о психолого-педагогической и социальной помощи';
$MESS['EPUBLISH_MAGICSITE_SECTION_EDUCATIVE_EVENTS_TITLE'] = 'Общешкольные события';
$MESS['EPUBLISH_MAGICSITE_SECTION_GIA_TITLE'] = 'Государственная итоговая аттестация';
$MESS['EPUBLISH_MAGICSITE_SECTION_MEALS_TITLE'] = 'Организация питания';
$MESS['EPUBLISH_MAGICSITE_SECTION_FOOD_TITLE'] = 'Ежедневное меню горячего питания';
$MESS['EPUBLISH_MAGICSITE_SECTION_LABOR_PROTECTION_TITLE'] = 'Охрана труда';
$MESS['EPUBLISH_MAGICSITE_SECTION_ACCOUNTING_POLICY_TITLE'] = 'Основные положения учетной политики';
$MESS['EPUBLISH_MAGICSITE_INSTALL_CHECK_TITLE'] = 'Предварительная проверка';
$MESS['EPUBLISH_MAGICSITE_INSTALL_CHECK_DESC'] = '<h3>Обязательные параметры системы</h3>Ваша система должна соответствовать обязательным параметрам. Если какой-либо из этих параметров выделен красным цветом, то вам необходимо исправить его. В противном случае работоспособность модуля не гарантируется.<br>';
$MESS['EPUBLISH_MAGICSITE_INSTALL_CHECK_HEADER_PARAM'] = 'Параметр';
$MESS['EPUBLISH_MAGICSITE_INSTALL_CHECK_HEADER_NEED'] = 'Требуется';
$MESS['EPUBLISH_MAGICSITE_INSTALL_CHECK_HEADER_CURRENT'] = '';
$MESS['EPUBLISH_MAGICSITE_INSTALL_CHECK_HEADER_CURRENT'] = 'Текущее&nbsp;значение';
$MESS['EPUBLISH_MAGICSITE_INSTALL_CHECK_MAIN_MODULE_VERSION_TITLE'] = 'Версия основного модуля';
$MESS['EPUBLISH_MAGICSITE_INSTALL_CHECK_MAIN_MODULE_VERSION_NEED'] = '14.00.00 и выше';
$MESS['EPUBLISH_MAGICSITE_INSTALL_CHECK_PHP_EXTENSION_TITLE'] = 'Требуемые модули PHP';
$MESS['EPUBLISH_MAGICSITE_INSTALL_CHECK_PHP_EXTENSION_CURL_TITLE'] = 'Клиентская библиотека работы с URL';
$MESS['EPUBLISH_MAGICSITE_INSTALL_CHECK_PHP_EXTENSION_DOM_TITLE'] = 'Document Object Model';
$MESS['EPUBLISH_MAGICSITE_INSTALL_CHECK_PHP_EXTENSION_LOADED'] = 'Установлен';
$MESS['EPUBLISH_MAGICSITE_INSTALL_CHECK_PHP_EXTENSION_UNLOADED'] = 'Не установлен';
$MESS['EPUBLISH_MAGICSITE_INSTALL_CHECK_SESCTION_EXISTS'] = 'Присутствует';
$MESS['EPUBLISH_MAGICSITE_INSTALL_CHECK_SESCTION_NOT_EXISTS'] = 'Отсутствует';
$MESS['EPUBLISH_MAGICSITE_INSTALL_OVERWRITE_SESCTION'] = 'Перезаписать существующие разделы';
$MESS['EPUBLISH_MAGICSITE_INSTALL_LEGEND_GREEN'] = '<b>Зеленым цветом</b></font> выделены значения, которые удовлетворяют требованиям системы.';
$MESS['EPUBLISH_MAGICSITE_INSTALL_LEGEND_RED'] = '<b>Красным цветом</b></font> выделены значения, которые <b>не</b> удовлетворяют требованиям системы.';
$MESS['EPUBLISH_MAGICSITE_INSTALL_LEGEND_BROWN'] = '<b>Коричневым цветом</b></font> выделены значения, которые <b>требуют</b> согласия на перезапись.';
$MESS['EPUBLISH_MAGICSITE_INSTALL_SETTINGS'] = 'Настройка';
$MESS['EPUBLISH_MAGICSITE_INSTALL_SETTINGS_TITLE'] = 'Тебуется настройка модуля';
$MESS['EPUBLISH_MAGICSITE_INSTALL_SETTINGS_DESC'] = 'Для корректной работы модуля необходимо указть адресс сайта в ИС MagicSite<br>Вы можете сделать это сейчас, кликнув по кнопке "Настрока" или сделать это позже через соответсвующий пункт в административном меню.';
$MESS['EPUBLISH_MAGICSITE_INSTALL_TOP_MENU'] = 'Добавить ссылки на обязательные разделы сведений в верхнее меню сайта.';
$MESS['EPUBLISH_MAGICSITE_INSTALL_TOP_MENU_DESC'] = 'Верхнее меню сайта будет дополнено ссылками на обязательные разделы сведений об образовательной организации.';
$MESS['EPUBLISH_MAGICSITE_INSTALL_LEFT_MENU'] = 'Добавить ссылки на обязательные разделы сведений в левое меню сайта.';
$MESS['EPUBLISH_MAGICSITE_INSTALL_LEFT_MENU_DESC'] = 'Левое меню сайта будет дополнено ссылками на обязательные разделы сведений об образовательной организации.<br>Если разделы сайта содержат уникальные боковые меню, они дополнены <b>не будут</b>.';
<?php
$MESS['EPUBLISH_MAGICSITE_ERROR_CODE'] = 'Неудалось получить данные. Удаленный сервер вернул код ';
$MESS['EPUBLISH_MAGICSITE_SETTINGS_ERROR'] = 'Ошибка настройки модуля интеграции с MagicSite';
$MESS['EPUBLISH_MAGICSITE_SVEDEN_TITLE'] = 'Сведения об образовательной организации';
$MESS['EPUBLISH_MAGICSITE_SVEDEN_COMMON_TITLE'] = 'Основные сведения';
$MESS['EPUBLISH_MAGICSITE_SVEDEN_STRUCT_TITLE'] = 'Структура и органы управления образовательной организацией';
$MESS['EPUBLISH_MAGICSITE_SVEDEN_DOCUMENT_TITLE'] = 'Документы';
$MESS['EPUBLISH_MAGICSITE_SVEDEN_EDUCATION_TITLE'] = 'Образование';
$MESS['EPUBLISH_MAGICSITE_SVEDEN_EDUSTANDARTS_TITLE'] = 'Образовательные стандарты';
$MESS['EPUBLISH_MAGICSITE_SVEDEN_EMPLOYEES_TITLE'] = 'Руководство. Педагогический (научно-педагогический) состав';
$MESS['EPUBLISH_MAGICSITE_SVEDEN_OBJECTS_TITLE'] = 'Материально-техническое обеспечение и оснащенность образовательного процесса';
$MESS['EPUBLISH_MAGICSITE_SVEDEN_GRANTS_TITLE'] = 'Стипендии и меры поддержки обучающихся';
$MESS['EPUBLISH_MAGICSITE_SVEDEN_PAID_EDU_TITLE'] = 'Платные образовательные услуги';
$MESS['EPUBLISH_MAGICSITE_SVEDEN_BUDGET_TITLE'] = 'Финансово-хозяйственная деятельность';
$MESS['EPUBLISH_MAGICSITE_SVEDEN_VACANT_TITLE'] = 'Вакантные места для приема (перевода) обучающихся';
$MESS['EPUBLISH_MAGICSITE_SVEDEN_OVZ_TITLE'] = 'Доступная среда';
$MESS['EPUBLISH_MAGICSITE_SVEDEN_INTER_TITLE'] = 'Международное сотрудничество';
$MESS['EPUBLISH_MAGICSITE_INFOSEC_TITLE'] = 'Информационная безопасность';
$MESS['EPUBLISH_MAGICSITE_INFOSEC_COMMON_TITLE'] = 'Локальные нормативные акты в сфере обеспечения информационной безопасности обучающихся';
$MESS['EPUBLISH_MAGICSITE_INFOSEC_NORMREG_TITLE'] = 'Нормативное регулирование';
$MESS['EPUBLISH_MAGICSITE_INFOSEC_EDUCATOR_TITLE'] = 'Педагогическим работникам';
$MESS['EPUBLISH_MAGICSITE_INFOSEC_STUDENTS_TITLE'] = 'Обучающимся';
$MESS['EPUBLISH_MAGICSITE_INFOSEC_PARENTS_TITLE'] = 'Родителям';
$MESS['EPUBLISH_MAGICSITE_INFOSEC_SITES_TITLE'] = 'Детские безопасные сайты';
$MESS['EPUBLISH_MAGICSITE_ANTICORRUPTION_TITLE'] = 'Противодействие коррупции';
$MESS['EPUBLISH_MAGICSITE_ANTICORRUPTION_NORMACTY_TITLE'] = 'Нормативные правовые и иные акты в сфере противодействия коррупции';
$MESS['EPUBLISH_MAGICSITE_ANTICORRUPTION_EXPERTISE_TITLE'] = 'Антикоррупционная экспертиза';
$MESS['EPUBLISH_MAGICSITE_ANTICORRUPTION_MATERIALS_TITLE'] = 'Методические материалы';
$MESS['EPUBLISH_MAGICSITE_ANTICORRUPTION_FORMS_TITLE'] = 'Формы документов, связанных с противодействием коррупции, для заполнения';
$MESS['EPUBLISH_MAGICSITE_ANTICORRUPTION_DOHODY_TITLE'] = 'Сведения о доходах, расходах, об имуществе и обязательствах имущественного характера';
$MESS['EPUBLISH_MAGICSITE_ANTICORRUPTION_COMMISSION_TITLE'] = 'Комиссия по соблюдению требований к служебному поведению и урегулированию конфликта интересов (аттестационная комиссия)';
$MESS['EPUBLISH_MAGICSITE_ANTICORRUPTION_FEEDBACK_TITLE'] = 'Обратная связь для сообщений о фактах коррупции';
$MESS['EPUBLISH_MAGICSITE_ANTICORRUPTION_RESPONSIBILITY_TITLE'] = 'Меры юридической ответственности';
$MESS['EPUBLISH_MAGICSITE_ANTICORRUPTION_INFORM_TITLE'] = 'Информационные материалы';
$MESS['EPUBLISH_MAGICSITE_QUALITY_TITLE'] = 'Независимая оценка качества';
$MESS['EPUBLISH_MAGICSITE_SHEDULE_TITLE'] = 'Дистанционное обучение';
$MESS['EPUBLISH_MAGICSITE_EDUCATIVE_TITLE'] = 'Воспитательная работа';
$MESS['EPUBLISH_MAGICSITE_EDUCATIVE_DO_TITLE'] = 'Часть основной образовательной программы дошкольного образования';
$MESS['EPUBLISH_MAGICSITE_EDUCATIVE_NOO_TITLE'] = 'Часть основной образовательной программы начального общего образования';
$MESS['EPUBLISH_MAGICSITE_EDUCATIVE_OOO_TITLE'] = 'Часть основной образовательной программы основного общего образования';
$MESS['EPUBLISH_MAGICSITE_EDUCATIVE_SOO_TITLE'] = 'Часть основной образовательной программы среднего общего образования';
$MESS['EPUBLISH_MAGICSITE_EDUCATIVE_ANALISE_TITLE'] = 'Анализ достижений';
$MESS['EPUBLISH_MAGICSITE_EDUCATIVE_INFO_TITLE'] = 'Информация о психолого-педагогической и социальной помощи';
$MESS['EPUBLISH_MAGICSITE_EDUCATIVE_EVENTS_TITLE'] = 'Общешкольные события';
$MESS['EPUBLISH_MAGICSITE_GIA_TITLE'] = 'Государственная итоговая аттестация';
$MESS['EPUBLISH_MAGICSITE_MEALS_TITLE'] = 'Организация питания';
$MESS['EPUBLISH_MAGICSITE_FOOD_TITLE'] = 'Ежедневное меню горячего питания';
$MESS['EPUBLISH_MAGICSITE_LABOR_PROTECTION_TITLE'] = 'Охрана труда';
$MESS['EPUBLISH_MAGICSITE_ACCOUNTING_POLICY_TITLE'] = 'Основные положения учетной политики';
<?php
$MESS["EPUBLISH_MAGICSITE_TAB_SETTINGS"] = 'Основные настройки';
$MESS["EPUBLISH_MAGICSITE_URL_TITLE"] = 'Адрес сайта в ИС MagicSite';
$MESS["EPUBLISH_MAGICSITE_URL_ERROR"] = 'Не верное значение в поле "Адрес сайта в ИС MagicSite"';
<?php
namespace Epublish\Magicsite;
use \Bitrix\Main\Page\Asset;
use \Bitrix\Main\Config\Option;
use \Bitrix\Main\Localization\Loc;
Loc::loadMessages(__FILE__);
class Integration
{
private function getPage( $uri, $header = FALSE ) {
$response = [];
$url = parse_url( $uri );
$curlInit = curl_init( $uri );
curl_setopt( $curlInit, CURLOPT_CONNECTTIMEOUT, 20 );
if ( $header ) {
curl_setopt( $curlInit, CURLOPT_HEADER, true );
curl_setopt( $curlInit, CURLOPT_NOBODY, true );
}
if ( $url['scheme'] == 'https' ) {
curl_setopt( $curlInit, CURLOPT_SSL_VERIFYHOST , 2 );
}
curl_setopt( $curlInit, CURLOPT_SSL_VERIFYPEER, false );
curl_setopt( $curlInit, CURLOPT_RETURNTRANSFER, true );
curl_setopt( $curlInit, CURLOPT_FOLLOWLOCATION, true );
curl_setopt( $curlInit, CURLOPT_COOKIEJAR, '-' );
curl_setopt( $curlInit, CURLOPT_REFERER, $_SERVER['SERVER_NAME'] );
curl_setopt( $curlInit, CURLOPT_USERAGENT, "Mozilla/5.0 (Windows NT 10.0; Win64; x64)" );
$response['response'] = curl_exec( $curlInit );
$response['effective_url'] = curl_getinfo( $curlInit, CURLINFO_EFFECTIVE_URL );
$response['response_code'] = intval(curl_getinfo( $curlInit, CURLINFO_HTTP_CODE ) );
curl_close( $curlInit );
return $response;
}
public static function getUrl( $uri ) {
$uri = trim( $uri );
preg_match( '/^(https?:\/\/)?/', $uri, $proto );
if ( ! isset( $proto[1] ) ) {
$uri = "http://" . $uri;
}
$url = parse_url( $uri );
if ( ! isset( $url['host'] ) ) {
return FALSE;
}
if ( checkdnsrr( $url['host'], "A" ) && gethostbyname( $url['host'] ) == gethostbyname( 'edusite.ru' ) ) {
$output = $url['scheme'] . '://';
$output .= $url['host'];
if ( isset( $url['port'] ) ) {
$output .= ':' . $url['port'];
}
if ( isset( $url['path'] ) ) {
$output .= $url['path'];
}
$res = Integration::getPage( $output, 1 );
if ( $res['response_code'] == 200 ) {
return $string = rtrim($res['effective_url'], '/');
}
}
return FALSE;
}
public function getContent($section, $page) {
if ($url = Option::get("epublish.magicsite", "magicsite_url")) {
$response = Integration::getPage($url . '/' . $section . '/' . $page . '.html' );
if ( $response['response_code'] == 200 ) {
Asset::getInstance()->addCss('https://js.edusite.ru/mmagicutf.css');
Asset::getInstance()->addCss('https://js.edusite.ru/jquery.fancybox.min.css');
Asset::getInstance()->addJs('https://js.edusite.ru/jquery.fancybox.min.js');
Asset::getInstance()->addJs('https://api-maps.yandex.ru/2.1/?lang=ru_RU');
$magicsite_content = '<div id="ajax-show-sign"></div>';
$dom = new \DOMDocument();
$dom->preserveWhiteSpace = false;
libxml_use_internal_errors( true );
$dom->loadHTML( $response['response'] );
$xpath = new \DOMXPath( $dom );
$ls_ads = $xpath->query( '//a' );
foreach ( $ls_ads as $ad ) {
if ( $ad->hasAttribute( 'href' ) ) {
$ad_url = $ad->getAttribute( 'href' );
$f = parse_url( $ad_url );
if ( ! isset( $f['scheme'] ) && ! isset( $f['host'] ) && isset( $f['path'] ) ) {
$ad->setAttribute( 'href', $url . '/' . $f['path'] );
}
}
}
$images = $dom->getElementsByTagName( 'img' );
foreach ( $images as $image ) {
$src = $image->getAttribute( 'src' );
$f = parse_url( $src );
if ( ! isset( $f['scheme'] ) && ! isset( $f['host'] ) && isset( $f['path'] ) ) {
$image->setAttribute( 'src', $url .'/' . $f['path'] );
}
}
$sections = $xpath->query( "//*[contains(@class, 'inner-page-block')]" );
foreach ( $sections as $section ) {
$magicsite_content .= $dom->saveHTML( $section );
}
libxml_clear_errors();
$magicsite_content = str_replace( "\n", "", $magicsite_content );
$sections = $xpath->query( "//*[contains(@class, '" . $post->post_name . "-page-script')]" );
$magic_script ='';
foreach ( $sections as $section ) {
$magic_script .= $dom->saveHTML( $section );
}
libxml_clear_errors();
Asset::getInstance()->addString($magic_script);
Asset::getInstance()->addString('<script type="text/javascript">var magicsite_url = "' . $url . '"</script>');
Asset::getInstance()->addString('<script type="text/javascript" src="/bitrix/js/epublish.magicsite/integration.js" />');
} else {
$magicsite_content = '<div>'.Loc::getMessage('EPUBLISH_MAGICSITE_ERROR_CODE').' '.$response['response_code'] ?? '0' . '</div>';
}
} else {
$magicsite_content = '<div>'.Loc::getMessage('EPUBLISH_MAGICSITE_SETTINGS_ERROR').'</div>';
}
return $magicsite_content ?? '';
}
public function getMenu() {
return array(
'sveden' => array(
'type' => 'menu_section',
'path' => 'sveden',
'title' => Loc::getMessage('EPUBLISH_MAGICSITE_SVEDEN_TITLE'),
'below' => array(
'common' => array(
'type' => 'menu_item',
'path' => 'sveden/common',
'section' => 'sveden',
'page' => 'common',
'title' => Loc::getMessage('EPUBLISH_MAGICSITE_SVEDEN_COMMON_TITLE'),
),
'struct' => array(
'type' => 'menu_item',
'path' => 'sveden/struct',
'section' => 'sveden',
'page' => 'struct',
'title' => Loc::getMessage('EPUBLISH_MAGICSITE_SVEDEN_STRUCT_TITLE'),
),
'document' => array(
'type' => 'menu_item',
'path' => 'sveden/document',
'section' => 'sveden',
'page' => 'document',
'title' => Loc::getMessage('EPUBLISH_MAGICSITE_SVEDEN_DOCUMENT_TITLE'),
),
'education' => array(
'type' => 'menu_item',
'path' => 'sveden/education',
'section' => 'sveden',
'page' => 'education',
'title' => Loc::getMessage('EPUBLISH_MAGICSITE_SVEDEN_EDUCATION_TITLE'),
),
'edustandarts' => array(
'type' => 'menu_item',
'path' => 'sveden/edustandarts',
'section' => 'sveden',
'page' => 'edustandarts',
'title' => Loc::getMessage('EPUBLISH_MAGICSITE_SVEDEN_EDUSTANDARTS_TITLE'),
),
'employees' => array(
'type' => 'menu_item',
'path' => 'sveden/employees',
'section' => 'sveden',
'page' => 'employees',
'title' => Loc::getMessage('EPUBLISH_MAGICSITE_SVEDEN_EMPLOYEES_TITLE'),
),
'objects' => array(
'type' => 'menu_item',
'path' => 'sveden/objects',
'section' => 'sveden',
'page' => 'objects',
'title' => Loc::getMessage('EPUBLISH_MAGICSITE_SVEDEN_OBJECTS_TITLE'),
),
'grants' => array(
'type' => 'menu_item',
'path' => 'sveden/grants',
'section' => 'sveden',
'page' => 'grants',
'title' => Loc::getMessage('EPUBLISH_MAGICSITE_SVEDEN_GRANTS_TITLE'),
),
'paid_edu' => array(
'type' => 'menu_item',
'path' => 'sveden/strupaid_educt',
'section' => 'sveden',
'page' => 'strupaid_educt',
'title' => Loc::getMessage('EPUBLISH_MAGICSITE_SVEDEN_PAID_EDU_TITLE'),
),
'budget' => array(
'type' => 'menu_item',
'path' => 'sveden/budget',
'section' => 'sveden',
'page' => 'budget',
'title' => Loc::getMessage('EPUBLISH_MAGICSITE_SVEDEN_BUDGET_TITLE'),
),
'vacant' => array(
'type' => 'menu_item',
'path' => 'sveden/vacant',
'section' => 'sveden',
'page' => 'vacant',
'title' => Loc::getMessage('EPUBLISH_MAGICSITE_SVEDEN_VACANT_TITLE'),
),
'ovz' => array(
'type' => 'menu_item',
'path' => 'sveden/ovz',
'section' => 'sveden',
'page' => 'ovz',
'title' => Loc::getMessage('EPUBLISH_MAGICSITE_SVEDEN_OVZ_TITLE'),
),
'inter' => array(
'type' => 'menu_item',
'path' => 'sveden/inter',
'section' => 'sveden',
'page' => 'inter',
'title' => Loc::getMessage('EPUBLISH_MAGICSITE_SVEDEN_INTER_TITLE'),
),
),
),
'infosec' => array(
'type' => 'menu_section',
'path' => 'infosec',
'title' => Loc::getMessage('EPUBLISH_MAGICSITE_INFOSEC_TITLE'),
'below' => array(
'common' => array(
'type' => 'menu_item',
'path' => 'infosec/common',
'section' => 'infosec',
'page' => 'common',
'title' => Loc::getMessage('EPUBLISH_MAGICSITE_INFOSEC_COMMON_TITLE'),
),
'normreg' => array(
'type' => 'menu_item',
'path' => 'infosec/normreg',
'section' => 'infosec',
'page' => 'normreg',
'title' => Loc::getMessage('EPUBLISH_MAGICSITE_INFOSEC_NORMREG_TITLE'),
),
'educator' => array(
'type' => 'menu_item',
'path' => 'infosec/educator',
'section' => 'infosec',
'page' => 'educator',
'title' => Loc::getMessage('EPUBLISH_MAGICSITE_INFOSEC_EDUCATOR_TITLE'),
),
'students' => array(
'type' => 'menu_item',
'path' => 'infosec/students',
'section' => 'infosec',
'page' => 'students',
'title' => Loc::getMessage('EPUBLISH_MAGICSITE_INFOSEC_STUDENTS_TITLE'),
),
'parents' => array(
'type' => 'menu_item',
'path' => 'infosec/parents',
'section' => 'infosec',
'page' => 'parents',
'title' => Loc::getMessage('EPUBLISH_MAGICSITE_INFOSEC_PARENTS_TITLE'),
),
'sites' => array(
'type' => 'menu_item',
'path' => 'infosec/sites',
'section' => 'infosec',
'page' => 'sites',
'title' => Loc::getMessage('EPUBLISH_MAGICSITE_INFOSEC_SITES_TITLE'),
),
),
),
'anticorruption' => array(
'type' => 'menu_section',
'path' => 'anticorruption',
'title' => Loc::getMessage('EPUBLISH_MAGICSITE_ANTICORRUPTION_TITLE'),
'below' => array(
'normativnieacti' => array(
'type' => 'menu_item',
'path' => 'anticorruption/normativnieacti',
'section' => 'anticorruption',
'page' => 'normativnieacti',
'title' => Loc::getMessage('EPUBLISH_MAGICSITE_ANTICORRUPTION_NORMACTY_TITLE'),
),
'expertise' => array(
'type' => 'menu_item',
'path' => 'anticorruption/expertise',
'section' => 'anticorruption',
'page' => 'expertise',
'title' => Loc::getMessage('EPUBLISH_MAGICSITE_ANTICORRUPTION_EXPERTISE_TITLE'),
),
'iniemetodmaterialy' => array(
'type' => 'menu_item',
'path' => 'anticorruption/iniemetodmaterialy',
'section' => 'anticorruption',
'page' => 'iniemetodmaterialy',
'title' => Loc::getMessage('EPUBLISH_MAGICSITE_ANTICORRUPTION_MATERIALS_TITLE'),
),
'forms' => array(
'type' => 'menu_item',
'path' => 'anticorruption/forms',
'section' => 'anticorruption',
'page' => 'forms',
'title' => Loc::getMessage('EPUBLISH_MAGICSITE_ANTICORRUPTION_FORMS_TITLE'),
),
'svedenodohodah' => array(
'type' => 'menu_item',
'path' => 'anticorruption/svedenodohodah',
'section' => 'anticorruption',
'page' => 'svedenodohodah',
'title' => Loc::getMessage('EPUBLISH_MAGICSITE_ANTICORRUPTION_DOHODY_TITLE'),
),
'commission' => array(
'type' => 'menu_item',
'path' => 'anticorruption/commission',
'section' => 'anticorruption',
'page' => 'commission',
'title' => Loc::getMessage('EPUBLISH_MAGICSITE_ANTICORRUPTION_COMMISSION_TITLE'),
),
'feedback' => array(
'type' => 'menu_item',
'path' => 'anticorruption/feedback',
'section' => 'anticorruption',
'page' => 'feedback',
'title' => Loc::getMessage('EPUBLISH_MAGICSITE_ANTICORRUPTION_FEEDBACK_TITLE'),
),
'responsibility' => array(
'type' => 'menu_item',
'path' => 'anticorruption/responsibility',
'section' => 'anticorruption',
'page' => 'responsibility',
'title' => Loc::getMessage('EPUBLISH_MAGICSITE_ANTICORRUPTION_RESPONSIBILITY_TITLE'),
),
'infomaterial' => array(
'type' => 'menu_item',
'path' => 'anticorruption/infomaterial',
'section' => 'anticorruption',
'page' => 'infomaterial',
'title' => Loc::getMessage('EPUBLISH_MAGICSITE_ANTICORRUPTION_INFORM_TITLE'),
),
),
),
'qualityassessment' => array(
'type' => 'menu_item',
'path' => 'qualityassessment',
'section' => 'qualityassessment',
'page' => 'qualityassessment',
'title' => Loc::getMessage('EPUBLISH_MAGICSITE_QUALITY_TITLE'),
),
'distance_education' => array(
'type' => 'menu_item',
'path' => 'distance_education',
'section' => 'shedule',
'page' => 'distance_education',
'title' => Loc::getMessage('EPUBLISH_MAGICSITE_SHEDULE_TITLE'),
),
'educative' => array(
'type' => 'menu_section',
'path' => 'educative',
'title' => Loc::getMessage('EPUBLISH_MAGICSITE_EDUCATIVE_TITLE'),
'below' => array(
'edwpartdo' => array(
'type' => 'menu_item',
'path' => 'educative/edwpartdo',
'section' => 'educative',
'page' => 'edwpartdo',
'title' => Loc::getMessage('EPUBLISH_MAGICSITE_EDUCATIVE_DO_TITLE'),
),
'edwpartnoo' => array(
'type' => 'menu_item',
'path' => 'educative/edwpartnoo',
'section' => 'educative',
'page' => 'edwpartnoo',
'title' => Loc::getMessage('EPUBLISH_MAGICSITE_EDUCATIVE_NOO_TITLE'),
),
'edwpartooo' => array(
'type' => 'menu_item',
'path' => 'educative/edwpartooo',
'section' => 'educative',
'page' => 'edwpartooo',
'title' => Loc::getMessage('EPUBLISH_MAGICSITE_EDUCATIVE_OOO_TITLE'),
),
'edwpartsoo' => array(
'type' => 'menu_item',
'path' => 'educative/edwpartsoo',
'section' => 'educative',
'page' => 'edwpartsoo',
'title' => Loc::getMessage('EPUBLISH_MAGICSITE_EDUCATIVE_SOO_TITLE'),
),
'edwanaliz' => array(
'type' => 'menu_item',
'path' => 'educative/edwanaliz',
'section' => 'educative',
'page' => 'edwanaliz',
'title' => Loc::getMessage('EPUBLISH_MAGICSITE_EDUCATIVE_ANALISE_TITLE'),
),
'edwinfo' => array(
'type' => 'menu_item',
'path' => 'educative/edwinfo',
'section' => 'educative',
'page' => 'edwinfo',
'title' => Loc::getMessage('EPUBLISH_MAGICSITE_EDUCATIVE_INFO_TITLE'),
),
'edwevents' => array(
'type' => 'menu_item',
'path' => 'educative/edwevents',
'section' => 'educative',
'page' => 'edwevents',
'title' => Loc::getMessage('EPUBLISH_MAGICSITE_EDUCATIVE_EVENTS_TITLE'),
),
),
),
'gia' => array(
'type' => 'menu_item',
'path' => 'gia',
'section' => 'sveden',
'page' => 'gia',
'title' => Loc::getMessage('EPUBLISH_MAGICSITE_GIA_TITLE'),
),
'meals' => array(
'type' => 'menu_section',
'path' => 'meals',
'title' => Loc::getMessage('EPUBLISH_MAGICSITE_MEALS_TITLE'),
'below' => array(
'meals' => array(
'type' => 'menu_item',
'path' => 'meals/meals',
'section' => 'sveden',
'page' => 'meals',
'title' => Loc::getMessage('EPUBLISH_MAGICSITE_MEALS_TITLE'),
),
'index' => array(
'type' => 'menu_item',
'path' => 'food',
'section' => 'food',
'page' => 'index',
'title' => Loc::getMessage('EPUBLISH_MAGICSITE_FOOD_TITLE'),
),
),
),
'labor_protection' => array(
'type' => 'menu_item',
'path' => 'labor_protection',
'section' => 'sveden',
'page' => 'labor_protection',
'title' => Loc::getMessage('EPUBLISH_MAGICSITE_LABOR_PROTECTION_TITLE'),
),
'accounting_policy' => array(
'type' => 'menu_item',
'path' => 'accounting_policy',
'section' => 'sveden',
'page' => 'accounting_policy',
'title' => Loc::getMessage('EPUBLISH_MAGICSITE_ACCOUNTING_POLICY_TITLE'),
),
);
}
}
<?php
use Bitrix\Main\Localization\Loc;
use Bitrix\Main\Config\Option;
use Epublish\Magicsite\Integration;
Loc::loadMessages(__FILE__);
$module_id = 'epublish.magicsite';
Loc::loadMessages($_SERVER["DOCUMENT_ROOT"].BX_ROOT."/modules/main/options.php");
Loc::loadMessages(__FILE__);
if ($APPLICATION->GetGroupRight($module_id)<"S")
{
$APPLICATION->AuthForm(Loc::getMessage("ACCESS_DENIED"));
}
\Bitrix\Main\Loader::includeModule($module_id);
$request = \Bitrix\Main\HttpApplication::getInstance()->getContext()->getRequest();
$aTabs = array(
array(
'DIV' => 'edit1',
'TAB' => Loc::getMessage('EPUBLISH_MAGICSITE_TAB_SETTINGS'),
'OPTIONS' => array(
array('magicsite_url', Loc::getMessage('EPUBLISH_MAGICSITE_URL_TITLE'),
'',
array('text', 128)),
)
),
);
if ($request->isPost() && $request['Update'] && check_bitrix_sessid())
{
foreach ($aTabs as $aTab)
{
foreach ($aTab['OPTIONS'] as $arOption)
{
if (!is_array($arOption))
continue;
if ($arOption['note'])
continue;
$optionName = $arOption[0];
$optionValue = $request->getPost($optionName);
if ($optionName == 'magicsite_url') {
if (!$url = Integration::getUrl($optionValue)) {
CAdminMessage::ShowMessage(Loc::getMessage("EPUBLISH_MAGICSITE_URL_ERROR"));
continue;
}
}
Option::set($module_id, $optionName, $url);
}
}
}
$tabControl = new CAdminTabControl('tabControl', $aTabs);
?>
<?php $tabControl->Begin(); ?>
<form method='post' action='<?php echo $APPLICATION->GetCurPage()?>?mid=<?php echo htmlspecialcharsbx($request['mid'])?>&amp;lang=<?php echo $request['lang']?>' name='epublish_magicsite_settings'>
<?php foreach ($aTabs as $aTab) : ?>
<?php if ($aTab['OPTIONS']) : ?>
<?php $tabControl->BeginNextTab(); ?>
<?php __AdmSettingsDrawList($module_id, $aTab['OPTIONS']); ?>
<?php endif; ?>
<?php endforeach; ?>
<?php
$tabControl->BeginNextTab();
$tabControl->Buttons(); ?>
<input type="submit" name="Update" value="<?php echo Loc::getMessage('MAIN_SAVE')?>">
<input type="reset" name="reset" value="<?php echo Loc::getMessage('MAIN_RESET')?>">
<?php echo bitrix_sessid_post(); ?>
</form>
<?php $tabControl->End(); ?>
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment