Причёсываю РСС ленту

Попробую реализовать идею:

Получить вид главной страницы для РСС ленты (в xml формате)

Ленту возьму со своего же блога: http://e2.yaruslan.ru/rss/. В Хроме лента отображается так:

Редактируем шаблон РСС ./www/system/default/rss/rss.tmpl.php
Добавляем ссылку на стили в РСС ленту (вторая строка):

<?= '<?xml version="1.0" encoding="utf-8"?>' ?> 
<?= '<?xml-stylesheet type="text/xsl" href="/style.xslt"?>'?> 
<rss version="2.0">
....

Добавляем новый файл /style.xslt на сервер:

<?xml version="1.0" encoding="utf-8" ?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
	<xsl:output method="html" indent="yes"/>
	<xsl:template match="channel">
		<html>
			<head>
				<title>
					<xsl:value-of select="title" />
				</title>
				<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
				<base href="http://e2.yaruslan.ru/" />
				<link rel="shortcut icon" type="image/x-icon" href="favicon.ico" />
				<link rel="stylesheet" type="text/css" href="themes/plain/styles/main.css?1574509235" />
			</head>
			<body>
				<div class="common">
					<div class="flag">
						<div class="header-content">
							<div class="header-description">
								<div class="title">
									<div class="title-inner">
										<div class="logo-marginal">
											<div class="e2-user-picture-container e2-external-drop-target">
												<img src="http://e2.yaruslan.ru/user/userpic@2x.jpg" />
											</div>
										</div>
										<h1>
											<span id="e2-blog-title">
												<xsl:value-of select="title" />
											</span>
										</h1>
									</div>
								</div>
							</div>
						</div>
					</div>
					<div class="content">
						<xsl:apply-templates select="item" /> 
					</div>
				</div>
			</body>
		</html>
	</xsl:template>
	<xsl:template match="item">
		<div id="e2-note-109" class="e2-note  ">
			<article>
				<h1 class="e2-published e2-smart-title">
					<a>
						<xsl:attribute name="href">
							<xsl:value-of select="link" />
						</xsl:attribute>
						<xsl:value-of select="title" />
					</a>
				</h1>
				<div class="e2-note-text e2-text e2-published">
					<xsl:value-of disable-output-escaping="yes" select="description"/>
				</div>
			</article>
		</div>
	</xsl:template>
</xsl:stylesheet>

Структуру тегов я взял с главной страницы блога, просто скопировал итоговый хтмл из браузера.

Результат

Браузеры Хром и Эдж нормально применили стили (это радует):

Браузеры ФФ и ИЕ проигнорировали стили, при этом постарались вывести хтмл записи:

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

Поделиться
Отправить
Запинить
 9   1 д   html   xml   РСС   Сделай сам   эгея   Я автор
Популярное