2011年8月28日日曜日

Uber-Uploader 6.8.2 の使い方(その4)

追記)2017/6に,FreeBSD で fine-uploader を使ってみた(その1)というのを書いた。 そこでは fine-uploader という JavaScript のライブラリを使ったファイルのアップローダーについて書いている。 Uber Uploader はすでに古く更新されていないので,fine-uploader など新しいアップロードライブラリを使うことをお薦めする。
この記事はUber-Uploader 6.8.2 の使い方(その3)からの続きです。
Uber-Uploader 6.8.2 の使い方(その1)
Uber-Uploader 6.8.2 の使い方(その2)
Uber-Uploader 6.8.2 の使い方(その3)

今回は最終回であり,ubr_file_upload.js で入力パラメータのチェックルーチンを加える。

今回の例では,アップローダの入口である ubr_file_upload.php で,OWNEREMAIL という2つのパラメータを必須としてみた。入力が必須なら,ファイルのアップロードボタンを押したら未入力のチェックをさせたい。この Uber-Uploader では ubr_file_upload.js の中で JavaScript を使ってチェックをさせている。そこで,OWNER(投稿者の名前)と EMAIL(投稿者のメールアドレス)のチェックをさせよう。メールアドレスなら細かいチェックが必要だったりするが,ここでは入力があるかないかという簡単なチェックだけさせようと思う。

(1) ubr_file_upload.jsの変更
まずは ubr_file_upload.js にルーチンを加えよう。まずは ubr_file_upload.js のオリジナルの236行目にある showAlert ルーチンの前に以下のルーチンを加える。
// Make sure the user input name of uploading person
checkOWNER:function(){
    if(!UberUpload.check_owner){ return false; }

    var found_owner = false;

    JQ("#OWNER").each(function(){
        if(JQ(this).val() !== ""){ found_owner = true; }
    });

    if(!found_owner){
        UberUpload.showAlert("Please Input Your NAME.", 400, 80, UberUpload.block_ui_enabled);
        return true;
    }
    else{ return false; }
},

// Make sure the user input name of uploading person
checkEMAIL:function(){
    if(!UberUpload.check_email){ return false; }

    var found_email = false;

    JQ("#EMAIL").each(function(){
        if(JQ(this).val() !== ""){ found_email = true; }
    });

    if(!found_email){
        UberUpload.showAlert("Please Input Your e-mail address.", 400, 80, UberUpload.block_ui_enabled);
        return true;
    }
    else{ return false; }
},
ここで,各ルーチンの最後の } の後にあるコンマを忘れてはいけない。それぞれのルーチンは id="OWNER"id="EMAIL" を持つ要素(ubr_file_upload.php の中に書いた input)について,それぞれがカラなら警告を表示して,アップロードボタンをキャンセルする,というものである。

 実際に上記の checkOWNERcheckEMAIL というルーチンを起動するには,ubr_file_upload.js のオリジナルの377行目にある linkUpload ルーチンの中に以下の2行を加える。
if(UberUpload.checkOWNER()){ return false; }
if(UberUpload.checkEMAIL()){ return false; }
入れる場所としては ubr_file_upload.js のオリジナルの383行目にある
if(UberUpload.checkDuplicateFileCount()){ return false; }
のすぐ下がいいと思う。

(2) ubr_file_upload.phpの変更
ubr_file_upload.php にも一ヶ所追加が必要となる。実は,ubr_file_upload.js に加えた checkOWNERcheckEMAIL ルーチンの最初に,UberUpload.check_ownerUberUpload.check_email いう変数をチェックする部分がある。これは,UberUpload.check_ownerUberUpload.check_email がそれぞれ1でないと,各チェックルーチンは機能しない,というものであり,チェックさせるかさせないかを簡単に制御するために入れてある。これらの変数は ubr_file_upload.php の先頭付近で定義しておかないといけない。具体的には以下の2行を ubr_file_upload.php に追加する。
UberUpload.check_owner = 1;
UberUpload.check_email = 1;
場所としては,ubr_file_upload.php のオリジナルの95行目にある
UberUpload.check_duplicate_file_count = <?php print $_CONFIG['check_duplicate_file_count']; ?>;
の下がいいと思う。

これらの追加をしておくと,アップロード時に名前やメールアドレスの入力がないとアラートが表示される。コメントは必ずしも必要ではないので,チェックはされない。

これで Uber-Uploader 6.8.2 に関する記述は終わりである。この記事が皆さんのお役に立つことを祈っている。

0 件のコメント: