Generate HTML and XML sitemaps for your CakePHP application.
PHP
Latest commit 8d52d91 Nov 11, 2016 @justinyost justinyost committed on GitHub Merge pull request #40 from ciricihq/b/xml-serialization
Fix xml serialization
Permalink
Failed to load latest commit information.
config Add Basic XML Sitemap Support May 27, 2016
src Fix xml serialization to load the given XML template Nov 10, 2016
tests
webroot
.editorconfig Add An Editorconfig File For Plugin Jan 20, 2016
.gitignore Add Gitignore for Plugin Jan 20, 2016
.travis.yml
CODE_OF_CONDUCT.md Add Email Address for COC May 26, 2016
LICENSE.md Update Readme and License May 26, 2016
README.md
composer.json Remove Composer Plugin API May 27, 2016
phpunit.xml.dist Base Behavior In Progress Jan 22, 2016

README.md

CakePHP-Sitemap

Latest Version Build Status Coverage Status Software License Total Downloads

The Sitemap provides a mechanism for displaying Sitemap style information (the url, change frequency, priority and last modified datetime) for a set of Tables that CakePHP has access to.

Requirements

  • CakePHP 3.0.0+
  • PHP 5.6+

Installation

$ composer require loadsys/cakephp_sitemap

In your config/bootstrap.php file, add:

Plugin::load('Sitemap', ['bootstrap' => false, 'routes' => true]);

OR

$ bin/cake plugin load Sitemap

Usage

  • Add list of tables to display Sitemap records via an array at Sitemap.tables
Configure::write('Sitemap.tables', [
    'Pages',
    'Sites',
    'Camps',
]);
  • Add the Sitemap.Sitemap Behavior to each table as well
$this->addBehavior('Sitemap.Sitemap');

Configuration

  • Default configuration options for the Sitemap Behavior is:
'cacheConfigKey' => 'default',
'lastmod' => 'modified',
'changefreq' => 'daily',
'priority' => '0.9',
'conditions' => [],
'order' => [],
'fields' => [],
'implementedMethods' => [
    'getUrl' => 'returnUrlForEntity',
],
'implementedFinders' => [
    'forSitemap' => 'findSitemapRecords',
],
  • To modify these options for instance to change the changefreq when listing records, update the addBehavior method call for the Table in question like so:
$this->addBehavior('Sitemap.Sitemap', ['changefreq' => 'weekly']);
  • To customize the url generated for each record create a method named getUrl in the matching Table class.
public function getUrl(\Cake\ORM\Entity $entity) {
    return \Cake\Routing\Router::url(
        [
            'prefix' => false,
            'plugin' => false,
            'controller' => $this->registryAlias(),
            'action' => 'display',
            $entity->display_id,
        ],
        true
    );
}
  • To customize the templates used when displaying the Sitemap, the CakePHP Book provides information regarding overriding Plugin Templates.

Contributing

Code of Conduct

This project has adopted the Contributor Covenant as its code of conduct. All contributors are expected to adhere to this code. Translations are available.

Reporting Issues

Please use GitHub Isuses for listing any known defects or issues.

Development

When developing this plugin, please fork and issue a PR for any new development.

Set up a working copy:

$ git clone git@github.com:YOUR_USERNAME/CakePHP-Sitemap.git
$ cd CakePHP-Sitemap/
$ composer install
$ vendor/bin/phpcs --config-set installed_paths vendor/loadsys/loadsys_codesniffer,vendor/cakephp/cakephp-codesniffer

Make your changes:

$ git checkout -b your-topic-branch
# (Make your changes. Write some tests.)
$ vendor/bin/phpunit
$ vendor/bin/phpcs -p --extensions=php --standard=Loadsys ./src ./tests

Then commit and push your changes to your fork, and open a pull request.

License

MIT

Copyright

Loadsys Web Strategies 2016