borysenko/sitemap

There is no license information available for the latest version (dev-master) of this package.

SiteMap Расширение для Yii 2

Installs: 20

Dependents: 1

Suggesters: 0

Security: 0

Stars: 0

Watchers: 1

Forks: 1

Open Issues: 0

Type:yii2-extension

dev-master 2016-12-09 21:18 UTC

This package is auto-updated.

Last update: 2021-12-17 20:33:17 UTC


README

Создание карты сайта в формате XML. Карты разбиваются, в каждой sitemap может быть 49000 линков, если у вас их больше, то создатутся дополнительные sitemap-ы.

Установка


php composer.phar require  borysenko/sitemap "dev-master"

или


php -d "disable_functions=" composer.phar require  borysenko/sitemap "dev-master"

Настройка

в console\config\main.php добавляем

    'components' => [
        'urlManager' => [
            'class' => 'yii\web\UrlManager',
            'scriptUrl' => 'http://www.example.com', // Setup your domain
            'baseUrl' => 'http://www.example.com', // Setup your domain
            'enablePrettyUrl' => true,
            'showScriptName' => false,
            // ...
        ],
    ],

Использование

Создаем в console\controllers\ контроллер SitemapController.php и в него вставляем код:



namespace console\controllers;

use Yii;
use yii\console\Controller;
use yii\helpers\Console;
use borysenko\sitemap\SiteMap;

class SitemapController extends Controller
{
    public function actionInit()
    {
        $siteMap = new SiteMap("@frontend/web/","sitemap");
        $siteMap->addUrl("http://www.example.com/","1.0",date("Y-m-d"),"daily");
        $siteMap->addTable("http://www.example.com/news/%s-%d/","0.9",date("Y-m-d"),"daily", "news",array("translit","id"),"1=1");
        $siteMap->start();
        $siteMap->saveXML("%d_sitemap.xml");
        $siteMap->saveIndexXml("sitemap.xml");

        Console::output('Success!');
    }
}


Обратите внимание на $siteMap->addTable - "news" это таблица в базе данных, array("translit","id") это поля таблицы, данные которых нужно подставить в урл, в урле в конце /%s-%d/ - т.е. скрипт в место %s вставляет данные с поля "translit", а в место %d ставит данные с "id". А "1=1" - это условие sql запроса, т.е. Where (может быть такой пример "active=1 AND status=1 AND ...")

Запускать генерацию карты сайта можно через консоль: php yii sitemap/init или поставить в крон