Структура данных, навигация и основные манипуляции с данными

Документы распределяются по узлам. Узел - аналог папки (каталога) в файловой системе. Узел может содержать любое количество документов и других узлов. Уровень вложения узлов теоретически неограничен. Содержимое узла может содержать конфигурационные настройки, действие которых распространяется на все нижележащие документы и узлы. Задание конкретной настройки в описании узла отменяет действие аналогичной настройки, заданное в узле более высокого уровня.
Физически, каждый документ принадлежит только одному узлу. Однако ссылка на любой документ может быть дополнительно включена в произвольное число тематических сборников (списков).
При отображении содержимое узла представляется в виде линейного списка.

Компоненты формы просмотра

В верхней строке списка отображается путь к данному узлу - последовательность узлов верхнего уровня со ссылками для возврата на любой предшествующий уровень.
Во второй строке отображается меню функций работы со списком. Содержание его пунктов может существенно различаться в зависимости от статуса пользователя и настроек, заданным владельцем узла. В общем виде оно включает следующие пункты.
 1. Узел - создание узла (см. раздел "Создание/Изменение узлов и документов ").
 2. Запись - создание документа (см. раздел "Создание/Изменение узлов и документов ").
 3. Порядок - задание порядка следования элементов узла (см. далее).
 4. Выборка - вывод формы запроса на отбор записей (см. далее).
 5. Сортировка - задание порядка сортировки элементов узла (см. далее).
В правой части меню для неавторизованных пользователей отображаются пункты "Регистрация" и "Вход". Переход по этим ссылкам приводит к вызову форм регистрации и входа, соответственно.
Для авторизованных пользователей: "Имя текущего пользователя" (см. раздел "Меню пользователя ") и "Выход". Переход по первой ссылке вызывает меню пользователя, переход по второй - выход из режима авторизации. Выход происходит только в данном окне (вкладке). Теперь здесь можно авторизоваться и работать под другим именем. В других окнах (вкладках) можно продолжать работу под старым именем.
В центральной части размещается перечень документов и узлов (элементов), принадлежащих данному узлу. Строки списка, относящиеся к документам и узлам имеют разную раскраску, определяемую стилевыми настройками конфигурации сайта или конкретной ветки дерева данных. В списке отображаются только те элементы, доступ к которым для данного пользователя разрешен настройками элемента, заданными его владельцем.
Любой элемент списка содержит следующую информацию, размещаемую в отдельных строках.
 1. Название элемента в виде ссылки. Переход по ссылке открывает документ для просмотра см. раздел "Просмотр документов ") или осуществляет вывод списка элементов нижележащего узла.
 2. Строка технической информации.
2.1. Поле пометки элемента (только для элементов, созданных данным пользователем).
2.2. Номер записи в системе. Сохраняется при любых перемещениях элемента между узлами. Может использоваться для обращения к элементу из других документов и/или конфигурационных настроек. Может быть представлен в виде ссылки, переход по которой открывает код элемента, то есть позволяет просмотреть его содержимое без преобразования ("как есть", "как написано"). (см. далее).
2.3. Имя владельца. Для авторизованных пользователей - ссылка, по которой можно открыть анкету данного пользователя (см. параграф "Анкета пользователя" в "Меню пользователя ").
2.4. Число просмотров элемента. Для авторизованных пользователей - ссылка, по которой можно просмотреть статистику входов в документ в различных разрезах, включая полный перечень переходов по ссылке на данный элемент (см. далее).
2.5. Дата и время последней корректировки элемента (см. раздел "Создание/Изменение узлов и документов ").
2.6. Имя элемента (обычно отсутствует) (см. раздел "Создание/Изменение узлов и документов ").
 3. Аннотация элемента (если имеется) (см. раздел "Создание/Изменение узлов и документов ").
 4. Меню операций с элементом. Содержание пунктов зависит от множества условий.
4.1. Присутствует только у тех элементов, владельцем которых является данный пользователь.
4.1.1. Изменить - изменение элемента (см. раздел "Создание/Изменение узлов и документов ").
4.1.2. Удалить - запрос на удаление элемента (см. далее").
4.1.3. Перенести - запрос на перенос элемента в другой узел (см. далее").
4.2. Элементы меню, которые могут присутствовать только у узлов.
4.2.1. Оглавление - вывод в алфавитном порядке названий в виде ссылок на все нижележащие элементы в виде дерева, с группировкой по узлам.
4.2.2. Выгрузить - выгрузить в специальном формате элементы узла, владельцем которых является пользователь (см. далее).
4.2.3. Загрузить - загрузить данные в форматах выгрузки в данный узел (см. далее).
В нижней части узла размещаются кнопки функциональных операций. Их состав и возможность использования также существенно зависят от статуса пользователя и настроек узла. В частности, линия функциональных кнопок может вообще отсутствовать. В общем случае строка содержит следующие объекты.
 1. Удалить - запрос на удаление помеченных элементов (см. далее).
 2. Выгрузить - выгрузка помеченных элементов в специальном формате (см. далее).
 3. Включить в группы - запрос на выбор списков, в которые предполагается включить выбранные элементы. (см. далее).
 4. Перенести в узел - запрос на перенос выбранных элементов в другой узел (см. далее).
 5. Поле ввода номера записи узла, в который переносятся выбранные элементы. Если номер не задан, то при нажатии на кнопку "Перенести в узел" предлагается выбрать узел из числа доступных.

Удаление узлов и документов

Пользователи со статусом ниже, чем "Редактор" могут удалить только принадлежащие им записи. Следует иметь ввиду, что удаление узла приводит к удалению документов и узлов всей ветки, то есть всех нижележащих записей. Однако удаляются только те записи, которые принадлежат данному пользователю. Если узел содержит хотя бы одну "чужую" запись, то она не будет удалена. Соответственно не будет удален и сам узел. Полное и безоговорочное удаление выполняется только в том случае, если его выполняют редакторы или администраторы.
Функция удаления записей может быть вызвана двумя способами:
 1. Из меню операций с записью ("Удалить").
 2. При нажатии кнопки "Удалить".
В первом случае производится удаление конкретной записи. Во втором случае удаляются все отмеченные записи.
Удаление происходит в два этапа. Сначала система собирает и выводит сведения о всех удаляемых записях. Если удаляется узел, то в список попадут все нижележащие узлы и документы, принадлежащие пользователю. И только после подтверждения пользователем записи удаляются.

Перенос узлов и документов

Любой документ или узел, со всеми нижележащими записями могут быть перенесены в другой узел. Пользователи со статусом ниже, чем "Редактор" могут перенести только принадлежащие им записи. Физически никакого переноса не производится - просто заменяются сведения о "родительском" узле записи. Поэтому для переноса огромного узла в другой узел достаточно поменять в записи о нем ссылку на "родителя". При этом все "чужие" записи теперь также будут относиться к другому узлу.
Функция переноса записей может быть вызвана двумя способами:
 1. Из меню операций с записью ("Перенести").
 2. При нажатии кнопки "Перенести в узел".
В первом случае сначала предлагается ввести номер записи узла, в который будет осуществлен перенос данной записи. Если введен номер записи, которая не является узлом, то перенос не будет осуществлен. Кроме того, в переносе будет отказано и в том случае, если данный пользователь не имеет права создавать записи в данном узле (см. параметр "Ввод" в настройках записи узла в разделе "Создание/Изменение узлов и документов ").
Во втором случае порядок выполнения переноса зависит от того установлено ли значение в поле ввода номера записи узла (справа от кнопки "Перенести в узел"). Значение в этом поле интерпретируется как номер записи узла, в который переносятся выбранные записи. Если введено корректное значение номера записи узла и данный пользователь имеет право на перенос в него записей, то перенос будет выполнен. Если значение номера записи узла не установлено, то будет выведен список все узлов сайта, в которые данному пользователю разрешено вводить данные. В соответствующей форме нужно отметить желаемый узел и нажать кнопку "Перенести" внизу формы. После чего все выбранные записи будут перенесены указанный узел.

Выгрузка записей

Система позволяет выгрузить выбранные собственные записи в специализированных текстовых форматах. Это может быть необходимо:
 1. Для создания личных резервных копий особо важных документов.
 2. Для создания копии выбранных записей в другом узле.
 3. Для переноса записей на другой сайт, функционирующий на данной программно-технологической платформе.
Функция выгрузки записей может быть вызвана двумя способами:
 1. Из меню операций с записью об узле ("Выгрузить").
 2. При нажатии кнопки "Выгрузить".
В первом случае выгружаются все, принадлежащие данному пользователю записи узла. Во втором - все отмеченные записи.
При выполнении функции выгрузки система выводит страницу с двумя многострочными полями ввода. В верхнем поле содержится точная копия выгружаемых записей базы данных (данные и вся вспомогательная технологическая информация - дамп записей). В нижнем поле (Пакет данных fa-kit.ru) данные выводятся в формате выгрузки, совместимом со старой версией программного обеспечения сайтов shurem.ru, fa-kit.ru и samopiska.ru. Следует отметить, что обратная совместимость не полная, поскольку в ряде случаев в выгрузку включаются данные (аннотации), которые не будут корректно обработаны старой версией программного обеспечения.
Чтобы воспользоваться данными следует просто скопировать их из полей ввода в буфер обмена и далее сохранить в текстовый файл или осуществить загрузку напрямую в режиме "Загрузка записей".

Загрузка записей

Загрузка записей представляет собой операцию, обратную выгрузке. Она может быть осуществлена только одним способом - из меню операций с записью об узле ("Загрузить").
По запросу на загрузку выводится страница, содержащая поле многострочного ввода. В него надо скопировать предварительно выгруженные данные. Если загружаются данные в формате выгрузки fa-kit.ru, то надо установить флаг "Пакет данных fa-kit.ru". В данном случае обеспечивается полная совместимость с данными пакетной выгрузки из баз данных fa-kit.ru и samopiska.ru.
Необходимо иметь ввиду, что загрузка данных в формате дампа не всегда завершается успешно из-за наличия неустранимой ошибки в используемой для распаковки дампа библиотечной функции PHP. Если восстановить дамп не удается, то можно восстановить данные из формата выгрузки fa-kit.ru.

Отбор записей

Отбор может быть произведен по списку номеров записей, ключевым словам и имени владельца записей. При задании нескольких условий действует логическая связка "И". Список номеров (имен записей) вводится через пробелы или перевод строки. Ключевые слова (фразы) вводятся каждая в отдельной строке. Их поиск осуществляется в теле документов, заголовках и аннотациях.
После нажатия на кнопку "Принять" система выводит форму для повторного запроса и список удовлетворяющих условиям поиска записей. Отобранные записи группируются по узлам, в которых они содержатся. Каждая группа предваряется заголовком, указывающим путь к данному узлу.
Записи, принадлежащие данному пользователю, сопровождаются меткой (checkbox), а самом низу отчета размещаются кнопки "Выгрузить" и "Включить в группы", обеспечивающие выполнение указанных операций применительно к помеченным записям (см. параграфы "Выгрузка записей" и "Списки информационных объектов" данного документа).

Порядок следования и сортировка элементов списка

По умолчанию записи узла упорядочиваются в так называемом "установленном порядке". Каждой записи может быть присвоен свой порядковый номер и записи упорядочиваются по его возрастанию. Если порядок следования не определен, то записи упорядочиваются по возрастанию их уникальных номеров (фактически, дате/времени создания).
Для указания порядка следования записей используется специальная форма, вызываемая переходом по ссылке "Порядок". В форме перечисляются поле для ввода порядкового номера записи и названия записей. Задавая номера следования записей, можно определить порядок, в котором элементы будут размещаться при отображении списка при выборе режима сортировки "В установленном порядке".
В режиме "Сортировка" записи могут быть упорядочены по следующим критериям:
 1. В установленном порядке - элементы упорядочиваются в соответствии с их порядковыми номерами.
 2. По хронологии создания - элементы упорядочиваются в по возрастанию даты/времени создания (номеру записи в БД).
 3. В алфавитном порядке - элементы упорядочиваются в алфавитном порядке заголовков.
 4. По владельцам публикаций - элементы группируются по возрастанию имен владельцев.
 5. Новые сверху - элементы сортируются по убыванию даты/времени создания.
 6. По убыванию числа просмотров - элементы сортируются по убыванию числа просмотров.
 7. По новизне изменений - элементы сортируются по убыванию даты/времени изменений.
 8. Узлы сверху - элементы упорядочиваются в алфавитном порядке заголовков, но узлы отображаются сверху.

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

Данная функция предназначена для отображения документа в том виде, как он написан (закодирован). С его помощью можно ознакомиться с методами разметки документов. Однако надо помнить, что в режиме отображения кода он может выглядеть несколько иначе, чем при корректировке. Это связано с тем, что при отображении все табуляции заменяются 8 пробелов (nbsp;).

Списки информационных объектов

Система позволяет вести независимые списки документов, пользователей и файлов. За счет этого механизма можно составлять тематические подборки материалов (списки документов, размещенных в разных узлах), создавать группы пользователей и файлов. Списки содержат только ссылки на соответствующие объекты (номера документов, имена пользователей, имена файлов). В любое время список может быть пополнен новыми ссылками, а какие-то ссылки могут быть из него исключены.
Списки документов могут быть составлены на основе выбранных записей узла или списков записей, выбранных по запросу на отбор (см. параграф "Отбор записей"). В этих формах нужно выбрать интересующие записи и нажать на кнопку "Включить в группы". Будет выведена страница с перечнем списков документов. В этой форме нужно пометить списки, в которые необходимо включить выбранные записи. После нажатия на кнопку "Принять" ссылки на записи будут помещены в выбранные списки.
Для создания групп пользователей следует воспользоваться страницей "Пользователи сайта" (вызов из меню пользователя). Порядок действий тот же самый.
Аналогично создаются списки файлов ("Мои файлы" меню пользователя). Однако этот режим доступен только для пользователей со статусом не ниже, чем "Эксперт", поскольку только им разрешены манипуляции с файлами.
Следует иметь ввиду, что включение объектов возможно только в уже существующие списки. На ходу создать список нельзя. Для управления списками существует отдельная форма "Списки". С ее помощью можно:
Выбрать тип списка (Документы, Пользователи, Файлы).
Добавить список (ссылка "Добавить список").
Просмотреть список (ссылка с именем списка).
Изменить список (ссылка с номером списка).
Удалить выбранные списки (кнопка "Удалить выбранные").
При создании/изменении списка нужно ввести его название и определить порядок доступа к нему со стороны других пользователей (аналогично заданию порядка доступа к документу или узлу - см. раздел "Создание/Изменение узлов и документов "). Кроме того, в многострочное поле ввода можно вручную ввести (изменить, удалить) идентификаторы соответствующих объектов (номера документов, имена пользователей или файлов, соответственно).
Функции общего назначения
Поля переменных данных
Встроенный язык программирования
Функции доступа к базе данных
Статистические функции