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&op=generate_code&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&op=list'); break; } cout('</div>'); }