Actions

Difference between revisions of "Finder Integration Working Group"

From Joomla! Documentation

m (Added categorisation.)
m (Added link to test plan. Amended categorisation.)
 
(3 intermediate revisions by 2 users not shown)
Line 3: Line 3:
 
===What is Finder?===
 
===What is Finder?===
 
Finder is an advanced search extension for Joomla! 1.5.  The full package includes the Finder component, a front-end search module, a back-end status module, a group of plugins for processing data from core components, and a system plugin.  Finder includes features such as term highlighting, suggestions, and allows for taxonomy support.  Finder is used to power the search on extensions.joomla.org.
 
Finder is an advanced search extension for Joomla! 1.5.  The full package includes the Finder component, a front-end search module, a back-end status module, a group of plugins for processing data from core components, and a system plugin.  Finder includes features such as term highlighting, suggestions, and allows for taxonomy support.  Finder is used to power the search on extensions.joomla.org.
 +
 +
'''Note: Finder has been renamed to Smart Search in Joomla 2.5.'''
  
 
===Documentation===
 
===Documentation===
Finder documentation is a work in progress and we need people to help us improve and adapt it as the integration work proceeds.  The documentation pages listed below were initially imported, with slight adaptations, from the original documentation with the kind permission of the Finder's original developers: Rob Schley, Louis Landry and Andrew Eddie.
+
Smart Search documentation is a work in progress and we need people to help us improve and adapt it as the integration work proceeds.  The documentation pages listed below were initially imported, with slight adaptations, from the original documentation with the kind permission of the Finder's original developers: Rob Schley, Louis Landry and Andrew Eddie.
 
* [[Finder quickstart guide]]
 
* [[Finder quickstart guide]]
 
* [[Finder configuration options]]
 
* [[Finder configuration options]]
 
* [[Finder search pages]]
 
* [[Finder search pages]]
 +
* [[Changes from Finder 2.0.1]]
 +
 +
All Smart Search documentation pages are listed in the [[:Category:Smart Search|Smart Search category]].
  
 
===Goals===
 
===Goals===
Line 24: Line 29:
  
 
Additionally, to help prepare the integration into the CMS, a [https://github.com/Finder-Integration/joomla-cms fork of the Joomla! CMS] has been added to GitHub containing Finder pre-installed and contains additional changes elsewhere in the full package (such as CSS tweaks for the search results layout and adding a new component icon).
 
Additionally, to help prepare the integration into the CMS, a [https://github.com/Finder-Integration/joomla-cms fork of the Joomla! CMS] has been added to GitHub containing Finder pre-installed and contains additional changes elsewhere in the full package (such as CSS tweaks for the search results layout and adding a new component icon).
 +
 +
===Testing===
 +
The following test plans may be used to verify the correct functioning of Smart Search.
 +
* [[Smart Search content change test plan]]
  
 
===Status===
 
===Status===
Below is the status as of 17 October 2011:
+
Below is the status as of 25 November 2011:
  
 +
* Database Work:
 +
** As highlighted on the Google Groups discussions, there are several queries that need to be rewritten to allow for multi-database compatibility
 +
** Some queries also need to be rewritten due to how JDatabaseQuery handles certain query types
 +
** Queries needing work have mostly been identified with @TODO's in the code
 +
** A DDL has been added for PostgreSQL to enable testing with this driver (driver has a open pull request on the platform as well as a CMS branch working on the functionality there)
 
* Administrator Component
 
* Administrator Component
 
** All of the code has been converted to follow the native MVC structure
 
** All of the code has been converted to follow the native MVC structure
Line 33: Line 47:
 
*** The indexer is working with the exception of a known conflict with the loadmodule plugin; it must be disabled for the indexer to work with articles (the patch in the root of the repo handles this)
 
*** The indexer is working with the exception of a known conflict with the loadmodule plugin; it must be disabled for the indexer to work with articles (the patch in the root of the repo handles this)
 
*** There is a baseline indexer for com_newsfeeds, but it needs to be reviewed to find the best way to gather data ([https://github.com/Finder-Integration/Finder/issues/17 Issue 17])
 
*** There is a baseline indexer for com_newsfeeds, but it needs to be reviewed to find the best way to gather data ([https://github.com/Finder-Integration/Finder/issues/17 Issue 17])
*** The taxonomy map is not properly creating unique items, causing multiple listings for items in all branches ([https://github.com/Finder-Integration/Finder/issues/39 Issue 39])
 
 
** Index Updater:
 
** Index Updater:
 
*** Change state, save, and delete events converted to use native content plugin events
 
*** Change state, save, and delete events converted to use native content plugin events
 
*** JModelAdmin needs to be patched to fire the finder plugins during publish, delete, and save (patch in repo handles this)
 
*** JModelAdmin needs to be patched to fire the finder plugins during publish, delete, and save (patch in repo handles this)
 
*** A new event, onCategoryChangeState, has been added to CategoriesModelCategory by extending JModelAdmin's publish function to trigger this event after a successful publish
 
*** A new event, onCategoryChangeState, has been added to CategoriesModelCategory by extending JModelAdmin's publish function to trigger this event after a successful publish
*** Need an event to handle access changes from onChangeJoomlaXXX
+
*** onContentBeforeSave and onContentAfterSave now handle access level changes (must use both events to catch and process data since access doesn't have a "unique" event or trigger)
 
* Administrator Module
 
* Administrator Module
 
** The module is working, but work is in progress to move it's functionality to a system plugin (see below)
 
** The module is working, but work is in progress to move it's functionality to a system plugin (see below)
Line 48: Line 61:
 
* Site Module
 
* Site Module
 
** The module appears to be working as intended
 
** The module appears to be working as intended
* Content Plugin (former System Plugin for highlighting)
+
* Highlight Plugin
 
** The plugin appears to be working as intended
 
** The plugin appears to be working as intended
** Work is in progress to convert it to a reusable content plugin for use with all extensions
+
** Work is in progress to convert it to a reusable plugin for use with all extensions
 
*** A pull request is active against the Platform adding the highlighter HTML Helper and media ([https://github.com/joomla/joomla-platform/pull/371 Pull Request 371 on Platform])
 
*** A pull request is active against the Platform adding the highlighter HTML Helper and media ([https://github.com/joomla/joomla-platform/pull/371 Pull Request 371 on Platform])
 
** The plugin needs a few enhancements to enable multiple iterations and highlight exclusion ([https://github.com/Finder-Integration/Finder/issues/38 Issue 38])
 
** The plugin needs a few enhancements to enable multiple iterations and highlight exclusion ([https://github.com/Finder-Integration/Finder/issues/38 Issue 38])
Line 74: Line 87:
 
* [https://github.com/Finder-Integration/Finder GitHub repository]
 
* [https://github.com/Finder-Integration/Finder GitHub repository]
 
* [https://github.com/Finder-Integration/joomla-cms GitHub fork of the CMS containing Finder pre-installed]
 
* [https://github.com/Finder-Integration/joomla-cms GitHub fork of the CMS containing Finder pre-installed]
 +
* [[Changes from Finder 2.0.1]]
 
* Coordinators: Michael Babker, Omar Ramos
 
* Coordinators: Michael Babker, Omar Ramos
 
* Contact: Chris Davenport (mailto:chris.davenport@joomla.org).
 
* Contact: Chris Davenport (mailto:chris.davenport@joomla.org).
  
[[Category:Finder]]
+
[[Category:Smart Search]]

Latest revision as of 19:22, 5 January 2012

The purpose of the Finder Integration Working Group is to migrate JXtended's Finder extension package to be compatible with Joomla! 1.7+ in order to allow it to be considered for inclusion in a future release of the Joomla! CMS. At present, a realistic goal for this inclusion would be for Joomla! 3.0, scheduled for release in July 2012.

Contents

What is Finder?

Finder is an advanced search extension for Joomla! 1.5. The full package includes the Finder component, a front-end search module, a back-end status module, a group of plugins for processing data from core components, and a system plugin. Finder includes features such as term highlighting, suggestions, and allows for taxonomy support. Finder is used to power the search on extensions.joomla.org.

Note: Finder has been renamed to Smart Search in Joomla 2.5.

Documentation

Smart Search documentation is a work in progress and we need people to help us improve and adapt it as the integration work proceeds. The documentation pages listed below were initially imported, with slight adaptations, from the original documentation with the kind permission of the Finder's original developers: Rob Schley, Louis Landry and Andrew Eddie.

All Smart Search documentation pages are listed in the Smart Search category.

Goals

The ultimate goal is to enable Finder to be integrated into the Joomla! CMS, replacing the existing search component. Below are additional goals that should be met during the migration process:

  • Component follows proper MVC structure
  • All old version code updated to current supported version (for example, MooTools based script)
  • Meets code style standards as defined in the Joomla! Platform
  • Uses no deprecated methods (i.e. JRequest)
  • Where possible, queries formed using JDatabaseQuery to enable multi-database compatibility
  • Migrate existing command line method to extend JCli

Collaboration

All work on the migration of Finder is being performed from a GitHub repository. In the repository is a simple Phing script to enable those who check out the repository to package the extension suite for easy installation. Feel free to fork the repo and work to resolve known issues then submit a pull request to merge those changes in. If you are interested in being added to the GitHub organization (which allows commit access to the main repo), send a message to Michael Babker.

Additionally, to help prepare the integration into the CMS, a fork of the Joomla! CMS has been added to GitHub containing Finder pre-installed and contains additional changes elsewhere in the full package (such as CSS tweaks for the search results layout and adding a new component icon).

Testing

The following test plans may be used to verify the correct functioning of Smart Search.

Status

Below is the status as of 25 November 2011:

  • Database Work:
    • As highlighted on the Google Groups discussions, there are several queries that need to be rewritten to allow for multi-database compatibility
    • Some queries also need to be rewritten due to how JDatabaseQuery handles certain query types
    • Queries needing work have mostly been identified with @TODO's in the code
    • A DDL has been added for PostgreSQL to enable testing with this driver (driver has a open pull request on the platform as well as a CMS branch working on the functionality there)
  • Administrator Component
    • All of the code has been converted to follow the native MVC structure
    • Indexer:
      • The indexer is working with the exception of a known conflict with the loadmodule plugin; it must be disabled for the indexer to work with articles (the patch in the root of the repo handles this)
      • There is a baseline indexer for com_newsfeeds, but it needs to be reviewed to find the best way to gather data (Issue 17)
    • Index Updater:
      • Change state, save, and delete events converted to use native content plugin events
      • JModelAdmin needs to be patched to fire the finder plugins during publish, delete, and save (patch in repo handles this)
      • A new event, onCategoryChangeState, has been added to CategoriesModelCategory by extending JModelAdmin's publish function to trigger this event after a successful publish
      • onContentBeforeSave and onContentAfterSave now handle access level changes (must use both events to catch and process data since access doesn't have a "unique" event or trigger)
  • Administrator Module
    • The module is working, but work is in progress to move it's functionality to a system plugin (see below)
  • Site Component
    • Basic search functionality is working, but there are a few errors:
      • Multi-word searches do not work (Issue 18)
    • The component and module's layouts have been redesigned to mock those of com_search, enabling compatibility with existing templates
      • In instances where the class name contained "search", outside of the search results listing, the class name now contains "finder"
  • Site Module
    • The module appears to be working as intended
  • Highlight Plugin
    • The plugin appears to be working as intended
    • Work is in progress to convert it to a reusable plugin for use with all extensions
    • The plugin needs a few enhancements to enable multiple iterations and highlight exclusion (Issue 38)
  • System Plugin
    • A new system plugin is being designed to handle the Finder script to automatically update indexed data
    • The code has been copied out of the admin module, but is currently not auto-enabled or tested
    • Optimally, the text output currently in the status bar should be added to the system debug output so this information is not lost in case troubleshooting is needed
  • Finder plugins
    • Each of the plugins for core methods have had basic review and refactoring to allow the indexer to run correctly
    • All dependencies on section data have been broken
    • Still needs further review and refactoring as methods are converted
  • JavaScript
    • Most of the MooTools based code has been reviewed and most deprecated/removed methods from 1.2 have been replaced with the appropriate 1.3 methods
    • The SliderFilter script needs to be fully converted to MooTools 1.3 (work has been done, need to verify full functionality) (Issue 29)
    • All script needs to be tested
    • Script needs to be reviewed and, where available, replaced with existing scripts from the system library
  • CLI
    • CLI script has been migrated to extend JCli and is functioning without issue.

Further Information

Work on conversion is being conducted from a GitHub repository until the extension package is 100% converted and ready to be feature requested into the CMS. At that point, a pull request will be issued against the CMS GitHub repository to merge the code.