مرجع اصلی این مطلب اینجاست:
http://james.seng.cc/archives/000145.html
Ùˆ خلاصه کلیه Øقوق این اسکریپت مال نویسنده اش است.
نمونه اون هم میتونید توی وبلاگ خودش و در قسمت Comment ها ببینید:
http://james.seng.cc/
برای وارد کردن نظر جدید، لازمه یک کد گراÙیکی رو تایپ کنید. Ú©Ù‡ خب هر روباتی قادر به انجام این کار نیست Ùˆ روبات خیلی باهوشی لازم داره.
Ùایل ها رو از اینجا دریاÙت کنید. البته بهتره لینک مرجع اصلی رو Ú†Ú© کنید شاید نسخه جدیدی ارائه شده باشه. این راهنما رو برای نسخه 0.1c دارم مینویسم.
قبلا از Ùایلهایی Ú©Ù‡ ویرایش میکنید برای اطمینان BackUp بگیرید. Permission کلیه Ùایلهایی Ú©Ù‡ Upload میکنید باید 755 شود.
Ù†Øوه نصب اون برای MT 2.x Ùˆ MT 3.x تقریبا متÙاوت است Ú©Ù‡ هر کدوم جداگونه ØªÙˆØ¶ÛŒØ Ø¯Ø§Ø¯Ù‡ خواهد شد.
نصب برای MT 2.x
1. لازم است که GD.pm روی سرور نصب باشد. این یک Extension Library برای Perl است که بر روی سرورهای پرشین تولز نصب است.
2. یک دایرکتوری به عنوان cache برای این پلاگین باید ساخته بشه تا کدهایی که نمایش می دهد به طور موقتی Save کند. بهتره که این دایرکتوری بیرون از public_html باشد تا دسترسی روی وب به آن ممکن نباشد.
Permission این دایرکتوری باید 755 یا 775 یا 777 باشد تا قابلیت Write داشته باشد.
بعد از ساختن این دایرکتوری (به هر نامی Ú©Ù‡ میخواهید) لازم است Ùایل SCode.pm را Ú©Ù‡ همراه مجموعه دانلود کرده این باز کرده Ùˆ نام این دایرکتوری را در ابتدای Ùایل Ø§ØµÙ„Ø§Ø Ú©Ù†ÛŒØ¯:
;"/ my $tmpdir ="/ tmp
برای مثال اگر نام دایرکتوری را scodes گذاشته اید به صورت زیر خواهد شد: (منظور از username) نام user شما در cPanel است Ùˆ اگر از cPanel استÙاده نمیکنید باید آدرس کامل Ùایل روی سرور را بدهید:
;"/my $tmpdir ="/ home/username/scode
همچنین در این Ùایل تعداد رقمهای این کد را مشخص کنید:
;my $scode_length = 6
پیش Ùرض 6 رقمی است.
Ùایل را پس از اتمام تغییرات ذخیره کنید
3. Ùایل SCode.pm را در شاخه /lib/MT آپلود کنید.
4. Ùایل mt-scode.cgi را کنار بقیه Ùایلهای مووبل تایپ در شاخه اصلی آن آپلود کنید. (کنار Ùایل mt.cgi)
5. Ùایل scode.pl را در شاخه plugins آپلود کنید. اگر این شاخه را ندارید در کنار mt.cgi (شاخه اصلی مووبل تایپ) بسازید
6.Ùایل Comments.pm را Ú©Ù‡ در lib/MT/App قرار دارد باز کنید Ùˆ تغییرات زیر را وارد کنید.
این سه خط را پیدا کنید:
(('if (!$q->param('text
.((" return $app->handle_error($app->translate("Comment text is required
در انتهای آن Ùˆ در یک خط جدید کدهای زیر را اضاÙÙ‡ کنید:
SecurityCode hack start #
#
require MT::SCode
('my $code = $q->param('code
('my $scode = $q->param('scode
(my $sscode = MT::SCode::scode_get($code
} (if ($scode ne $sscode
(return $app->handle_error($app->translate
;(("Wrong or missing Security Code."
{
;(MT::SCode::scode_delete($code
;(MT::SCode::scode_create($code
#
Security hack ends #
برای اینکه مطمئن شوید درست انجام داده اید، بعد از کدهای جدید این خطوط باید باشد:
;my $comment = MT::Comment->new
.$comment->ip($app->remote_ip);7
در مرØله بعدی لازم است بعضی تمپلیتها را ادیت کنید. وارد مووبل تایپ شوید (Login) ØŒ تمپلیتهای زیر باید ویرایش شوند:
Individual Entry Template
Comment Listing Template
Comment Preview Template
Comment Error Template
در تمپلیتهای Ùوق، درست قبل از خط زیر:
"input type="submit>
این کدها را اضاÙÙ‡ کنید:
<-- Security Code Check --!>
"< <input type="hidden" id="code" name="code" value="<$MTSecurityCode$>"
<img border="0" src="<$MTCGIPath$><$MTSecurityImage$>?code=<$MTSec urityCode$>"><br />
</input tabindex=3 id="scode" name="scode" /><br/><br>
<-- end of Security Code Check --!>
در هر 4 تمپلیت Ùˆ هر تمپلیت خاص دیگری Ú©Ù‡ خود ساخته اید Ùˆ Ùرم ورود نظرات دارد باید تغییرات Ùوق اعمال شود.
8. اگر از MTBlackList استÙاده میکنید، یا باید آن را غیر Ùعال کنید یا اینکه کدهای مرØله 6 را به Ùایل MTBlPost.pm Ú©Ù‡ در شاخه plugins قرار دارد اضاÙÙ‡ کنید.
9. تمام شد. یه تستی بکنید ببینید نتیجه چی شده.
نصب برای MT3.x
ابتدا 9 مرØله Ùوق را انجام دهید.
10. Ùایل lib/MT/Template/Context.pm را باز کنید Ùˆ دنبال عبارت بگردید:
sub: _hdlr_comment_fields
چنین چیزی خواهید دید:
sub _hdlr_comment_fields {
my ($ctx, $args, $cond) = @_;
کدهای زیر را بعد از آن وارد کنید:
# Security code validation
require MT::SCode; # <-- new addition
srand int (time/10)+$$;
my $securitycode = int rand(MT::SCode::scode_tmp());
$securitycode++;
MT::SCode::scode_create($securitycode);
# End Security code hack
کمی پایین تر کدهای زیر را پیدا کنید:
<MT_TRANS phrase="Remember me?">
<input type="radio" id="remember" name="bake****ie" />
Ùˆ بعد از آن کدهای زیر را اضاÙÙ‡ کنید:
<!-- Security Code Check -->
<input type="hidden" id="code" name="code" value="$securitycode" />
<label for="scode">Security Code:</label><br />
<img border="0" alt="Please enter the security code you see here" src="$path/mt-scode.cgi?code=$securitycode" /><br />
<input tabindex="3" id="scode" name="scode" /><br /><br />
<!-- end of Security Code Check -->
کمی پایین تر عبارت زیر را پیدا کنید:
<MT_TRANS phrase="Remember me?">
<input type="radio" id="remember" name="bake****ie" />
و بعد از آن کدهای زیر را وارد کنید:
<!-- Security Code Check -->
<input type="hidden" id="code" name="code" value="$securitycode" />
<label for="scode">Security Code:</label><br />
<img border="0" alt="Please enter the security code you see here" src="$path/mt-scode.cgi?code=$securitycode" /><br />
<input tabindex="3" id="scode" name="scode" /><br /><br />
<!-- end of Security Code Check -->
تنظیمات بیشتر:
برای تغییر رنگ کدهای تولید شده Ùایل mt-scode.cgi را باز کرده Ùˆ متغیرهای
$c_background, $c_border, $c_line , $c_code
را Ø§ØµÙ„Ø§Ø Ú©Ù†ÛŒØ¯
اگر روزانه اÙراد زیادی برای شما نظر Ù…ÛŒ دهند تعداد کدهای تولید شده را در Ùایل SCode.pm عوض کنید:
my $scode_maxtmp = 50;ا
ین راهنما از روی راهنمای موجود در مجموعه Ùایل دریاÙت شده نوشته شده Ú©Ù‡ در انتهای آن یک FAQ هم دارد Ú©Ù‡ به مشکلات معمول پاسخ داده شده. در صورت نیاز آن را هم بررسی کنید.
امیدوارم بدرد بچه های شبگرد خورده باشه
http://james.seng.cc/archives/000145.html
Ùˆ خلاصه کلیه Øقوق این اسکریپت مال نویسنده اش است.
نمونه اون هم میتونید توی وبلاگ خودش و در قسمت Comment ها ببینید:
http://james.seng.cc/
برای وارد کردن نظر جدید، لازمه یک کد گراÙیکی رو تایپ کنید. Ú©Ù‡ خب هر روباتی قادر به انجام این کار نیست Ùˆ روبات خیلی باهوشی لازم داره.
Ùایل ها رو از اینجا دریاÙت کنید. البته بهتره لینک مرجع اصلی رو Ú†Ú© کنید شاید نسخه جدیدی ارائه شده باشه. این راهنما رو برای نسخه 0.1c دارم مینویسم.
قبلا از Ùایلهایی Ú©Ù‡ ویرایش میکنید برای اطمینان BackUp بگیرید. Permission کلیه Ùایلهایی Ú©Ù‡ Upload میکنید باید 755 شود.
Ù†Øوه نصب اون برای MT 2.x Ùˆ MT 3.x تقریبا متÙاوت است Ú©Ù‡ هر کدوم جداگونه ØªÙˆØ¶ÛŒØ Ø¯Ø§Ø¯Ù‡ خواهد شد.
نصب برای MT 2.x
1. لازم است که GD.pm روی سرور نصب باشد. این یک Extension Library برای Perl است که بر روی سرورهای پرشین تولز نصب است.
2. یک دایرکتوری به عنوان cache برای این پلاگین باید ساخته بشه تا کدهایی که نمایش می دهد به طور موقتی Save کند. بهتره که این دایرکتوری بیرون از public_html باشد تا دسترسی روی وب به آن ممکن نباشد.
Permission این دایرکتوری باید 755 یا 775 یا 777 باشد تا قابلیت Write داشته باشد.
بعد از ساختن این دایرکتوری (به هر نامی Ú©Ù‡ میخواهید) لازم است Ùایل SCode.pm را Ú©Ù‡ همراه مجموعه دانلود کرده این باز کرده Ùˆ نام این دایرکتوری را در ابتدای Ùایل Ø§ØµÙ„Ø§Ø Ú©Ù†ÛŒØ¯:
;"/ my $tmpdir ="/ tmp
برای مثال اگر نام دایرکتوری را scodes گذاشته اید به صورت زیر خواهد شد: (منظور از username) نام user شما در cPanel است Ùˆ اگر از cPanel استÙاده نمیکنید باید آدرس کامل Ùایل روی سرور را بدهید:
;"/my $tmpdir ="/ home/username/scode
همچنین در این Ùایل تعداد رقمهای این کد را مشخص کنید:
;my $scode_length = 6
پیش Ùرض 6 رقمی است.
Ùایل را پس از اتمام تغییرات ذخیره کنید
3. Ùایل SCode.pm را در شاخه /lib/MT آپلود کنید.
4. Ùایل mt-scode.cgi را کنار بقیه Ùایلهای مووبل تایپ در شاخه اصلی آن آپلود کنید. (کنار Ùایل mt.cgi)
5. Ùایل scode.pl را در شاخه plugins آپلود کنید. اگر این شاخه را ندارید در کنار mt.cgi (شاخه اصلی مووبل تایپ) بسازید
6.Ùایل Comments.pm را Ú©Ù‡ در lib/MT/App قرار دارد باز کنید Ùˆ تغییرات زیر را وارد کنید.
این سه خط را پیدا کنید:
(('if (!$q->param('text
.((" return $app->handle_error($app->translate("Comment text is required
در انتهای آن Ùˆ در یک خط جدید کدهای زیر را اضاÙÙ‡ کنید:
SecurityCode hack start #
#
require MT::SCode
('my $code = $q->param('code
('my $scode = $q->param('scode
(my $sscode = MT::SCode::scode_get($code
} (if ($scode ne $sscode
(return $app->handle_error($app->translate
;(("Wrong or missing Security Code."
{
;(MT::SCode::scode_delete($code
;(MT::SCode::scode_create($code
#
Security hack ends #
برای اینکه مطمئن شوید درست انجام داده اید، بعد از کدهای جدید این خطوط باید باشد:
;my $comment = MT::Comment->new
.$comment->ip($app->remote_ip);7
در مرØله بعدی لازم است بعضی تمپلیتها را ادیت کنید. وارد مووبل تایپ شوید (Login) ØŒ تمپلیتهای زیر باید ویرایش شوند:
Individual Entry Template
Comment Listing Template
Comment Preview Template
Comment Error Template
در تمپلیتهای Ùوق، درست قبل از خط زیر:
"input type="submit>
این کدها را اضاÙÙ‡ کنید:
<-- Security Code Check --!>
"< <input type="hidden" id="code" name="code" value="<$MTSecurityCode$>"
<img border="0" src="<$MTCGIPath$><$MTSecurityImage$>?code=<$MTSec urityCode$>"><br />
</input tabindex=3 id="scode" name="scode" /><br/><br>
<-- end of Security Code Check --!>
در هر 4 تمپلیت Ùˆ هر تمپلیت خاص دیگری Ú©Ù‡ خود ساخته اید Ùˆ Ùرم ورود نظرات دارد باید تغییرات Ùوق اعمال شود.
8. اگر از MTBlackList استÙاده میکنید، یا باید آن را غیر Ùعال کنید یا اینکه کدهای مرØله 6 را به Ùایل MTBlPost.pm Ú©Ù‡ در شاخه plugins قرار دارد اضاÙÙ‡ کنید.
9. تمام شد. یه تستی بکنید ببینید نتیجه چی شده.
نصب برای MT3.x
ابتدا 9 مرØله Ùوق را انجام دهید.
10. Ùایل lib/MT/Template/Context.pm را باز کنید Ùˆ دنبال عبارت بگردید:
sub: _hdlr_comment_fields
چنین چیزی خواهید دید:
sub _hdlr_comment_fields {
my ($ctx, $args, $cond) = @_;
کدهای زیر را بعد از آن وارد کنید:
# Security code validation
require MT::SCode; # <-- new addition
srand int (time/10)+$$;
my $securitycode = int rand(MT::SCode::scode_tmp());
$securitycode++;
MT::SCode::scode_create($securitycode);
# End Security code hack
کمی پایین تر کدهای زیر را پیدا کنید:
<MT_TRANS phrase="Remember me?">
<input type="radio" id="remember" name="bake****ie" />
Ùˆ بعد از آن کدهای زیر را اضاÙÙ‡ کنید:
<!-- Security Code Check -->
<input type="hidden" id="code" name="code" value="$securitycode" />
<label for="scode">Security Code:</label><br />
<img border="0" alt="Please enter the security code you see here" src="$path/mt-scode.cgi?code=$securitycode" /><br />
<input tabindex="3" id="scode" name="scode" /><br /><br />
<!-- end of Security Code Check -->
کمی پایین تر عبارت زیر را پیدا کنید:
<MT_TRANS phrase="Remember me?">
<input type="radio" id="remember" name="bake****ie" />
و بعد از آن کدهای زیر را وارد کنید:
<!-- Security Code Check -->
<input type="hidden" id="code" name="code" value="$securitycode" />
<label for="scode">Security Code:</label><br />
<img border="0" alt="Please enter the security code you see here" src="$path/mt-scode.cgi?code=$securitycode" /><br />
<input tabindex="3" id="scode" name="scode" /><br /><br />
<!-- end of Security Code Check -->
تنظیمات بیشتر:
برای تغییر رنگ کدهای تولید شده Ùایل mt-scode.cgi را باز کرده Ùˆ متغیرهای
$c_background, $c_border, $c_line , $c_code
را Ø§ØµÙ„Ø§Ø Ú©Ù†ÛŒØ¯
اگر روزانه اÙراد زیادی برای شما نظر Ù…ÛŒ دهند تعداد کدهای تولید شده را در Ùایل SCode.pm عوض کنید:
my $scode_maxtmp = 50;ا
ین راهنما از روی راهنمای موجود در مجموعه Ùایل دریاÙت شده نوشته شده Ú©Ù‡ در انتهای آن یک FAQ هم دارد Ú©Ù‡ به مشکلات معمول پاسخ داده شده. در صورت نیاز آن را هم بررسی کنید.
امیدوارم بدرد بچه های شبگرد خورده باشه