آموزش سانسور کلمات و عبارات به همراه لیست کامل کلمات ناشایست و مشکل دار
امتیاز:

دوستان، دیدم کسی تو انجمن در این رابطه بحث نکرده و مرجعی برای این قضیه وجود نداره، گفتم خودم یک آموزش براتون بگذارم تا هم لیست کلمات رو داشته باشید و به کمک هم کاملترش کنیم و هم اینکه چون در حالت عادی در VBulletin نمیشه عبارات رو هم سانسور کرد و فقط سانسور کلمات قابل انجام هست، Fix این مورد رو هم خدمتتون آموزش بدهم. این اقدامات برای سالم ماندن محتوی سایت شما و نیز خلاصی از بوجود آمدن مشکل برای سایت یا شما، چه در سیستم سانسور دولتی ایران و چه در سایت هایی مثل گوگل (موتور های جستجو) بسیار حائز اهمیت می باشد.
این آموزش برای VBulletin نسخه 4.2.0 هستش و ادیت ما در فایل includes/functions.php/ انجام میگیره... لذا اگر کسی از نسخه های دیگری استفاده می کنه، فقط در صورتیکه کد این فایل با آموزش ما تفاوت داشت، میتونه فایل رو بفرسته تا Fix آن را هم اعلام کنیم.
خوب، ببینید سیستم VBulletin میاد کلمات لیست شده در بخش تنظیمات سانسور رو پالایش می کنه تا بتونه از لیست پالایش شده و قابل فهم سیستم برای این مقصود استفاده کنه. یکی از مواردی که پالایش میشه جدا کردن کلمات وارد شده توسط هر گونه فاصله ای هستش، یعنی Space و Tab و Enter.... ما برای وجود همین Space در این جداسازی هست که نمیتونیم عبارات رو برای سیستم تعریف کنیم... یعنی مثلا در حالت عادی نمیشه تعریف کرد اگر عبارت "damned burn" در محتوی وحود داشت آن را به * تبدیل کرده و سانسور نماید. حال ما قصد داریم این مورد رو fix کنیم تا بشه چنین عبارت هایی رو هم در سیستم تعریف کرد.
برای این کار فایل functions.php را در فولدر includes از محل نصب VBulletin خود بیابید و با یک ادیتور مناسب آن را باز کنید. سپس در خط 1142 به دنبال عبارت زیر بگردید:
اول این خط رو کپی کنید، سپس قبل از این خط // قرار دهید تا کامنت شود. در نهایت در خط بعد کد کپی شده را قرار دهید و قبل از r\ موجود در آن یک Space وجود داره که می بایست حذف بشه. در نهایت کد بالا بصورت زیر در میاد:کد PHP:
$censorwords = preg_split('#[ \r\n\t]+#', $vbulletin->options['censorwords'], -1, PREG_SPLIT_NO_EMPTY);
حالا فایل رو ذخیره کنید. خوب این از مشکل جداسازی Space ها... در نتیجه دو تا نکته بوجود میاد:کد PHP:
//$censorwords = preg_split('#[ \r\n\t]+#', $vbulletin->options['censorwords'], -1, PREG_SPLIT_NO_EMPTY);
$censorwords = preg_split('#[\r\n\t]+#', $vbulletin->options['censorwords'], -1, PREG_SPLIT_NO_EMPTY); # EDITED BY ALEX #
- نکته اول: حالا دیگه میتونید عبارات (چند کلمه که با Space از هم جدا شده اند) را برای سیستم سانسور تعریف کنید. برای این کار می بایست عبارت را بین { } قرار دهید. مثل {damned burn} یا {one two three four}
- نکته دوم: دیگه نباید برای جداسازی کلمات و یا عبارات تعریف شده در تنظیمات سانسور، از Space استفاده کنید. برای این منظور می توانید از Tab و یا بهتر از آن، از Enter برای جداسازی استفاده شود. یعنی در هر خط یک کلمه یا عبارت.
حالا فقط میمونه لیست کلمات و عباراتی که به فارسی و انگلیسی باید برای سیستم تعریف بشوند. من قبلا تا جایی که فرصت کردم و فکرم قد داده یک لیست آماده کردم که براتون ضمیمه می کنم. محتویات این لیست رو می بایست کپی کنید و سپس آن را در در تنظیمات اصلی انجمن > تنظیمات سانسور (فیلترگذاری) قرار دهید. حالا یک نکته دیگر در مورد این لیست:
- نکته سوم: یک نکته ظریف در وارد کردن کلمات در این لیست هستش که باید حتما توجه کنید. بالفرض شما کلمه "word" و نیز عبارت "one word" رو می خواهید سانسور کنید. نکته ای که وجود داره اینه که لیست به ترتیب کلمات و عبارات وارد شده عمل می کنه، لذا اول باید عبارت "one word" رو در لیست قرار بدهید سپس کلمه "word" را. دلیل این کار این است که اگر برعکس وارد کنید ابتدا توی پست های انجمن تون "one word" بصورت "**** one" تبدیل می شود، سپس کلمه "one" تغییری نمی کند و باقی می ماند. ولی اگر اول عبارت رو وارد کنید سپس کلمات موجود در آن رو، عبارت "one word" بصورت کامل سانسور شده و سیستم به همین روند جلو می رود. پس بطور خلاصه: ابتدا عبارات رو وارد کنید سپس در صورت نیاز و بصورت منفرد کلماتی که در این عبارات نقش داشته اند رو.
در مورد خود سیستم هم حتما اطلاع دارید چطوری هستش، من فقط دوباره تکرار می کنم که اشتباها لیست رو تغییر ندهید:
- نکته چهارم: اگر می خواهید کلمه ای که در هر ترکیبی که باشد سانسور شود می بایست بصورت ساده آن را وارد نمایید. مثلا اگر کلمه "اول" رو در لیست وارد کنید، در پست های انجمن و در کلمات کلمات "اول"، "اولین"، "متداول"، ... سه حرف "اول" که پشت سر هم آمده اند به *** تبدیل خواهند شد و خواهید داشت: "***"، "***ین"، "متد***" ............. لذا اگر می خواهید فقط کلمه اول حذف شود می بایست دو طرف آن از { } استفاده کنید. اگر مشتقات این کلمه هم مد نظر تون هست می بایست جدا جدا تعریف شوند چون اگر به حالت اول وارد کنید احتمالا کلمات درست و بدون مشکل هم سانسور خواهند شد، مثل "متداول".....
- نکته پنجم: عبارات هم از قانون فوق پیروی می کنند. اگر دو طرفشان { } قرار دهید صرفا خودشان و اگر ندهید از وسط عبارات دیگر حذف می گردند. گرچه معمولا عبارات مثل کلمات نیستند و این دو حالت فرق چندانی ندارد و صرفا جهت منظم بودن بهتر هستش در دو طرف خود { } ها را داشته باشند؛ ولی مثال نقض هم وجود دارد. مثلا اگر به عبارتی به صورت "سلام علیک" را بدون آکولاد ها وارد کنید، عبارات "السلام علیک"، "السلام علیکن" و ... بصورت "ال*********" و "ال***********" سانسور خواهند شد (توجه داشته باشید که در عبارات Space های میان کلمات هم به * تبدیل می گردند).
ضمنا، پیشاپیش بابت کلمات موجود در این لیست از شما عذر می خواهم... منتهی ناچارا می بایست هر گونه کلمات بد و ناشایست و نیز فحش و کلمات سیاسی و ... در این لیست قرار می گرفت تا جهت سانسور محتوی مورد استفاده سیستم قرار گیرد.
*** در نهایت دو خواهش از دوستان دارم... اول این که اگر چیزی به فکرتون رسید که به لیست اضافه کنید، فقط همان موارد را برای بنده پیغام خصوصی کنید تا پس از وارد شدن در لیست اصلی و اطمینان حاصل کردن از صحت ورود اطلاعات در آن طبق نکات موجود، لیست کلمات رو در این پست اول آپدیت کنم. ثانیا فایل های ورژن های دیگر اگر مثل فایل نسخه 4.2.0 نبودند، برای بنده بفرستید تا بررسی و fix کنم و آموزش آن نسخه را نیز در این جا قرار دهم.
--------------------------------------------
:Change Log
version 1.0 has been added
version 1.1 has been added
version 1.2 has been added
--------------------------------------------
موفق و پیروز باشید
ویرایش توسط ≡ ALEX ≡ : 2013/03/09 در ساعت 01:34 AM
علاقه مندی ها (Bookmarks)