[リストへもどる]
一括表示
タイトルコメント元発言の諸データ参照
記事No220
投稿日: 2007/04/19(Thu) 15:40
投稿者YOS
さほど急ぎではないのですが、コメントの中に書いてしまったので、ついでに書きます。
後回しで良いです。(^^)

返信の場合です。
folomy用では、EMailとHPに、返信時に必要なデータを書き込んでいます。
CPXからでは、この二つは参照できませんよね?

今のところ、プロパティ-作成の返信時のヘッダ欄に、

>>$#. $nさん [$e]
(>は半角)

を書き込むと言うことで、対処しています。
発言番号が、ブラウザでの返信と違うのは、投稿直前に、修正しています。

「CPXから見て、コメント元発言のEMailとHPを参照する方法はない」という認識で間違っていないですよね?

投稿機能を公開した際に、ヘッダ欄にこのデータを書き込むという作業を難しく感じて戸惑う人が多いような気がしています。
出来れば、CPX内で処理してしまえば良いのですが、参照不可なので、このような方式になっています。

おっと、うぇいくさんのように、「直接覗く」という高度な技は、持ち合わせておりませんので。(^^)

----
YOS

タイトルRe: コメント元発言の諸データ参照
記事No221
投稿日: 2007/04/20(Fri) 10:29
投稿者DECO
YOSさん、こんにちは。

>返信の場合です。
>folomy用では、EMailとHPに、返信時に必要なデータを書き込んでいます。
>CPXからでは、この二つは参照できませんよね?

参照できませんが、、、返信に必要な情報をEMailとHPに入れる理由って何かあるのでしょうか。
TMes.lpReplyに情報が設定されていれば、返信発言のTMes.lpPostに設定されて参照できます。

DECO

タイトルRe2: コメント元発言の諸データ参照
記事No223
投稿日: 2007/04/20(Fri) 11:20
投稿者YOS
#221 DECOさん、こんにちは。

>参照できませんが、、、返信に必要な情報をEMailとHPに入れる理由って何かあるのでしょうか。

目的としては、
・>>48. YOSさん [folo:fwebkk/154/topic/6/48]の生成
・「ブラウザで開く」のリンクの生成

この二つです。(主に前者)
親発言の諸データが参照できないので、登録済みの各発言の上記のデータが、取得できません。

で、考えたのが、各発言に格納しておいて、それを参照しようと言うことでした。
その格納場所に選んだのが、EMailであり、HPだったわけです。
なので、この場所でないといけないという理由はありません。
使っていなかったので、選んだだけです。
HPについては、発言登録前に、本文に入れ込んでいますので、不要です。
ただ、将来必要になるかも知れないので、とりあえず、入れています。

>TMes.lpReplyに情報が設定されていれば、返信発言のTMes.lpPostに設定されて参照できます。

たとえば、発言のメールアドレスは、「$E」ですが、lpReplyにこれを登録すると、発言者のメルアドが格納されて渡されてきますよね?
Webによると、「親発言の」と明記されているのが、発言番号だけだったので、この方式は、諦めたわけです。

こういう認識でいましたが、外してます?

要するに、上記の親発言の情報が、投稿時に取得できれば良いわけですが、投稿フォームから取得できない場合は、各発言に入れ込んでおくしかないですよね?

----
YOS

タイトルRe3: コメント元発言の諸データ参照
記事No224
投稿日: 2007/04/20(Fri) 12:42
投稿者DECO
YOSさん、こんにちは。

>たとえば、発言のメールアドレスは、「$E」ですが、lpReplyにこれを登録すると、発言者のメルアドが格納されて渡されてきますよね?

「$E」ではなく、直接メールアドレスを書いておけばいいのです。

DECO

タイトルRe4: コメント元発言の諸データ参照
記事No225
投稿日: 2007/04/20(Fri) 15:28
投稿者YOS
#224 DECOさん、こんにちは。

>「$E」ではなく、直接メールアドレスを書いておけばいいのです。

&mail=hoge@fuga.local&....
ということですよね?

このコメントの親発言(#224)の場合で言うと、
cpx:cube-d/03/224
が得たいデータです。(適当にでっち上げました)

ちなみに上記のデータは、
<a href=http://www.cube-d.com/cmn/extension/cpx/cpxsdk-bbs01/wforum.cgi?list=body>cpx:cdubed/03/224</a>
と言うリンクになっています。

このデータは、発言毎に変わりますので、発言登録時に、どこかに書いておく必要があります。
で、それをCPXからは参照できないので、ユーザーにテンプレートを書いて貰って、本文先頭に挿入して貰う、と言う考えです。

この考えの内の、「それをCPXからは参照できないので」に対する確認でした。

ただ、lpEmailではなく、lpOptionDataに入れるという方法もありますね。
これだと、ユーザーの目には触れませんね。

cpxWriteEditFormを使う方法も考えたんですが、必要なデータが渡されてこないという意味では同じ事なので、とりあえず、考えていません。

----
YOS

タイトルRe5: コメント元発言の諸データ参照
記事No226
投稿日: 2007/04/21(Sat) 10:45
投稿者DECO
YOSさん、こんにちは。

>&mail=hoge@fuga.local&....
>ということですよね?

その通りです。

>ただ、lpEmailではなく、lpOptionDataに入れるという方法もありますね。
>これだと、ユーザーの目には触れませんね。

これだと返信先発言に入れることはできますが、返信発言(投稿予定発言)には引き継がれません。
投稿発言に引き継がれるのが TMes.lpReply です。
返信先発言の TMes.lpReply が、投稿予定発言の TMes.lpPost にコピーされます。
つまり、返信先発言を参照するのではなく、参照すべき情報が投稿予定発言に既に存在しているということです。

DECO

タイトルRe6: コメント元発言の諸データ参照
記事No227
投稿日: 2007/04/21(Sat) 11:15
投稿者YOS
#226 DECOさん、こんにちは。

>つまり、返信先発言を参照するのではなく、参照すべき情報が投稿予定発言に既に存在しているということです。

やっと分かりました。

「各発言毎にlpReplyが登録可能なので、その中に、直接書いておけばいい」

ということですね。
lpReplyは、BBSHeadのだけだと思いこんでいました。

さて、仕様書をみて、具体的な実装を検討します。

----
YOS

タイトルRe7: コメント元発言の諸データ参照
記事No228
投稿日: 2007/04/21(Sat) 15:01
投稿者YOS
#227 YOSさん、こんにちは。

>さて、仕様書をみて、具体的な実装を検討します。

うまくいきました。

既に取得済みのログに対しては無効なので、この場合は、テンプレートの変更がいります。
ただ、現状で、このテンプレート変更をされている方は、それなりに知識がある方ですので、まあ、問題ないでしょう。

お手数をおかけしました。

なお、この新方式で登録した発言は、メッセージビュー最上部の欄に、HPのURLが表示されません。
YOS[folo:....]
となっていたら、新方式です。

----
YOS

タイトルRe8: コメント元発言の諸データ参照
記事No229
投稿日: 2007/04/23(Mon) 09:11
投稿者うぇいく
>既に取得済みのログに対しては無効なので、この場合は、テンプレートの変更がいります。
>ただ、現状で、このテンプレート変更をされている方は、それなりに知識がある方ですので、まあ、問題ないでしょう。

 ということなので、おそらくわかっているかとは思うのですが・・・投稿に必要なデータ(項目)が変わった場合、過去に巡回した発言に対して「返信」ボタンを押した時に投稿できない となる可能性があります。これを解消するには、すべて巡回しなおすということになります。
# 返信を押したとき、もし、発言固有のlpReplyがあれば、それが古かろうがなんだろうが、それがTMesのlpPostに入ってきます。

 そのため、投稿に必要なデータを切り分けた状態でlpReplyに(てきとーに)入れておき、投稿するデータそのものは、(てきとーに入れておいたデータをつなぎあわせて)動的に生成すると確実です。
-- CMN v0.50dβ --

タイトルRe9: コメント元発言の諸データ参照
記事No230
投稿日: 2007/04/23(Mon) 10:33
投稿者YOS
#229 うぇいくさん、こんにちは。

> そのため、投稿に必要なデータを切り分けた状態でlpReplyに(てきとーに)入れておき、投稿するデータそのものは、(てきとーに入れておいたデータをつなぎあわせて)動的に生成すると確実です。

えーと、いつ見たのか定かではないですが、どれかのエクステンションのソースがそうなっていましたので、速攻でパクり、この形式になっています。
多分、うぇくさんのC++版のソースだったような。

この辺の仕様は、うぇいくさんが書かれたような事情で、あとから変更しにくいので、β公開前に、ある程度、しっかり決めました。

なので、今は、lpReplyは、4パターンに分かれます。

1.旧データ→そのまま
2.旧データで、テンプレート設定済み→テンプレート採用
3.新データのみ→lpReplyを使用
4.新データで、テンプレート設定済み→テンプレート採用

1〜4どのパターンでも、本文先頭に、あの文字列を入れ込みます。

その後、生成したパラメータを、MakePostParam.lpPostStrに設定します。

----
YOS

タイトルRe: コメント元発言の諸データ参照
記事No222
投稿日: 2007/04/20(Fri) 10:43
投稿者うぇいく
私の場合は・・・
・使っていなければ、lpKey。
・lpKeyが埋まっていてユーザに見えても不自然でなければOptionData。
あたりですね。
巡回時のみで、Post/Replyするのに必要な情報/値がすべてそろう場合は、lpReplyも検討します(KENT WEB Forumとかがこの方式。)
# 投稿時にFormから読み取らないと確定しない情報があるときは、基本的にlpReplyへの設定は利用しない・・・ことが多い・・・
-- CMN v0.50dβ --