エントリー

freoのRSSにページからの配信をするには

freoのRSSではエントリーが更新したら配信されますが、ページが更新されても配信はできません。それをページからでも配信しようという方法です。

エントリー・ページ双方配信用phpファイル

  • ダウンロード
    ※2012/7/21 20:58にfreoのver1.9.0対応版と差し替えました。
    ※2013/1/3 21:58にfreoのver1.15.0対応版と差し替えました。

ページ専用のRSSを配信する場合

  1. 上記エントリー・ページ双方配信用phpファイルをダウンロードして解凍したら feed_all/ フォルダ内の feed_all.phppage.php にリネームして、freoの libs/freo/internals/feed/ 内にアップして下さい。
    ※ファイル名はpageでなくてもかまいませんが2.でリネームする.xmlファイル名と一致させてください。
  2. RSS1.0の場合は templates/internals/feed/default.xml、RSS2.0の場合は templates/internals/feed/rss2.xml を同じフォルダ内にコピーして page.xml にリネームします。
    ※RSSをカスタマイズする必要があるならこの時点で こちらの記事 を参考にして修正しておいてください(なおページではカテゴリーはありませんので導入する必要はありません)。
    ※ファイル名はpageでなくてもかまいませんが1.でリネームした.phpファイル名と一致させてください。
  3. リネームした page.xml を開いてエディタで
    entrypage
    entriespages
    に一括置換します。
    その後で
    /view/{if $page.code}{$page.code}{else}{$page.id}{/if}/page/{$page.id}
    (ページパス調整プラグイン を導入している場合は/{$page.id}
    に一括置換します。
  4. 置換が終わった page.xml をアップすると、https://(freoのURL)/feed/page にページ専用のRSSが表示されます。
    ※/pageはファイル名と同じものになります。
    Feed配信時の絞り込みについて にも対応しています(ページにはカテゴリーがないのでカテゴリーでの絞り込みはできません)。
  5. RSSを登録しやすくするためには templates/header.html の10行目あたりにある
    <link rel="alternate" href="{$freo.core.http_file}/feed" type="application/rss+xml" title="RSS" />

    の部分を、

    <!--{if $smarty.request.freo.mode == 'page'}-->
      <link rel="alternate" href="{$freo.core.http_file}/feed/page" type="application/rss+xml" title="RSS" />
    <!--{else}-->
      <link rel="alternate" href="{$freo.core.http_file}/feed" type="application/rss+xml" title="RSS" />
    <!--{/if}-->

    に変更(赤字の部分を追加)します。
    ※上記はページが表示されるときは feed/page をその他なら feed を使用するというように条件分岐していますので適宜アレンジしてください。

エントリーとページの両方を同じRSSで配信する場合(RSS1.0の場合)

  1. 上記エントリー・ページ双方配信用phpファイルをダウンロードして解凍したら feed_all/ フォルダ内の feed_all.phprss.php にリネームして、freoの libs/freo/internals/feed/ 内にアップして下さい。
    ※ファイル名はrssでなくてもかまいませんが4.でリネームする.xmlファイル名と一致させてください
  2. templates/internals/feed/default.xml を同じフォルダ内にコピーして page.xml にリネームします。
    ※RSSをカスタマイズする必要があるならこの時点で こちらの記事 を参考にして修正しておいてください(なおページではカテゴリーはありませんので導入する必要はありません)。
  3. リネームした page.xml を開いてエディタで
    entrypage
    entriespages
    に一括置換します。
    その後で
    /view/{if $page.code}{$page.code}{else}{$page.id}{/if}/page/{$page.id}
    (ページパス調整プラグイン を導入している場合は /{$page.id}
    に一括置換します。
  4. 再度 templates/internals/feed/default.xml を同じフォルダ内にコピーしてrss.xml にリネームします。
    ※RSSをカスタマイズする必要があるならこの時点で こちらの記事 を参考にして修正しておいてください。
    ※ファイル名はrssでなくてもかまいませんが1.でリネームした.phpファイル名と一致させてください。
  5. 3.で置換した page.xml を開いて次の部分を rss.xml にコピーします。
    page.xml
    <dc:date>{$page_update|date_format:'%Y-%m-%dT%H:%M:%S+09:00'}</dc:date>

    の部分を
    rss.xml

    <dc:date>{$entry_update|date_format:'%Y-%m-%dT%H:%M:%S+09:00'}</dc:date>

    に、
    page.xml

    <!--{foreach from=$pages|smarty:nodefaults item='page'}-->
      <rdf:li rdf:resource="{$freo.core.http_file}/page/{$page.id}" />
    <!--{/foreach}-->

    の部分を
    rss.xml

    </rdf:Seq>

    に、
    page.xml

    <!--{foreach from=$pages|smarty:nodefaults item='page'}-->
      <item rdf:about="{$freo.core.http_file}/page/{$page.id}">
    ~(略)~
      </item>
    <!--{/foreach}-->

    の部分を
    rss.xml の最終行にある

    </rdf:RDF>
    に、それぞれコピーして rss.xml をアップします。
    page.xml はアップしなくて結構です。
  6. アップすると、https://(freoのURL)/feed/rss にRSSが表示されます。
    ※/rssはファイル名と同じものになります。
    Feed配信時の絞り込みについて にも対応しています(ページにはカテゴリーがないのでカテゴリーでの絞り込みをするとエントリーのみ表示します)。
    ※最終更新日時がエントリーとページの2つあるのでうまく表示できない場合があるかもしれません。
    ※RSSリーダーによってエントリーの日時順に表示後にページが日時順に表示される場合とエントリーとページの合体した日時順に表示される場合があるみたいです。
  7. RSSを登録しやすくするためには templates/header.html の10行目あたりにある
    <link rel="alternate" href="{$freo.core.http_file}/feed" type="application/rss+xml" title="RSS" />

    に、

    <link rel="alternate" href="{$freo.core.http_file}/feed/rss" type="application/rss+xml" title="RSS" />
    を追加するか変更します。
    ※追加する場合はtitleを適宜アレンジしてください。

ページ移動

関連エントリー

コメント

ccc

すみません。こちらのスクリプトですが、現行のfreo Ver 1.19.3 でも有効でしょうか?

試してみたのですが、6番の

http://(freoのURL)/feed/rssにRSSが表示されます

で ページのみ&ページとエントリー双方 どちらのパターンも何も表示されませんでした・・・

追伸:現行バージョンでも正式に動作する場合、有償で設置お願いできませんか?

  • 2016/07/29 19:23:00

ccc

随分昔の話でやり方を忘れているのですが、個人的には今のバージョンでも動作はずっと問題なくできてますよ。
アップ後に新しいエントリーかページを投稿してみてください。
そうでないとRSSは起動しなかったと思いますが...。

  • URL
  • 2016/07/30 20:57:00

ccc

念のため、
page専用のRSSファイル(libs/freo/internals/feed/page.php、templates/internals/feed/page.xml)
http://cccabinet.jpn.org/dlrank/dlranklog.cgi?dl=feed_page
両方同時配信用RSSファイル(libs/freo/internals/feed/rss.php、templates/internals/feed/rss.xml)
http://cccabinet.jpn.org/dlrank/dlranklog.cgi?dl=feed_rss
をアップしたので、使ってみてください。

>有償で設置お願いできませんか?
そんな大層なことではないので無償で提供させていただきます。

  • URL
  • 2016/07/30 21:20:00

kaitani

対応いただいてありがとうございます!

無事 作動しました!

原因は 私の早とちりで RSSのURL

http://(freoのURL)/feed/rssにRSS

とされているのを、設置フォルダと勘違いしてました
index.php/feed/rss とindex.phpも含めると表示されていました。

対応頂きまして本当に感謝です

取り急ぎご報告まで

  • 2016/08/02 16:17:00

コメント登録

  • コメントを入力してください。
  • 一旦登録したコメントは、あとで編集できませんのでご注意下さい。
登録フォーム

基本的には「全体に公開」されますが、内容によっては管理人の方で公開を制限する場合がありますので、その旨ご了承下さい。

ユーティリティ

2024年04月

- 1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30 - - - -

キーワード検索

キーワード検索フォーム

ユーザー

  • cccのアバター

新着画像

ブログパーツ

Twitter

Twilogを見る

Feed