نصب دستی Anti-Bot Registration Puzzles: تفاوت بین نسخهها
| سطر ۷: | سطر ۷: | ||
در پوشه Sources فایل Register.php را باز کنید و این کد را پیدا کنید: | در پوشه Sources فایل Register.php را باز کنید و این کد را پیدا کنید: | ||
| − | < | + | <source lang="php"> |
| − | + | ||
| − | + | ||
// Are they under age, and under age users are banned? | // Are they under age, and under age users are banned? | ||
| − | + | ||
| − | + | </source> | |
| − | </ | + | |
و قبل از آن کد زیر را قرار دهید | و قبل از آن کد زیر را قرار دهید | ||
| − | < | + | <source lang="php"> |
| − | + | ||
| − | + | ||
// Start of Anti-bot Registration Puzzles Mod | // Start of Anti-bot Registration Puzzles Mod | ||
// Checks whether field was completed, if not it goes to an error screen | // Checks whether field was completed, if not it goes to an error screen | ||
| سطر ۲۸: | سطر ۲۵: | ||
fatal_lang_error('puzzle_incorrect', false); | fatal_lang_error('puzzle_incorrect', false); | ||
// End of Anti-bot Registration Puzzles Mod | // End of Anti-bot Registration Puzzles Mod | ||
| − | + | ||
| − | + | </source> | |
| − | </ | + | |
سپس کد زیر را پیدا کنید: | سپس کد زیر را پیدا کنید: | ||
| − | < | + | <source lang="php"> |
| − | + | ||
| − | + | ||
// Under age restrictions? | // Under age restrictions? | ||
if (!empty($modSettings['coppaAge'])) | if (!empty($modSettings['coppaAge'])) | ||
| سطر ۴۳: | سطر ۳۸: | ||
$context['coppa_desc'] = sprintf($txt['register_age_confirmation'], $modSettings['coppaAge']); | $context['coppa_desc'] = sprintf($txt['register_age_confirmation'], $modSettings['coppaAge']); | ||
} | } | ||
| − | + | ||
| − | + | </source> | |
| − | </ | + | |
و بعد از آن این کد را قرار دهید: | و بعد از آن این کد را قرار دهید: | ||
| − | < | + | <source lang="php"> |
| − | + | ||
| − | + | ||
// Start of Anti-bot Registration Puzzles Mod | // Start of Anti-bot Registration Puzzles Mod | ||
$puzzles = array( | $puzzles = array( | ||
| سطر ۱۴۵: | سطر ۱۳۸: | ||
unset($puzzles); | unset($puzzles); | ||
// End of Anti-bot Registration Puzzles Mod | // End of Anti-bot Registration Puzzles Mod | ||
| − | + | ||
| − | + | </source> | |
| − | </ | + | |
درون پوشه قالب سایت خود اگه فایل Register.template.php وجود دارد، این تغییرات را در آن ایجاد کنید و اگر نیست در پوشه قالب پیش فرض در فایل Register.template.php این تغییرات را اعمال کنید. | درون پوشه قالب سایت خود اگه فایل Register.template.php وجود دارد، این تغییرات را در آن ایجاد کنید و اگر نیست در پوشه قالب پیش فرض در فایل Register.template.php این تغییرات را اعمال کنید. | ||
| سطر ۱۵۳: | سطر ۱۴۵: | ||
کد زیر را پیدا کنید: | کد زیر را پیدا کنید: | ||
| − | < | + | <source lang="php"> |
| − | + | ||
| − | + | ||
// Are there age restrictions in place? | // Are there age restrictions in place? | ||
if (!empty($modSettings['coppaAge'])) | if (!empty($modSettings['coppaAge'])) | ||
| − | + | ||
| − | + | </source> | |
| − | </ | + | |
و قبل از آن این کد را قرار دهید | و قبل از آن این کد را قرار دهید | ||
| − | < | + | <source lang="php"> |
| − | + | ||
| − | + | ||
// Start of Anti-bot Registration Puzzles Mod | // Start of Anti-bot Registration Puzzles Mod | ||
echo '<tr valign="top"> | echo '<tr valign="top"> | ||
| سطر ۱۷۹: | سطر ۱۶۸: | ||
</tr>'; | </tr>'; | ||
// End of Anti-bot Registration Puzzles Mod | // End of Anti-bot Registration Puzzles Mod | ||
| − | + | ||
| − | + | </source> | |
| − | </ | + | |
در آخرین مرحله در فایل Modifications.english.php در پوشه languages در داخل پوشه قالب پیش فرض این تغییرات را ایجاد کنید | در آخرین مرحله در فایل Modifications.english.php در پوشه languages در داخل پوشه قالب پیش فرض این تغییرات را ایجاد کنید | ||
| سطر ۱۸۷: | سطر ۱۷۵: | ||
قبل از کد | قبل از کد | ||
| − | < | + | <source lang="php"> |
| − | + | ||
| − | + | ||
?> | ?> | ||
| − | + | ||
| − | + | </source> | |
| − | </ | + | |
این کد را قرار دهید | این کد را قرار دهید | ||
| − | < | + | <source lang="php"> |
| − | + | ||
| − | + | ||
$txt['puzzle_colors'] = 'Which word is the same as its color'; | $txt['puzzle_colors'] = 'Which word is the same as its color'; | ||
$txt['puzzle_math'] = 'What is the sum of (as a number)'; | $txt['puzzle_math'] = 'What is the sum of (as a number)'; | ||
| سطر ۲۴۴: | سطر ۲۲۹: | ||
$txt['puzzle_18'] = 'EIGHTEEN'; | $txt['puzzle_18'] = 'EIGHTEEN'; | ||
$txt['puzzle_19'] = 'NINETEEN'; | $txt['puzzle_19'] = 'NINETEEN'; | ||
| − | + | ||
| − | + | </source> | |
| − | </ | + | |
در صورتی که میخواهید این مد به صورت کاملا فارسی نمایش داده شود تغییرات مرحله آخر را در فایل Modifications.persian.php نیز انجام داده و عبارات آن را ترجمه کنید. | در صورتی که میخواهید این مد به صورت کاملا فارسی نمایش داده شود تغییرات مرحله آخر را در فایل Modifications.persian.php نیز انجام داده و عبارات آن را ترجمه کنید. | ||
| سطر ۲۵۲: | سطر ۲۳۶: | ||
برای مثال | برای مثال | ||
| − | < | + | <source lang="php"> |
| − | + | ||
| − | + | ||
$txt['puzzle_math'] = 'What is the sum of (as a number)'; | $txt['puzzle_math'] = 'What is the sum of (as a number)'; | ||
$txt['puzzle_math'] = 'حاصل عددی عبارت مقابل چیست؟ '; | $txt['puzzle_math'] = 'حاصل عددی عبارت مقابل چیست؟ '; | ||
| − | + | ||
| − | + | </source> | |
| − | </ | + | |
'''گردآورنده :''' | '''گردآورنده :''' | ||
| سطر ۲۶۶: | سطر ۲۴۸: | ||
{{کپی رایت}} | {{کپی رایت}} | ||
| + | |||
[[رده:شروع با SMF]][[رده:ترفندهای SMF]][[رده:سوالات متداول SMF]] [[رده:مقالات SMF]] | [[رده:شروع با SMF]][[رده:ترفندهای SMF]][[رده:سوالات متداول SMF]] [[رده:مقالات SMF]] | ||
نسخهٔ کنونی تا ۱۸ آوریل ۲۰۱۱، ساعت ۱۱:۱۴
مقدمه
برای اینکه یک سری سوال در هنگام عضویت در SMF پرسیده شود بسته توسعه دهنده Anti-Bot Registration Puzzles را نصب میکنیم
روش کار
در پوشه Sources فایل Register.php را باز کنید و این کد را پیدا کنید:
<source lang="php">
// Are they under age, and under age users are banned?
</source>
و قبل از آن کد زیر را قرار دهید
<source lang="php">
// 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
</source>
سپس کد زیر را پیدا کنید:
<source lang="php">
// Under age restrictions?
if (!empty($modSettings['coppaAge']))
{
$context['show_coppa'] = true;
$context['coppa_desc'] = sprintf($txt['register_age_confirmation'], $modSettings['coppaAge']);
}
</source>
و بعد از آن این کد را قرار دهید:
<source lang="php">
// 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\', "$a[0] $a[4] $a[1] $a[5] $a[2] =", 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\', \'\'.($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]]).\' = \', 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 .= \'\'. $txt[\'puzzle_\'.$c]
.\' \';
else
$d .= \'\'. $txt[\'puzzle_
\'.$b[$j]] .\' \';
$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
</source>
درون پوشه قالب سایت خود اگه فایل Register.template.php وجود دارد، این تغییرات را در آن ایجاد کنید و اگر نیست در پوشه قالب پیش فرض در فایل Register.template.php این تغییرات را اعمال کنید.
کد زیر را پیدا کنید:
<source lang="php">
// Are there age restrictions in place?
if (!empty($modSettings['coppaAge']))
</source>
و قبل از آن این کد را قرار دهید
<source lang="php">
// Start of Anti-bot Registration Puzzles Mod
echo '<tr valign="top">
<td width="40%" valign="top">
'.$txt['puzzle_'.$context['puzzle'][0]].'
'.$txt['puzzle_antibot'].'
</td>
<td>
'. ( empty($context['puzzle'][1]) ? : $context['puzzle'][1].'
' ) .'
<input type="text" name="'.$context['puzzle'][2].'" size="30" value="" tabindex="', $context['tabindex']++, '" />
</td>
</tr>';
// End of Anti-bot Registration Puzzles Mod
</source>
در آخرین مرحله در فایل Modifications.english.php در پوشه languages در داخل پوشه قالب پیش فرض این تغییرات را ایجاد کنید
قبل از کد
<source lang="php">
?>
</source>
این کد را قرار دهید
<source lang="php">
$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';
</source>
در صورتی که میخواهید این مد به صورت کاملا فارسی نمایش داده شود تغییرات مرحله آخر را در فایل Modifications.persian.php نیز انجام داده و عبارات آن را ترجمه کنید.
برای مثال
<source lang="php">
$txt['puzzle_math'] = 'What is the sum of (as a number)'; $txt['puzzle_math'] = 'حاصل عددی عبارت مقابل چیست؟ ';
</source>
گردآورنده : prin.ir
|
|