web-dev-qa-db-ja.com

Rssフィードページのカスタマイズ?

ニュースのビューとフィードタイプの表示を追加しました。 rssページをカスタマイズしたい。現在、このように表示されています:

<channel>
    <title> </title>
    <link> </link>
    <description></description>
    <language> </language>
          <item>
    <title> </title>
    <link> </link>
    <description> </description>
     <pubDate> </pubDate>
 <dc:creator> </dc:creator>
 <guid isPermaLink="false"> </guid>
  </item> 
</channel>
</rss>

Firebugでチェックすると、<pre>タグに含まれます。しかし、私はそれをCSSでカスタマイズする方法を教えてください? <pre>タグを削除する方法?

1
Sumit Madan

元の質問に基づいて、ここで混乱しているいくつかの問題があります。私はこれらを1つずつ試してみます。

1 RSSはHTMLと同じですか?

いいえ、これらは異なるマークアップ言語です。 RSSは、ポッドキャストやブログなどからのコンテンツを配信するために設計されたXMLの方言です。HTMLは、Webページ固有のマークアップ形式です。あなたの質問で、firebugがRSSフィードで<pre>タグを表示していると述べましたが、<pre>はHTMLのみであり、RSSとして表示されることはないため、これは不可能です。

2 RSSフィードのスタイルを設定するにはどうすればよいですか?

通常、これを行う必要はありません(または必要ありません)。 RSSリーダーは通常、RSSコンテンツにフォーマットを適用します。フォーマットを変更すると、エンドユーザーにとって混乱し、見苦しくなります。 HTML用のブラウザーがたくさんあるのと同じように、iTunes、オンラインサービス、Mozilla Thunderbird、その他何百ものRSSのためのRSSリーダーがたくさんあります。したがって、RSSフィードのスタイルを設定することをお勧めします[〜#〜] [〜#〜]

ただし、RSSフィードのスタイルを設定する必要がある場合は、次のタグをRSSフィードの先頭に追加することで、通常のCSSを使用できます。

<?xml-stylesheet type="text/css" href="http://example.com/rss.css" ?>

次に、サーバーの適切な場所にrss.cssというcssファイルを作成する必要があります。これについてさらに深く掘り下げた素晴らしい記事を以下に示します。 http://www.petefreitag.com/item/208.cfm

3 DrupalでRSSフィードを変更してCSSを含めるにはどうすればよいですか?

これは本当に素晴らしい質問で、多くの人がこれに苦労しています。これを難しくしているのは、Drupal 6および7ではHTMLのみを「テーマ化」できるため、HTMLとして表示されるノードで機能する通常のフックの多くがRSSフィードでは機能しないためです。 DrupalはすべてのHTMLマークアップをエスケープし、RSSフィード内に配置するため、RSSフィードがほとんど読めなくなります。

まだ存在しない場合は、テーマフォルダー内にtemplateという新しいフォルダーを作成します。そのフォルダー内にviews-view-rss.tpl.phpという新しいファイルを追加します。このファイルはすべてのRSSフィードに影響します。このコードをviews-view-rss.tpl.php内に追加します。

<?php
/**
 * @file
 * Default template for feed displays that use the RSS style.
 *
 * @ingroup views_templates
 */
?>
<?php print "<?xml"; ?> version="1.0" encoding="utf-8" <?php print "?>"; ?>
<?php print "<?xml"; ?> type="text/css" href="http://example.com/rss.css" <?php print "?>"; ?>
<rss version="2.0" xml:base="<?php print $link; ?>"<?php print $namespaces; ?>>
  <channel>
    <title><?php print $title; ?></title>
    <link><?php print $link; ?></link>
    <description><?php print $node->body['und'][0]['value']?></description>
    <language><?php print $langcode; ?></language>
    <?php print $channel_elements; ?>
    <?php print $items; ?>
  </channel>
</rss>

これについての詳細: https://drupal.org/node/1884558

4 RSSフィードから特定のタグを削除するにはどうすればよいですか?

タグがビューのどこに表示されるかによって異なります。 <item>タグ内のどこかに表示されていると思います。前に作成したファイルで、以下を変更します。

    <?php print $items; ?>

に:

    <?php print str_ireplace(array('<pre>','</pre>'), '', $items); ?>

必ずキャッシュをクリアしてください。

2
Rustavore