Есть ли способ определить дескриптор коллекции-владельца элемента, просто используя XSLT в DSpace?

Это связано с этим вопросом. За пределами item-view.xsl есть ли способ получить дескриптор коллекции-владельца элемента, например, с главной страницы? На главной странице есть список недавно отправленных элементов, но при просмотре файла mets определенного элемента нет ссылки на то, к какой коллекции он принадлежит.

Мой вариант использования для этого, например, в недавно отправленном списке, я хочу исключить элементы, принадлежащие определенной коллекции. Я не говорю здесь об ограниченной коллекции. Недавно отправленные элементы из этой коллекции не должны отображаться на главной странице.

Я использую тему DSpace версии 5.3 Mirage 2.

Заранее спасибо.


person euler    schedule 09.09.2015    source источник
comment
Возможно, вы сможете настроить фильтр в discovery.xml, который будет удалять ненужные элементы из недавно отправленных, но я не уверен, извините.   -  person schweerelos    schedule 10.09.2015
comment
@schweerelos, я посмотрел на discovery.xml и понятия не имею, как настроить там фильтр. Свойства, которые я там нашел, предназначены только для metadataSortField, type, max и useAsHomePage.   -  person euler    schedule 10.09.2015
comment
Кажется, я имел в виду запросы фильтров по умолчанию: wiki.duraspace. org/display/DSDOC5x/, но похоже, что они глобальны для всех открытий, а не только для недавно добавленных. Не уверен, что у вас может быть фильтр только для недавно добавленных (по быстрому просмотру кода, вероятно, нет).   -  person schweerelos    schedule 10.09.2015
comment
@schweerelos, я успешно получил имя коллекции. Я попытался добавить это в блок <xsl:if test> (чтобы исключить его из показа) из этого ответа. Проблема в том, что если мое значение recentSubmissionConfiguration в discovery.xml max равно 5, а все первые 5 недавних отправлений были из этой коллекции, мои повторные отправления будут пустыми. Если я увеличил максимальное значение, например, 100, список последних отправленных материалов исключит элементы из этой коллекции. Любой совет?   -  person euler    schedule 11.09.2015
comment
На самом деле я думаю, что вы достигли предела своих возможностей в XSL. Я думаю, вам придется сделать это на стороне сервера (т.е. в коде Java) в классе, который запрашивает недавние материалы. Задайте дополнительный настраиваемый запрос фильтра здесь: github.com/DSpace/DSpace/blob/master/dspace-xmlui/src/main/java/   -  person schweerelos    schedule 11.09.2015
comment
Если вы застряли в возможности изменить только XSL, вы можете попробовать обойти класс, с которым я только что связался, и использовать безумные трюки helix84 для запроса Solr непосредственно из XSL (wiki.duraspace.org/display/DSPACE/). Затем создайте свой собственный недавно добавленный список (проверьте журнал solr, какой запрос обычно используется для создания недавно добавленного списка).   -  person schweerelos    schedule 11.09.2015


Ответы (1)


Если у вас есть дескриптор a/b, вы можете получить XML для этого объекта.

document("/handle/a/b?XML")

Этот XML будет содержать иерархию коллекций/сообществ, содержащих элемент.

document("handle/a/b?XML")//dri:trail[@target]

Дескриптор коллекции будет находиться в последнем элементе следа, содержащем целевой атрибут.

person terrywb    schedule 09.09.2015