مبحث php شاخص مبارزه با smf. اولین گام در بهینه سازی موتور جستجو تالار ماشین های ساده: حذف حق چاپ و لینک های خارجی

با سلام خدمت خوانندگان محترم سایت وبلاگ. بنابراین موضوع راه اندازی موتور فروم به نام SMF را که در پست مربوط به آن شروع کردیم را ادامه می دهیم. در آنجا ما هنوز انجمن را از نظر ترجمه از رابط انگلیسی روسی نکرده ایم. در حال حاضر خیلی قابل ارائه به نظر نمی رسد، اما پس از Russification (اگر قبلاً انجام نشده باشد) و ایجاد بخش های مناسب، ظاهر آن به طور قابل توجهی بهبود می یابد.

امروز به تم های طراحی نگاه می کنیم و آن را روسی می کنیم و همچنین کامپوننت JFusion را نصب می کنیم که می تواند با هر دو موتور (Jumla و SMF) کار کند که به ما امکان می دهد یک پایگاه کاربر مشترک برای دو و فقط یک فرم برای آنها داشته باشیم. ثبت نام و ورود

تم ها و نصب بسته زبان روسی

موتور Simple Machines Forum از قابلیت تغییر تم ها پشتیبانی می کند و می توان آنها را هم برای کل انجمن و هم برای بخش های جداگانه آن تغییر داد. من شخصا از تم پیش فرض استفاده کردم، اما تغییرات زیادی در آن به صورت دستی ایجاد کردم. به طور خاص، من پس زمینه، رنگ برخی از عناصر را تغییر دادم، یک ساعت در درایو فلش، یک رادیو و موارد دیگر اضافه کردم، که در پست های بعدی در این بخش در مورد آنها صحبت خواهم کرد.

چرا هنگام ایجاد انجمن از هیچ یک از تم های اضافی استفاده نکردم؟ خوب، احتمالاً همه چیز به تنبلی من مربوط می شود. نه، من برای جستجو و دانلود تم های جدید تنبلی نکردم، خوشبختانه جاهای زیادی وجود دارد که می توان این کار را انجام داد. تنبلی من جای دیگری است.

واقعیت این است که انواع حالت های این موتور که برای گسترش قابلیت های آن طراحی شده اند، به طور خاص بر روی موضوع پیش فرض متمرکز شده اند. بگذار توضیح بدهم. اگر یک تم پیش فرض دارید، اضافه کردن یک مد به SMF در عرض چند ثانیه انجام می شود و، به عنوان یک قاعده، نیازی به ویرایش دستی کد ندارد.

اگر یک مد با موضوع طراحی متفاوت از حالت پیش فرض نصب کنید، همانطور که می گویند باید تمام قسمت های خام را با یک فایل پردازش کنید. به عبارت دیگر، شما باید از FileZilla استفاده کنید (آن را دانلود و پیکربندی کنید؛ می توانید از طریق FTP به سایت دسترسی پیدا کنید و برای ویرایش فایل های موتور انجمن خود باز کنید، که این مد تغییراتی در آن ایجاد می کند.

سپس به دنبال مکان مناسب در کد بگردید و اقدامات لازم را انجام دهید: یا جایگزین کردن کد، یا حذف، یا اضافه کردن بخشی از کد قبل یا بعد از قطعه مورد نیاز. اگر در نظر داشته باشید که ممکن است حدود ده فایل وجود داشته باشد که باید تغییراتی در آنها ایجاد شود، می توانید تصور کنید که انجام این کار چقدر دردسرساز خواهد بود. در این صورت باید بسیار مراقب باشید و اشتباه نکنید زیرا در غیر این صورت ممکن است انجمن اصلا باز نشود.

اگر تمام مشکلات بالا در استفاده از یک تم غیر پیش فرض شما را نمی ترساند، می توانید آنها را از اینجا دانلود کنید. مضامین موجود در آن به بخش‌هایی (مینیمالیسم، نزدیک به کلاسیک، مدرن و غیره) طبقه‌بندی شده‌اند و برای هر کدام می‌توانید یک اسکرین شات از آن را به صورت تمام صفحه ببینید. نحوه نصب همین تم ها را کمی بعد به شما خواهم گفت.

اگر همانطور که در قسمت اول این کار توضیح داده شد در مرحله آپلود فایل های موتور در هاست، انجمن را روسی سازی نکردید (لینک در ابتدای مقاله را ببینید)، اکنون می توانید این کار را انجام دهید. بسته زبان روسی به همراه مورد مورد نیاز، که قبلاً از این صفحه دانلود شده است، باید بسته شود و سپس پوشه Themes را در پوشه اصلی کپی کنید، جایی که از قبل یک فهرست با همین نام وجود دارد.

پس از اتمام کپی، باید با استفاده از نام کاربری و رمز عبور مدیر وارد انجمن شوید. "Admin" را در منوی بالا انتخاب کنید و سپس روی "Server Settings" در ستون سمت چپ کلیک کنید.

در پنجره ای که باز می شود، مورد "زبان پیش فرض انجمن" را پیدا کنید و زبان روسی را از لیست کشویی انتخاب کنید و سپس روی دکمه "ذخیره" در پایین صفحه کلیک کنید.

تمام، اکنون کنفرانس شما کاملاً به زبان روسی است.

حل مشکلات هنگام نصب مدهایی که از زبان روسی پشتیبانی نمی کنند

لطفا توجه داشته باشید که در آینده، هنگام افزودن مودهایی به SMF که ترجمه روسی ندارند، ممکن است گاهی اوقات با نمایش تنظیمات مود در پنل مدیریت با مشکل مواجه شوید. در واقع، همین تنظیمات به سادگی در پنل مدیریت قابل مشاهده نخواهند بود، زیرا ... هیچ فایل Russification برای آنها وجود نخواهد داشت. بنابراین، شما دو گزینه برای حل این مشکل خواهید داشت.

راه اول این است که برای کل انجمن به زبان انگلیسی سوئیچ کنید. می توانید ببینید که چگونه می توان این کار را در چند پاراگراف بالا انجام داد. بر این اساس، پس از انجام اقدامات لازم با این تنظیمات، باید دوباره به زبان روسی برگردید.

روش دوم پیچیده تر است، اما به ما این امکان را می دهد که تنظیمات مودهای نصب شده را همیشه در پنل مدیریت ببینیم و نه تنها زمانی که زبان انگلیسی فعال است. من در مورد این نکته با جزئیات صحبت می کنم زیرا این سوال که شخصی یک مود را نصب کرده است و نمی تواند تنظیمات آن را در پنل مدیریت کنفرانس خود پیدا کند بسیار رایج است.

بنابراین، روش دوم اضافه کردن رشته‌های ترجمه به فایل‌های Russification برای مدهای تازه اضافه شده است. بعداً به شما خواهم گفت که چگونه تعیین کنید کدام پرونده های Russification باید تغییر کنند و از کجا آنها را دریافت کنید. در ضمن به طور موقت می توانید از روش اول استفاده کنید.

نصب JFusion برای ادغام وب سایت و انجمن

ابتدا باید JFusion و Russification آن را دانلود کنید. پس از ورود به پنل مدیریت جوملا، اقدامات استاندارد را انجام می دهیم: از منوی بالای پنل مدیریت موارد "برنامه های افزودنی" - "نصب/حذف" - "دانلود فایل بسته" - دکمه "مرور" را انتخاب کنید - فایل را با جزء jfusion_package.zip در رایانه خود - روی دکمه " آپلود فایل و نصب>" کلیک کنید.

پس از این، پنجره ای ظاهر می شود که به شما اطلاع می دهد که مؤلفه با موفقیت نصب شده است. در صورت بروز مشکل، می‌توانید با راه‌حل‌های برخی از آن‌ها در پیوندی که دقیقاً در بالا داده شده است آشنا شوید.

اکنون نوبت به Russification است که دقیقاً به همان روشی که خود مؤلفه اضافه می شود. آن ها دنباله اقدامات را تکرار کنید: "افزونه ها" - "نصب/حذف" - "دانلود فایل بسته" - دکمه "مرور" - فایل JFusion Russification را در رایانه خود پیدا کنید - روی دکمه "دانلود فایل و نصب" کلیک کنید. اکنون می توانیم در مسیر "Components" - "JFusion" به تنظیمات بروید و مطمئن شوید که Russification با موفقیت اضافه شده است و کار می کند.

موفق باشی! به زودی شما را در صفحات سایت وبلاگ می بینیم

ممکن است علاقه مند باشید

راه اندازی JFusion برای ترکیب انجمن SMF و سایت جوملا
ماژول های JFusion برای نمایش پیام ها از انجمن در وب سایت و همچنین ایجاد دکمه در SMF برای بازگشت به جوملا
ایجاد آیتم منو در جوملا برای ورود به انجمن و انتقال ثبت نام کاربر از SMF به سایت
نصب انجمن SMF - ادغام جوملا 1.5 و انجمن ماشین های ساده با استفاده از مؤلفه JFusion
برنامه های افزودنی برای جوملا - چه هستند و کجا می توان اجزا، ماژول ها و پلاگین ها را برای جوملا دانلود کرد، نحوه نصب و حذف آنها
جزء K2 برای ایجاد وبلاگ، کاتالوگ و پورتال در جوملا - ویژگی ها، نصب و روسی سازی گالری عکس برای جوملا - قسمت 3 - ایجاد گالری در جوملا 1.5 با استفاده از کامپوننت Phoca Gallery - اضافه کردن دسته ها و آپلود تصاویر در گالری عکس
ARTIO JoomSEF - راه اندازی پیوندها و عنوان CNC (SEF) در جوملا، و همچنین ایجاد یک صفحه خطای 404 با استفاده از این پسوند
Akeeba Backup (جوملا پک سابق) - ایجاد یک نسخه پشتیبان از یک سایت جوملا و بازیابی از یک نسخه پشتیبان با دو کلیک

بیایید بلافاصله با کد اسکریپت اصلی شروع کنیم:

#!/usr/bin/perl

اسکریپت # which-forum.pl
# (c) 2010 Alexandr A Alexeev, http://site/

سخت استفاده کنید

# خط نظر - برای دقت
# اگر وظیفه جمع آوری آمار موتور است، آن را همانطور که هست رها کنید
# اگر فهرستی از انجمن‌ها تهیه می‌کنید - نظر خود را لغو کنید

$داده من ;
$data .= $_while (<> ) ;

# بررسی کنید که چه مقدار توسط phpBB بدون پیوند در پاورقی ارائه شده است
چاپ "phpbb \n"
اگر ($data =~ /]+href="[^"]*http:\/\/(?:www\.)?phpbb\.com\/?"[^>]*>phpBB/iیا
# $data =~ /viewforum\.php\?[^""]*f=\d+/i یا
$data =~ /phpBB\-SEO/i یا
$data =~ /) ;
چاپ "ipb \n"
اگر ($data =~ /]+href="[^"]*http:\/\/(?:www\.)?invision(?:board|power)\.com\/?[^"]*"[^>]*> [^<]*IP\.Board/i یا
$data =~ /]+href="[^"]*http:\/\/(?:www\.)?invisionboard\.com\/?"[^>]*>Invision Power Board/iیا
$data =~ /

/منیا
$data =~ /index\.php\?[^""]*showforum=\d+/i) ;
چاپ "vbulletin \n"
اگر ($data =~ /طراحی شده توسط:؟[^<]+vBulletin[^<]+(?:Version)?/i یا
$data =~ /) ;
چاپ "smf \n"
اگر ($data =~ /]+href="[^"]*http:\/\/(?:www\.)?simplemachines\.org\/?"[^>]*>طراحی شده توسط SMF/iیا
$data =~ /index\.php\?[^""]*board=\d+\.0/i) ;
چاپ "punbb \n"
اگر ($data =~ /]+href="[^"]*http:\/\/(?:(?:www\.)?punbb\.org|punbb\.informer\.com)\/"[^>]*> PunBB/i) ؛ #یا
# $data =~ /viewforum\.php\?[^""]*id=\d+/i);
چاپ "fluxbb \n"
# if($data =~ /viewtopic\.php\?id=\d+/i یا
اگر ($data =~ /]+href="http:\/\/(?:www\.)fluxbb\.org\/?"[^>]*>FluxBB/i) ;
چاپ "exbb \n"
اگر ($data =~ /]+href="[^"]*http:\/\/(?:www\.)?exbb\.org\/?"[^>]*>ExBB/i) ؛ # یا
# $data =~ /forums\.php\?[^""]*forum=\d+/i);
چاپ "یاب \n"
اگر ($data =~ /]+href="[^"]*http:\/\/(?:www\.)?yabbforum\.com\/?"[^>]*>YaBB/iیا
$data =~ /YaBB\.pl\?[^""]*num=\d+/i ) ;
چاپ "dleforum \n"
اگر ($data =~ /\(طراحی شده توسط انجمن DLE\)<\/title>/منیا
$data =~ /]+href="[^"]+(?:http:\/\/(?:www\.)?dle\-files\.ru|act=copyright)[^"]*"> انجمن DLE<\/a>/من) ;
چاپ "ikonboard \n"
اگر ($data =~ /]+href="[^"]*http:\/\/(?:www\.)?ikonboard\.com\/?[^"]*"[^>]*>Ikonboard/iیا
$data =~ /\n"
اگر ($data =~ /\n"
# if($data =~ /forums\.php\?fid=\d+/i یا
# $data =~ /topic\.php\?fid=\d+/i یا
اگر ($data =~ /]+href="http:\/\/(?:www\.)?flashbb\.net\/?"[^>]*>FlashBB/i) ;
چاپ "stokesit \n"
# if($data =~ /forum\.php\?f=\d+/i یا
اگر ($data =~ /]+href="http:\/\/(?:www\.)?stokesit\.com\.au\/?"[^>]*>[^\/]*Stokes IT/i) ;
چاپ "تریبون \n"
# if($data =~ /topic\.php\?t=\d+/i یا
اگر ($data =~ /]+href=[""]?http:\/\/(?:www\.)?sopebox\.com\/?[""]?[^>]*>Podium/i) ;
چاپ "usebb \n"
# if($data =~ /forum\.php\?id=\d+/i یا
اگر ($data =~ /]+href="http:\/\/(?:www\.)?usebb\.net\/?"[^>]*>UseBB/i) ;
چاپ "wrforum \n"
# if($data =~ /index\.php\?fid=\d+/i یا
اگر ($data =~ /]+href="http:\/\/(?:www\.)?wr\-script\.ru\/?"[^>]*>WR\-Forum/i) ;
چاپ "yetanotherforumnet \n"
اگر ($data =~ /Yet Another Forum\.net/i یا
$data =~ /default\.aspx\?g=posts&t=\d+/i) ;

شما این و سایر اسکریپت های ذکر شده در پست را در اینجا خواهید یافت این آرشیو.

اسکریپت which-forum.plکد صفحه HTML را بررسی می کند تا ببیند آیا دارای امضاهای موتور انجمن است یا خیر. زمانی که از تکنیک مشابهی استفاده کردیم تعریف وردپرس و جوملا، اما چند تفاوت وجود دارد. اولاً، خود اسکریپت کد صفحه را بارگذاری نمی کند، بلکه آن را از stdin یا فایلی که به عنوان آرگومان ارسال می شود، می خواند. این به شما این امکان را می دهد که یک بار مثلاً با استفاده از wget صفحه را دانلود کنید و اگر بیش از یک آنالایزر داریم آن را از طریق چندین تحلیلگر اجرا کنید. ثانیاً در این اسکریپت وجود امضا 100% نشانه موتور است. دفعه قبل، وجود یک امضا فقط به موتور مربوطه وزن اضافه کرد و موتور با بیشترین وزن "برنده" شد. من تصمیم گرفتم که در این مورد، چنین رویکردی فقط کد را به طور غیر ضروری پیچیده می کند.

برای تست فیلمنامه، کمی تحقیق کردم. من فهرستی از چندین هزار فروم را گردآوری کردم و هر یک از آنها را از طریق اسکریپت خود اجرا کردم و بدین ترتیب درصد پاسخ های برنامه و محبوبیت موتورهای مختلف را تعیین کردم.

برای دریافت لیستی از انجمن هایی که استفاده کردم با تجزیه کننده گوگل شما. سوالاتی مانند این به موتور جستجو ارسال شد

سایت:forum.*.ru
سایت:talk.*.ru
سایت:board.*.ru
سایت: smf.*.ru
سایت: phpbb.*.ru
....

و غیره کد کامل ایجاد کننده پرس و جو را در فایل خواهید یافت gen-forumsearch-urls.pl. علاوه بر zone.ru، .su .ua .kz و .by نیز استفاده شد. دفعه قبل، انجام چنین مطالعه ای دشوار بود، زیرا سایت های وردپرس و جوملا چنین امضایی در URL ندارند. کاتالوگ هایی مانند cmsmagazine.ru/catalogue/ حجم نمونه کافی را ارائه نمی دهند. 600 سایت دروپال چیست؟

باید اعتراف کنم، نتایج آزمایش من را ناامید کرد. از 12590 سایت مورد مطالعه، موتور تنها در 7083 با موفقیت شناسایی شد، یعنی فقط در 56٪ موارد. شاید من مقداری موتور را در نظر نگرفتم؟ آیا واقعاً درست بود که نیمی از انجمن ها Bitrix را نصب کرده بودند؟ یا باید زمان بیشتری را صرف جستجوی امضا می کردم؟ به طور کلی، در اینجا به تحقیقات بیشتری نیاز است.

در بین 56 درصد موتورهایی که با موفقیت شناسایی شدند، همانطور که انتظار می رفت، محبوب ترین ها IPB (31٪)، phpBB (26.6٪) و vBulletin (26.5٪) بودند.

SMF (5.8٪) و DLEForum (5.3٪) با تاخیر زیادی دنبال می شوند. من punBB مورد علاقهتنها در جایگاه ششم (1.64 درصد) قرار گرفت. توصیه نمی‌کنم زیاد به این اعداد اعتماد کنید (آنها می‌گویند که هر سومین انجمن در RuNet روی IPB اجرا می‌شود)، اما البته می‌توان نتیجه‌گیری‌های خاصی کرد.

به عنوان مثال، اگر قصد دارید یک سایت در موتور فروم ایجاد کنید و قصد دارید تالار را تغییر دهید، مثلاً برای هر پیام 0.01 دلار با برداشت خودکار وجه در هفته یک بار به کاربران بپردازید، باید یکی از سه موتور محبوب را انتخاب کنید. هرچه انجمن محبوب تر باشد، شانس پیدا کردن برنامه نویسی که به خوبی در آن مسلط باشد بیشتر می شود.

اگر هیچ تغییر قابل توجهی در موتور انتظار نمی رود، ممکن است انتخاب یک موتور کمتر محبوب، به عنوان مثال SMF یا punBB منطقی باشد. این باعث می شود تعداد حملات هکرها به انجمن شما و مقدار هرزنامه هایی که به طور خودکار بر روی آن ارسال می شود کاهش یابد.

اسکریپت های جستجو/شناسایی انجمن ها نیز می توانند کاربردهای عملی زیادی پیدا کنند. اولین چیزی که به ذهنم رسید این بود مرتب سازی بر اساس TCIانجمن ها را شناسایی کرده و پست های خود را در صد مورد اول با پیوند به یکی از سایت های خود قرار دهید. با این حال، صدها لینک dofollow انجمن به هیچ وجه بر TCI تأثیری نداشته است (2 به روز رسانی گذشته است)، بنابراین بهتر است زمان را در اینجا تلف نکنید، مگر اینکه علاقه ای به انتقال نداشته باشید.

واضح است که استفاده ذکر شده از اسکریپت ها به دور از آن است. من فکر می کنم شما به راحتی می توانید بفهمید که چگونه می توانید از آنها استفاده کنید.

همه می دانند که من به سادگی نمی توانم بدون جوملا زندگی کنم، اما، به نظر من، انجمن خوبی برای کامپوننت ها وجود ندارد. به همین دلیل من با موتورهای انجمن کار می کنم. یکی از موارد جدیدی که اخیراً شروع به استفاده از آن کردم، بیایید یک دسته بندی جدید SMF را با چیزهای امیدوارم مفید شروع کنیم. ما کوچک شروع می کنیم و به عنوان مبتدی بسیار مفید است.

اولین گام در بهینه سازی موتور جستجو تالار ماشین های ساده: حذف حق چاپ و لینک های خارجی

اجازه دهید فوراً رزرو کنم که من فقط با smf 2 کار می کنم و این مقاله به طور خاص به این نسخه از موتور انجمن رایگان مربوط می شود.

و بنابراین، خوانندگان معمولی می دانند که من چقدر دوست ندارم "10" پیوند خارجی را به وب سایت های رسمی موتورها، از جمله انجمن های انجمن، قرار دهم. به همین دلیل است که اول از همه، ما حق چاپ را حذف می کنیم و به 4، توجه 4 پیوند خارجی فرم " SMF 2.0.2 | ماشین های ساده | SMF © 2011 | XHTMLبرای انجام این کار، از طریق FTP forum/Themes/ به سایت متصل شوید. نام تم شما/ و فایل را ویرایش کنید index.template.php. طبیعتاً در پایین صفحه یک کد (در مورد خط 330) وجود دارد که پیوندهای خارجی را نشان می دهد که ما چندان دوست نداریم. بنابراین ما حذف می کنیم: "

  • "، theme_copyright()،"
  • "و"
  • "، $txt["xhtml"]، "
  • ". همه چیز بسیار ساده و آسان است. در انتشارات آینده، منتظر مطالب جدید در مورد ترویج و بهینه سازی انجمن ها در SMF/ باشید.