■掲示板に戻る■ 全部 1- 101- 201- 301- 401- 501- 601- 701- 801- 901- 最新50 [PR]ぜろちゃんねるプラス[PR]  
レス数が1000を超えています。残念ながら全部は表示しません。

ぜろちゃんねるプラス質問スレ

416 :名無しさん@ぜろちゃんねるプラス:2013/06/02(日) 15:53:45.26 ID:Ksrb37dIi
プラグインで「名前欄にxが含まれていた場合、DATにレスを直に編集してサブジェクト全更新」という処理をさせたいのですが、
サブジェクト更新がうまくいきません。
どのような記述をすればよいのでしょうか。

417 :0ch+開発担当 ◆0chp.sx.ik :2013/06/02(日) 17:25:05.72 ID:IrOlyfxI0
>>416
プラグインに$Thread(BILBO)を渡す手段がないので難しいですね。

subject.txtをflockしている関係で、BILBOオブジェクトを新しく作って
以下のようにするとデッドロックが発生してしまうのでこの方法はダメです。
  my $Threads = BILBO->new;
  $Threads->Load($Sys); # デッドロック
  $Threads->Update($Sys);
  $Threads->Save($Sys);

要するにプラグインだけではどうにも出来ないので、
本体のスクリプトを改造する必要があります。

module/vara.pl 122行目あたりで以下の1行を追加すれば
  $Sys->Get('MainCGI')->{'THREADS'} = $Thread;
プラグインから以下のようにしてかろうじて処理することができます。
  my $Threads = $Sys->Get('MainCGI')->{'THREADS'};
  $Threads->Update($Sys);
  $Threads->Save($Sys);

418 :0ch+開発担当 ◆0chp.sx.ik :2013/06/02(日) 17:28:19.32 ID:IrOlyfxI0
少し訂正
module/vara.pl 122行目では不都合でした。
sub Init内の最後、86行目辺りに追加してください。
  $Sys->Get('MainCGI')->{'THREADS'} = $Thread;

305KB
READ.CGI - 0ch+ BBS 0.7.5 20220323
ぜろちゃんねるプラス