ezpublish.ru / Форумы / Для новичков / Как отфетчить узлы по тегам




Как отфетчить узлы по тегам

Для доступа к форумам необходимо авторизоваться. Это можно сделать здесь

Автор Сообщение

Петр Васильев

Ср, 8 июня 2011 18:08:42

Здравствуйте
Появилась такая проблема - при просмотре какого-либо узла, скажем новости, необходимо отобразить другие новости, содержащие один или несколько тегов, присутствующих в просматриваемой.
В классе "новость" есть атрибут с дататайпом "keyword", который является массивом. Там, соответственно могут быть записаны несколько тэгов.
Вот никак не пойму, как отфетчить узлы (например, с помощью fetch ('content', 'list') или объекты (например, с помощью fetch ('content', 'keyword') так, чтобы проверять массивы с тегами на наличие в них хотя бы одного элемента из другого массива с тегами.

Сергей Гедеон

Сб, 11 июня 2011 14:00:52

1) Первое что приходит на ум - использовать функцию more_like_this которая есть в расширении fetch( 'ezfind', 'moreLikeThis'....
Но изифайнд довольно ресурсоемкая штука
2) http://doc.ez.no/eZ-Publish/Techn...ules/content/Fetch-functions/keyword - мне кажется этот фетч то, что Вам нужно. В инструкции написано: alphabet [string] The sequence that should be matched.
3) Если изифайнд трогать не хочется, и п.2 не сработал, то можно зафетчить все ключевые слова данной ноды. Но использовать attribute_filter в фетче content/list нельзя - он не поддерживает keywords. Так что только extended_attribute_filter, который кажется страшным, но на самом деле фетч по ключевым словам написать на php не так и сложно (а можно и не фильтр писать, а прямо фетч).

===----
Радоваться жизни можно тихо...
----====