Yii2 генератор sitemap

Общие вопросы по использованию второй версии фреймворка. Если не знаете как что-то сделать и это про Yii 2, вам сюда.
Ответить
kirzzz
Сообщения: 4
Зарегистрирован: 2021.01.13, 22:57

Yii2 генератор sitemap

Сообщение kirzzz »

Пишу сайт-каталог на Yii2-advanced.

Для генерации 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
        ],
    ],
Для модели /models/Product создал согласно мануалу следующий behaviors:

Код: Выделить всё

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
                    ];
                }
            ],
        ];
    }
    ...
}
Остальные пункты мануала (cache,urlManager) также выполнил.

И теперь у меня возник вопрос, что же должно происходить? Какой результат то должен быть в итоге? Если я все правильно понял, то в /web должен генерироваться файл sitemap.xml с базовыми страницами, которые я указал в консоли, и всеми продуктами от модели. Но я его там не вижу... Никакой дополнительной информации с примерами и пр я не нашел.

p.s Заранее благодарен Вам за помощь.
rak
Сообщения: 2181
Зарегистрирован: 2010.11.02, 23:40
Контактная информация:

Re: Yii2 генератор sitemap

Сообщение rak »

kirzzz писал(а): 2021.03.24, 18:46 И теперь у меня возник вопрос, что же должно происходить? Какой результат то должен быть в итоге? Если я все правильно понял, то в /web должен генерироваться файл sitemap.xml с базовыми страницами, которые я указал в консоли, и всеми продуктами от модели. Но я его там не вижу... Никакой дополнительной информации с примерами и пр я не нашел.
Генерироваться не должен.
А вот по ссылке http://mysite.com/sitemap.xml должно открываться
Только конфиг настраивать нужно для web, а не console
kirzzz
Сообщения: 4
Зарегистрирован: 2021.01.13, 22:57

Re: Yii2 генератор sitemap

Сообщение kirzzz »

rak писал(а): 2021.03.24, 19:54
kirzzz писал(а): 2021.03.24, 18:46 И теперь у меня возник вопрос, что же должно происходить? Какой результат то должен быть в итоге? Если я все правильно понял, то в /web должен генерироваться файл sitemap.xml с базовыми страницами, которые я указал в консоли, и всеми продуктами от модели. Но я его там не вижу... Никакой дополнительной информации с примерами и пр я не нашел.
Генерироваться не должен.
А вот по ссылке http://mysite.com/sitemap.xml должно открываться
Только конфиг настраивать нужно для web, а не console
Все верно. Понял это методом тыка и все получилось, спасибо за ответ!
SaintRu
Сообщения: 88
Зарегистрирован: 2020.05.13, 11:22
Контактная информация:

Re: Yii2 генератор sitemap

Сообщение SaintRu »

Когда товаров перевалит через 1000 мэп будет слишком велик, и придется разбивать на индексы.
Да и вообще лучше разбивать на индексные файлы - в одном товары, в другом статьи с блога и т.п.
Тогда лучше самому создать сервис для sitemap, там кста, все простою, я честно у Елисеева спер ;)
Мой старт-ап ;) https://website39.site
Ответить