PHPには詳しくないが、なんとなくで編集してみた。
OpenPNE Ver2.14.1.1
まずは、[webapp_biz]-[module]-[biz]-[templates]にある「fh_biz_schedule_add.tpl」で参加者のチェックボックスがどうなっているか。
90行目
<div class="item"><input name='sc_j_mem[]' value='({$item.c_member_id})' type='checkbox' ({if $item.checkflag}) checked="checked"({/if}) />({$item.nickname})</div>
これが、foreachで囲まれているので、メンバーIDを配列に格納して渡しているのだろう。
でおそらく、8行目に記述されている「do_fhg_biz_schedule_add」に渡しているみたい。
[webapp_biz]-[module]-[biz]-「fhg_biz_schedule_add.php」を開いてみると135行目
//参加者のチェック
if (in_array('0', $requests['sc_j_mem'])) {
//「全員」が含まれている場合は、配列を空に
$requests['sc_j_mem'] = array();
}
$requests['sc_j_mem']の$requestsがどこでどう定義されているのかよくわからんが、この配列にフォームのデータが全て格納されているみたい。
でもって、$requests['sc_j_mem']に0が入っているなら配列を初期化しろと書いてあるので、参加者がノーチェックなら0が入ってくるんだなぁと判断。
でも、その定義はどこで行われているのかわからない。
といろいろファイルを見ていると、[webapp_biz]-[module]-[biz]-[validate]-[page]-「fh_biz_schedule_add.ini」というファイルに
[sc_j_mem] type= "string"is_array = 1
required = 0
caption = "メンバー"
という記述があった。
おそらくこれが初期化の設定なんだろう。
というわけで、「fhg_biz_schedule_add.php」を編集し、$requests['sc_j_mem']に0がある場合は、作成者のIDに置き換えるという形にしようと思ったが、うまくいかない。
$requests['sc_j_mem']は、$requestsという配列のsc_j_memという要素にアクセスするんだよな?
でも、array()で初期化しているから、中にいるのは配列だよな。
でも、単純にarray($u)では代入できない。
この要素には、sc_j_mem[]という配列が入ってるはず・・・?
二次元配列なのか?
なんか違うぞ・・・
結局ここでのカスタマイズは諦めた(汗
あまりよろしくないカスタマイズだが、[webapp_biz]-[module]-[biz]-[lib]にある「mysql-functions.php」を編集することにした。
817行目の「スケジュール登録」にある
//参加者が指定されていない場合は、c_memberすべてが予定の参加者に
if (empty($join_members)) {
$sql = 'SELECT c_member_id FROM c_member';
$join_members = db_get_col($sql);
}
を編集する。
$join_membersは配列で、「fh_biz_schedule_add.ini」で呼び出されるときにさっきの$requests['sc_j_mem']を渡されている。
//参加者が指定されていない場合は、作成者が予定の参加者に
if (empty($join_members)) {
$join_members = array($c_member_id);
}
同じように884行目からの「スケジュールの編集」で922行目付近にも同じものを追加しておく。(foreachの手前)
注意するのは、$c_member_idを$member_idとしておかなくてはならない。