recent系,rss系プラグインの統合†
- ページ: BugTrack2
- 投稿者: Ratbeta
- 優先順位: 低
- 状態: 提案
- カテゴリー: プラグイン
- 投稿日: 2005-03-18 (金) 17:47:19
- バージョン:
メッセージ†
BugTrack/745の関連です。
recent.inc.php†
recent系プラグインを統合してみました。
以下のプラグインを統合しています。
なお、統合候補としてofficial:自作プラグイン/showcase.inc.phpも挙げられていましたが、
recentプラグインの目的と著しく異なり、かつ依存性が高いと判断したため今回の統合対象から除外しました。
今後の予定 :
rss系プラグインとの内部での統合。
HTML文法エラーが発生するのを修正する。
feed.inc.php (<= rss.inc.php)†
rss系プラグインを統合してみました。
以下のプラグイン/差分を統合しています。
なお、rss10pp.inc.phpの機能のうち、FoaF関連はrssプラグインの概念から外れると判断し削除しています。
また、同プラグインやPukiWikiのdiffのRSSを出力するプラグイン(RSS 2.0/1.0 両対応)で対応されている差分出力に関しても、
同様の理由から現段階では実装を見送っています。
今後の予定 :
atom(0.3に対応), lirs, hina.di関連
xsl対応(RSS 1.0のみ)
閲覧認証ページのコンテンツを出力しないようにする(rss10pp.inc.phpにも同様の問題が存在する模様です)。
関連 : BugTrack/741
ご意見・ご要望等有りましたらどうぞ。
- RecentChangesViewerあたりが危ない予感 (^^; -- Ratbeta
- 予想通りRecentChangesViewerのナビゲーションが表示されていなかったのを修正しました。
recent.inc.php.2 -- Ratbeta
- 最新版は常にupした日付と共に一番上に書いてあると、嬉しいかも。 -- okkez
- おおー。誘惑はいろいろあると思いますが、マージしすぎて、安心して使えなくなっちゃわないように気をつけて下さい :) -- henoheno
- 差し支えなければうちのmixirss/mixirecentも統合する気ありません? (^^; >Ratbeta -- みこ
- どこかで見た記憶があると思ったらrss10pp.inc.php.title.diffと同じようなことをしてたわけですね(苦笑)。なるほど、RSSリーダからページ名だけの情報では分かりにくいかもしれませんね。実装してみます(…が、微妙に負荷が高くなる気が(汗)。 -- Ratbeta
- あくまでも差し支えなければなので (^^; *2まぁ、オプションでもいいんですけどね (^^; -- みこ
- 実装してみました。
recent.inc.php.5と
rss.inc.php.4です。 -- Ratbeta
- ちなみにdescription出力を有効にするのは便利な機能ですが、実体参照の途中でぶつ切りにされたら簡単にパースエラーが発生してしまう諸刃の剣だったりします。使用には十分注意してください (^^; -- Ratbeta
- ああ、わたしはそれが怖くてmixirss では n文字を超えた行という形にしていました (^^; あくまでも行メタという意識です。 -- みこ
- 行で切るのはいいアイデアかもしれないですね…。ただ一行にたくさん書きすぎた場合には大変なことになる気がします (: -- Ratbeta
- (いたずらっこ以外は)そこまで1行で書く人はいないとおもいますから、それほど気にしなくてもいいのでは?*3 -- みこ
- そのいたずらっこが問題だったりします (^^; 複数行パッチはHTML変換してから切ってるので問題ない気がしますが…。 -- Ratbeta
- きっちり判定するには実体参照の正規表現を作って判別して…負荷がもっと増えそうな予感 (^^; ここらでmixirss.inc.phpのキャッシュ機能を考えた方がいいのかもしれません。 -- Ratbeta
- そういえば、そんなもの実装してましたね (^^; *4 仕組みは単純なので、あまり時間がかかるようなら入れておいたほうがいいかもしれませんね。(RSS自体は更新しない確率のほうが高いという想定) -- みこ
- よくよく考えると、対応しているフォーマットが多いのと、設定による中身の変動が多いのでキャッシュは逆効果かもしれません。 -- Ratbeta
- そろそろrss.inc.phpという名前も見直した方がいいような気がします。rssだけを配信しているわけではないので…。 -- Ratbeta
- recent? -- henoheno
- recent.inc.phpとファイルを統一するつもりはありませんので、それはちょっと無理です。 -- Ratbeta
- ではfeedとか・・・ -- henoheno
- 私の方ではsyndicateとかを考えてたんですが、feedの方が分かりやすくて良いかもしれませんね。 :) -- Ratbeta
- RSS(Rich Site Summary ,Really Simple Syndication)でいい気がします。もしくは、適当に英単語三つ並べて無理矢理RSSにこじつけるとか。 -- okkez
- 確かにRSS自体がそういう意味を持ってますよね。ただそれだとやっぱり語弊が出てくるんじゃないかと少し心配です。 -- Ratbeta
- AtomはRSSじゃないとか、RSS2.0はRSS1.0の次のバージョンじゃないと考えている人は多いと思います。またこのシチュエーションでは、既存のどれでもない名称が望まれているように思います。 -- henoheno
- rdfでいいのでは?もしくはxml。元々の目的はページの要約ですし。 -- Logue
- こんにちは :) RDFもRSSと同じく一実装の名前として使われてしまっています。また逆に、xmlは指しているものが広すぎるようです。仮にMathMLを出力するmimetexプラグインの亜種が生まれたとして、それもフォーマット的にはxmlではあったりするのですから。しかしrdfもxmlも、個々の管理者が「うちのRSSフィードのURLはこれ」と決めるぶんには何の問題もありません。今回の場合、ユーザーの誰もが使うプラグインの名前なのであれこれ言っているところなのでした。 -- henoheno
- そうなると、やっぱりfeedがいいと思います。syndicateだと、双方向性みたいなニュアンスがありますし。./plugin=feed&type=recent&type=.rdfみたいになるのかな? -- Logue
- 結局feedという意見が多そうなので、これで落ち着かせることにします。 -- Ratbeta
- BugTrack/59 --
- とりあえずXSLTにも対応しましたし、ここらで一応完成としておきましょうか。あとは使う人の力量次第といいますか…。 -- Ratbeta
- お疲れ様です。feed.inc.php.1をdevにアップロードしておきました。 -- henoheno
- 同様に recent.inc.php.7 もミラーしました。 -- henoheno
- お疲れ様です。feedですが、引数をrss主体ではなくてどの手法とも平等にすることはできないものでしょうか。 -- henoheno
- feed.inc.php.2でどうでしょう?cmd=feed&ver=rss2.0などでrssを表示します。 -- Ratbeta
- あと、ついでにこれも統合希望→Google Sitemapプラグイン -- Logue
- 統合するのはそう難しくは無いですが、一つのサービス固有のものですしねぇ。ちょっと様子見させてください。 -- Ratbeta
- BugTrack2/150 の下に関連の話題あり -- henoheno
- recentをインラインで使う際、表示される「最新のX件」というリンクにおいて、インラインの引数で指定したヘッドライン指定とページ指定が失われてしまいます。さらにコマンドとして使用した際に表示される各リンクにおいても同様にヘッドライン指定とページ指定が失われてしまいます。これは仕様でしょうか?バグでしょうか? -- 通りすがり99
- 立て続けで申し訳ありませんが、feedをrss1.0で使った際に必要なpukiwiki.xsl.phpはどこで手に入るファイルでしょうか? -- 通りすがり99
- pukiwiki.xsl.phpは、粗製でよければ私のサイトに掲載してあります。勿論、XSLが不要ならxml-stylesheetが含まれる行をコメントアウトすることも出来ます。 -- Ratbeta
- ご指摘の点は確かにrecent.inc.phpのバグでしたので、最新のrecent.inc.php.11で修正しております。 -- Ratbeta
- 早速の対応ありがとうございました。 -- 通りすがり99
- 今recent.inc.php.12を試してみました。pageを指定するとマッチしたものだけをリストアップするはずですが、リストアップする総数として199行目で$retval['total']を参照しているためか、何かおかしいです。また、pageでフィルタする前にoffsetで最初のいくつかを削除しているので、表示される範囲がずれてしまってるような気がします。参考までに、自分でちょと直したものをhttp://goodjob.dyndns.org/recent.inc.php.12.hanada *5に置いておきます。recent.inc.php.13にでも反映していただければ幸いです。 -- 通りすがり99
- $retval['total']を参照しているせい というより、plugin_recent_getlistの戻り値が正しくないような感じがしましたので、recent.inc.php.12.hanadaでは戻り値のほうを修正しています。 -- 通りすがり99
- 表示範囲がずれる不具合については、recent.inc.php.13で修正できたはずです。また、前者の不具合についてですが、これについては詳細が分かりかねます(修正したファイルにもアクセスできないため、どのような問題が発生するのか理解できていません)。もしかすると修正によってそれも直っているかもしれませんが…。 -- Ratbeta
- 完璧です!手早い対応ありがとうございました!ウチのサーバにおいていたファイルはなぜか空っぽでした、すいません(汗)もう13にアップデートしましたし、アレはなかったことにしてください(笑) -- 通りすがり99
- 特定のディレクトリを「除く」全ての更新情報を取得とかは対応できませんか?
正規表現対応でもいいのですが。 --
- ディレクトリと言われているのは、ページ名に関する、スラッシュ区切りの階層の事ですね :) ページ名の羅列を希望にそってフィルタするという行為は、可能といえば可能でしょう。そのため、フィルタの条件を動的に変えようとするならそれも可能でしょう。ただ以前BugTrack2/151でも触れましたが、(現状の件数ベースの保存方法では)中身が0件のrssを返す可能性が高くなったり、軽いソリューションであったはずのrss feedが重くなってしまったりと、単純に実装した場合、従来の利用感とは食い違う結果をもたらしかねないと思います。どのようなフィルタ条件を与えるか、については管理者のみが変更できる様にした方が怖くないかもしれません。別件ですが、外部から与えられた正規表現をそのまま実行させるのはとても怖いと思います。 -- henoheno
- 同じWikiサイトからのfeedをshowrssプラグインで表示すると、convert_html()が再帰してサーバが高負荷状態でダウンします。ページ内容を生成するときにプラグインを停止させる改造で回避できました。 -- matsuda
- feed.inc.php
- 136行目あたり
+ global $pkwk_disable_plugin;
+ $pkwk_disable_plugin = TRUE;
foreach ($retval['items'] as $item) {
// ページURL取得
- convert_html.php
- 767行目あたり
function toString()
{
+ global $pkwk_disable_plugin;
+ if (isset($pkwk_disable_plugin)) {
+ return "";
+ }
// Call #plugin
return do_plugin_convert($this->name, $this->param);
}
- pcomment の時 と同じような問題ですか・・・。 --
- (PukiWiki 付属のプラグインの中で)showrss プラグインでしか起こらないなら、
pcomment プラグインのように、get_source() してからconvert_html() するまでに#showrss で始まる行を除外する、
でもいいかもしれませんが、feed にその内容が含まれなくなるという副作用が・・・*6。 --