Для генерации sitemap решил использовать модуль от himiklab, дабы не изобретать велосипед.
В файл конфигурации /config/console согласно мануалу вставил следующее:
Код: Выделить всё
'modules' => [
'sitemap' => [
'class' => 'himiklab\sitemap\Sitemap',
'urls'=> [
[
'loc' => '/site/index',
'changefreq' => SitemapBehavior::CHANGEFREQ_DAILY,
'priority' => 0.7,
],
[
'loc' => '/site/about-us',
'changefreq' => SitemapBehavior::CHANGEFREQ_DAILY,
'priority' => 0.5,
],
],
'enableGzip' => false, // default is false
'cacheExpire' => 1, // 1 second. Default is 24 hours
],
],
Код: Выделить всё
class Product extends \yii\db\ActiveRecord
{
...
public function behaviors()
{
return [
TimestampBehavior::className(),
'sitemap' => [
'class' => SitemapBehavior::className(),
'scope' => function ($model) {
/** @var ActiveQuery $model */
$model->select(['id', 'product.updated_at']);
$model->andWhere(['product.hidden' => 0]);
$model->andWhere(['product.in_stock' => 1]);
},
'dataClosure' => function ($model) {
/** @var self $model */
return [
'loc' => Url::toRoute(['site/product','id'=>$model->id], true),
'lastmod' => $model->updated_at,
'changefreq' => SitemapBehavior::CHANGEFREQ_DAILY,
'priority' => 0.8
];
}
],
];
}
...
}
И теперь у меня возник вопрос, что же должно происходить? Какой результат то должен быть в итоге? Если я все правильно понял, то в /web должен генерироваться файл sitemap.xml с базовыми страницами, которые я указал в консоли, и всеми продуктами от модели. Но я его там не вижу... Никакой дополнительной информации с примерами и пр я не нашел.
p.s Заранее благодарен Вам за помощь.