KG
kg_nori****@yahoo*****
2006年 1月 11日 (水) 17:12:05 JST
KGです。 On Wed, 11 Jan 2006 15:34:55 +0900 Naoki Takezoe <takez****@gmail*****> wrote: > まず、コアが提供するオブジェクトの内部構造を直接触るような > 処理はそもそもプラグイン側で行うべきではないと考えてます。 > メソッドや関数の再定義についても同様です(こっちのほうがアレですね)。 > > やらないと実現できない機能があるのは確かですし、劇的な機能を > 実現するために有効な方法ではありますが、フレームワーク的には > 想定していない拡張方法だということはご理解ください。 > (includeプラグインは例外中の例外です...) 劇的な機能かどうかはわかりませんが、私としては需要が多いであろうと思われるもの に対して、何らかの形で実現できればと思っています。 もちろん、このような拡張方法が推奨されるはずがないことは十分理解しています。 ※ただし、コアに取り込んで欲しいという願いはこもっています(笑) ※3.5系にというわけではなく将来のFSWikiでという意味です。 > ということを踏まえたうえで。 > 〜中略〜 > > $parser->{html} = ""; は $resultに1行ずつ追加してるので > 1ループごとにクリアしてるだけです(プラグイン部分を処理させるのに > 使ってるだけなので、本来は毎回クリアする必要はないと思いますが)。 > なので、CacheParser::process_cache側で$parser->{html} の制御を > 行うのであれば不要ではないかと思います。 ちょっと、意味合い的に異なるのですが、 もともと推奨されない方法ですので深くはお聞きしにくい・・・(^^;;; CacheParser で $parser->{html} を制御するのではなくプラグイン側で制御しています。 つまり、直前までのパース結果をプラグイン側で変換(置換)するのに利用しています。 ですから、毎回ブランクになっていると直前までのパース結果をプラグイン側で 取得(操作)することができないということです。 > 文面ですと修正内容がいまいちよくわからないので、 > 修正したCacheParserを送っていただけないでしょうか。 了解しました。 再定義した CacheParser::process_cache 部を添付します。 (複数行プラグイン用の追加箇所も含まれていますが、そこは無視してください。) -- KG <kg_soft****@yahoo*****> http://kgsoft.jf.land.to/ -------------- next part -------------- テキスト形式以外の添付ファイルを保管しました... ファイル名: CacheParser.pm.ext 型: application/octet-stream サイズ: 3607 バイト 説明: 無しDownload