Такой гостевой режим мне требовался для организации "портала", то есть такого режима работы Руководителя, который похож на обычный информационный сайт. Чтобы пользователи не входили по логину-паролю, а сразу на самой первой страничке видели какую-то информацию. Пока данную задачу окончательно не решил.
Чтобы выдавать пользователям системы хоть какую-то информацию, решил вывести на главную страничку входа список программ, которыми пользуются сотрудники. Эту страничку прописал всем в настройках браузера как домашнюю. По каждому пункту открывается программа в новом окне. Можно централизованно поменять список ресурсов, доступных пользователям, или подменить его физическое расположение.
Чтобы при дальнейших обновлениях Руководителя все изменения не затирались, сделал кастомизацию. На сервере Руководителя создал папку custom и складываю туда свои собственные коды. А непосредственно в код Руководителя вставляю такой фрагмент:
Имя файла кастомизации формирую по шаблону "<Имя файла Руководителя>_<Название раздела>_<Маркер>". Маркер принимает значение Begin либо End, и обозначает вставку кастомизированного кода в самом начале, либо в самом конце указанного раздела, соответственно. Названия маркеров выбраны так, чтобы они шли в правильном порядке по алфавиту - первым идёт файл с маркером начала, затем файл с маркером конца. Так проще искать файлы в папке.Файл .\rukovoditel\template\login_layout.php
<!-- BEGIN BODY -->
<body class="login">
<!-- ******* Оформление страницы входа ************* -->
<?php
if(is_file('custom/LoginLayout_BeginBody_Begin.php'))
{
require('custom/LoginLayout_BeginBody_Begin.php');
}
?>
<!-- ******* -->
<div class="login-fade-in"></div>
<!-- BEGIN LOGO -->
Как вариант - возможно будет удобнее не сваливать все файлы кастомизации в одну папку, а создать custom в каждой подпапке modules и template. Или даже вообще не зашивать намертво имена файлов кастомизации, а сделать один конфигурационный файл .\config\custom.php, в котором прописывать соответствие точек вызова и имён файлов. Тогда весь список точек кастомизации будет в одном месте, проще управлять и просматривать.
Предлагаю вставить такие вызовы кода кастомизации непосредственно в Руководитель, в самых востребованных местах. Например на форме изменения свойств поля, чтобы можно было добавить свой пользовательский обработчик (проверка ввода полей по условиям и т.д.). Места размещения можно обсудить. Тогда можно проводить эксперименты и доводки своей системы, которые потом в дальнейшем можно будет включать в основной код инсталляционного пакета.