CreateMaterialPassport
Создание паспорта материала с указанными именем, названием, авторством, лицензией и форматом.
Параметры
Параметры аналогичны используемым в макросе CreateMaterialPassport.
Параметр |
Тип |
Значение по умолчанию |
Описание |
Name |
Имя страницы |
отсутствует |
Имя новой страницы паспорта материала |
Title |
строка |
отсутствует |
Название материала |
OriginalTitle |
строка |
отсутствует |
Оригинальное название материала |
Base |
Имя страницы |
Базовая страница для паспорта |
|
Author |
строка |
отсутствует |
Автор материала |
License |
строка |
отсутствует |
Лицензия материала |
LicenseBase |
Имя страницы |
Страница с информацией о лицензиях |
|
Format |
строка |
отсутствует |
Формат материала |
FormatBase |
Имя страницы |
Страница с информацией о форматах |
|
URL |
строка |
отсутствует |
Ссылка на источник |
Template |
Имя страницы |
Шаблон для создания паспорта материала |
Поведение
При выполнении макроса создаётся страница с именем Base/Name с использованием шаблона Template, после чего выполняется попытка заполнить шаблон переданными в качестве параметров значениями Title, OriginalTitle, Author, License, Format, URL
- В случае, если страница уже существует, будет выдано предупреждение и осуществлён переход на реферрер
- В случае, если задано пустое имя, будет выдано предупреждение и осуществлён переход на реферрер
Использование
Обычно используется не напрямую, а макросом CreateMaterialPassport.
?action=CreateMaterialPassport&Name=MaterialName
Создаёт страницу с указанным именем и незаполненным шаблоном по умолчанию (MaterialPassportTemplate).
- Создаёт страницу с указанными названием, заголовком, названием материала, автором, лицензией, форматом и источником.
MaterialFiles
Управление файлами материала. Обычно используется совместно с макросом MaterialFiles.
Формат вызова и поведение
Поведение action зависит в первую очередь от параметров subaction, который указывает действие, которое необходимо произвести, и path, который указывает путь к объекту (в формате ИмяМатериала/путь/к/файлу), над котором необходимо произвести действие. В зависимости от действия, могут требоваться дополнительные параметры, для задания которых генерируется соответствующая форма. Далее рассмотрены возможные параметры subaction, их семантика и используемые дополнительные параметры.
subaction=view --- просмотр файла
Дополнительные параметры: отсутствуют
Поведение: возвращает файл как он есть
subaction=move --- перемещение файла
Дополнительные параметры:
- to=destination --- целевая директория
Поведение: В случае отсутствия параметра to выводится дерево каталогов материала, в котором находится объект. В случае, если параметр to указан, то происходит перемещение объекта в указанную директорию
subaction=delete --- удаление файла
Дополнительные параметры: отсутствуют
Поведение: удаление указанного файла или директории
subaction=upload --- закачивание файла
Дополнительные параметры:
- file --- содержимое файла
Поведение: Если параметр file не передан, то будет отбражена форма выбора файла для загрузки. Если параметр file передан, то производится загрузка файла в директорию path
subaction=pack --- архивирование файла или директории
Дополнительные параметры: отсутствуют
Поведение: Архивирование указанного файла или директории командой tar cjf. В случае, если действие производится над материалом, то архивируются все файлы материала
subaction=unpack --- распаковка архивов tar.bz2
Дополнительные параметры: отсутствуют
Поведение: Выполняет команду tar xjf над указанным файлом
subaction=mkdir --- создание поддиректории
Дополнительные параметры:
- name=dirname --- имя создаваемой поддиректории
Поведение: в случае, если параметр name не передан, отображается форма указания имени поддиректории. Если параметр name указан, то создаётся поддиректория с именем name в директории path
В случае, еслид действие выполнить не возможно по каким-либо причинам, выводится соответствующая диагностика. Возможные виды причин:
- Путь не существует
- Путь не является директорией
- Произошла ошибка во время выполнения операции
- Нет прав для выполнения операции
Права доступа
Для управления файлами используются права доступа read и write страницы паспорта материала. Право доступа read даёт возможность выполнять subaction=view. Право доступа write даёт возможность выполнять действия move, delete, upload, pack, unpack, mkdir. В случае, если права на запрашиваемое действие отсутствуют, выводится предупреждение и присходит переход на реферрер.
PassportGenerator
Action для массовой генерации паспортов материалов по дереву wiki-страниц.
Параметры
Параметр |
Тип |
Значение по умолчанию |
Описание |
Base |
Имя страницы |
Базовая страница для дерева wiki-страниц, для кторых генерируется паспорт |
|
MinDepth |
число |
2 |
Минимальная глубина вложения wiki-страниц (относительно базы), для которых необходимо генерировать паспорт |
MaxDepth |
число |
2 |
Максимальная глубина вложения wiki-страниц (относительно базы), для которых необходимо генерировать паспорт |
Overwrite |
bool (True/False) |
False |
Перезаписывать ли имеющиеся страницы в процессе генерации новых |
Поведение
- Ищутся все подстраницы страницы, указанной в параметре Base
- Для каждой из найденных страниц, прошедших тест глубины, создаётся паспорт
- Имя страницы паспорта --- название wiki-страницы с заменёнными "/" на "_"
- Название и оригинальное название страницы берутся из первого найденного в странице заголовка
Автор --- Георгий Курячий
- Лицензия --- GFDL
Формат --- wiki (это включает мозг у action CreateMaterialPassport)
- URL --- wiki-ссылка
Аннотация --- если в wiki-странице есть текст, ограниченный маркерами ##Begin abstract## и ##End abstract##, то ставится инклюд его (<<Include(%s,,from="##Begin abstract##",to="##End abstract##")>>), в противном случае пишется, что краткое писание не найдено
- Если страница паспорта уже существует
- Список страниц, для которых сгенерирован паспорт (и их глубина) выводятся как результат работы action
Использование
На данный момент данный action используется для следующих целей:
http://uneex.ru/?action=PassportGenerator&Overwrite=true --- генерация паспортов для фрагментов лекций
http://uneex.ru/?action=PassportGenerator&MinDepth=1&MaxDepth=1&Overwrite=true --- генерация паспортов для лекций (требуется доводка руками, так как в число подстраниц PspoClasses входят не только лекции)
http://uneex.ru/?action=PassportGenerator&MinDepth=1&MaxDepth=2&Overwrite=true --- генерация паспортов для лекций (требуется доводка руками, так как в число подстраниц PspoClasses входят не только лекции) и их фрагментов
http://uneex.ru/?action=PassportGenerator&Base=LecturesCMC/LinuxShell2008&MinDepth=1&Overwrite=true --- генерация паспортов для университетского курса лекций «Программное окружение Linux» (требуется доводка руками, так как в число подстраниц входят не только лекции)
http://uneex.ru/?action=PassportGenerator&Base=LecturesCMC/LinuxSoft2007&MinDepth=1&Overwrite=true --- генерация паспортов для университетского курса лекций «Программное обеспечение Linux» (требуется доводка руками, так как в число подстраниц входят не только лекции)
PageContentsReplace
Изменение содержимого дерева страниц.
Параметры
Параметр |
Тип |
Значение по умолчанию |
Описание |
Base |
Имя страницы |
Корень модифицируемого дерева |
|
MinDepth |
число |
1 |
Минимальная глубина модифицируемых страниц относительно корня |
MaxDepth |
число |
1 |
Максимальная глубина модифицируемых страниц относительно корня |
From |
строка |
отсутствует |
Что заменять (python regex) |
To |
строка |
отсутствует |
На что заменять |
Perform |
флаг |
False |
Скрипт действительно применяется, только если данный флаг установлен в True |
Поведение
Action находит страницы, соответствующие запросу 'title:regex:"^' + Base + r'(/.+)?$"', выбирает среди них те, которые находятся на нужной глубине и применяет к ним замену (re.sub(From, To, page_body))
- Action не работает для пустого regex From
Action не работает, если MinDpeth > MaxDepth