Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/kokspflanze/zfcsitemap

Sitemap for Laminas
https://github.com/kokspflanze/zfcsitemap

navigation php php7 sitemap zend-framework zf3

Last synced: about 2 months ago
JSON representation

Sitemap for Laminas

Awesome Lists containing this project

README

        

# ZfcSitemap Module for Laminas

## SYSTEM REQUIREMENTS

- requires PHP 7.1 or later; we recommend using the latest PHP version whenever possible.
- you have to use `laminas-navigation`

## INSTALLATION

### Composer

Installation of this module uses composer. For composer documentation, please refer to
[getcomposer.org](http://getcomposer.org/).

```sh
php composer.phar require kokspflanze/zfc-sitemap
# (When asked for a version, type `dev-master`)
```

Go to `config/application.config.php` and add `ZfcSitemap` in the modules section.

## How to use

### Get the sitemap

you can see your current sitemap with `/sitemap.xml`

### Create a sitemap as cache (optional)

This create a sitemap in `data/zfc-sitemap` as cache, this means, if you call `/sitemap.xml` it will not longer create a new sitemap, it will use the cached sitemap.

For this you need to install `laminas/laminas-mvc-console` and this directory `data/zfc-sitemap` with write rights.

Than you can execute `php public/index.php generate-sitemap http://example.com` to create your sitemap.
PS: You have to rerun it to create a new sitemap.

### Change your sitemap

If you have dynamic pages on your page and you want to add them in the sitemap. You can add them with the EventManager.

#### Create a listener

create a new class

````php
listeners[] = $events->attach(Sitemap::EVENT_SITEMAP, [$this, 'onSiteMap'], $priority);
}

/**
* @param EventManager\EventInterface $event
*/
public function onSiteMap(EventManager\EventInterface $event)
{
/** @var AbstractContainer $container */
$container = $event->getParam('container');

$container->addPage([
'label' => 'Example',
'uri' => '/example',
]);
/**
* your custom stuff, add or remove pages
*/

$event->setParam('container', $container);
}

}
````

Than you have to add your listener in the `service_manager` config and in the following configuration.

````php
'zfc-sitemap' => [
'strategies' => [
Listener\SitemapCustom::class,
],
],
````