返信する: 研究室コメント

対象モジュール なーお'n研究室
件名 コメント統合でブロックから元記事へリンク
要旨 本情報はいささか古く、現在ではハック無しで組み込まれた、こちらのd3forum_rをどうぞご使用ください。 改変履歴 09/05/12 デフォルトテンプレートを編集する方法を追記 09/05/11 初版 ...


オプション

参照

Re: コメント統合でブロックから元記事(Pico)のタイトル取得
投稿者: なーお 投稿日時: 2012/3/19 8:40

kamirenjackさん、こんにちは。

まずこの件は、d3forumのメンテプロジェクト版には取り込み済みでテンプレート編集だけで行けますが、そちらをお使いでしょうか。 まあハックしても同じですけど微妙に改良されているので、今後はd3forum-0.86以降をお勧めします。

引用:

そこでPicoの元記事のタイトル(表題)もブロックに表示できないか、と試行錯誤しているのですが実現できず質問させて頂きました。
何かヒントでもいいのでご教授いただけないでしょうか。

それはまあ、普通に考えると無理ですね。 d3コメント統合という細いパイプを通してやり取りしているわけで、相互に連携する情報には限りがあり、フォーラム側では元記事の情報は最小限しか得られていません。 フォーラム側で元記事情報を得ているページは、そのトピック内投稿一覧表示と1投稿表示のページのみで、ブロックには渡っていません。

また、元記事のコメントは「Re:元記事タイトル」という件名になりますから、元記事自身のタイトルはほとんど変わらないはずですし、特に必要性は無いように思います。 ハックすればできますが、、その必要も無いしそうすることでかなり重くなると思うのでやめたほうが良いと思います。

もし、トピック一覧表示で元記事情報を得ようとすると、 各トピック毎に元記事の各モジュール呼び出しが行われます。その重さは想像できるのではないかと思います。

それでもどうしても、ということでしたら、以下にヒントだけ。(ver0.86ベースで)
block_functions.phpの、function b_d3forum_list_topics_show( $options )内の269行目付近

268
269
270
271
272
    if( ( $external_link_id = $d3com_obj->validate_id( $external_link_id ) ) === false ) {
        $can_display = false;
    } else {
        $moto_entry = $d3com_obj->fetchSummary( $external_link_id );
    }

とすることで、トピック表示の時に出てくる要旨と同様の情報が取れますので、あとは$topic4assign 配列の中に追記してアサインして、テンプレートで参照できますね。 ポスト一覧の場合は、function b_d3forum_list_posts_show( $options )に同様にすればできると思います。 これの意味がわからない場合はサポートできないので諦めてください。