PHP code example of yurcrm / yandex-turbo-pages

1. Go to this page and download the library: Download yurcrm/yandex-turbo-pages library. Choose the download type require.

2. Extract the ZIP file and open the index.php.

3. Add this code to the index.php.
    
        
<?php
require_once('vendor/autoload.php');

/* Start to develop here. Best regards https://php-download.com/ */

    

yurcrm / yandex-turbo-pages example snippets


// Инициализируем клиент в режиме отладки. Для боевого режима укажите третьим параметром TurboApi::MODE_PRODUCTION
$turboApi = new TurboApi\TurboApi('адрес сайта', 'ваш токен', TurboApi::MODE_DEBUG);

// Получаем у Яндекса необходимые данные для отправки турбостраниц
$turboApi->requestUserId();
$turboApi->requestHost();
$turboApi->requestUploadAddress();
$status = $turboApi->getTask($taskId);

// Инициализируем клиент в режиме отладки. Для боевого режима укажите третьим параметром TurboApi::MODE_PRODUCTION
$turboApi = new TurboApi\TurboApi('адрес сайта', 'ваш токен', TurboApi::MODE_DEBUG);

// Получаем у Яндекса необходимые данные
$turboApi->requestUserId();
$turboApi->requestHost();

$offset = 0; // Смещение в списке. Минимальное значение — 0
$limit = 5; // Ограничение на количество элементов в списке. Минимальное значение — 1; максимальное значение — 100.
$taskTypeFilter = TurboApi::TASK_TYPE_FILTER_DEBUG; // Фильтрация по режиму загрузки RSS-канала. Возможные значения: DEBUG, PRODUCTION, ALL.
$loadStatusFilter = TurboApi::LOAD_STATUS_FILTER_PROCESSING; // Фильтрация по статусу загрузки RSS-канала. Возможные значения: PROCESSING, OK, WARNING, ERROR.
$status = $turboApi->getTasks($offset, $limit, $taskTypeFilter, $loadStatusFilter);

// Инициализируем клиент в режиме отладки. Для боевого режима укажите третьим параметром TurboApi::MODE_PRODUCTION
$turboApi = new TurboApi\TurboApi('адрес сайта', 'ваш токен', TurboApi::MODE_DEBUG);

// Получаем у Яндекса необходимые данные для отправки турбостраниц
$turboApi->requestUserId();
$turboApi->requestHost();
$turboApi->requestUploadAddress();

// лимит числа страниц в рамках одной задачи. В режиме дебага это число ограничено, см. документацию от Яндекса
$tasksLimit = 30;

$turboPack = new TurboApi\TurboPack('Заголовок сайта', 'URL сайта', 'Краткое описание сайта', 'Код языка сайта');

/*
  Предположим, у вас есть страницы категорий, у каждой - заголовок и описание
*/
foreach ($categories as $category) {
    $link = 'URL страницы категории';
    $taskItem = new TurboApi\TurboItem();

    $taskXML = '<item turbo="true"><link>' . $link . '</link>';
    $taskXML .= '<turbo:content><![CDATA[';
    $taskXML .= '<header>
               <h1>' . $category->seoH1 . '</h1>
           </header>';
    $taskXML .= $category->description;
    $taskXML .= ']]></turbo:content></item>' . PHP_EOL;

    $taskItem->setXml($taskXML);
    $turboPack->addItem($taskItem);
}

// разбиваем массив турбостраниц на задачи
$tasks = $turboPack->getTasks($tasksLimit);

// В этом массиве будем хранить id задач, чтобы потом получать информацию по ним
$taskIds = [];

// отправляем задачи в Яндекс
foreach ($tasks as $task) {
    $taskIds[] = $turboApi->uploadRss($task);
}