У меня есть проект xwiki с реализованной системой тегов. То, что я пытаюсь сделать, это решить проблему this. Когда я нажимаю на тег, я получаю правильный вывод, но я хочу сортировать документы в соответствии с их другими тегами, что означает, что мне нужен способ поиска по нескольким тэгам. То, что я сделал, это получить список документов, помеченных первым тегом, затем использовать #foreach
, чтобы просмотреть каждый документ для тегов, которые мне нужно показать.Пройти через список тегов и сравнить xWiki
#set ($tag = "$!{request.get('tag')}")
#set ($list = $xwiki.tag.getDocumentsWithTag($tag))
#foreach($doc in $list)
#set ($tags = $xwiki.tag.getTagsFromDocuments($doc))
#foreach($tg in $tags)
#if($tg == 'Tutorial')
{{html}} #displayDocumentList($doc false $blacklistedSpaces){{/html}}
#end
#end
#end
Приведенный выше код выглядит для документов, помеченных $tag
и Tutorial
. Не выглядит очень эффективным, но я не ищу эффективности в этот момент времени, мне просто нужно, чтобы он работал, а код выше, и я понятия не имею, почему.
EDIT ::::
Я попробовал другое решение. На этот раз я получаю $list
и $list2
, где $list
- все документы с первым тегом и $list2
- это документы со вторым тегом. Затем я сравниваю полное имя каждого документа из одного списка с полным именем каждого документа во втором списке. Все еще не работает. Вот код,
#set ($tag = "$!{request.get('tag')}")
#set ($list = $xwiki.tag.getDocumentsWithTag($tag))
#set ($list2 = $xwiki.tag.getDocumentsWithTag('Tutorial'))
#foreach($doc in $list)
#foreach($doc2 in $list2)
#if($doc.fullName == $doc2.fullname)
$doc
#end
#end
#end
EDIT 2 ::::
Так что теперь цикл #foreach
дает мне правильный вывод, но моя проблема, я хочу, чтобы показать $ док, как это будет показано, если #{{html}} #displayDocumentList($doc false $blacklistedSpaces){{/html}}
был действительный. Не потому, что я думаю, что первые параметры должны быть списком, а вот $ doc - это всего лишь один документ.