Skip to content

locomotivemtl/charcoal-contrib-search

Repository files navigation

Charcoal Search

License Latest Stable Version

A Charcoal service provider my cool feature.

Table of Contents

Installation

The preferred (and only supported) method is with Composer:

$ composer require locomotivemtl/charcoal-contrib-search

Dependencies

Required

Configuration

In your project's config file, require the search module :

{
    "modules": {
        "charcoal/search/search": {}
    }
}

Usage

The module adds a search route action using GET. You may access http://project-url.com/search?keyword=[keyword]. You won't get any results until you run the IndexContent Script.

Before running the script, you need to setup

// Once a day at midnight
// You need to precise the base URL as it won'T be provided by the cli
0 0 * * * cd /[project]/web && /usr/local/bin/php /[project]/web/vendor/bin/charcoal admin/search/index-content -u http://project-url.com/

Each object of the sitemap to index must include data.id and data.objType to be indexable:

{
    "sitemap": {
        "xml": {
            "l10n": true,
            "check_active_routes": true,
            "relative_urls": false,
            "objects": {}
        },
        "searchables": {
            "l10n": true,
            "check_active_routes": true,
            "relative_urls": false,
            "transformer": "charcoal/search/transformer/indexable",
            "objects": {
                "app/object/section": {
                    "filters": {},
                    "data": {
                        "id": "{{id}}",
                        "objType": "{{objType}}"
                    }
                },
                
            }
        }
    }
}

Parameters

  • -u (--url) Website URL. Necessary as this is run in a cron script.
  • -c (--config) Sitemap builder key (Defaults to xml).
  • -n (--no_index_class) Class to filter out content from the crawled pages. Defaults to php-no_index.
  • -i (--index_element_id) ID of the element to be indexed in the crawled page. Defaults to entire page body.

Development

API Documentation

Development Dependencies

  • [php-coveralls/php-coveralls][phpcov]
  • [phpunit/phpunit][phpunit]
  • [squizlabs/php_codesniffer][phpcs]

Coding Style

The charcoal-contrib-search module follows the Charcoal coding-style:

Coding style validation / enforcement can be performed with composer phpcs. An auto-fixer is also available with composer phpcbf.

Credits

License

Charcoal is licensed under the MIT license. See LICENSE for details.

About

Search contrib

Resources

License

Code of conduct

Security policy

Stars

Watchers

Forks

Packages

No packages published

Contributors 2

  •  
  •  

Languages