コード例 #1
0
ファイル: code.php プロジェクト: abhinay100/forma_app
function generateCode()
{
    require_once _base_ . '/lib/lib.form.php';
    $step = Get::req('step', DOTY_INT, 1);
    $id_code_group = Get::req('id_code_group', DOTY_INT, 0);
    cout(getTitleArea(Lang::t('_CODE', 'code')) . '<div class="std_block">');
    switch ($step) {
        case 1:
            cout(Form::openForm('code_generation_step_1', 'index.php?modname=code&amp;op=generate_code&amp;step=2') . Form::getHidden('id_code_group', 'id_code_group', $id_code_group) . Form::openElementSpace() . Form::getTextfield(Lang::t('_HOW_MANY', 'code'), 'code_number', 'code_number', 255, '') . Form::getCheckbox(Lang::t('_UNLIMITED_USE', 'code'), 'unlimited_use', 'unlimited_use', '1') . '<br />' . Form::getCheckbox('0-9', 'use_number', 'use_number', '1', true) . Form::getCheckbox('a-z', 'use_low_letter', 'use_low_letter', '1', true) . Form::getCheckbox('A-Z', 'use_high_letter', 'use_high_letter', '1', true) . Form::closeElementSpace() . Form::openButtonSpace() . Form::getButton('generate', 'generate', Lang::t('_GENERATE', 'code')) . Form::getButton('undo_group', 'undo_group', Lang::t('_UNDO', 'code')) . Form::closeButtonSpace() . Form::closeForm());
            break;
        case 2:
            require_once $GLOBALS['where_framework'] . '/lib/lib.code.php';
            $code_man = new CodeManager();
            $code_number = Get::req('code_number', DOTY_INT, 0);
            $unlimited_use = Get::req('unlimited_use', DOTY_INT, 0);
            $use_number = Get::req('use_number', DOTY_INT, 0);
            $use_low_letter = Get::req('use_low_letter', DOTY_INT, 0);
            $use_high_letter = Get::req('use_high_letter', DOTY_INT, 0);
            if ($unlimited_use == 0) {
                $unlimited_use = false;
            } else {
                $unlimited_use = true;
            }
            if ($use_number == 0) {
                $use_number = false;
            } else {
                $use_number = true;
            }
            if ($use_low_letter == 0) {
                $use_low_letter = false;
            } else {
                $use_low_letter = true;
            }
            if ($use_high_letter == 0) {
                $use_high_letter = false;
            } else {
                $use_high_letter = true;
            }
            if (!$use_number && !$use_low_letter && !$use_high_letter) {
                jumpTo('index.php?modname=code&op=generate_code&id_code_group=' . $id_code_group . '&err=no_char');
            }
            $all_code = $code_man->getAllCode();
            for ($i = 1; $i <= $code_number; $i++) {
                $control = true;
                while ($control) {
                    $new_code = '';
                    if ($use_number && $use_low_letter && $use_high_letter) {
                        for ($a = 0; $a < 10; $a++) {
                            $seed = mt_rand(0, 15);
                            if ($seed > 10) {
                                $new_code .= mt_rand(0, 9);
                            } elseif ($seed > 5) {
                                $new_code .= chr(mt_rand(65, 90));
                            } else {
                                $new_code .= chr(mt_rand(97, 122));
                            }
                        }
                    } elseif ($use_number && $use_low_letter) {
                        for ($a = 0; $a < 10; $a++) {
                            $seed = mt_rand(0, 10);
                            if ($seed > 5) {
                                $new_code .= mt_rand(0, 9);
                            } else {
                                $new_code .= chr(mt_rand(65, 90));
                            }
                        }
                    } elseif ($use_number && $use_high_letter) {
                        for ($a = 0; $a < 10; $a++) {
                            $seed = mt_rand(0, 10);
                            if ($seed > 5) {
                                $new_code .= mt_rand(0, 9);
                            } else {
                                $new_code .= chr(mt_rand(97, 122));
                            }
                        }
                    } elseif ($use_low_letter && $use_high_letter) {
                        for ($a = 0; $a < 10; $a++) {
                            $seed = mt_rand(0, 10);
                            if ($seed > 5) {
                                $new_code .= chr(mt_rand(65, 90));
                            } else {
                                $new_code .= chr(mt_rand(97, 122));
                            }
                        }
                    } else {
                        if ($use_number) {
                            for ($a = 0; $a < 10; $a++) {
                                $new_code .= mt_rand(0, 9);
                            }
                        }
                        if ($use_low_letter) {
                            for ($a = 0; $a < 10; $a++) {
                                $new_code .= chr(mt_rand(65, 90));
                            }
                        }
                        if ($use_high_letter) {
                            for ($a = 0; $a < 10; $a++) {
                                $new_code .= chr(mt_rand(97, 122));
                            }
                        }
                    }
                    if (array_search($new_code, $all_code) === false) {
                        $all_code[] = $new_code;
                        $code_man->addCode($new_code, $id_code_group, $unlimited_use);
                        $control = false;
                    }
                }
            }
            Util::jump_to('index.php?modname=code&amp;op=list');
            break;
    }
    cout('</div>');
}