Skip to main content

Redomino Advanced Keyword Management

Project description

redomino.advancedkeyword

The redomino.advancedkeyword plugin aims to improve the keyword mechanism provided by Plone introducing hierarchy among keywords adding taxonomies support. All the customizations introduced by redomino.advancedkeyword are made with backward compatibility in mind. You can also use this plugin without pain when you need to migrate your contents: redomino.advancedkeyword still uses the standard subject field and the main work was made at frontend level using javascript.

Note: having your javascript enabled is not required to use redomino.advancedkeyword (but is recommended).

What are the main problems of the old keyword management?

Here is a list of problems:

  • all the keywords are listed as a long, long plain list

  • keywords are not semantically grouped

Here you can see the standard keyword widget how it is prompted to :

https://github.com/redomino/redomino.advancedkeyword/raw/master/docs/resources/keywordold.png

Old keywords widgets.

As you can imagine the above edit widget is hard to use and difficult to manage.

How can AdvancedKeyword help you

And now the advanced keyword widget with hierarchical management:

https://github.com/redomino/redomino.advancedkeyword/raw/master/docs/resources/keywordtree.png

Keywords widget powered by redomino.advancedkeyword

The above image lets the keyword editor collapse/expand semantic groups of keywords, which makes it more suitable to manage large sets of keywords as you can find in a large intranet.

You can also search for existing keywords through the existing tags.

How does it work?

Hierarchy is introduced using the . (dot) character: it will be used as a keyword separator. Why are we using the dot character and not another one? Because it is little used in keywords and it is easy to type.

Edit view

If you use correctly the . separator, you will be able to create a keyword tree similar to the following one:

[+] what [v]
    [+] what.doors [v]
        [+] what.doors.flat
        [+] what.doors.profiled
    [+] what.furniture
[-] technology [v]
...

Clicking on the collapse or expand controls you can open or close keyword nodes. If you click on a keyword that is a leaf, all its parents will be selected automatically; if you unselect a node, all the sub-keywords selected are automatically deselected. So by the keyword editor you will be able to select single leafs or internal nodes.

You can add new keywords using the standard Plone control: nothing has changed. If you want to add one or more keywords then type something similar to the following example:

  • what.furniture.outdoor

  • etc

How keywords are shown on tagged contents

If you choose the following keywords on a particular object:

  • what.doors.flat

  • technology.combined systems

the customized keywords viewlet will prompt the following links:

  • what (clicking on this item you will be able to see all the products)

  • what.doors (clicking on this item you will be able to see all the door related products)

  • what.doors.flat (clicking on this item you will be able all the flat doors related products)

  • technology

  • technology.combined systems

This works because we provide a customized catalog indexer for keywords.

In the next release a new mechanism will be provided for changing the displayed keywords. For instance, if you don’t like how “technology.combinened systems” looks like, you’ll be able to edit it.

How to use AdvancedKeyword on an existing site

At first you will see the javascript plugin with a plain keywords list, you should add the hierarchy level grouping keywords separated by dots characters: the Plone plugin named KeywordManager is your friend!

Other features

Keyword map

Thanks to the keywords map you ‘re able to see the website’s arguments structure.

How to see the arguments map of the site:

  • portal_url/@@keywordsmap

Keywords portlet

This product also adds a new portlet: Keyword Portlet. In order to assign a new instance of this portlet you will have to choose a “supertag” (or a namespace tag). This supertag will be used to browse a list of all tags that are “first child” of this tag. For ex. if your portal has these two contents:

>>> doc1.Subjects()
['supertag','supertag1','supertag.subtag1','supertag1.subtag2']
>>> doc2.Subjects()
['supertag','supertag1','supertag.subtag3','supertag1.subtag4']

and if you choose ‘supertag1’ as parent tag, the results list will show this:

  • subtag2

  • subtag4

These are links to the search page with a search parameter set to ‘supertag.subtagX’.

Here you can see the keyword portlet:

https://github.com/redomino/redomino.advancedkeyword/raw/master/docs/resources/keywordportlet.png

Keywords portlet powered by redomino.advancedkeyword (it shows a subset of existing keywords)

How to launch tests

Type the following command:

$ ./bin/test -m redomino.advancedkeyword

Authors

Changelog

1.3 (2012-08-06)

  • Fixed bug: “kw1.kw2” matched incorrectly with “kw1.kw2 kw3” [sithmel]

1.2 (2012-05-09)

1.1 (2012-05-04)

1.0 (2012-05-03)

0.9 (2012-04-26)

  • Fixed readme. [davidemoro]

  • Fix portlet keyword bug (UnicodeDecodeError when there is a non ascii character) [davide moro]

  • Converted keyword portlet from formlib to z3c.form [davide moro]

0.8 (2012-04-24)

  • Added javascript unit tests with qunit [sithmel

  • Fixed locales :It depended from plone 4.1 locale. Now Is stands alone [sithmel]

  • Removed Dynatree, JSON interface towards the widget, inline javascript. Added a new keywordtree widget (easier to test with qunit) [sithmel]

  • Added (and tested) a keyword tree generator baseclass (browserview) [sithmel]

  • New keyword map based on keyword tree generator [sithmel]

  • New keyword widget based on keyword tree generator [sithmel]

  • New keyword widget javascript (with search) [sithmel]

  • Added .gitignore file [davidemoro]

  • Keywords portlet: title required now [davidemoro]

  • Added and enabled locales/en directory [davidemoro]

  • Fixed tests and keyword portlet implementation and memoize support. [davidemoro]

0.7 (2012-01-12)

  • Added a keywordportlet thats shows a list of first children of a selected tag [giacomos]

  • Administrators users can choose to enable or disable the @@keywordsmap action through a keywords map control panel. If disabled, a NotFound will be raised trying to visit the @@keywordsmap view. [davidemoro, giacomos]

  • More tests added [davidemoro, giacomos]

  • Moved manual i18n strings to a separate pot [giacomos]

0.6 (2011-10-03)

  • Added a keyword map of the site. You can see the whole hierarchical arguments map visiting @@keywordsmap. Each node of the hierarchical map is clickable. The target link leads you to the portal_url/search?Subject:list=CLICKEDKEYWORD search results page. [davidemoro]

  • Added a new action name “Keywords map” that links the @@keywordsmap view [davidemoro]

  • Added Sphinx documentation [davidemoro]

0.5 (2011-09-20)

  • Added plone.indexer as explicit requirement. Older versions of Plone (3.x) are not shipped with plone.indexer by default. [davidemoro]

0.4 (2011-09-19)

  • fix for IE < 9 (wrap the javascript code inside an anonymous function) [sithmel]

0.3 (2011-09-15)

  • Changed javascript registration options in portal_javascript [davidemoro]

0.2 (2011-09-14)

  • Removed minExpandLevel option on dynatree. Too large if the keyword tree has to many subkeywords [davidemoro]

0.1 (2011-09-08)

  • Added javascript tree support based on the dynatree plugin version 1.2.0_rc1 See http://code.google.com/p/dynatree for further information. [davidemoro]

  • Initial release [davidemoro]

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

redomino.advancedkeyword-1.3.zip (206.1 kB view hashes)

Uploaded Source

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page