https://github.com/loadsys/cakephp-sitemap
Generate HTML and XML sitemaps for your CakePHP application.
https://github.com/loadsys/cakephp-sitemap
Last synced: 3 months ago
JSON representation
Generate HTML and XML sitemaps for your CakePHP application.
- Host: GitHub
- URL: https://github.com/loadsys/cakephp-sitemap
- Owner: loadsys
- License: mit
- Created: 2013-10-18T15:21:49.000Z (over 12 years ago)
- Default Branch: dev
- Last Pushed: 2019-12-07T13:12:22.000Z (about 6 years ago)
- Last Synced: 2025-10-01T16:38:28.501Z (4 months ago)
- Language: PHP
- Homepage:
- Size: 79.1 KB
- Stars: 26
- Watchers: 11
- Forks: 14
- Open Issues: 7
-
Metadata Files:
- Readme: README.md
- License: LICENSE.md
- Code of conduct: CODE_OF_CONDUCT.md
Awesome Lists containing this project
README
# CakePHP-Sitemap
[](https://github.com/loadsys/CakePHP-Sitemap/releases)
[](https://travis-ci.org/loadsys/CakePHP-Sitemap)
[](https://coveralls.io/r/loadsys/CakePHP-Sitemap)
[](LICENSE.md)
[](https://packagist.org/packages/loadsys/cakephp_sitemap)
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
```shell
$ composer require loadsys/cakephp_sitemap
```
In your `config/bootstrap.php` file, add:
```php
Plugin::load('Sitemap', ['bootstrap' => false, 'routes' => true]);
```
OR
```shell
$ bin/cake plugin load Sitemap -r
```
## Usage
* Add list of tables to display Sitemap records via an array at `Sitemap.tables`
```php
Configure::write('Sitemap.tables', [
'Pages',
'Sites',
'Camps',
]);
```
* Add the `Sitemap.Sitemap` Behavior to each table as well
```php
$this->addBehavior('Sitemap.Sitemap');
```
You can now access the sitemap at `/sitemap.xml`.
### Configuration
* Default configuration options for the `Sitemap` Behavior is:
```php
'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:
```php
$this->addBehavior('Sitemap.Sitemap', ['changefreq' => 'weekly']);
```
* To customize the url generated for each record create a method named `getUrl` in the matching `Table` class.
```php
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](http://book.cakephp.org/3.0/en/plugins.html#overriding-plugin-templates-from-inside-your-application).
## Contributing
### Code of Conduct
This project has adopted the Contributor Covenant as its [code of conduct](CODE_OF_CONDUCT.md). All contributors are expected to adhere to this code. [Translations are available](http://contributor-covenant.org/).
### Reporting Issues
Please use [GitHub Isuses](https://github.com/loadsys/CakePHP-Sitemap/issues) 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:
```shell
$ 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:
```shell
$ 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](https://github.com/loadsys/CakePHP-Sitemap/blob/master/LICENSE.md)
## Copyright
[Loadsys Web Strategies](http://www.loadsys.com) 2016