チケットクラスXoopsGTicketを新しくしました。
このgticket2では、チケットエラーが起きた時の再投稿フォームを実装しました。
この機能は、ユーザのストレスを軽減してくれるはずです。
(30分以上もかけて書いた投稿がチケットエラーで一方的にはねつけられて、コピペの機会も与えられないなんて、ショック以外の何物でもないですから)
gticket2の使い方は従来とまったく一緒です。
- include/gtickets.php に置いたクラス定義ファイルを読み込みます
- フォームにチケットを埋め込みます
- フォーム処理側で、check()関数を実行します
●XoopsFormに埋め込む場合:
$form = new XoopsThemeForm( ... );
$GLOBALS['xoopsGTicket']->addTicketXoopsFormElement( $form , __LINE__ , 1800 , '(your area name)' ) ;
$xoopsGTicket->getTicketHtml( __LINE__ , 1800 , '(your area name)' )
if ( ! $xoopsGTicket->check( true , '(your area name)' ) ) {
redirect_header(XOOPS_URL.'/',3,$xoopsGTicket->getErrors());
}
if ( ! $xoopsGTicket->check( true , '(your area name)' , false ) ) {
redirect_header(XOOPS_URL.'/',3,$xoopsGTicket->getErrors());
}
今考えているのも、header.phpは読み込まずに、XOOPSブロックはすべて非表示でブロックロジックも実行しない。
使用テーマはdefault決め打ちってというように、極力シンプルに使用とはしてましたけど・・・
あと、'No ticket found'や’Invalid area or referer’の場合には、再投稿無くても良いような気がしますが・・・・
ただ、個人的には、再投稿フォームは、fallback中のfallbackなので、なるべく余計な処理が挟まらないようにした方が良いと思っています。
セキュリティ向上のためのチケットクラスが、余計な脆弱性を持ち込んだのでは本末転倒ですから。
但し、WordPressは管理機能が表画面にあるので、再投稿フォームをテーマ内に表示するようにしています。