# Генерация rss в формате xml для яндекс turbo При помощи этой библиотеки можно сгенерировать rss ленту для яндекс турбо страниц. Для генерации самих страниц также реализован генератор контента со всей необходимой разметкой. [Подробные примеры](https://gvozdikov.net/yandex_turbo/) Добавление элементов в контент турбо страницы: - [Accordion](/docs/accordion.md) Аккордеон - [Ad](/docs/ad.md) Реклама РСЯ - [Audio](/docs/audio.md) Аудио - [Button](/docs/button.md) Кнопка Документация Todo: - CallbackForm - Cards - Carousel - Comments - Feed - Feedback - Fold - Form - Gallery - Histogram - Image - InPage - Link - Rating - Search - Share - Slider - Snippet - Video - Item - Turbo ## Установка ```composer require modulebz/yandex_turbo_rss_xml``` ### Пример использования всех функций генератора Тут приведены все возможные функции для генерации ```php setTitle('Первый тест') // Добавление описания ->setDescription('Описание канала') // Указание ссылки на сайт ->setLink( 'https://gvozdikov.net/') // Установка языка ->setLanguage( \ModuleBZ\ISO\enum\ISO639_1::_RU) // Добавление различных метрик // Добавление метрики: Яндекс.Метрика ->addYandexMetrica(5000,['a'=>'b']) // Добавление метрики: LiveInternet ->addLiveInternet('hello') // Добавление метрики: GoogleAnalytics ->addGoogleAnalytics(50005) // Добавление метрики: Mail.ru ->addMailRu(7500) // Добавление метрики: Rambler Top ->addRamblerTop(10000) // Добавление метрики: Mediascope ->addMediascope(12000) // Добавление метрики: Подключение собственной метрики ->addCustomMetric('https://ya.ru/') // Подключение реклмного блока яндекса ->addAdNetworkYandex('идентификатор блока','first_ad_place') // Подключение реклмного блока adfox ->addAdNetworkAdFox('second_ad_place',"
") ; // Добавляем новую статью в RSS $turbo->addItem( (new Item()) // Указываем заголовок статьи ->setHeaderH1('Первая новость') // Указываем подзаголовок статьи ->setHeaderH2('Подзаголовок') // Указываем адрес картинки для статьи в заголовок ->setHeaderImg('https://gvozdikov.net/content/gvozdikov/pics/avatar.jpg') // Указываем пункты меню ->addHeaderMenu('https://gvozdikov.net','Пукнт 1') ->addHeaderMenu('https://gvozdikov.net','Пукнт 2') ->addHeaderMenu('https://gvozdikov.net','Пукнт 3') // Указываем хлебные крошки статьи ->addHeaderBreadcrumbs('https://gvozdikov.net','Главная') ->addHeaderBreadcrumbs('https://gvozdikov.net/usefull','Полезное') ->addHeaderBreadcrumbs('https://gvozdikov.net/usefull/page1','Страница 1') // Указываем дату публикации ->setPubDate(time()) // Укаызваем ссылку на статью ->setLink('https://gvozdikov.net') // Укаызваем автора статьи ->setAuthor('Виктор') // Укзаываем, это турбо статья, по умолчанию true ->setIsTurbo(true) // Указываем как подгружать схожие статьи ->setRelatedInfinity(true) // Указываем схожие статьи ->addRelated('https://gvozdikov.net/about','Обо мне') ->addRelated('https://gvozdikov.net/portfolio','Портфолио','https://gvozdikov.net/content/gvozdikov/pics/avatar.jpg') // указываем идентификатор статьи ->addMetricsYandexSchemaIdentifier(100) // Указываем рубрики ->addMetricsBreadcrumb('https://gvozdikov.net','Главная') // Указываем рубрики ->addMetricsBreadcrumb('https://gvozdikov.net/log','Разное') // Указываем URL страницы-источника, который можно передать в Яндекс.Метрику. ->setTurboSource('https://source.ru') // Указываем заголовок страницы, который можно передать в Яндекс.Метрику. ->setTurboTopic('topic') // Задаём контент новости ->setContent( (new Content()) // Добавляем просто html inline-блоки ->addHtml('

Привет, меня зовут Виктор.

') // Добавляем просто картинку без подписи ->addImage(new Image('https://gvozdikov.net/upload/images/acc1/1583066709_6113933_0500_95_0_1.png')) // Добавляем просто картинку с подписью ->addImage(new Image( 'https://gvozdikov.net/upload/images/acc1/1583066709_6113933_0500_95_0_1.png' ,'Как во Flutter установить цвет текста для AppBar.' ) ) // Добавляем просто картинку с подписью и дополнительными аттрибутыми для картинки и заголовка. Аттрибуты яндекс проигнорирует, но они могут быть нужны для версии статьи на сайте ->addImage(new Image( 'https://gvozdikov.net/upload/images/acc1/1583066709_6113933_0500_95_0_1.png' ,'Как во Flutter установить цвет текста для AppBar.' ,['alt'=>'Картинка','width'=>'200px'] ,['style'=>'color:red'] ) ) // Добавляем галерею ->addGallery((new Gallery()) ->addImage('https://clck.ru/FFAuR') ->addImage('https://clck.ru/FFAvn') ->setHeader('Заголовок галереи') ) // Добавляем аудио ->addAudio(new Audio('https://clck.ru/MJY6J')) // Добавляем видео ->addVideo((new Video(300,200,"https://clck.ru/Kiunj",15))) // Добавляем аккардион ->addAccordion((new Accordion()) // Добавляем пункты в аккардеон ->addItem('О чём проект','

Это очень интересный проект

') ->addItem('Как оплатить','

Пока никак, но скоро как-нибудь можно будет

',true) ->addItem('Контакты','

Есть контакт

') ) ->addSlider((new Slider()) // Указываем заголовок слайдера ->setHeader('Заголовок слайдера') // Добавляем картинку ->addImage((new Image('https://clck.ru/FFAuR'))) // Добавляем картинку с подписью ->addImage((new Image('https://clck.ru/FFAuR','Картинка с подписью'))) // Добавляем видео в слайдер. При добавлении видео в слайдер, превью картинки обязательно ->addVideo((new Video(300,200,"https://clck.ru/Kiunj",15,'https://clck.ru/FFAuR'))) // Добавляем видео с подпистб в слайдер. При добавлении видео в слайдер, превью картинки обязательно ->addVideo((new Video(300,200,"https://clck.ru/Kiunj",15,'https://clck.ru/FFAuR','Видео с подписью'))) // Добавляем рекламный блок РСЯ в слайдеры ->addTurboAdID('123456') // Добавляем ссылку в слайдер ->addLink('https://gvozdikov.net','Читайте мой блог') ) // Добавляем карточки на страницу ->addCards((new Cards()) // Добавляем карточку ->addCard((new Card()) // Указываем картинку в шапку ->setHeaderImage('https://clck.ru/FFAuR') // Указываем текст в шапке ->setHeaderTitle('Заголовок карточки') // Задаём контет в карточке ->setContent('

Это мой контент

А это вторая карточка строка

') // Указываем ссылку в подвале ->setFooter('http://gvozdikov.net/','Продолжение') // Указываем ссылку "читать ещё" ->setMore('http://gvozdikov.net/','Читать ещё') ) // Добавляем вторую карточку для красоты примера ->addCard((new Card()) // Указываем картинку в шапку ->setHeaderImage('https://clck.ru/FFAuR') // Указываем текст в шапке ->setHeaderTitle('Заголовок карточки') // Задаём контет в карточке ->setContent('

Это мой контент

А это вторая карточка строка

') // Указываем ссылку в подвале ->setFooter('http://gvozdikov.net/','Продолжение') // Указываем ссылку "читать ещё" ->setMore('http://gvozdikov.net/','Читать ещё') ) ) // Добавляем карусель ->addCarousel((new Carousel()) ->setHeader('Заголовок карусели') ->addSnippet(new Snippet('Заголовок','https://clck.ru/FFAuR','https://gvozdikov.net/')) ->addSnippet(new Snippet('Второй заголовок','https://clck.ru/FFAvn','https://gvozdikov.net/')) ) // Добавляем длинный текст, с кнопкой "читать ещё" ->addFold(new Fold('Сайт рыбатекст поможет дизайнеру, верстальщику, вебмастеру сгенерировать несколько абзацев более менее осмысленного текста рыбы на русском языке, а начинающему оратору отточить навык публичных выступлений в домашних условиях. При создании генератора мы использовали небезизвестный универсальный код речей. Текст генерируется абзацами случайным образом от двух до десяти предложений в абзаце, что позволяет сделать текст более привлекательным и живым для визуально-слухового восприятия.')) // Добавляем вертикальный блок "Читайте также" ->addFeed((new Feed()) ->setTitle('Читайте также') ->setLayout(EFeedLayout::VERTICAL) ->addItem( (new FeedItem()) ->setTitle('Заголовок') ->setDescription('Описание элемента') ->setHref('https://gvozdikov.net') ->setThumb('https://clck.ru/FFAvn') ->setThumbPosition(EFeedItemThumbPosition::TOP) ->setThumbRatio(EFeedItemThumbRatio::RATIO_4_3) ) ->addItem( (new FeedItem()) ->setTitle('Заголовок') ->setDescription('Описание элемента') ->setHref('https://gvozdikov.net') ->setThumb('https://clck.ru/FFAvn') ->setThumbPosition(EFeedItemThumbPosition::LEFT) ->setThumbRatio(EFeedItemThumbRatio::RATIO_1_1) ) ->addItem( (new FeedItem()) ->setTitle('Заголовок') ->setDescription('Описание элемента') ->setHref('https://gvozdikov.net') ->setThumb('https://clck.ru/FFAvn') ->setThumbPosition(EFeedItemThumbPosition::RIGHT) ->setThumbRatio(EFeedItemThumbRatio::RATIO_3_4) ) ) // Добавляем горизонтальный блок "Читайте также" (элементы продублированы из предыдущего блока) ->addFeed((new Feed()) ->setTitle('Читайте также горизонтально') ->setLayout(EFeedLayout::HORIZONTAL) ->addItem( (new FeedItem()) ->setTitle('Заголовок') ->setDescription('Описание элемента') ->setHref('https://gvozdikov.net') ->setThumb('https://clck.ru/FFAvn') ->setThumbRatio(EFeedItemThumbRatio::RATIO_4_3) ) ->addItem( (new FeedItem()) ->setTitle('Заголовок 2') ->setDescription('Описание элемента 2') ->setHref('https://gvozdikov.net') ->setThumb('https://clck.ru/FFAvn') ->setThumbRatio(EFeedItemThumbRatio::RATIO_4_3) ) ) // Добавляем рекламу ->addAd((new Ad()) ->setAdId('123456') ->setMobile(true) ->setDesktop(true) ) // Добавляем рекламу InPage ->addInPage((new InPage()) ->setAdId('123456') ->setInpageAdId('64654654') ) // Добавляем кнопку, чтобы нам могли позвонить ->addButton((new Button()) ->setText('Позвоните нам') ->setFormAction('tel:+7(495)77777777') ->setBackground('#222') ->setColor('#eee') ->setPrimary(true) ->setTurbo(true) ) // Добавляем неактивную кнопку ->addButton((new Button()) ->setText('Не пишите нам') ->setFormAction('mailto:mail@gvozdikov.net') ->setBackground('red') ->setColor('white') ->setDisabled(true) ) // Добавляем кнопку с формой обратной связи ->addButton((new Button()) ->setText('Напишите нам') ->setFormAction('mailto:mail@gvozdikov.net') ->setBackground('green') ->setColor('white') ->setSendTo('mail@gvozdikov.net') ->setAgreementCompany('ООО «Гвоздиков.нет»') ->setAgreementLink('https://gvozdikov.net/confidential/') ) // Добавление формы поиска ->addSearch((new Search()) ->setName('text') ->setPlaceholder('Давайте что-нибудь поищем') ->setAction('https://gvozdikov.net/search/?text={text}') ) // Добавление звёздочек рейтинга ->addRating((new Rating()) ->setValue(5) ->setBest(10) ) // Добавление звёздочек рейтинга, их можно добавлять несколько ->addRating((new Rating()) ->setValue(4) ->setBest(5) ) // Добавляем кнпоку "поделиться" и расставляем кнопки в нужном нам порядке ->addShare((new Share()) ->addVkontakte() ->addTelegram() ->addOdnoklassniki() ->addFacebook() ->addTwitter() ) // Добавляем форму обратной связи ->addCallbackForm((new CallbackForm()) ->setSendTo('mail@gvozdikov.net') ->setAgreementCompany('ООО «Гвоздиков.нет»') ->setAgreementLink('https://gvozdikov.net/confidential/') ) // Добавляем гистограмму ->addHistogram((new Histogram()) ->addItem((new HistogramItem()) ->setValue(5) ->setHeight(5) ->setTitle('ПН') ->setColor('red') ->setIcon('https://yastatic.net/weather/i/icons/funky/dark/skc_d.svg') ) ->addItem((new HistogramItem()) ->setValue(50) ->setHeight(10) ->setTitle('ВТ') ->setColor('blue') ->setIcon('https://yastatic.net/weather/i/icons/funky/dark/skc_d.svg') ) ->addItem((new HistogramItem()) ->setValue(200) ->setHeight(15) ->setTitle('СР') ->setColor('green') ->setIcon('https://yastatic.net/weather/i/icons/funky/dark/skc_d.svg') ) ->addItem((new HistogramItem()) ->setValue(500) ->setHeight(20) ->setTitle('ЧТ') ->setColor('purple') ->setIcon('https://yastatic.net/weather/i/icons/funky/dark/skc_d.svg') ) ) // Добавляем комментарии ->addComments((new Comments()) ->setUrl('https://gvozdikov.net/addComment.php') ->addComment((new Comment()) ->setAuthor('Виктор') ->setSubtitle('вчера') ->setAvatarUrl('https://clck.ru/KyKNk') ->setHeader('Заголовок') ->setContent('

Первый комментарий на сайте

') ->setComments((new Comments()) ->addComment((new Comment()) ->setAuthor('Виктор') ->setSubtitle('сегодня') ->setAvatarUrl('https://clck.ru/KyKNk') ->setHeader('Заголовок') ->setContent('

Первый подкомментарий на сайте

') ) ->addComment((new Comment()) ->setAuthor('Виктор') ->setSubtitle('сегодня') ->setAvatarUrl('https://clck.ru/KyKNk') ->setHeader('Заголовок') ->setContent('

Второй подкомментарий на сайте

') ) ) ) ->addComment((new Comment()) ->setAuthor('Виктор') ->setSubtitle('вчера') ->setAvatarUrl('https://clck.ru/KyKNk') ->setHeader('Заголовок') ->setContent('

Второй комментарий на сайте

') ) ) // Добавление кнопок обратной связи - незакреплённые ->addFeedback((new Feedback()) ->setTitle("Давайте пообщаемся") ->setStick(EFeedbackStick::FALSE) ->addCall('+7123456789') ->addCallbackForm('mail@gvozdikov.net','ООО «Гвоздиков.нет»','https://gvozdikov.net/confidential/') ->addEmail('mail@gvozdikov.net') ->addChat() ->addFacebook('https://ya.ru/') ->addGoogle('https://ya.ru/') ->addOdnoklassniki('https://ya.ru/') ->addTelegram('https://ya.ru/') ->addTwitter('https://ya.ru/') ->addVkontakte('https://ya.ru/') ->addWhatsapp('https://ya.ru/') ) // Добавление кнопок обратной связи - закреплённые слева ->addFeedback((new Feedback()) ->setTitle("Давайте пообщаемся") ->addCall('+7123456789') ->addCallbackForm('mail@gvozdikov.net','ООО «Гвоздиков.нет»','https://gvozdikov.net/confidential/') ->addEmail('mail@gvozdikov.net') ->addChat() ) // Добавляем динамическую форму ->addForm((new Form) ->setEndPoint('https://gvozdikov.net/endPoint.php') ->setSubmitText('Скорее отправить') ->addResultText('description') ->addResultLink('link') ->addInputText('name','Имя','Введите имя') ->addInputNumber('cats','Сколько у вас кошек','10') ->addInputDate('birth_date','Когда день рождение?','1970.01.01') ->addTextarea('comment','Ваш комментарий','Комментарий','Здравствуйте, ') ->addCheckbox('subscribe','yes','Подписаться на новости') ->addSelect('dogs','Сколько у вас собак','two',['one'=>'Одна','two'=>'Две','three'=>'Три','more'=>'Больше 3х']) ->addRadio('delivery','Как доставить?',[ new FormRadioOption('moscow','Москва','сегодня',true), new FormRadioOption('spb','Санкт-Петербург','завтра'), new FormRadioOption('Venus','Венера','3010 год'), ]) ) ) ); // Выводим сразу xml файл с необходимыми заголовками $turbo->echoXml(); // Или сначала смотрим получившийся код в формате строки ///echo htmlspecialchars($turbo); ``` ### Результат ```xhtml Первый тест https://gvozdikov.net/ Описание канала ru ]]> Виктор https://source.ru topic https://gvozdikov.net Fri, 22 May 20 13:17:59 +0300 Обо мне Портфолио

Первая новость

Подзаголовок

Пукнт 1 Пукнт 2 Пукнт 3
Главная Полезное Страница 1

Привет, меня зовут Виктор.

Как во Flutter установить цвет текста для AppBar.
Картинка
Как во Flutter установить цвет текста для AppBar.
Заголовок галереи

Это очень интересный проект

Пока никак, но скоро как-нибудь можно будет

Есть контакт

Заголовок слайдера
Картинка с подписью
Видео с подписью
Читайте мой блог

Заголовок карточки

Это мой контент

А это вторая карточка строка

Заголовок карточки

Это мой контент

А это вторая карточка строка

Заголовок карусели

Сайт рыбатекст поможет дизайнеру, верстальщику, вебмастеру сгенерировать несколько абзацев более менее осмысленного текста рыбы на русском языке, а начинающему оратору отточить навык публичных выступлений в домашних условиях. При создании генератора мы использовали небезизвестный универсальный код речей. Текст генерируется абзацами случайным образом от двух до десяти предложений в абзаце, что позволяет сделать текст более привлекательным и живым для визуально-слухового восприятия.

Заголовок

Первый комментарий на сайте

Заголовок

Первый подкомментарий на сайте

Заголовок

Второй подкомментарий на сайте

Заголовок

Второй комментарий на сайте

]]>
```