📜 Справочный архивный материал (2012 г.)

Эта статья была опубликована в блоге нашей предыдущей open-source СЭД Detrix. Мы сохранили её для истории. Обратите внимание, что публикация носит неформальный, творческий и юмористический характер, а оригинальная авторская стилистика прошлых лет сохранена полностью — это скорее живой опыт и отвлеченные размышления разработчика, нежели руководство к действию. Наша новая BPM-платформа DOC-V продолжает эти идеи на современном технологическом уровне.

Скачать DOC-V бесплатно

Шаблон позволяет определить внешний вид документа или записи справочника, включая форматирование текста, вставку графики, расположение полей и пр. Создание шаблона осуществляется при помощи текстового редактора. В отличие от редактора, применяемого в текстовом поле, редактор шаблона имеет дополнительные кнопки-списки, позволяющие вставлять в шаблон пользовательские поля (поля,  определенные администратором), системные поля (поля, которыми обладает любой тип документа или справочник) и переменные типов документов, которые содержат произвольную информацию  (например, результаты выполнения какого-либо действия).

Пользовательские поля размещаются в шаблоне в виде {Название поля}. Если одно и то же поле разместить дважды, то при повторном размещении поля оно принимает вид {Название поля [*]}. При подобной записи поле отображается только в режиме просмотра документа, в режиме формы (создание, редактирование) оно отсутствует.

К системным полям типа документа относятся:

У справочников системные поля иные:

В Шаблоне можно использовать следующие переменные (только для типов документов):

Все описанное далее следует читать только тем, кого не пугают аббревиатуры HTML, CSS и иже с ними. 

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

Чтобы переопределить какой-либо стиль в шаблоне необходимо использовать следующую конструкцию в режиме HTML:

<div  style="display:none;">
{%style%}

стиль CSS

{%/style%}
</div>

Следующий пример окрашивает фон документа или записи справочника в зеленый цвет:

<div  style="display:none;">
{%style%}
body {
background-color:green;
}
{%/style%}
</div>

Поля, использующие гиперссылки, применяют следующие классы, переопределяя которые администратор может определять их внешний вид:

Нижеприведенный пример изменяет шрифты для полей с гиперссылками:

<div style="display:none;">
{%style%}
#structure {
font-family: "Times New Roman", Times, serif;
font-size: 18px;
font-style: italic;
color: #3300FF;
}
#reference {
font-family: "Times New Roman", Times, serif;
font-size: 18px;
font-style: italic;
color: #3300FF;
}
#file {
font-family: "Times New Roman", Times, serif;
font-size: 18px;
font-style: italic;
color: #3300FF;
}
#document {
font-family: "Times New Roman", Times, serif;
font-size: 18px;
font-style: italic;
color: #3300FF;
}
{%/style%}
</div>

Администратор также может переопределить внешний вид любого поля в шаблоне. Для этого в созданном документе посредством просмотра его HTML-кода необходимо определить идентификатор соответствующего поля (он может быть, например, следующего вида idfield_ea4ac9370c). А затем, используя переопределение стиля CSS, задать новый вид. Например, изменить ширину строкового поля до 100px:

<div style="display: none;">{%style%}  #idfield_ea4ac9370c {     width:100px; }  {%/style%}</div>

Администратору также доступна возможность использования Java Script при проектировании шаблонов документов (справочников). Например, нижеприведенный код позволяет добавить в документ вкладки:

<div id="tabs">
<ul>
<li style="margin-left: 1px" id="tabHeaderActive">
<a href="javascript:void(0)" onClick=" return toggleTab(1,2)">Вкладка1</a>
</li>
<li id="tabHeader2">
<a href="javascript:void(0)" onClick=" return toggleTab(2,2)" >Вкладка2</a>
</li>
</ul>
</div>
<div id="tabscontent">
<div id="tabContent1" style="display:yes;">Содержимое первой вкладки</div>
<div id="tabContent2" style="display:none;">Содержимое второй вкладки</div>
</div>
</div>

Еще один пример, демонстрирующий возможность показа (скрытия) секции документа в зависимости от выбранного значения перечисления:

<p>{Перечисление}</p>
<div id="section">
<fieldset> <legend>Секция</legend>
<p>Содержимое</p>
</fieldset>
</div>
<div style="display:none;">
{%edit%}
if ($("$Перечисление$").value == 0) {
$("section").style.display = "block";
}
else {
$("section").style.display = "none";
}
$("$Перечисление$").onchange=function(){
if (this.value == 0) {
$("section").style.display = "block";
}
else {
$("section").style.display = "none";
}
}
{%/edit%}
{%view%}
if ($("$Перечисление$").value == "0") {
$("section").style.display = "block";
}
else {
$("section").style.display = "none";
}
{%/view%}
</div>

Следующий пример демонстрирует использование фреймов:

{%iframe%} name="frame" id="frame" frameborder = "no" src ="/structure/view?hideMenu" scrolling = "auto" width="80%"  style =" border:0px solid white; margin-bottom:75px; " {%/iframe%}
<a href="/structure/view?hideMenu" target="frame">Открыть Структуру во фрейме</a><br /><a href="/lms?hideMenu" target="frame">Открыть Почту во фрейме</a>

Если предполагается выводить документы на печать, будет полезен класс CSS no-print, который позволяет скрыть некоторые элементы в печатной форме.  Например, элементы шаблона заключенные в блок <div class="no-print"> ... </div> будут видны в экранной форме, но будут отсутствовать в печатной. Кстати, вывод на печать в СЭД Detrix осуществляется стандартными средствами веб-браузера.

Аналогично описанному выше no-print используется CSS-класс no-screen. Этот класс скрывает соответствующий блок на экране, но выводит его на печать.

СЭД Detrix обеспечивает также возможность скрытия ряда элементов страниц, таких как, меню, навигационный заголовок, панель действий и пр. Для реализации такого скрытия в URL-адресе должны присутствовать соответствующие GET-параметры: