Skip to main content

Searchable Collections with Flexigrid

Project description

Introduction
============

Flexitopic integrates the easy use of plone collections with a Flexigrid_
AJAX view. The criteria from the topic are taken to construct a simple
query form to narrow down a search inside a collection. Subtopics are
displayed inside tabs of the (old style) collection.
It works with new (`plone.app.collection.Collection`) and
old (`Products.ATContentTypes.ATTopic`) style collections


* Flexitopic does not install a new content type but just adds an additional view to the collection type.
* it degrades for non javascript browsers to a simple table - (almost) same usability, no information loss.
* it requires JQuery only (built into plone 4) no JQuery UI
* lightweight JS
* Flexigrid_: 27 KB packed
* JSlider_: 22 KB packed


.. _Flexigrid: http://flexigrid.info/
.. _JSlider: http://egorkhmelev.github.com/jslider/

Usage
=====

Add a collection. Criteria of the collection will be used to build
a form to narrow down your search inside the collection. If the criterion (the
index in portal_catalog) is sortable you can sort this column. Not all criteria
types can be used as input for Flexi-collection so beware.

Search Form
------------

Search Text
full text search inside the collections. If you leave the
criterion value empty users can search for content containing that text, if
the value is not empty it will search for this text plus the text the user
supplied.
Title
search or sort by title (see above)
Description
search description only (search see above, no sorting here!)
Dates (effective, created, ...)
will be converted to date ranges and can be selected with the JQuery
JSlider_ Plugin
Location (path index)
will not be displayed in the search form and always be applied to the query
Keyword Indices (like tags)
a drop down list will be generated to narrow the search down

- if the criterion operator is AND the list will contain all unique
values of the index minus the ones you selected, the query will search
for all terms that match your criteria plus the user input (old style
ciolletions only)
- if the criterion is OR the terms you selected will be display in the
selection list. The search will be for the user supplied input only.
This is the behaviour for new style collections.

The output is always a table with the fields you supplied in the
``Table Columns`` of the collection, no matter if ``Display as Table``
is checked or not.

Subtopics (old style collections only)
---------------------------------------

Flexitopic will display subtopics as tabs on top of the page. The first
tab is the description of the topic, subtopics will occupy the following
tabs. Subtopics will always be displayed as (plain html) tables defined
by the criteria, ``Table Columns`` and the ``Number of Items`` of the
subtopic.

Portlets
---------

You can display Topics and Collections in a Flexitopic portlet.
The Portlet is mainly meant to be used with products that let you
dispay portlets inside the content area such as ContentWellPortlets_
or PortletPages_ but it may be usefull as a 'real' portlet in edge cases
as well.

.. _ContentWellPortlets: http://plone.org/products/contentwellportlets
.. _PortletPages: http://plone.org/products/collective.portletpage

Installation
============

This addon can be installed has any other addons, please follow official
documentation_.

.. _documentation: http://plone.org/documentation/kb/installing-add-ons-quick-how-to

Add to buildouts configuration

::

[buildout]
...
eggs =
collective.flexitopic

Re-run buildout, e.g. with

::

$ ./bin/buildout

Restart Plone and activate the product in Plones Add-on configuration
section.


Participation
=============

Code repository
https://github.com/collective/collective.flexitopic/
Questions and comments
mailto:product-developers@lists.plone.org
Bug Reports
https://github.com/collective/collective.flexitopic/issues

Changelog
=========

0.7 (2013/12/04)
----------------

- add flexitopic portlet
- use one table for flexigrid + search resuts table - no more noscript tag

0.6.2 (2013/09/06)
-------------------

- use UID instead of getId for a cells id (fixes cell misalignments)

0.6.1 (2013/09/05)
-------------------

- do not cache results (persistent objects cannot be cached)

0.6 (2013/09/05)
----------------

- move bodytext above searchform
- use_view_actions
- upgrade js registry
- do not use description as html attribute title on Title
- bug fixes
- cache search results


0.5 (2013/08/30)
----------------

- support for plone.app.collection
- add caching

0.4 (20011/12/06)
------------------

- make date columns smaller
- remove minimize button from table


0.3 (2011/06/17)
-----------------

- plone 4.1 compatible
- upgrade flexigrid to ver 1.1


0.2 (2011/04/05)
-----------------

- do not display review state in searchform
- split monolithic flexitopic_view into several viewlets
- get items per page out of topic
- render html table into a noscript area, flexigrid into an empty table


0.1 (2011/01/27)
-----------------

- First public release
- Add slider to query for date ranges
- Caching for expensive catalog queries

0.1dev (unreleased)
-------------------

- Initial release
- Flexigrid to display search results
- Generate search form from collection criteria

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

collective.flexitopic-0.7.tar.gz (83.1 kB view details)

Uploaded Source

File details

Details for the file collective.flexitopic-0.7.tar.gz.

File metadata

File hashes

Hashes for collective.flexitopic-0.7.tar.gz
Algorithm Hash digest
SHA256 2931f715506c011f891c5e85555eb68666a6a5dc66ade25297ca79b7ef48e410
MD5 6a51b97e3394e43fc487822713ddc178
BLAKE2b-256 29e85330a1922fcabb9459b0214da8fead4b397630ab3e339ad9e245775a5c78

See more details on using hashes here.

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