Добавляем свою страницу в интерфейс JSPUI.

Довольно часто появляется необходимость повесить новость, объявление, информацию для авторов или об архиве, но из коробки JSPUI умеет лишь «новости на главной» и «новости сбоку». И если в DSpace 1.x-3.x новости эти более или менее гармонично вписывались в интерфейс, то в 4.x-5.x они смотрятся архаично и не уместно, особенно, когда нужно разместить много текста на постоянку.

 

В качестве решения проблемы я предлагаю следующий метод: создать механизм, реализующий «свободную» страницу в дизайне JSPUI и возможность её обновления через стандартные инструменты DSpace.

 

В качестве примера реализации данной идеи на DSpace 3.x можно посмотреть на картинки того, как это работает в электронном архиве УРФУ (быть может, в ближайшее время мы обновимся до версии 5.х, так что останутся только картинки):

001Обратите внимание на ссылку «Для авторов» в нижней части боковой панели.


002Собственно содержание страницы.


003Обновление контента реализовано через стандартный интерфейс обновления новостей.


004Никакого вигвиза, только HTML, только хардкор!


Но описывать модификацию я буду уже для пятой версии DSpace, о чем собственно ниже. Сразу хочу предупредить что модификация получается достаточно комплексная.

И так, по шагам:

1. Идём в [dspace]/config и создаём там файл, к примеру, authors_ru.html и authors_en.html

005

Тут важно понимать, authors.html не есть обязательное имя! Вы можете создать файл about.html или любой другой.


2. Идём в [tomcat]/webapps/jspui и копируем файл index.jsp в новый с имемем authors.jsp, а файл home.jsp в файл authors_container.jsp:

006

Опять же, тут в именах файлов нет ничего обязательного. Если симысл добавляемой страницы иной — можно использовать другие имена, важно только потом не запутаться. Да, у меня jspui лежит в /ROOT, от того путь немного другой.


3. Открываем файл authors.jsp и правим его так:

007Т.е. заменяем ссылку /home.jsp на /authors_container.jsp


4. Открываем файл authors_container.jsp и удаляем в нём весь индексный стакан, а так же… в общем, проще привести полный его листинг:

008Здесь можно отметить следующие вещи:

  • Удалены строки импорта стандартных новостей и добавлена строка  «String ForAuthors = NewsManager.readNewsFile(LocaleSupport.getLocalizedMessage(pageContext, «authors.html»));»
  • Изменена строка показа главных новостей на <%= ForAuthors %>
  • Удалён код, показывающий разделы, коллекции и фасеты.

5. Модифицируем [tomcat]/webapps/jspui/dspace-admin/news-main.jsp следующим образом:

009

Т.е. добавляем еще одну строку в список редактора новостей. В моём случае это строка <option value=»<fmt:message key=»authors.html»/>»><fmt:message key=»jsp.dspace-admin.news-main.text.author»/></option>


6. Ну а теперь, казалось бы, не очевидное — правим файл перевода:

В файл messages_ru.properties добавляем строки:

  • jsp.dspace-admin.news-edit.text.author = \u0410\u0432\u0442\u043E\u0440\u0430\u043C
  • authors.html = authors_ru.html

В файл messages.properties добавляем строки:

  • jsp.dspace-admin.news-edit.text.author = For authors
  • authors.html = authors_en.html

 


Промежуточный итог выглядит так:

010

011

012

013

Т.е.мы имеем по адресу /authors.jsp независимую двуязыкую страницу, которая к тому же правится через админку не сложнее, чем обычные новости. В принципе профит…. только вот как простмоу пользователю получить доступ к этой странице из интерфейса?


7. Способы размещения ссылки на новую страницу я условно могу разделить на простые и изящные. Простые — это помещение ссылки в боковые или главные новости, в описание разделов и пр. А одним из изящных способов я считаю помещение ссылки в выпадающее меню.

Для этого необходимо модифицировать файл [tomcat]\webapps\ROOT\layout\navbar-default.jsp следующим образом:

015

т.е. визуально отделить новый пункт от старых. Результат выглядит так:

014

Как можно заметить, я использовал уже существующую строку перевода.


 

Хочу отметить тот факт, что вся эта процедура проводилась мной на рабочем архиве (Электронный архив РГППУ) и потребовала лишь одной перезагрузки сервиса — для обновления перевода. Так же хочу отметить, что под JSPUI 3.x модификация была чуть проще.

Важное дополнение.
В DSpace 5.5 и более поздних версиях закрыта опасная уязвимость. Для того, чтобы «новая» страничка заработала, нужно добавить её тут. Объяснение физики процесса тут. Так же это касается и локализованных новостей.

Запись опубликована в рубрике Библиотека с метками , . Добавьте в закладки постоянную ссылку.

8 комментариев на «Добавляем свою страницу в интерфейс JSPUI.»

  1. Татьяна говорит:

    Спасибо за полезную информацию. Я очень благодарна Вам за такие ценные публикации. Простому библиотекарю сложно разобраться в таких тонкостях. Хорошо, что есть программисты, которые могут делиться идеями. Спасибо

    • IdeaFix говорит:

      You are wellcome! Я в своё время тоже начинал с инструкций Андрея Николаева (известен как woodyfon) и вряд ли бы разобрался сам, так что, я за сильное сообщество и конечно за конкуренцию, но за конкуренцию контента, а не идей! Все идеи — в массы! Кстати, Вы с нуля стартуете репозиторий или старый обновляете? Посмотрите сюда — http://ideafix.name/?p=1882 во все эти отраслевые агрегаторы Вы можете зарегистрироваться бесплатно или почти бесплатно (у worldcat выдаётся бесплатная лицензия по запросу), это сильно добавит посещаемости вашему репозиторию и косвенно увеличит цитируемость.

      • Татьяна говорит:

        Репозитарий с нуля, установили месяц назад. Сейчас настраиваю интерфейс и буду наполнять публикациями, когда будет немного публикаций, тогда откроют полный доступ. На данный момент доступ к репозитарию локально. Спасибо за информацию по поводу регистрации.

        • IdeaFix говорит:

          Лучше сразу открыть с реальным именем ресурса и везде зарегистрироваться. В «нуле» нет ничего стыдного, а терять месяц-два на регистрацию — непозволительная роскошь. Зато потом, когда в гугл вебмастере будете находить ссылки на свои документы в библиографических справках коллег (котоыре их в гугл академии найдут), будет виден результат 🙂

          • Татьяна говорит:

            Так долго регистрация:( Я думала наполнить архив, а потом уже зарегистрироваться. Спасибо за подсказку будем регистрироваться.

  2. Если хотим добавить свои элементы, то создаем свою схему и выводим ее на форму ввода сведения о добавляемом документе?

    • IdeaFix говорит:

      Да. Для новых элементов либо правим существующие реестры, либо создаём новый и в конфиге добавляем эти поля. Так же нужно модифицировать файлы переводов и русский и английский. Иначе будет не красиво.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *