XML и HTML карты
Для всякого сеошного на сайте должны присутствовать карты сайта.
Оглавление
HTML карта
Тут всё очень просто.
- Создаём в админке шаблон “Карта сайта HTML”. Назначаем ему псевдоним
htmlsitemap. - Создаём сразу
/views/htmlsitemap.blade.phpблейд-шаблон. - Создаём ресурс “Карта сайта HTML”, выбираем ему шаблон. Не забудьте снять чекбокс “Показывать в меню”.
- Создаём контроллер
HtmlsitemapController.
<?php
namespace EvolutionCMS\Main\Controllers;
class HtmlsitemapController extends BaseController
{
public function render()
{
$sitemap = $this->evo->runSnippet('DLMenu',[
'parents' => 0,
'maxDepth' => 3,
]);
$this->data['sitemap'] = $sitemap;
}
}
- В шаблоне выводим переменную
@extends('layouts.app')
@section('content')
{!! $sitemap !!}
@endsection
Возможно, это несколько неверно, т.к. мы отдаём в блейд уже свёрстанный список, но какой смысл городить огороды
XML карта
Вы можете воспользоваться похожим решением и сделать карту при помощи сниппета DLSitemap. Способ практически тот же самый, что мы рассмотрели выше.
Однако для тренировки давайте воспользуемся другим решением и установим пакет Evocms Sitemap XML через консоль.
Подготовка - создайте ТВ
В обоих случаях для карты сайта вам будут нужны ТВ-параметры, которые позволят задавать приоритет ресурсам, исключать их из карты сайта и задавать частоту обновления.
Создайте 3 ТВ-параметра и назначьте их всем шаблонам блога.
- sitemap_changefreq - период обновления
| название | значение |
|---|---|
| Имя: | sitemap_changefreq |
| Заголовок: | Период обновления |
| Существующие категории: | SEO |
| Тип ввода: | dropdown |
| Возможные значения: | always\|\|hourly\|\|daily\|\|weekly\|\|monthly\|\|yearly\|\|never |
| Значение по умолчанию: | weekly |
- sitemap_exclude - отображение в карте сайта
| название | значение |
|---|---|
| Имя: | sitemap_exclude |
| Заголовок: | Отображение в sitemap |
| Существующие категории: | SEO |
| Тип ввода: | checkbox |
| Возможные значения: | Скрыть==1 |
| Значение по умолчанию: | 0 |
- sitemap_priority - приоритет страницы
| название | значение |
|---|---|
| Имя: | sitemap_priority |
| Заголовок: | Приоритет страницы |
| Существующие категории: | SEO |
| Тип ввода: | dropdown |
| Возможные значения: | 0.1\|\|0.2\|\|0.3\|\|0.4\|\|0.5\|\|0.6\|\|0.7\|\|0.8\|\|0.9\|\|1 |
| Значение по умолчанию: | 0.5 |
Секция “СЕО” приобретает размах.

Кстати. Если вам не нравится, что в документе “СЕО” выше, чем “Контент”, зайдите в Элементы -> Категории, найдите там сортировку категорий и расположите и так, как душе угодно.
Установите дополнение evocms-sitemap
Открываем консоль сервера, переходим в папку /core и выполняем следующие команды:
php artisan package:installrequire 0test/evocms-sitemap "*"
php artisan vendor:publish --provider="EvolutionCMS\SitemapXml\SitemapXmlServiceProvider"
Обратите внимание - теперь в папке packages у нас два пакета. Один наш стартовый main и второй sitemapxml.
Отредактируйте конфигурацию
Создайте папку core\custom\packages\sitemapxml\config.
Скопируйте туда файл core\custom\packages\sitemapxml\example.config.php, переименуйте в config.php и отредактируйте под свои нужды.
Значение frequency_default ставьте такое же, как значение по умолчанию у ТВ sitemap_changefreq. А priority_default как sitemap_priority.
Теперь попробуйте открыть урл http://evoblog.localhost/sitemap.xml.
Итого
- Добавлены карты сайта
Переходим к созданию поиска по блогу.