戻る

8.データーの登録・編集の複数化

@必要なフォルダーを作成  
@ 
data-regist(データ登録)
data-regist-preview(データ登録のプレビュー)

data-edit(データ編集)
data-edit-preview(データ編集のプレビュー)

上記のフォルダー作成します。

 
A必要なページ数を作成
 

B登録ページ作成

・lib/template内にdata-registディレクトリを作成

・中に
data-regist.html、data-regist01.html、data-regist02.html、data-regist03.html(各登録フォーム)を作成
※デフォルトのdata-regist.htmlもdefault.htmlとして入れておく

・db-data.cgiの288行目(Ver9.16)
@MyUrl and $LinkChkMode and &Secure(1);
の次行からの
if($FORM{Who} eq 'Admin'){ &Html('data-regist-admin.html') }
else{ &Html('data-regist.html') }}

if($FORM{Who} eq 'Admin'){ $html='data-regist-admin.html' }
else{ $html=$FORM{html} ne '' ? $FORM{html} : 'default.html' }
&Html("data-regist/$html");}
のように変更

・後は登録画面呼び出し時にdatabase.cgi?cmd=dr&html=
data-regist.htmlのように指定すればOKです

default.html(名前)

これも作成しておく必要があります。

C登録データのプレビューを作成、

次に複数化した各登録ページ(html)に
<INPUT type="hidden" name="html" value="data-regist-preview/data-regist-preview.html">
<INPUT type="hidden" name="EditHtml" value="data-edit.html">
追加する。

・db-data.cgiの288行目(Ver9.16)
@MyUrl and $LinkChkMode and &Secure(1);
の次行からの
if($FORM{Who} eq 'Admin'){ &Html('data-regist-admin.html') }
else{ &Html('data-regist.html') }}

if($FORM{Who} eq 'Admin'){ $html='data-regist-admin.html' }
else{ $html=$FORM{html} ne '' ? $FORM{html} : 'default.html' }
&Html("data-regist/$html");}
のように変更

db-data.cgiの307行目(Ver9.16)
&RegistPreview('data-regist-preview.html',\%{$CNF{DataItem}}) if($FORM{Preview});

if($FORM{Preview}){
$html=$FORM{html} ne '' ? $FORM{html} : 'default.html';
&RegistPreview($html,\%{$CNF{DataItem}});
}
と変更すれば出来るかと思います。

D登録データの編集作成

登録時にHTMLファイル名をデータとして記録し
<INPUT type="hidden" name="html" value="data-edit-preview/data-edit-preview.html">
<INPUT type="hidden" name="EditHtml" value="data-edit.html">

db-data.cgiの366行目からの(Ver9.16)
if($FORM{AdminPass} ne ''){ &Html('data-edit-admin.html') }
else{ &Html('data-edit.html') }}

if($FORM{Who} eq 'Admin'){ $html='data-edit-admin.html' }
else{ $html=$TargetData[$REC{Data}{*****}] ne '' ? $TargetData[$REC{Data}{*****}] : 'default.html' }
&Html("data-edit/$html");}
と変更すれば自動的にデータ毎に適切な編集フォームになるかと思います。


db-data.cgiの387行目からの(Ver9.16)
&RegistPreview('data-edit-preview.html',\%{$CNF{DataItem}}) if($FORM{Preview});

if($FORM{Preview}){
$html=$FORM{html} ne '' ? $FORM{html} : 'default.html';
&RegistPreview($html,\%{$CNF{DataItem}});
}
 



(※*****部分はHTMLファイル名のデータ項目名)

 

E管理認証での追加 NEW

追加項目を書き忘れていましたね。
【管理者認証】→【データ種類追加】で
追加対象:データファイル
データ種類:「EditHtml」
データ名称:  (空欄)
登録データ:  (空欄)

このように登録します。
 

 

-----------------------------------------------------------------------------------