Проект ACIS: содержание, old manual.
С помощью этого экрана пользователь ACIS может изменять и уточнять ссылки на объекты, представляющие собой профессиональную гордость для человека науки. Прежде всего, это публикации: статьи и книги; далее: это может быть "series": серия статей и рабочих бумаг, редактором которой мог быть человек.
Для каждого из объектов, составляющих ACP, должна быть определена роль описываемого человека. Чаще других будет использоваться роль "автор", но возможны и другие роли (например, "редактор").
Этот экран будет состоять из нескольких под-экранов.
Самое сложное - основной экран contributions: то, что предстанет перед взором пользователя прежде всего и то, что он будет видеть чаще всего.
Единого ответа нет. Это зависит от обстоятельств. В идеале, этот экран должен вести последовательный диалог с пользователем. При входе на экран, там должно быть:
Список работ (предварительно найденых системой) должен показываться порциями, если их много. То есть, мы показываем человеку порцию, он решает, что делать с показанными работами, нажимает кнопочку [continue] и мы показываем следующую порцию.
После того, как все предварительно найденные работы пройдены, мы возвращаемся к тем, которые пользователь не выбрал в качестве своих. Мы спрашиваем: вы уверены? Если вы уверены, то мы больше не будем предлагать вам эти работы для включения в contributions profile.
После этого диалог можно считать завершённым и мы:
Мы имеем запись типа "person". Contributions profile может быть выражен или представлен пользователям несколькими разными способами.
Итак, в структуре record типа "person": ключ contributions. Значение ключа contributions — хэш с ключами:
Это список. Элементы списка — отдельные контрибьюшены. Контрибьюшен — это хэш:
Это список. Элементы списка — идентификаторы работ, которые не стоит более предлагать человеку для включения в профайл.
Для работы contribution profile и, наверное, для работы Автоматическая поддержка Contributions профайла (APS), непринятый вариант, нам нужна конфигурация, которая задаст определённые роли и типы объектов, которые могут входить в contribution profile.
Эта конфигурация будет обычно содержать:
В дополнение к этому, частью presentation должны стать литералы, которые будут фигурировать в HTML и email, соответствующие мета-типам и ролям. По идее, эти литералы должны быть доступны и в XSLT презентерах, и в perl коде.
Поэтому, я полагаю, хороший вариант — это иметь исходники такой presentation-конфигурации в каком-то наиболее простом формате и "компилировать" её после этого в любой другой формат, в частности в XML.
Другой вариант: хранить литералы в виде ACIS::Data::DumpXML файла.
На стадии номер 3 проекта ACIS, мы добавим экран contributions/add и contributions/edit.
Экран contributions/add позволит человеку добавить работу в свой профайл: самостоятельно ввести описание новой работы.
Экран contributions/edit позволит человеку изменить описание работы, которое человек ввёл раньше или уточнить уже существовавшее в базе данных описание.