<MyRusakov.ru />

Фреймворк Yii 2.0 с нуля. Пример создания сайта

Фреймворк Yii 2.0 с нуля. Пример создания сайта

Видеокурс "Фреймворк Yii 2.0 с нуля. Пример создания сайта" обучит Вас созданию профессиональных сайтов с использованием фреймворка Yii. В курсе есть 2 раздела: теоретический и практический. В теоретическом разделе будут разобраны возможности фреймворка Yii с примерами их использования, а в практической части будет создан сайт Blog.MyRusakov.ru с помощью полученных знаний из теоретического раздела.

Так же почти ко всем урокам идут упражнения для закрепления материала из урока на практике.

После прохождения курса Вы без труда сможете создавать любые сайты с использованием фреймворка Yii, причём делать это будете быстро и качественно.

Подробнее
Подписка

Подписавшись по E-mail, Вы будете получать уведомления о новых статьях.

Подписка Подписаться

Добавляйтесь ко мне в друзья ВКонтакте! Отзывы о сайте и обо мне оставляйте в моей группе.

Мой аккаунт Мой аккаунт Моя группа
Опрос

Каким движком Вы предпочитаете пользоваться?

Как сделать RSS на сайте

Как сделать RSS на сайте

Пришло время, наконец-то, по-настоящему применить знания по XML на практике. В этой статье я расскажу, как сделать RSS-канал у себя на сайте. Безусловно, помимо небольших знаний по XML, потребуется знания по PHP (в зависимости от Вашего сайта, и MySQL тоже).

Вообще, весь смысл создания RSS-канала на сайте заключается в том, что нужно написать всего одну страницу в XML-формате с нужным кодом. Эту страницу необходимо динамически менять через PHP, добавляя туда свежие материалы из базы (либо от туда, где Вы держите контент). А вот в каком формате нужно добавлять, об этом написано чуть ниже.

Я сейчас сразу приведу пример, в каком виде надо генерировать XML-страницу с RSS-каналом Вашего сайта:

<?xml version="1.0" encoding="UTF-8" ?>
<rss version="2.0">
  <channel>
    <title>Лента сайта MyRusakov.ru</title>
    <link>http://myrusakov.ru</link>
    <description>Создание и раскрутка сайтов</description>
    <item>
      <title>Как сделать RSS на сайте</title>
      <link>http://myrusakov.ru/xml-rss.html</link>
      <description>Описание процесса создания RSS-канала на сайте</description>
    </item>
    <item>
      <title>Как закрыть сайт на реконструкцию</title>
      <link>http://myrusakov.ru/php-close-reconstruction.html</link>
      <description>Как провести закрытие сайта на реконструкцию?</description>
    </item>
  </channel>
</rss>

В принципе, структура здесь достаточно прозрачная, однако, на всякий случай, поясню. Ваша задача подправить содержимое элемента channel, в частности, title, link и description надо изменить на название Вашего сайта, его адрес и краткое описание соответственно. Это фиксированная часть, которая не меняется. А вот дальше идут элементы item.

Вот именно содержимое элементов item и необходимо генерировать через PHP. Одна статья - один элемент item. Структура та же: title, link и description, что означает: название статьи, её адрес и краткое описание.

Помимо этих 3-х обязательных элементов есть ещё целая уйма необязательных параметров, полный список которых можно посмотреть здесь: http://cyber.law.harvard.edu/rss/rss.html.

Также обратите внимание, что весь код XML-документа должен быть написан без единой ошибки, иначе RSS-агрегаторы его просто не поймут. Для проверки валидности RSS-страницы используйте сервис W3: http://validator.w3.org/feed/.

На этом всё. Далее Вам необходимо лишь раскручивать данный RSS-канал, чтобы люди на него подписывались, но это уже совсем другая история.

Копирование материалов разрешается только с указанием автора (Михаил Русаков) и индексируемой прямой ссылкой на сайт (http://myrusakov.ru)!

Добавляйтесь ко мне в друзья ВКонтакте: http://vk.com/myrusakov.
Если Вы хотите дать оценку мне и моей работе, то напишите её в моей группе: http://vk.com/rusakovmy.

Если Вы не хотите пропустить новые материалы на сайте,
то Вы можете подписаться на обновления: Подписаться на обновления

Если у Вас остались какие-либо вопросы, либо у Вас есть желание высказаться по поводу этой статьи, то Вы можете оставить свой комментарий внизу страницы.

Порекомендуйте эту статью друзьям:

Если Вам понравился сайт, то разместите ссылку на него (у себя на сайте, на форуме, в контакте):

  1. Кнопка:

    Она выглядит вот так: Как создать свой сайт

  2. Текстовая ссылка:

    Она выглядит вот так: Как создать свой сайт

  3. BB-код ссылки для форумов (например, можете поставить её в подписи):

Комментарии (25):

sync.o sync.o 28.09.2011 21:20:27

Спасибо, Михаил, за статью! Хоть я уж не дождался и сделал свой первый feed сам) Кстати, валидатор попросил еще послать заголовок: Header("Content-type: application/rss+xml; charset=utf-8"); Ну это ладно, но вот зачем ему понадобилось это, я не понимаю: item should contain a guid element; Missing atom:link with rel="self". Может вы растолкуете?

Ответить

Admin Admin 28.09.2011 21:38:42

Это совсем необязательно, но если так хочется, то проблема решается так: 1. В атрибутах у элемента rss добавляется ещё один атрибут: xmlns:atom="http://www.w3.org/2005/Atom" 2. Внутри элемента channel надо добавить строчку <atom:link href="path_to_rss" rel="self" type="application/rss+xml" /> Вместо path_to_rss надо поставить ссылку к данному RSS-каналу.

Ответить

Валик :) Валик :) 20.11.2011 13:24:51

А как отправлять сообщения с ленты?

Ответить

Admin Admin 20.11.2011 15:59:55

Их не отправлять надо, на ленту должны люди самостоятельно подписываться.

Ответить

Валик :) Валик :) 20.11.2011 17:15:01

Я вот создал ленту. Подписался. Как должны приходить сообщение с ленты?

Ответить

Admin Admin 20.11.2011 17:20:02

В самом браузере теперь должна быть RSS-лента, куда должны приходить уведомления о новых материалах. Так же есть различные программы для чтения RSS-лент, и, наконец, есть сервисы (даже у Google есть), которые уведомляют пользователей по e-mail о новых статьях.

Ответить

klinkoff klinkoff 17.01.2012 02:22:38

Здравствуйте Михаил, Если можно прошу ответить на такой глупый вопрос: как заменить RSS-ленте надписи "All Ads", "Description" и включить в ленту картинки (фото). Теоретически понимаю как это можно сделать, а в каком файле найти не могу. На моем сайте лента автоматически создалась в ADSManagere. Адрес сайта на всякий случай: *** Заранее спасибо.

Ответить

Admin Admin 17.01.2012 02:26:55

На указанном сайте таких проблем не обнаружил, фото там также имеется.

Ответить

klinkoff klinkoff 17.01.2012 22:44:34

Михаил, простите может я не правильно выразился. Еще раз: будучи на своем сайте я захожу на страницу, где есть RSS (в объявления), жму, Mozilla (например) формирует ленту, открывает в отдельном окне, которое называется "All Ads" (сверху написано), под чертой типа описание - слово "Description". Вопрос 1: Как изменить эти надписи, написать свои, например, вместо "All Ads" имя сайта "Slavutich Board" и т.д.? При этом у меня отображается лента в виде списка новостей без картинок (фото). Вопрос 2: Как сделать, чтобы фото отображались? Спасибо.

Ответить

Admin Admin 18.01.2012 12:09:46

Заходил через Mozilla, картинки там были. Что касается надписей, то это уже где-то в настройках ADSManager, а если там нет, то обратитесь к их разработчикам. Лезть в их исходный код крайне опасно.

Ответить

regina_87 regina_87 15.05.2012 10:27:17

Здравствуйте, у меня проблемы с rss(выдается ошибка). Сам код правильный(разные пробовала), но если в базе обычный текст - все отлично выводится, а если много символов, выдается ошибка, например: &mdash;(выделено) или тег <p> почему-то выделяется как ошибка. Как мне это исправить, ведь у меня в текстах много символов?

Ответить

Admin Admin 15.05.2012 13:01:02

Все HTML-теги нужно преобразовывать в сущности, например, < в &lt;. Для этого есть функция htmlspecialchars().

Ответить

regina_87 regina_87 16.05.2012 03:52:01

Спасибо, попробую!

Ответить

regina_87 regina_87 16.05.2012 04:35:10

Все получилось! Спасибо!

Ответить

budeanov budeanov 07.09.2012 11:06:39

Здравствуйте Михаил,вот мой rss.xml : <?xml version="1.0" encoding="utf-8" ?> <rss version="2.0"> <channel> <title>TV7.MD RSS</title> <link>http://tv7.md/</link> <description>TV7.MD RSS</description> {foreach from=$recs item=item} <item> <title>{$item.Title|escapefquotes}</title> <link>{$item.link}</link> <description>{$item.Description|escapefquotes}</description> <guid>{$item.guid}</guid> <pubDate>{$item.CreateDate|date_format:"%a, %d %b %Y %T %z"}</pubDate> </item> {/foreach} </channel> </rss> Подскажите как вставить фото(видео) к каждой новости ($item). Примерно: <enclosure url="http://tv7.md/?action=image&id={$item.image|escapeofquotes}&size=1"length="11" type="image/jpeg"/> так? Спасибо

Ответить

Admin Admin 07.09.2012 13:29:41

<![CDATA[<img src="ссылка_на_картинку">]]> добавьте в description

Ответить

budeanov budeanov 13.09.2012 11:55:56

спасибо Михаил

Ответить

malina95 malina95 25.09.2012 23:48:55

Здравствуйте Михаил...Извините что так поздно...но я решил сделать у себя ленту...Но мне важно знать безопасность и работоспособность на хостинге...Подскажите правильно я сделал? (на локалке работает) немножко доработал <?php header("Content-Type: text/xml"); echo "<?xml version=\"1.0\" encoding=\"windows-1251\"?>"; ?> <rss version="2.0"> <channel> <title>Канал новостей блога ruseller.info</title> <link>http://test.local/</link> <description>Главная страница сайта</description> <language>ru</language> <?php require_once "blocks/bd.php"; $result = mysql_query("SELECT id,title,description FROM data WHERE secret='0' order by 'id' "); if ($myrow = mysql_fetch_array($result)) { do { echo<<<TXT <item> <title>$myrow[title]</title> <link>http://test.local/post.php?id=$myrow[id]</link> <description>$myrow[description]</description> <author>boss.Malinichev@yandex.ua</author> <guid>http://test.local/post.php?id=$myrow[id]</guid> </item> TXT; } while ($myrow = mysql_fetch_array($result)); } ?> </channel> </rss>

Ответить

Admin Admin 26.09.2012 15:10:33

Выглядит нормально, но всё равно тестировать надо.

Ответить

malina95 malina95 26.09.2012 17:40:26

Спасибо за ответ...Я очень старался но у меня нет хостинга чтобы его протестировать...

Ответить

peterburg87 peterburg87 08.06.2013 22:22:44

Здравствуйте Михаил,подскажите пожалуйста как добавить иконку в адресную строку,что-бы человек нажал и перешёл в rss ленту

Ответить

Admin Admin 09.06.2013 12:21:18

<link rel="alternate" type="application/rss+xml" title="RSS" href="rss.xml" />

Ответить

alexfor alexfor 27.06.2013 17:21:14

Здравствуйте, Михаил. Спасибо за пример. А у Вас есть урок генерации <item></item> через php. Сам столкнулся с таким вопросом. Пытался проинклудить в xml php(данные из БД в цикле) Не получается. Подскажите, пожалуйста, куда копать?

Ответить

Admin Admin 27.06.2013 18:37:39

Нужно изучать DOM, затем с его помощью генерировать XML-документ.

Ответить

rysich rysich 13.11.2013 19:47:50

Кроме RSS пожалуй и не знаю, где предпочтительнее использовать XML, вроде можно заменить его более простым форматом JSON. Ну единственное, если сохраняете какие-то архисложные конфиги или форматы данных на сервере, то возможно лучше тоже перегонять их в XML и потом только писать. Извините конечно за офтоп.

Ответить

Для добавления комментариев надо войти в систему.
Если Вы ещё не зарегистрированы на сайте, то сначала зарегистрируйтесь.