The module polls supported data models and displays links to their representations for front-ends and search engines.
You can expand or replace the list of supported models through the module configuration.
In your model class, which you include in the site map module, you need to provide a selection by publication status (for example), as well data models must have the required public attribute in_sitemap
and public methodgetPublished()
which should return models with such required keys as: url
, updated_at
.
Autogenerated sitemap resolving at http://example.com/sitemap.xml
Sitemap module monitors the saving, changing or deleting event for the supported models and clean the cache which the site map is formed, thus actualizing it. In addition, you can add/edit and delete the URL of sitemap in manual mode.
Be careful when adding URLs manually for pages of dynamic content, since by deleting such a resource the link to it will still be on the site map.
This module is an integral part of the Butterfly.СMS content management system, but can also be used as an standalone extension.
Copyrights (c) 2019-2023 W.D.M.Group, Ukraine
- PHP 5.6 or higher
- Yii2 v.2.0.40 and newest
- Yii2 Base module (required)
- Yii2 SelectInput widget
- Yii2 Options module (optionality)
- Yii2 Pages module (support)
- Yii2 News module (support)
- Yii2 Blog module (support)
To install the module, run the following command in the console:
$ composer require "wdmg/yii2-sitemap"
After configure db connection, run the following command in the console:
$ php yii sitemap/init
And select the operation you want to perform:
- Apply all module migrations
- Revert all module migrations
- Flush sitemap cache
In any case, you can execute the migration and create the initial data, run the following command in the console:
$ php yii migrate --migrationPath=@vendor/wdmg/yii2-sitemap/migrations
To add a module to the project, add the following data in your configuration file:
'modules' => [
...
'sitemap' => [
'class' => 'wdmg\sitemap\Module',
'routePrefix' => 'admin',
'supportModels' => [ // list of supported models for displaying a sitemap
'pages' => 'wdmg\pages\models\Pages',
'news' => 'wdmg\news\models\News',
],
'cacheExpire' => 43200, // sitemap cache lifetime, `0` - for not use cache
'defaultFrequency' => 'weekly', // default update frequency
'defaultPriority' => 0.5, // default update priority
'sitemapRoute' => '/' // default route to rendered sitemap.xml (use "/" - for root)
],
...
],
Use the Module::dashboardNavItems()
method of the module to generate a navigation items list for NavBar, like this:
<?php
echo Nav::widget([
'options' => ['class' => 'navbar-nav navbar-right'],
'label' => 'Modules',
'items' => [
Yii::$app->getModule('sitemap')->dashboardNavItems(),
...
]
]);
?>
- v.1.2.0 - Update copyrights, fix nav menu
- v.1.1.4 - Update dependencies, README.md
- v.1.1.3 - Update README.md and dependencies