Tagging and Searching Plone Content from Constrained Vocabularies

501 Views Asked by At

I want to let my editors tag content on several orthogonal vocabularies and then have a nice search interface that lets users search for the content based on those vocabularies. It seems too parts of the solution exist

  • ATVocabularyManager - lets editors create different vocabularies
  • eea.facetednavigation - lets editors connect up ATVocabularyManger vocabs to a search panel

What is missing a way to add a new fields to the catagorisation tab of certain content types and have these constrained by the vocabularies. and have these values stored and indexed so they can be searched.

I know I can do this in code, but I'm hoping for something TTW so editors can add more ways to categorise if they want to. I'm pretty sure there must be a plugin out there to solve this already, but so far haven't found it. I'm pretty sure dexterity schema editor would solve this problem but I need this for the existing Plone content types.

So wondering

2

There are 2 best solutions below

4
On

What I think you can do is just have your content editors tag the content with the regular tagging mechanism and put it what they like. Then, with eea.facetednavigation, you specify the different groups of tags that you want part of your faceted navigation.

If you require more structure for your content editors to add the tags, I would suggest perhaps making a custom widget that gives them a structured set of tags to choose from.

Some packages you may want to have a look at for solving this problem are:

ATVocabularyManager isn't for dynamically adding vocabularies to new fields on existing content types, it's for providing a vocabulary manager for custom content types and perhaps schemaextender fields.

0
On

Here is what I intend to build to solve this problem since none of the suggested solutions so far solve the whole problem.

Let's call it collective.tagvocabularies (?)

It's aim will be to allow multiple different categories of keywords to be entered into existing Plone content via the existing Tags metadata field and then be able to use plugins like FacetedNavigation to display content as if the content was categorized by multiple different facets. It will do this by dynamically providing many different Vocabularies based on the unique values of the Keywords index in Plone.

It will provide a control panel where you can enter a regular expression. This re will be used on all keywords used on all content to break it into facets. For example if all your tags are of the form Animal-Fish, Colour-Blue your re would be

(?P<facet>[^\S]*)-(?P<value>[^\S]*)

Once installed Vocabularies for "Colour" and "Animal" are available to be used anywhere including eea.facetednavigation. Any new tag added to content will automatically become available in the vocabularies (caching might be needed).