Skip to content

loadsys/CakePHP-Sitemap

Repository files navigation

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 -r

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');

You can now access the sitemap at /sitemap.xml.

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