با سلام
تغییراتی که باید اعمال کنید اینگونه است
در پوشه Sources فایل Register.php را باز کنید و این کد را پیدا کنید:
کد:
// Are they under age, and under age users are banned?
و قبل از آن کد زیر را قرار دهید
کد:
// Start of Anti-bot Registration Puzzles Mod
// Checks whether field was completed, if not it goes to an error screen
if(empty($_SESSION['puzzle_dynamic_input']) || empty($_POST[$_SESSION['puzzle_dynamic_input']]))
fatal_lang_error('puzzle_incomplete', false);
// If puzzle was answered incorrectly
elseif (md5(strtolower($_POST[$_SESSION['puzzle_dynamic_input']])) != $_SESSION['puzzle_code'])
fatal_lang_error('puzzle_incorrect', false);
// End of Anti-bot Registration Puzzles Mod
این کد را پیدا کنید:
کد:
// Under age restrictions?
if (!empty($modSettings['coppaAge']))
{
$context['show_coppa'] = true;
$context['coppa_desc'] = sprintf($txt['register_age_confirmation'], $modSettings['coppaAge']);
}
وبعد از آن این کد را قرار دهید:
کد:
// Start of Anti-bot Registration Puzzles Mod
$puzzles = array(
'shapes' => create_function('', '
$a = array(0 => "sides", 1 => "corners");
$b = rand(0,1);
$c = array(\'square\' => 4, \'rectangle\' => 4, \'pentagon\' => 5,
\'hexagon\' => 6, \'heptagon\' => 7, \'octagon\' => 8);
$d = array_rand($c); // randomly select a shape
$e = $c[$d]; // the answer
global $txt;
$txt[\'puzzle_shapes\'] = sprintf(($d == \'octagon\' ? $txt[\'puzzle_shapes2\'] : $txt[\'puzzle_shapes\']), $txt[\'puzzle_\'.$a[$b]], $txt[\'puzzle_\'.$d]);
return array(\'shapes\', \'\', md5($e));
'),
'math' => create_function('', '
$a = array();
$a[0] = rand(5,19);
$a[1] = rand(1,$a[0]-2);
$a[2] = rand(1,($a[0]-$a[1]-2));
$a[3] = array("+","-");
$a[4] = $a[3][array_rand($a[3])];
$a[5] = $a[3][array_rand($a[3])];
$d = "$a[0]$a[4] $a[1] $a[5] $a[2]";
eval("\$d=" . $d . ";");
return array(\'math\', "<span style=\"font-weight:bold;\">$a[0] $a[4] $a[1] $a[5] $a[2] =</span>", md5($d));
'),
'math2' => create_function('', '
$a = array();
$a[0] = rand(5,19);
$a[1] = rand(1,$a[0]-2);
$a[2] = rand(1,($a[0]-$a[1]-2));
$a[3] = array("+","-");
$a[4] = $a[3][array_rand($a[3])];
$a[5] = $a[3][array_rand($a[3])];
$c = array(rand(0,1),rand(0,1),rand(0,1));
$d = "$a[0]$a[4] $a[1] $a[5] $a[2]";
// Whats the sum/answer
eval("\$d=" . $d . ";");
// Access txt strings
global $txt;
return array(\'math\', \'<span style="font-weight:bold;">\'.($c[0] ? $a[0] : $txt[\'puzzle_\'.$a[0]]).\' \'.$a[4].\' \'.($c[1] ? $a[1] : $txt[\'puzzle_\'.$a[1]]).\' \'.$a[5].\' \'.($c[2] ? $a[2] : $txt[\'puzzle_\'.$a[2]]).\' = </span>\', md5($d));
'),
'colors' => create_function('', '
$a = array(\'red\' => \'#FF0033\', \'orange\' => \'#FF6600\', \'yellow\' => \'#FFFF33\', \'green\' => \'#006600\', \'blue\' => \'#0033FF\', \'purple\' => \'#663366\', \'pink\' => \'#FF9999\', \'black\' => \'#000000\', \'grey\' => \'#999999\');
// Select them randomly
$b = array_rand($a,8);
$c = $b[rand(0,7)]; // the answer
$d = \'\';
// Access txt strings
global $txt;
for($i=0;$i<=7;$i++)
{
// Color or hex? randomly change
$e = rand(0,1);
$j = $i+1;
if($c == $b[$i] || $c == $b[$j])
$d .= \'<span style="font-weight:bold;color:\'. ($e ? $a[$c] : $c ) .\'">\'. $txt[\'puzzle_\'.$c] .\'</span> \';
else
$d .= \'<span style="font-weight:bold;color:\'. ($e ? $a[$b[$i]] : $b[$i] ) .\'">\'. $txt[\'puzzle_\'.$b[$j]] .\'</span> \';
$i++;
}
unset($a,$b,$e,$i,$j);
return array(\'colors\', $d, md5(strtolower($txt[\'puzzle_\'.$c])));
'),
);
// Generate a new puzzle code every time
$_SESSION['puzzle_dynamic_input'] = $_SESSION['puzzle_code'] = '';
// Generate Random field name
$range1 = range('a', 'z');
$range2 = range(0, 9);
// Must start with a letter not a digit
$_SESSION['puzzle_dynamic_input'] = $range1[array_rand($range1)];
// Length over 8
$rand = rand(8,12);
for($i=0;$i<=$rand;$i++)
$_SESSION['puzzle_dynamic_input'] .= (rand(0, 1) == 0) ? $range1[array_rand($range1)] : $range2[array_rand($range2)];
unset($range1, $range2, $rand);
// Choose a puzzle
$context['puzzle'] = $puzzles[array_rand($puzzles)]();
$_SESSION['puzzle_code'] = $context['puzzle'][2];
$context['puzzle'][2] = $_SESSION['puzzle_dynamic_input'];
unset($puzzles);
// End of Anti-bot Registration Puzzles Mod
درون پوشه قالب سایتتون اگه فایل Register.template.php هست این تغییرات را در آن ایجاد کنید و اگر نیست در پوشه فالب پیش فرض در فایل Register.template.php این تغییرات را اعمال کنید.
کد زیر را پیدا کنید:
کد:
// Are there age restrictions in place?
if (!empty($modSettings['coppaAge']))
و قبل از آن این کد را قرار دهید
کد:
// Start of Anti-bot Registration Puzzles Mod
echo '<tr valign="top">
<td width="40%" valign="top">
<b>'.$txt['puzzle_'.$context['puzzle'][0]].'</b><br />
'.$txt['puzzle_antibot'].'
</td>
<td>
'. ( empty($context['puzzle'][1]) ? '' : $context['puzzle'][1].'<br />' ) .'
<input type="text" name="'.$context['puzzle'][2].'" size="30" value="" tabindex="', $context['tabindex']++, '" />
</td>
</tr>';
// End of Anti-bot Registration Puzzles Mod
در آخرین مرحله در فایل Modifications.english.php در پوشه languages در داخل پوشه قالب پیش فرض این تغییرات را ایجاد کنید
قبل از کد این کد را قرار بدهید
کد:
$txt['puzzle_colors'] = 'Which word is the same as its color';
$txt['puzzle_math'] = 'What is the sum of (as a number)';
$txt['puzzle_shapes'] = 'How many %s does a %s have?';
$txt['puzzle_shapes2'] = 'How many %s does an %s have?';
$txt['puzzle_sides'] = 'sides';
$txt['puzzle_corners'] = 'corners';
$txt['puzzle_incomplete'] = 'You did not complete the anti-bot puzzle. Please try again.';
$txt['puzzle_incorrect'] = 'You incorrectly answered the anti-bot puzzle. Please try again.';
$txt['puzzle_antibot'] = 'Anti-bot measure';
$txt['puzzle_red'] = 'Red';
$txt['puzzle_orange'] = 'Orange';
$txt['puzzle_yellow'] = 'Yellow';
$txt['puzzle_green'] = 'Green';
$txt['puzzle_blue'] = 'Blue';
$txt['puzzle_purple'] = 'Purple';
$txt['puzzle_pink'] = 'Pink';
$txt['puzzle_black'] = 'Black';
$txt['puzzle_grey'] = 'Grey';
$txt['puzzle_triange'] = 'Triangle';
$txt['puzzle_square'] = 'Square';
$txt['puzzle_rectangle'] = 'Rectangle';
$txt['puzzle_pentagon'] = 'Pentagon';
$txt['puzzle_hexagon'] = 'Hexagon';
$txt['puzzle_heptagon'] = 'Heptagon';
$txt['puzzle_octagon'] = 'Octagon';
$txt['puzzle_1'] = 'ONE';
$txt['puzzle_2'] = 'TWO';
$txt['puzzle_3'] = 'THREE';
$txt['puzzle_4'] = 'FOUR';
$txt['puzzle_5'] = 'FIVE';
$txt['puzzle_6'] = 'SIX';
$txt['puzzle_7'] = 'SEVEN';
$txt['puzzle_8'] = 'EIGHT';
$txt['puzzle_9'] = 'NINE';
$txt['puzzle_10'] = 'TEN';
$txt['puzzle_11'] = 'ELEVEN';
$txt['puzzle_12'] = 'TWELVE';
$txt['puzzle_13'] = 'THIRTEEN';
$txt['puzzle_14'] = 'FOURTEEN';
$txt['puzzle_15'] = 'FIFTEEN';
$txt['puzzle_16'] = 'SIXTEEN';
$txt['puzzle_17'] = 'SEVENTEEN';
$txt['puzzle_18'] = 'EIGHTEEN';
$txt['puzzle_19'] = 'NINETEEN';
در صورتی که میخواهید این مد به صورت کاملا فارسی نمایش داده شود تغییرات مرحله آخر را در فایل Modifications.persian.php نیز انجام داده و عبارات آن را ترجمه کنید برای مثال
کد:
$txt['puzzle_math'] = 'What is the sum of (as a number)';
$txt['puzzle_math'] = 'حاصل عددی عبارت مقابل چیست؟ ';
موفق باشید.
علاقه مندی ها (Bookmarks)