ホーム

OFF-SOFT.net

OFF-SOFT.net

ウェブやソフトウェアに関するサポート&情報サイトです。サイト構築からソフトウェアの作成、利用まであなたの助けになるかも・・・・しれません。たぶん・・。

Joomla!1.5でRSSを公開する

公開日| 2009年05月06日 | コメントはまだありません。
概要:
Joomla!1.5では、RSSを公開するためのモジュールが標準でインストールされます。 そのため、基本的に何もすることなくRSSの配信が行えていることもあります。
あらためて、Joomla!1.5でのRSSの表示の仕組みを簡単に記述したいと思います。
もっと、Joomla!やPHP、Apacheについて詳しく知りたい方は、以下の本なども良いと思います。
本から学ぶことは多いと思います。ネットだけでは判らない様々な事に気づかされます。


Joomla!Pro Book オープンソースCMS導入&カスタマイズガイド

初めてのPHP & MySQL 第2版

Apacheハンドブック

RSSとは、サイトの更新情報を簡単にまとめ、配信するためのフォーマットを指します。
「RSSで更新情報を書き込んだ情報を公開する」ことを、ここでは、単純に「RSSを公開する」と表現しています。
RSSを公開するには
Joomla!の管理(admin)画面から、
[ エクステンション ] - [ モジュール管理 ] -[ Syndication ]
を有効にするだけです。

モジュールの共通的な設定情報にメニューアイテムに対しての有効・無効を指定することはできますが、 個別のパラメータらいしいものは、ほとんどありません。



ここで設定できるのは、以下のパラメータです。
パラメータ名 解説
テキスト RSSリンクでサイトに表示するときのテキスト名を指定します
フォーマット RSSのフォーマット(バージョン)を指定します
モジュールクラス このモジュールのサフィックス名

ほぼ、初期値のままで良いと思います。 特別にフォーマットを2.0以外に指定したい場合や、表示の文字列を変更したい場合などは、ここで設定します。

さて、このモジュールを有効したら、全ての記事で、有効になると思えば、そうではありません。
このモジュールは、自動で作成してくれるRSS情報は、各セクション、各カテゴリ、フロントページです。
(記事、アーカイブおよびエクステンションでは、RSSのリンクは表示されません。)

このモジュールを有効にしたのに、RSSのリンクが表示されない・・・と思われている方がいらっしゃれば、 セクションリストを表示するメニューアイテムを一つ作ってみてください。 そして、そのメニューをクリックしセクションリストを表示してみてください。

おそらく、RSSのマークとリンクの表示が現れることと思います。

FireFoxの場合は、以下のようにURLアドレスバーにRSSのマークが表示されていると思います。

また、ページのどこかにも同じようにRSSのマークおよびリンクがあると思います。
(テンプレートで表示しないようにしていない限りにおいては)

RSSのリンクアドレスは、基本的に以下のようになります。
http://www.exmaple.com/index.php?option=com_content&view=section&id=xx&format=feed&type=rss
http://www.exmaple.com/index.php?option=com_content&view=category&id=yy&format=feed&type=rss
 
id=xx:xxはセクションID
id=yy:yyはカテゴリID

セクションやカテゴリのリスト表示ページ以外にも、このRSSへのリンクを表示したい場合は、基本的にカスタムHTMLのモジュールを 作成して、イメージ(画像)と上記リンクURLを設定して、追加したページに貼り付けると良いと思います。
一応、以降に「RSSのリンクを表示するか否かの仕組み」を記載しておきますので、個別にプログラミングすることで 全ての記事への表示もできなくもないとは思います。
RSSのリンクを表示するか否かの仕組み
RSSのリンクを表示するか否かの仕組みは、至って単純です。

各セクション、各カテゴリ、フロントページのメニューアイテムのパラメータに フィードリンクを表示 というパラメータがあります。それを"●はい"と指定すれば、RSSのリンクが そのメニューアイテムのリンク先ページに表示されます。

以下は、フロントページのメニューアイテムでのフィードリンクを表示パラメータの画面イメージです。

RSSのリンクを表示したい場合は、"●はい"を指定します。


プログラムの簡単な流れは、以下のような流れで表示処理を行っています。

  1. コンポーネントのコンテンツ(com_content)で、フィードリンクを表示 が"●はい"の場合、HTMLのリンク情報へRSS情報を追加します。
    --- 実際には、以下のような情報を出力します。
    1
    2
    
      <link href="/xxxx.feed?type=rss" rel="alternate" type="application/rss+xml" title="RSS 2.0" />
      <link href="/xxxx.feed?type=atom" rel="alternate" type="application/atom+xml" title="Atom 1.0" />

    参照php
    • components/com_content/views/frontpage/view.html.php
    • components/com_content/views/section/view.html.php
    • components/com_content/views/category/view.html.php

  2. モジュールのシンジケート(mod_syndicate)で、先のリンク情報があるか判断します。
    リンク情報があれば、RSSのリンク情報を作成し、HTMLへ出力します。

    参照php
    • modules/mod_syndicate/mod_syndicate.php
    • modules/mod_syndicate/helper.php

上記のような流れですので、記事の展開の中で、HTMLのリンク情報へRSS情報を追加すれば、RSSへのリンクは常に表示されるようになると思います。 ただ、"単純にRSSが公開されていることをお知らせ"する程度のためだけに、全ての記事へRSSのリンクを表示したいだけなら、カスタムHTMLでも十分かもしれません。

コメント

コメントをどうぞ







  • はてなブックマークへ追加する
  • Facebookでシェアする
  • twitter でつぶやく
  • Google Plusでシェアする
  • Pocketでシェアする
ページトップへ