Kompyuter darslari

Forum mexanizmini avtomatik aniqlash. Qidiruv tizimini optimallashtirishda birinchi qadamlar Simple Machines Forum: mualliflik huquqi va tashqi havolalarni o'chirish Kontaktlar indeksi php mavzusi smf tomonidan quvvatlanadi

Men Joomlasiz yashay olmasligimni hamma biladi, lekin mening fikrimcha, komponentlar uchun yaxshi forum yo'q. Shuning uchun men forum dvigatellari bilan ishlayman. Men yaqinda foydalanishni boshlagan yangilaridan biri - bu foydali narsalar bilan yangi SMF toifasini boshlaylik. Biz kichikdan boshlaymiz va yangi boshlanuvchilar uchun bu juda foydali.

Qidiruv tizimini optimallashtirishdagi birinchi qadamlar Simple Machines Forum: mualliflik huquqi va tashqi havolalarni olib tashlash

Men faqat smf 2 bilan ishlayotganimni darhol bron qilishimga ijozat bering va ushbu maqola bepul forum mexanizmining ushbu versiyasiga tegishli bo'ladi.

Shunday qilib, muntazam o'quvchilar, dvigatellarning rasmiy veb-saytlariga, shu jumladan forumlarga "10" tashqi havolalarni qo'yishni qanchalik yoqtirmasligimni bilishadi. Shuning uchun, birinchi navbatda, biz mualliflik huquqini olib tashlaymiz va shaklning 4 ta tashqi havolasiga e'tibor qaratamiz " SMF 2.0.2 | Oddiy mashinalar | SMF © 2011 | XHTML"! Buning uchun FTP forum/Mavzular/ orqali saytga ulaning. mavzuingiz nomi/ va faylni tahrirlang index.template.php. Tabiiyki, eng pastki qismida bizga unchalik yoqmaydigan tashqi havolalarni ko'rsatadigan kod (taxminan 330-satr) mavjud. Shuning uchun biz o'chirib tashlaymiz: "

  • ", theme_copyright(), "
  • "Va"
  • ", $txt["xhtml"], "
  • ". Hammasi juda oddiy va oson. Kelgusi nashrlarda SMF/ forumlarini targ'ib qilish va optimallashtirish bo'yicha yangi materiallarni kuting.

    Salom, aziz blog o'quvchilari. Shunday qilib, biz bu haqda postda boshlagan SMF deb nomlangan forum mexanizmini o'rnatish mavzusini davom ettiramiz. U erda biz forumni inglizcha interfeysdan tarjima qilish nuqtai nazaridan hali rus tiliga aylantirmadik. Ayni paytda u juda ko'rinadigan ko'rinmaydi, lekin ruslashtirishdan keyin (agar u hali amalga oshirilmagan bo'lsa) va tegishli bo'limlar yaratilgandan so'ng, uning ko'rinishi sezilarli darajada yaxshilanadi.

    Bugun biz dizayn mavzularini ko'rib chiqamiz va uni ruscha qilamiz, shuningdek, ikkala dvigatel bilan (Jumla va SMF) ishlay oladigan JFusion komponentini o'rnatamiz, bu bizga ikkita va faqat bitta shakl uchun umumiy foydalanuvchi bazasiga ega bo'lish imkonini beradi. ro'yxatdan o'tish va tizimga kirish.

    Rus tili to'plami mavzular va o'rnatish

    Simple Machines Forum mexanizmi mavzularni o'zgartirish qobiliyatini qo'llab-quvvatlaydi va ular butun forum uchun ham, xususan uning alohida bo'limlari uchun ham o'zgartirilishi mumkin. Shaxsan men standart mavzudan foydalandim, lekin unga qo'lda juda ko'p o'zgarishlar kiritdim. Xususan, men fonni, ba'zi elementlarning ranglarini o'zgartirdim, flesh-diskga soat, radio va boshqa ko'p narsalarni qo'shdim, bu haqda men ushbu bo'limdagi keyingi xabarlarda gaplashaman.

    Nima uchun forumni yaratishda qo'shimcha mavzulardan foydalanmadim? Mayli, hammasi mening dangasaligim bilan bog‘liqdir. Yo'q, men yangi mavzularni qidirish va yuklab olish uchun juda dangasa emas edim, xayriyatki, buni amalga oshirish mumkin bo'lgan joylar ko'p. Mening dangasaligim boshqa joyda.

    Gap shundaki, ushbu dvigatel uchun uning imkoniyatlarini kengaytirish uchun mo'ljallangan barcha xilma-xil modlar, ayniqsa, standart mavzuga qaratilgan. Keling, tushuntiraman. Agar sizda standart mavzu bo'lsa, SMF-ga mod qo'shish bir necha soniya ichida amalga oshiriladi va qoida tariqasida kodni qo'lda tahrirlashni talab qilmaydi.

    Agar siz standartdan farqli dizayn mavzusiga ega modni o'rnatsangiz, ular aytganidek, barcha xom qismlarni fayl bilan qayta ishlashingiz kerak bo'ladi. Boshqacha qilib aytganda, siz FileZilla-dan foydalanishingiz kerak bo'ladi (uni yuklab oling va sozlang; siz FTP orqali saytga kirishingiz va ushbu mod o'zgartiradigan forum dvigatelingiz fayllarini tahrirlash uchun ochishingiz mumkin.

    Keyin kodda kerakli joyni qidiring va kerakli amallarni bajaring: kodni almashtirish yoki o'chirish yoki kerakli bo'lakdan oldin yoki keyin kod qismini qo'shish. Agar siz o'zgartirishlar kiritishingiz kerak bo'lgan o'nga yaqin fayl bo'lishi mumkinligini hisobga olsangiz, buni qilish qanchalik qiyin bo'lishini tasavvur qilishingiz mumkin. Bunday holatda siz juda ehtiyot bo'lishingiz va xato qilmasligingiz kerak, chunki aks holda forum umuman ochilmasligi mumkin.

    Agar standart bo'lmagan mavzudan foydalanishning yuqoridagi barcha muammolari sizni qo'rqitmasa, ularni shu yerdan yuklab olishingiz mumkin. U erdagi mavzular bo'limlarga ajratilgan (minimalizm, klassikaga yaqin, zamonaviy va boshqalar) va ularning har biri uchun to'liq ekranda uning skrinshotini ko'rishingiz mumkin. Men sizga bir xil mavzularni qanday o'rnatishni birozdan keyin aytib beraman.

    Agar siz ushbu asarning birinchi qismida tavsiflanganidek, dvigatel fayllarini hostingga yuklash bosqichida forumni ruslashtirmagan bo'lsangiz (maqolaning boshida havolaga qarang), unda siz buni hozir qilishingiz mumkin. Ilgari ushbu sahifadan yuklab olingan rus tilidagi kerakli to'plamni ochish kerak va keyin "Mavzular" papkasini ildiz papkasiga ko'chirish kerak, u erda allaqachon xuddi shu nomdagi katalog mavjud.

    Nusxalash tugallangach, administrator foydalanuvchi nomi va parolidan foydalanib forumga kirishingiz kerak. Yuqori menyuda "Administrator" ni tanlang va chap ustundagi "Server sozlamalari" ni bosing.

    Ochilgan oynada "Standart forum tili" bandini toping va ochiladigan ro'yxatdan rus tilini tanlang, so'ngra sahifaning pastki qismidagi "Saqlash" tugmasini bosing.

    Bo‘ldi, endi konferensiyangiz butunlay rus tilida.

    Rus tilini qo'llab-quvvatlamaydigan modlarni o'rnatishda muammolarni hal qilish

    E'tibor bering, kelajakda SMF-ga rus tiliga tarjimasi bo'lmagan modlarni qo'shganda, ba'zida administrator panelida mod sozlamalarini ko'rsatishda muammo paydo bo'lishi mumkin. Aslida, xuddi shu sozlamalar administrator panelida ko'rinmaydi, chunki... ular uchun ruslashtirish fayllari bo'lmaydi. Shunday qilib, siz ushbu muammoni hal qilish uchun ikkita variantga ega bo'lasiz.

    Birinchi usul - butun forum uchun ingliz tiliga o'tish. Buni qanday qilish mumkinligini yuqoridagi bir necha paragrafda ko'rishingiz mumkin. Shunga ko'ra, ushbu sozlamalar bilan kerakli harakatlarni bajarganingizdan so'ng, siz yana rus tiliga qaytishingiz kerak bo'ladi.

    Ikkinchi usul ancha murakkab, ammo bu bizga administrator panelida o'rnatilgan modlarning sozlamalarini nafaqat ingliz tili faollashtirilganda emas, balki har doim ko'rish imkonini beradi. Men bu haqda batafsil to'xtalib o'tmoqchiman, chunki kimdir mod o'rnatgan va uning sozlamalarini o'z konferentsiyasining boshqaruv panelida topa olmayapti degan savol juda keng tarqalgan.

    Shunday qilib, ikkinchi usul - yangi qo'shilgan modlar uchun ruslashtirish fayllariga tarjima satrlarini qo'shish. Qaysi rusifikatsiya fayllarini o'zgartirish kerakligini va ularni qaerdan olish kerakligini qanday aniqlashni keyinroq aytaman. Ayni paytda, vaqtinchalik, siz birinchi usuldan foydalanishingiz mumkin.

    Veb-sayt va forum integratsiyasi uchun JFusion o'rnatilmoqda

    Avval siz JFusion va uning rusifikatsiyasini yuklab olishingiz kerak bo'ladi. Joomla boshqaruv paneliga kirganimizdan so'ng biz standart amallarni bajaramiz: administrator panelining yuqori menyusidan "Kengaytmalar" - "O'rnatish/O'chirish" - "Paket faylini yuklab olish" bandlarini tanlang - "Ko'rish" tugmasi - faylni toping. Kompyuteringizda jfusion_package.zip komponenti - " Faylni yuklash va o'rnatish>" tugmasini bosing.

    Shundan so'ng, komponent muvaffaqiyatli o'rnatilganligi haqida xabar beruvchi oyna paydo bo'ladi. Muammolar yuzaga kelsa, yuqorida keltirilgan havolada ularning ba'zilarining echimlari bilan tanishishingiz mumkin.

    Endi ruslashtirish vaqti keldi, bu komponentning o'zi bilan bir xil tarzda qo'shiladi. Bular. harakatlar ketma-ketligini takrorlang: "Kengaytmalar" - "O'rnatish/O'chirish" - "Paket faylini yuklab olish" - "Ko'rish" tugmasi - kompyuteringizda JFusion Russification faylini toping - "Faylni yuklab olish va o'rnatish" tugmasini bosing. Endi biz "Komponentlar" - "JFusion" yo'lidagi sozlamalarga o'tamiz va ruslashtirish muvaffaqiyatli qo'shilganiga va ishlayotganiga ishonch hosil qilishimiz mumkin.

    Omad sizga! Tez orada blog sayti sahifalarida ko'rishguncha

    Sizni qiziqtirishi mumkin

    SMF forumi va Joomla saytini birlashtirish uchun JFusion-ni sozlash
    JFusion modullari forumdagi xabarlarni veb-saytda ko'rsatish, shuningdek, Joomla-ga qaytish uchun SMF-da tugma yaratish.
    Forumga kirish uchun Joomla'da menyu elementini yaratish va foydalanuvchi ro'yxatini SMF dan saytga o'tkazish
    SMF forumini o'rnatish - JFusion komponentidan foydalangan holda Joomla 1.5 va Simple Machines Forumini birlashtirish
    Joomla uchun kengaytmalar - ular nima va Joomla uchun komponentlar, modullar va plaginlarni qaerdan yuklab olish, ularni qanday o'rnatish va olib tashlash
    Joomla-da bloglar, kataloglar va portallar yaratish uchun K2 komponenti - xususiyatlar, o'rnatish va ruslashtirish Joomla uchun foto galereya - 3-qism - Phoca Gallery komponenti yordamida Joomla 1.5 da galereyalar yaratish - toifalar qo'shish va rasmlarni foto galereyaga yuklash
    ARTIO JoomSEF - Joomla'da CNC (SEF) havolalarini va sarlavhasini o'rnatish, shuningdek, ushbu kengaytmadan foydalangan holda 404 xato sahifasini yaratish
    Akeeba Backup (sobiq JoomlaPack) - Joomla saytining zaxira nusxasini yaratish va ikki marta bosish orqali zaxiradan tiklash.

    Darhol asosiy skript kodi bilan boshlaylik:

    #!/usr/bin/perl

    # which-forum.pl skripti
    № (c) 2010 Aleksandr A Alekseev, http://site/

    qat'iy foydalaning;

    # sharhlangan satr - qat'iylik uchun
    # agar vazifa dvigatel statistikasini yig'ish bo'lsa, uni shunday qoldiring
    # agar siz forumlar ro'yxatini tuzsangiz - izohni bekor qiling

    mening $ma'lumotlarim;
    $data .= $_while (<> ) ;

    # phpBB tomonidan qancha quvvatlanganligini pastki qismdagi havolasiz tekshiring
    chop etish "phpbb \n"
    agar ($ma'lumotlar =~ /]+href="[^"]*http:\/\/(?:www\.)?phpbb\.com\/?"[^>]*>phpBB/i yoki
    # $data =~ /viewforum\.php\?[^""]*f=\d+/i yoki
    $ma'lumotlar =~ /phpBB\-SEO/i yoki
    $ma'lumotlar =~ /) ;
    chop "ipb \n"
    agar ($ma'lumotlar =~ /]+href="[^"]*http:\/\/(?:www\.)?invision(?:board|power)\.com\/?[^"]*"[^>]*> [^<]*IP\.Board/i yoki
    $ma'lumotlar =~ /]+href="[^"]*http:\/\/(?:www\.)?invisionboard\.com\/?"[^>]*>Invision Power Board/i yoki
    $ma'lumotlar =~ /

    /i yoki
    $ma'lumotlar =~ /index\.php\?[^""]*showforum=\d+/i) ;
    "vbulletin"ni chop eting \n"
    agar ($ma'lumotlar =~ /Kuchli:?[^<]+vBulletin[^<]+(?:Version)?/i yoki
    $ma'lumotlar =~ /) ;
    chop etish "smf \n"
    agar ($ma'lumotlar =~ /]+href="[^"]*http:\/\/(?:www\.)?simplemachines\.org\/?"[^>]*>SMF/i tomonidan quvvatlanadi yoki
    $ma'lumotlar =~ /index\.php\?[^""]*board=\d+\.0/i) ;
    chop "punbb \n"
    agar ($ma'lumotlar =~ /]+href="[^"]*http:\/\/(?:(?:www\.)?punbb\.org|punbb\.informer\.com)\/?"[^>]*> PunBB/i); #yoki
    # $ma'lumotlar =~ /viewforum\.php\?[^""]*id=\d+/i);
    "fluxbb \n"
    # if($data =~ /viewtopic\.php\?id=\d+/i yoki
    agar ($ma'lumotlar =~ /]+href="http:\/\/(?:www\.)fluxbb\.org\/?"[^>]*>FluxBB/i) ;
    chop "exbb \n"
    agar ($ma'lumotlar =~ /]+href="[^"]*http:\/\/(?:www\.)?exbb\.org\/?"[^>]*>ExBB/i); # yoki
    # $ma'lumotlar =~ /forums\.php\?[^""]*forum=\d+/i);
    chop "yabb \n"
    agar ($ma'lumotlar =~ /]+href="[^"]*http:\/\/(?:www\.)?yabbforum\.com\/?"[^>]*>YaBB/i yoki
    $ma'lumotlar =~ /YaBB\.pl\?[^""]*num=\d+/i );
    dleforumni chop eting \n"
    agar ($ma'lumotlar =~ /\(DLE Forum tomonidan quvvatlanadi\)<\/title>/i yoki
    $ma'lumotlar =~ /]+href="[^"]+(?:http:\/\/(?:www\.)?dle\-files\.ru|act=copyright)[^"]*">DLE forumi<\/a>/i) ;
    chop "ikonboard \n"
    agar ($ma'lumotlar =~ /]+href="[^"]*http:\/\/(?:www\.)?ikonboard\.com\/?[^"]*"[^>]*>Ikonboard/i yoki
    $ma'lumotlar =~ /\n"
    agar ($ma'lumotlar =~ /\n"
    # if($data =~ /forums\.php\?fid=\d+/i yoki
    # $ma'lumotlar =~ /mavzu\.php\?fid=\d+/i yoki
    agar ($ma'lumotlar =~ /]+href="http:\/\/(?:www\.)?flashbb\.net\/?"[^>]*>FlashBB/i) ;
    "stokesit"ni chop eting \n"
    # if($data =~ /forum\.php\?f=\d+/i yoki
    agar ($ma'lumotlar =~ /]+href="http:\/\/(?:www\.)?stokesit\.com\.au\/?"[^>]*>[^\/]*Stokes IT/i) ;
    chop etish "podium \n"
    # if($data =~ /mavzu\.php\?t=\d+/i yoki
    agar ($ma'lumotlar =~ /]+href=[""]?http:\/\/(?:www\.)?sopebox\.com\/?[""]?[^>]*>Podium/i) ;
    chop "usebb \n"
    # if($data =~ /forum\.php\?id=\d+/i yoki
    agar ($ma'lumotlar =~ /]+href="http:\/\/(?:www\.)?usebb\.net\/?"[^>]*>UseBB/i) ;
    chop etish "wrforum \n"
    # if($data =~ /index\.php\?fid=\d+/i yoki
    agar ($ma'lumotlar =~ /]+href="http:\/\/(?:www\.)?wr\-script\.ru\/?"[^>]*>WR\-Forum/i) ;
    chop etish "yetanotherforumnet \n"
    agar ($data =~ /Yana bir forum\.net/i yoki
    $ma'lumotlar =~ /default\.aspx\?g=posts&t=\d+/i) ;

    Siz ushbu va postda aytib o'tilgan boshqa skriptlarni ushbu arxivda topasiz.

    Skript which-forum.pl HTML sahifa kodini tekshiradi, unda forum mexanizmi imzolari bor yoki yo'qmi. WordPress va Joomla-ni belgilashda biz shunga o'xshash texnikadan foydalanganmiz, ammo bir nechta farqlar mavjud. Birinchidan, skriptning o'zi sahifa kodini yuklamaydi, balki uni stdin yoki argument sifatida uzatilgan fayldan o'qiydi. Bu sizga sahifani bir marta yuklab olish imkonini beradi, masalan, wget-dan foydalanib, keyin bir nechta analizatorlar orqali, agar bizda bir nechta bo'lsa. Ikkinchidan, ushbu skriptda imzoning mavjudligi dvigatelning 100% belgisidir. Oxirgi marta imzoning mavjudligi mos keladigan dvigatelga va eng katta vaznga ega bo'lgan dvigatelga "yutdi". Men bu holatda bunday yondashuv kodni keraksiz ravishda murakkablashtiradi, deb qaror qildim.

    Skriptni sinab ko'rish uchun men biroz tadqiqot qildim. Men bir necha ming forumlar ro'yxatini tuzdim va ularning har birini o'z skriptim orqali ko'rib chiqdim, shu bilan dastur javoblarining foizini va turli dvigatellarning mashhurligini aniqladim.

    Forumlar ro'yxatini olish uchun men Google tahlilchisidan foydalandim. Shu kabi so'rovlar qidiruv tizimiga yuborildi

    sayt: forum.*.ru
    sayt: talk.*.ru
    sayt:board.*.ru
    sayt: smf.*.ru
    sayt: phpbb.*.ru
    ....

    va hokazo. Siz faylda to'liq so'rov generator kodini topasiz gen-forumsearch-urls.pl. Zone.ru dan tashqari .su .ua .kz va .by ham ishlatilgan. O'tgan safar bunday tadqiqotni o'tkazish qiyin bo'ldi, chunki WordPress va Joomla saytlarining URL manzilida bunday imzolar yo'q. Cmsmagazine.ru/catalogue/ kabi kataloglar etarli namuna hajmini ta'minlamaydi. 600 Drupal saytlari nima?

    Tan olaman, tajriba natijalari meni xafa qildi. O'rganilgan 12 590 ta saytdan dvigatel faqat 7 083 tasida, ya'ni atigi 56% hollarda muvaffaqiyatli aniqlangan. Ehtimol, men qandaydir dvigatelni hisobga olmadim? Forumlarning yarmi Bitrix o'rnatilgani haqiqatan ham rostmi? Yoki imzolarni qidirishga ko'proq vaqt sarflashim kerakmidi? Umuman olganda, bu erda qo'shimcha tadqiqotlar talab qilinadi.

    Muvaffaqiyatli aniqlangan 56% dvigatellar orasida eng ommaboplari kutilganidek IPB (31%), phpBB (26,6%) va vBulletin (26,5%) edi.

    Ulardan keyin katta kechikish bilan SMF (5,8%) va DLEForum (5,3%) bormoqda. Mening sevimli punBB faqat 6-o'rinda edi (1,64%). Men bu raqamlarga ko'p ishonishni tavsiya etmayman (ular RuNet-dagi har uchinchi forum IPB-da ishlaydi, deb aytishadi), lekin, albatta, ma'lum xulosalar chiqarish mumkin.

    Misol uchun, agar siz forum dvigatelida sayt yaratmoqchi bo'lsangiz va forumni o'zgartirishni rejalashtirmoqchi bo'lsangiz, masalan, haftada bir marta pul mablag'larini avtomatik yechib olish bilan har bir xabar uchun foydalanuvchilarga $ 0,01 to'lang, unda siz eng mashhur uchta dvigateldan birini tanlashingiz kerak. Forum qanchalik ommabop bo'lsa, uni yaxshi biladigan dasturchini topish imkoniyati shunchalik yuqori bo'ladi.

    Agar dvigatelda sezilarli o'zgarishlar kutilmasa, unchalik mashhur bo'lmagan dvigatelni tanlash mantiqan to'g'ri keladi, masalan, SMF yoki punBB. Bu sizning forumingizga xakerlik hujumlari sonini va unga avtomatik ravishda yuboriladigan spam miqdorini kamaytiradi.

    Forumlarni qidirish/aniqlash uchun skriptlar ko'plab amaliy dasturlarni ham topishi mumkin. Xayolimga kelgan birinchi narsa, aniqlangan forumlarni TIC bo'yicha saralash va mening saytlarimdan biriga havolalar bilan birinchi yuzta xabarga joylashtirish edi. Biroq, yuzlab forum dofollow havolalari TCIga hech qanday ta'sir ko'rsatmadi (2 ta yangilanish o'tdi), shuning uchun bu erda vaqtni behuda sarflamaslik yaxshiroqdir, agar siz o'tishlarga qiziqmasangiz.

    Yuqorida aytib o'tilgan skriptlardan foydalanish yagona narsa emasligi aniq. O'ylaymanki, siz ularni boshqa qanday ishlatishingiz mumkinligini osongina aniqlashingiz mumkin.