Налаштування обладнання та програмного забезпечення

Третій урок. Збираємо найкращі бази самостійно

Здрастуйте, шановні читачі блогу сайт. Отже, ми продовжуємо тему налаштування форумного двигуна під назвою SMF, розпочату в пості для нього. Там ми ще не зробили форум російською, щодо перекладу з англійського інтерфейсу. На даний момент він виглядає не дуже презентабельно, але після русифікації (якщо вона ще не була зроблена) та створення відповідних розділів, його вигляд суттєво покращиться.

Сьогодні ми розглянемо теми оформлення і зробимо його російською, а також поставимо компонент JFusion, який вміє працювати з обома двигунами (і Джумлою, і СМФ), що дозволить мати загальну базу користувачів на двох і лише одну форму їх реєстрації та входу.

Теми оформлення та встановлення російського мовного пакету

Двигун Simple Machines Forum підтримує можливість зміни тим, причому їх можна змінювати, як для всього форуму цілком, так і для окремих його розділів зокрема. Особисто я використав тему оформлення за замовчуванням, але при цьому вніс до неї багато змін вручну. Зокрема я змінив фон, колірні рішення деяких елементів, додав годинник на флеші, радіо та багато іншого, про що я розповім у наступних постах цієї рубрики.

Чому я не використовував жодної з додаткових тем оформлення під час створення форуму? Ну, тут, мабуть, вся річ у моїй лінощі. Ні, мені було не ліньки шукати і завантажувати нові теми, благо місць, де це можна зробити, безліч. Моя ліньки полягає в іншому.

Справа в тому, що все різноманіття модів для цього двигуна, покликаних розширити його можливості, орієнтоване саме на дефолтну тему. Пояснюю. Якщо тема оформлення у вас дефолтна, то додавання того чи іншого мода в SMF проходить за лічені секунди і, як правило, не вимагає ручного редагування коду.

У разі встановлення мода на тему оформлення, відмінну від дефолтної, потрібно, як кажуть, всі необроблені деталі обробити напилком. Іншими словами, вам доведеться за допомогою FileZilla (завантажити та налаштувати її можна отримувати доступ до сайту за протоколом FTP та відкривати на редагування файли вашого форумного движка, в які цей мод вносить зміни.

Потім шукати потрібне місце в коді і робити потрібні дії: або заміна коду, або видалення або додавання ділянки коду до або після потрібно фрагмента. Якщо врахувати, що файлів, в які потрібно буде вносити зміни, може бути в районі десятка, то можна уявити, як клопітно це буде зробити. При цьому потрібно бути дуже уважним і не помилятися, тому що інакше форум може взагалі не відкритися.

Якщо всі перераховані вище проблеми використання дефолтної теми вас не лякають, то ви можете завантажити їх звідси. Теми там відсортовані за розділами (мінімалізм, близькі до класичної, модернові тощо) і для кожної з них можна переглянути її скріншот на повний екран. Як встановлювати ці теми я розповім трохи пізніше.

Якщо Ви не русифікували форум на етапі заливки файлів движка на хостинг, як було описано в першій частині цього опуса (див. посилання на початку статті), то можна зробити це зараз. Попередньо завантажений з цієї сторінки російський мовний пакет з потрібною , потрібно розпакувати, а потім скопіювати папку Themes у кореневу папку, де вже є каталог з аналогічною назвою.

Після закінчення копіювання потрібно зайти на форум під логіном та паролем адміністратора. Вибрати у верхньому меню пункт Admin, а потім у лівій колонці клацнути по пункту Server Settings.

У вікні знаходимо пункт «Default Forum Language» і вибираємо з списку російську мову, а потім тиснемо на кнопку «Save» внизу сторінки.

Все, тепер ваша конференція вже повністю російською.

Вирішення проблем при встановленні моди, що не підтримують російську мову

Зверніть увагу, що в подальшому при додаванні модів на SMF, які не мають російського перекладу, іноді може виникнути проблема з відображенням налаштувань модів в адмінці. Власне, цих самих налаштувань в адмінці буде просто не видно, т.к. немає файлів русифікації їм. Тому у вас буде два варіанти вирішення цієї проблеми.

Перший спосіб полягає в переході на англійську для всього форуму. Як це можна зробити, ви можете переглянути кількома абзацами вище. Відповідно, після того, як ви зробите необхідні дії з цими налаштуваннями, потрібно буде знову повернути російську мову.

Другий спосіб складніший, проте дозволить нам бачити налаштування встановлених модів в адмінці завжди, а не тільки при активації англійської мови. Я так докладно зупиняюся на цьому моменті, тому що питання про те, що хтось встановив мод і не може знайти її налаштувань в адмінці своєї конференції, є дуже поширеним.

Отже, другий спосіб полягає в додаванні рядків перекладу файли русифікації для щойно доданих модів. Як визначити, які файли русифікації потрібно вносити зміни і де їх брати, я розповім пізніше. А поки що, тимчасово, ви можете використовувати перший спосіб.

Установка JFusion для інтеграції сайту та форуму

Спочатку вам потрібно буде завантажити JFusion та його русифікацію. Увійшовши до адмінки Джумли виконуємо стандартні дії: вибираємо з верхнього меню адмінки пункти «Розширення» - «Встановити/Видалити» - «Завантажити файл пакета» - кнопка «Огляд» - знаходимо на своєму комп'ютері файл з компонентом jfusion_package.zip - тиснемо на кнопку « Завантажити файл&Встановити>».

Після цього з'являється вікно, що повідомляє про те, що компонент встановлено успішно. Якщо виникають проблеми, то ви можете ознайомитися з варіантами вирішення деяких з них за посиланням, що наведено трохи вище.

Тепер черга за русифікацією, яка додається так само, як і сам компонент. Тобто. повторюємо послідовність дій: "Розширення" - "Встановити/Видалити" - "Завантажити файл пакета" - кнопка "Огляд" - знаходимо на своєму комп'ютері файл русифікації JFusion - тиснемо на кнопку "Завантажити файл&Встановити". Тепер ми можемо зайти в налаштування шляхом «Компоненти»- «JFusion» і переконатися, що русифікація була успішно додана і працює.

Удачі вам! До швидких зустрічей на сторінках блогу сайт

Вам може бути цікаво

Налаштування JFusion для об'єднання форуму SMF та Джумла-сайту
Модулі JFusion для виведення повідомлень з форуму на сайті, а також створення кнопки в SMF для повернення в Джумлу
Створення пункту меню Joomla для входу на форум і перенесення реєстрації користувачів з SMF на сайт
Установка форуму SMF - Інтеграція Joomla 1.5 та Simple Machines Forum за допомогою компонента JFusion
Розширення для Joomla - що це таке і де завантажити компоненти, модулі та плагіни для Джумли, як їх встановлювати та видаляти
Компонент K2 для створення блогів, каталогів та порталів на Joomla - можливості, встановлення та русифікація Фотогалерея для Joomla — Частина 3 — Створення галерей у Joomla 1.5 за допомогою компонента Phoca Gallery — додавання категорій та завантаження зображень у фотогалерею
ARTIO JoomSEF - налаштування ЧПУ (SEF) посилань і Title в Joomla, а також створення сторінки 404 помилки за допомогою цього розширення
Akeeba Backup (колишній JoomlaPack) - створення бекапу сайту на Joomla та відновлення з резервної копії в два кліки

Організований Ботмайстер Лабс, не планував. Часу немає, відео потрібно для конкурсу, як новомодний віяння, хоч легше все хорошими скріншами можна пояснити (моє ІМХО), та й палити особливо не хочеться нічого. Тим дуже мало залишилося прибуткових, тупий спам вже зовсім не кермує, тут треба думати і теми ніхто палити не буде, якщо тільки віджили спробувати в гарну обгортку засунути і припудрити трохи. :) Але це не про нас. Втім, ці три "не", думаю, в основному і стали бар'єрами для участі в конкурсі для більшості потенційних учасників. Тут як із ремонтом машини з трьох: дешево, якісно, ​​швидко – у сервісі можуть лише 2 умови одночасно виконати. сиди та вибирай, що тобі ближче. :) З конкурсом теж саме: є час, вмію робити відео, але немає теми, або вмію робити відео, є тема, але немає зовсім часу, або ж і час вільний з'явився і темка невелика є, але відео лякає. Але це добре, якщо одночасно 2 умови виконуються. Ну, гаразд, відкинемо лірику. Я продовжу про себе. Не планував, значить, я в конкурсі братиму участь, навіть вибрав за яку статтю голосуватиму. Що не кажи, а Доз добре софт знає і дуже розумно його використовувати вміє. Але сьогодні дізнався, що у конкурсі інтрига з'явилася. Виявляється, я голосувати не зможу, а зможуть це робити лише новачки, хто придбав софт у 2011 році і конкурс розрахований на них. Здивувався трохи, але господар – пан. Конкурс – це рекламна компанія та Олександру видніше, як її проводити. Втім, вирішив тоді викласти статтю, дещо легше писати, коли ясно для когось, для всього колгоспу насправді це зробити неможливо.
Довгий вступ закінчився, тепер до суті.
Що потрібно новачкові, коли він придбав такий супер-комбайн, яким є комплекс Xrumer+Hrefer? Правильно, навчитися на ньому працювати та відкинути ілюзії, що, почавши спамити простирадлами, можна заробити гроші. Якщо ви так думаєте, краще одразу пожертвуйте ваші гроші на благодійність. Вам потрібно навчитися використовувати інструменти комплексу, бажано загострювати його під себе. Час "бери більше - кидай далі" минув. Кількість поступається місцем якості. Значить збиратимемо базу під себе, не навчитеся це робити - відстане від поїзда. У цьому нам допоможе, звичайно, Хрефер. Якщо ви плануєте просувати свої ресурси в Гугл, то і шукати сайти-донори нам потрібно також через Google. Думаю, це зрозуміло та логічно. Але Гугл, як господарка мідної гори, всім підряд своїх багатств не віддає. До нього підхід потрібний. Відразу хотів би сказати, що не сподівайтеся, що за ознаками, які ви знайдете в паблиці, ви щось зможете зібрати. Вони тому і доступні в паблику, що гріш їм ціна. Далі тему не розвиватиму. Краще розповім, як правильно збирати, щоб ви побачили результат, інше самі доопрацюєте, головне зрозуміти принцип. Збирати по правильному необхідно за ознаками конкретних, необхідних нам двигунів, а не ознаками форумів взагалі. Це головна помилка новачків – не сконцентруватися на конкретному, а намагатися охопити все. І ще, якщо хочете напарсити більш-менш нормальну базу, відмовтеся від використання у запитах операторів. Жодних "inurl:", "site:", "title" і т.д. Google таких як ви шукачів забанить моментально. Тому ретельно вивчаємо двигуни, з якими зараз працює Хрумер:

Powered by php-Fusion

У версії Хрумер 7,07 програма навчена декільком новим двигунам:

forumi.biz, forumb.biz, 1forum.biz, 7forum.biz і т.п.

phpBB-fr.com, Solaris phpBB theme

І процес навчання новому триває безперервно.
Втім, нам необхідно готувати правильні запити для парсингу Хрефер. Візьмемо для прикладу форумний діжок SMF Forums. І почнемо розбирати його на запчастини для парсингу. У цьому нам допоможе наш улюблений Google. Вводимо в Google запит SMF Forums- багато сміття у видачі, відмотуємо на якусь 13-ту сторінку і вибираємо будь-яке посилання. Мені попалася на очі така: http://www.volcanohost.com/forum/index.php?topic=11.0 . Відкриваємо її та вивчимо. Нам потрібно знайти на сторінці щось характерне, що можна застосувати до пошуку інших сторінок на цьому движку. У футері помічаємо наступний напис Powered by SMF 1.1.14, хитаємо її і вводимо в Google, він нам показує, що за цим запитом він знає близько 59 млн варіантів. Побіжно переглядаємо посилання, додаємо до цього ключовика ще пару-іншу варіантів, наприклад, "Powered by SMF 1.1.14" тополяабо "Powered by SMF 1.1.14" viagra. Переконуємося, що запит шикарний, у видачі тільки форуми і майже сміття.

Нам же, крім того, не кількість цікава, а якість, як я говорив вище. Йдемо далі. З того ж форуму беремо ще одну фразу з футера: , також її лапимо і згодовуємо Гуглу. У відповідь він показує, що йому відомо понад 13 млн. результатів. Знову швидко переглядаємо видачу, додаємо допслова і перевіряємо видачу з ними. Переконуємося, що запит відмінний і майже немає сміття. Втім, вже є два металеві запити. Я пропоную перший форум поки дати спокій і продовжити збирати запити вже по інших форумах. Благо Гугл у нас відкритий за запитом 2006-2008, Simple Machines LLC. Беремо з видачі, наприклад, ці форуми: http://www.snowlinks.ru/forum/index.php?topic=1062.0 та http://litputnik.ru/forum/index.php?action=printpage;topic=380.0 у футерах у них беремо наступні запити: "Powered by SMF 1.1.7" та "Powered by SMF 1.1.10" (вбивати для Хрефера запити завжди раджу залагодженими, адже нам якість потрібна в першу чергу). Думаю, відомо, що ми робимо, нарешті у нас збереться деяка основа запитів для пошуку форумів на движку СМФ (він обраний для прикладу, з іншими двигунами аналогічно).
Виглядатиме це приблизно так:

"Powered by SMF 1.1.2"

"Powered by SMF 1.1.3"

"Powered by SMF 1.1 RC2"

"Powered by SMF 1.1.4"

"Powered by SMF 1.1.8"

"Powered by SMF 1.1.7"

"2006-2008, Simple Machines LLC"

Причому це ще не все. Збираючи версії двигунів, ми на деяких форумах СМФ у футері виявляємо рух "2001-2006, Lewis Media". Перевіряємо цей запит, він також нас повністю задовольняє. Знаходимо схожий запит: "2001-2005, Lewis Media". Пробігаючи футери, далі знаходимо наступний запит: "SMFone design by A.M.A, ported to SMF 1.1". Перевіряємо – чудово. І так далі. Півгодини роботи і у вас чудова база запитів по движку, причому за дані запити Google буде банити значно рідше, ніж, якщо ви будете використовувати в них оператори. І в той же час база у вас буде значно чистіша, ніж, якщо ви будете використовувати запити, типу "index.php?topic=", тому що тут Google буде віддавати не тільки необхідні нам форуми, але і багато лівих ресурсів, де вдалося залишити посилання на топік форуму. Ви можете заперечити, мовляв, а що у цьому поганого? Інші ж залишили посилання, отже, і ми можемо. Але! Посилання може залишати не лише Хрумер, а й інші програми. причому вони можуть бути спеціально заточені для залишення коментарів певний ресурс, так званий вузькоспеціальний софт, плюс такі посилання могли бути залишені руками. Знову повторюся, нам не кількість сміття важлива, а якість, базу правильними запитами ми і так зберемо. Плюс даного методу ще й у тому, що вам практично не потрібно буде у Хрефері налаштовувати sieve-filter , його можна буде просто відключити, адже Google вам практично не віддаватиме сміття.


Вважаю, що навчитися на початковому етапі грамотно користуватися Хрефер дуже важливо, адже навчившись цьому можна завжди знайти застосування Хрумеру, як би не змінювалася ситуація. Захисту ускладнюються, і якщо на якихось типах двигунів посилили захист і з нею не справляється зараз Хрумер, то немає сенсу витрачати ресурси на збір цих лінків, а потім на роботу за ними Хрумером, краще зосередити сили на тому, що дає результат . І в той же час, якщо команда Ботмайстер Лабс навчила Хрумер чогось нового, можна оперативно препарувати нового пацієнта та підготувати базу Хрумеру, поки пацієнт ще тепленький. Час - гроші, ресурс може бути вже не актуальним, коли ви купите базу. зібрану кимось. Крім того, правильне збирання баз під себе значно розширює "біле" застосування Хрумера. А це саме те, куди все і рухається, хочемо ми того чи ні, а процес вибілювання чи серіння йде. Чорні простирадла чому тільки можна йдуть у минуле.
Всі інші, вже технічні моменти роботи з Хрефер можна подивитися в хелпі і зупинятися на них не має сенсу, всі голи-окуляри-секунди виставляються досвідченим шляхом для кожної машини індивідуально.
Як бонус викладу тут шаблон для парсингу китайського пошуковика Baidu, днями у мене про нього питали, ось зробив між собою, вибачте за каламбур. :)


Hostname=http://www.baidu.com
Query=s?wd=
LinksMask=
TotalPages=100
NextPage=

NextPage2=

CaptchaURL=
CaptchaImage=
CaptchaField=


Пробував їм тестово попарсити, бана не було, ресурси Хрефер збирав живо, всі запити для парсингу аналогічні Гугловським, але ресурсів китайських - море, причому з високим ПР, а крім того, багато куди там не ступала нога європейця. Пірсити краще китайськими запитами. У цьому допоможе Google-транслейт, набираєте список ключових слів по-російськи і перекладаєте це китайською. Правда в " вордсХрефер слова не можна складати китайською, потрібно перекодувати.
Замість китайських:

伟哥 - віагра

吉他 - гітара

其他 - відпочинок

保险公司 - страховка

Покласти у файл вордс ось ці коди, що їх заміщають:

%E4%BC%9F%E5%93%A5

%E5%90%89%E4%BB%96

%E5%85%B6%E4%BB%96

%E4%BF%9D%E9%99%A9%E5%85%AC%E5%8F%B8

Якщо ви просуваєте сайт за страховками, то розмістивши посилання у профілі на тематичному (!) навіть китайському форумі знайденому на запит " форум СМФ" 保险公司буде дуже непогано.
На закінчення хотів би сказати, що ніколи не розумів людей, які скаржилися на те, що Хрефери погано або парсят, на це завжди хотілося сказати, ви просто не вмієте їх готувати. Краще за хрефера жоден парсер не вміє збирати видачу, просто запити мають бути правильні. Хрефер - машина: хороша, добротна, зроблена німецькою, але керує їй людина і все залежить від того, наскільки розумно їй керують, не можна одночасно змушувати їхати машину і праворуч і ліворуч.
Окрема тема – чищення баз, я колись 3 роки тому для попереднього конкурсу. З більшого там, як і раніше, все актуально, але від перевірки на 200 ОК тепер можна відмовитися, мені правда цей процес не особливо й подобався, дуже похибки були великі, багато зайвого відфільтровувалося. Тепер це можна робити практично на автоматі у процесі роботи Хрумера, хоч цей процес і не є повним аналогом перевірки на "200 ОК". Втім, до справи: нещодавно в Хрумері з'явилася чудова можливість - грабувати інформацію з ресурсів у момент прогону проекту. Виглядає так. Ви вбиваєте шаблон, який буде оброблятися в процесі роботи, і зібрана за шаблоном інформація буде заноситись у файл xgrabbed.txt в папці Logs. Застосовувати цю функцію можна навіщо, політ фантазії величезний. Я раз на тиждень використовую цю функцію для видалення з робочої бази "експіред" посилань. Не секрет, що форуми відмирають щодня, щоб почистити від таких ресурсів базу нам та допоможе в даному випадку інструмент "Автограбінг".
Адже погодьтеся, частенько набираючи, наприклад, http://www.laptopace.com/index.php ми бачимо, що цим доменом вже, наприклад, гоудядя барижит, а форуму там немає. Так ось щоб викинути з бази цей шлак, грабуватимемо. :) Відкриваємо вихідний код сторінки і бачимо там цей запис:

laptopace.com
Для граббінгу перетворимо її на
[...]

Тепер усі "мерці" від гоудадді нам будуть відомі поіменно.
Ось невелика підбірка для інструменту "Автограбінг", якщо ви захочете почистити базу від різних "експіред" доменів:


[...]

[...]
[...]
[...]

[...]
Це domain may be for sale. [...]Buy this Domain

[...]<body bgcolor="#ffffff" text="#000000"> </span><br>Список далеко не повний, але думаю він допоможе не ганяти багатомільйонні бази сміття багаторазово. Створити шаблон не складно, відкриваєте експіред-посилання та робите маску шаблону. <br>За допомогою того ж автограбінгу можна і ваші існуючі бази прошерстити і розсортувати по ресурсах, розбивши по движках. А крім того за допомогою Автограбінгу ви можете видалити сміття з баз, якщо ви віддаєте перевагу їх збирати не Хрефер, а скачуючи з різних файлообмінників. Для цього вам потрібно або зробити маску для відбору форумів і потім з бази зібрати тільки те, що зграбиться по масці, або зробити маску для нефорумів і потім видалити те, що зграбиться. Перший варіант логічніший і надійніший, тому що ми точно знаємо, що шукати. <br>Успіхів у роботі. <br>ПиСи. Відео зробив вузьконаправлене (намучився з ним, вперше робив:)), правда запускав Хрефер з домашньої машини, швидкість нету не дуже хороша, тут у мене копії тільки для тестів стоять, так що не обессудьте за швидкість роботи. :) <br><p><span class="BlWV-EuxoOk"></span></p> <h4>16 коментарів:</h4> <p>jeka коментує...</p><p>Якою програмою ви вибирали ключові слова?</p> Serge Glazko коментує... <p>якщо мені потрібно зібрати тематичні ресурси, то слова в Вордсі підбираю ручками і через Адвордс. але з багатьох тем до мене вже підібрані слова, тут тільки може додаю-видаляю якісь слова, але теж не автоматично, а переглядаю їх усі.</p> <p>Почнемо відразу з коду основного скрипта:</p> <p>#!/usr/bin/perl</p><p># which-forum.pl script <br><span># (c) 2010 Alexandr A Alexeev, http://сайт/</p><p>use strict;</p><p># закоментовані рядки - для суворості</span><br><span>Якщо завдання - зібрати статистику двигунів, залишити як є</span><br><span># якщо скласти список форумів - розкоментувати</p><p>my $data; <br>$data .= $_ while (<> ) ; </p><p># перевірити, скільки Powered by phpBB без посилання в підвалі</span><br>print "phpbb <span>\n "</span><br>if ($data =~ <span>/<a[^>]+href="[^"]*http:\/\/(?:www\.)?phpbb\.com\/?"[^>]*>phpBB/i</span> or <br><span># $data =~ /viewforum\.php\?[^""]*f=\d+/i or</span><br>$data =~ /phpBB\-SEO/i or <br>$data =~ <span>/<link rel="copyright" href="(?:http:\/\/)?phpBB\.com"/i </span>) ; <br>print "ipb <span>\n "</span><br>if ($data =~ <span>/<a[^>]+href="[^"]*http:\/\/(?:www\.)?invision(?:board|power)\.com\/?[^"]*"[^>]*> [^<]*IP\.Board/i </span> or <br>$data =~ <span>/<a[^>]+href="[^"]*http:\/\/(?:www\.)?invisionboard\.com\/?"[^>]*>Invision Power Board/i</span> or <br>$data =~ <span>/<div id=[""]{0,1}ipbwrapper[""]{0,1}>/i</span> or <br>$data =~ <span>/index\.php\?[^""]*showforum=\d+/i</span>) ; <br>print "vbulletin <span>\n "</span><br>if ($data =~ <span>/Powered by:?[^<]+vBulletin[^<]+(?:Version)?/i </span> or <br>$data =~ <span>/<meta name="generator" content="vBulletin/i </span> or <br>$data =~ <span>/forumdisplay\.php\?[^""]*f=\d+/i</span>) ; <br>print "smf <span>\n "</span><br>if ($data =~ <span>/<a[^>]+href="[^"]*http:\/\/(?:www\.)?simplemachines\.org\/?"[^>]*>Powered by SMF/i</span> or <br>$data =~ <span>/index\.php\?[^""]*board=\d+\.0/i</span>) ; <br>print "punbb <span>\n "</span><br>if ($data =~ <span>/<a[^>]+href="[^"]*http:\/\/(?:(?:www\.)?punbb\.org|punbb\.informer\.com)\/?"[^>]*> PunBB/i</span>); #or <br><span># $data =~ /viewforum\.php\?[^""]*id=\d+/i);</span><br>print "fluxbb <span>\n "</span><br><span># if($data =~ /viewtopic\.php\?id=\d+/i or</span><br>if ( $data =~ <span>/<a[^>]+href="http:\/\/(?:www\.)fluxbb\.org\/?"[^>]*>FluxBB/i</span>) ; <br>print "exbb <span>\n "</span><br>if ($data =~ <span>/<a[^>]+href="[^"]*http:\/\/(?:www\.)?exbb\.org\/?"[^>]*>ExBB/i</span>); # or <br><span># $data =~ /forums\.php\?[^""]*forum=\d+/i);</span><br>print "yabb <span>\n "</span><br>if ($data =~ <span>/<a[^>]+href="[^"]*http:\/\/(?:www\.)?yabbforum\.com\/?"[^>]*>YaBB/i</span> or <br>$data =~ /YaBB\.pl\?[^""]*num=\d+/i ) ; <br>print "dleforum <span>\n "</span><br>if ($data =~ <span>/\(Powered By DLE Forum\)<\/title>/i</span> or <br>$data =~ <span>/<a[^>]+href="[^"]+(?:http:\/\/(?:www\.)?dle\-files\.ru|act=copyright)[^"]*">DLE Forum<\/a>/i</span>) ; <br>print "ikonboard <span>\n "</span><br>if ($data =~ <span>/<a[^>]+href="[^"]*http:\/\/(?:www\.)?ikonboard\.com\/?[^"]*"[^>]*>Ikonboard/i</span> or <br>$data =~ <span>/<meta name="GENERATOR" content="Ikonboard/i </span> or <br>$data =~ /ikonboard\.cgi/i); <br>print "bbpress <span>\n "</span><br>if ($data =~ <span>/<meta name="generator" content="bbPress/i </span>); # or <br><span># $data =~ /topic\.php\?id=\d+/i or</span><br><span># $data =~ /forum\.php\?id=\d+/i);</span><br>print "flashbb <span>\n "</span><br><span># if($data =~ /forums\.php\?fid=\d+/i or</span><br><span># $data =~ /topic\.php\?fid=\d+/i or</span><br>if ($data =~ <span>/<a[^>]+href="http:\/\/(?:www\.)?flashbb\.net\/?"[^>]*>FlashBB/i</span>) ; <br>print "stokesit <span>\n "</span><br><span># if($data =~ /forum\.php\?f=\d+/i or</span><br>if ($data =~ <span>/<a[^>]+href="http:\/\/(?:www\.)?stokesit\.com\.au\/?"[^>]*>[^\/]*Stokes IT/i</span>) ; <br>print "podium <span>\n "</span><br><span># if($data =~ /topic\.php\?t=\d+/i or</span><br>if ($data =~ <span>/<a[^>]+href=[""]?http:\/\/(?:www\.)?sopebox\.com\/?[""]?[^>]*>Podium/i</span>) ; <br>print "usebb <span>\n "</span><br><span># if($data =~ /forum\.php\?id=\d+/i or</span><br>if ($data =~ <span>/<a[^>]+href="http:\/\/(?:www\.)?usebb\.net\/?"[^>]*>UseBB/i</span>) ; <br>print "wrforum <span>\n "</span><br><span># if($data =~ /index\.php\?fid=\d+/i or</span><br>if ($data =~ <span>/<a[^>]+href="http:\/\/(?:www\.)?wr\-script\.ru\/?"[^>]*>WR\-Forum/i</span>) ; <br>print "yetanotherforumnet <span>\n "</span><br>if ($data =~ /Yet Another Forum\.net/i or <br>$data =~ <span>/default\.aspx\?g=posts&t=\d+/i</span>) ; </p> <p>Цей та інші скрипти, згадані у пості, ви знайдете у цьому архіві.</p> <p>Скрипт <i>which-forum.pl</i>вивчає код html-сторінки на наявність у ньому сигнатур форумного движка. Аналогічний прийом ми використовували при визначенні WordPress та Joomla, але є пара відмінностей. По-перше, сам скрипт не завантажує код сторінки, а читає його зі stdin або файлу, переданого як аргумент. Це дозволяє завантажити сторінку один раз, наприклад за допомогою wget, а потім прогнати її через кілька аналізаторів, якщо у нас їх не один. По-друге, у цьому скрипті наявність сигнатури є 100% ознакою движка. Минулого разу наявність сигнатури лише надавала ваги відповідному двигуну і «вигравав» двигун з максимальною вагою. Я вирішив, що в цьому випадку такий підхід лише дарма ускладнить код.</p> <p>Щоб протестувати роботу скрипта, я провів невелике дослідження. Я склав список з декількох тисяч форумів і прогнав кожен із них через свій скрипт, визначивши тим самим відсоток спрацьовувань програми та популярність різних двигунів.</p> <p>Для отримання списку форумів я скористався своїм парсером Google. Пошуковій системі надсилалися запити типу</p> <p>site:forum.*.ru <br>site:talk.*.ru <br>site:board.*.ru <br>site:smf.*.ru <br>site:phpbb.*.ru <br> ....</p> <p>і так далі. Повний код генератора запитів ви знайдете у файлі <i>gen-forumsearch-urls.pl</i>. Крім зони.ru також використовувалися.su.ua.kz і.by. Минулого разу провести таке дослідження було важко, оскільки сайти WordPress і Joomla не мають подібних сигнатур в URL. Каталоги типу cmsmagazine.ru/catalogue/ не забезпечують достатнього обсягу вибірки. Що таке 600 сайтів на Drupal?</p> <p>Треба визнати, що результати експерименту мене засмутили. З 12590 досліджуваних сайтів тільки на 7083 двигун був визначений успішно, тобто лише в 56% випадків. Може, я не врахував якогось двигуна? Невже на половині форумів стояв Bitrix? Чи мені більше часу приділити пошуку сигнатур? Загалом, тут потрібні додаткові дослідження.</p> <p>Серед 56% успішно впізнаних движків найпопулярнішими, як і слід очікувати, виявилися IPB (31%), phpBB (26,6%) та vBulletin (26,5%)</p> <p>За ними з великим відставанням слідують SMF (5,8%) та DLEForum (5,3%). Мій улюблений punBB виявився лише на 6-му місці (1,64%). Я не радив би сильно довіряти цим цифрам (мовляв, кожен третій форум у рунеті працює на IPB), але певні висновки зробити, звісно, ​​можна.</p> <p>Наприклад, якщо ви маєте намір робити сайт на форумі і плануєте модифікувати форум, скажімо, платити користувачам по 0.01 $ за кожне повідомлення з автоматичним виведенням коштів раз на тиждень, то вам слід вибрати один з трьох найбільш популярних движків. Чим популярніший форум, тим більше шансів знайти програміста, який добре в ньому розуміється.</p> <p>Якщо ж істотних змін в движку не передбачається, то можна вибрати не найпопулярніший движок, наприклад SMF або punBB. Цим ви зменшите кількість хакерських атак на свій форум і кількість спаму, що автоматично розсилається на ньому.</p> <p>Скриптам для пошуку/визначення форумів також можна знайти не одне практичне застосування. Перше, що спало мені на думку — це відсортувати по ТІЦ упізнані форуми і розмістити на першій сотні пости з посиланнями на один зі своїх сайтів. Однак сотня форумних dofolllow-посилань ніяк не вплинула на ТІЦ (минули 2 апдейти), так що краще не витрачати тут час, якщо вас не цікавлять переходи.</p> <p>Зрозуміло, що застосування скриптів далеко не єдине. Думаю, ви легко придумаєте, як їх можна використовувати.</p> <script>document.write("<img style='display:none;' src='//counter.yadro.ru/hit;artfast_after?t44.1;r"+ escape(document.referrer)+((typeof(screen)=="undefined")?"": ";s"+screen.width+"*"+screen.height+"*"+(screen.colorDepth? screen.colorDepth:screen.pixelDepth))+";u"+escape(document.URL)+";h"+escape(document.title.substring(0,150))+ ";"+Math.random()+ "border='0' width='1' height='1' loading=lazy loading=lazy>");</script> </article> </div> <div class="full-place" data-place="article_before_social" data-priority="0" style="width: 100%;"></div> <div class="single-share"> <div class="single-share__top"> <div class="single-share__title">Сподобалась стаття? <span>Поділіться з друзями!</span> </div> <a href="#" onClick="window.open('http://www.facebook.com/sharer.php?url=https%3A%2F%2Fpolarize.ru%2Fcomputer%2Furok-tretii-sobiraem-luchshie-bazy-samostoyatelno-avtomaticheskoe-opredelenie-dvizhka-foruma-kollega-i%2F', 'sharer', 'toolbar=0,status=0, width=700, height=400'); return false" class="single-share__facebook"> <i class="fa fa-facebook-official"></i> <span>Поділитися у <b>Facebook</b> </span> </a> </div> <div class="single-share__bottom"> <div class="single-share__group"> <a href="#" onClick="window.open('http://vk.com/share.php?url=https%3A%2F%2Fpolarize.ru%2Fcomputer%2Furok-tretii-sobiraem-luchshie-bazy-samostoyatelno-avtomaticheskoe-opredelenie-dvizhka-foruma-kollega-i%2F', 'sharer', 'toolbar=0,status=0, width=700, height=400'); return false" class="single-share-links-item single-share-links-item--vk"> <i class="fa fa-vk single-share-links-item__icon"></i> <span class="single-share-links-item__text"></span> </a> <a href="#" onClick="window.open('http://twitter.com/share?url=https%3A%2F%2Fpolarize.ru%2Fcomputer%2Furok-tretii-sobiraem-luchshie-bazy-samostoyatelno-avtomaticheskoe-opredelenie-dvizhka-foruma-kollega-i%2F', 'sharer', 'toolbar=0,status=0, width=700, height=400'); return false" class="single-share-links-item single-share-links-item--tw"> <i class="fa fa-twitter single-share-links-item__icon"></i> <span class="single-share-links-item__text">Twitter</span> </a> </div> <div class="single-share__group"> <a href="#" onclick="window.print();" class="single-share-item single-share-item--print"><i class="fa fa-print single single-share-item__icon"></i><span>роздрукувати</span> </a> </div> </div> </div> <div class="article-user"> <div class="article-user-item article-user-question"> <div class="article-user-item__title">Чи була ця стаття корисною?</div> <div class="article-user-item__bottom"> <div id="js-send-positive-rating" class="article-user-item__button _yes">Так</div> <div class="article-user-item__button _no">Ні</div> </div> </div> <div id="js-success-send-form" class="article-user-item article-user-question _yes _hidden"> <div class="article-user-item__title">Дякую за ваш відгук!</div> <div class="article-user-item__text"></div> </div> <div id="js-fail-send-form" class="article-user-item _no _hidden"> <div class="article-user-item__title">Щось пішло не так і Ваш голос не було враховано.</div> </div> <div id="js-negative-rating-form" class="article-user-item article-user-question _no _hidden"> <div class="article-user-item__title">Спасибі. Ваше повідомлення надіслано</div> </div> <div class="article-user-item article-user-error"> <div class="article-user-item__title">Знайшли у тексті помилку?</div> <div class="article-user-item__text">Виділіть її, натисніть <strong>Ctrl+Enter</strong>і ми все виправимо!</div> </div> </div> <div class="full-place" data-place="article_before_related_articles" data-priority="0" style="width: 100%;"></div> <div class="similar-articles"> <div class="similar-articles__title"> <i class="fa fa-angle-double-left"></i>Схожі поради <i class="fa fa-angle-double-right"></i> </div> <div class="block-row"> <div class="block-column _triple"> <div class="similar-articles-block"> <div class="similar-articles-block__image"> <img src="/uploads/6f994d7eed46cded0db234a89d90caad.jpg" alt="Налаштування параметрів конвертації" loading=lazy loading=lazy> </div> <a href="https://polarize.ru/uk/windows/luchshaya-programma-konverter-mpg-v-mp4-nastroika-parametrov-konvertacii/" title="Налаштування параметрів конвертації" class="similar-articles-block__title">Налаштування параметрів конвертації</a> </div> </div> <div class="block-column _triple"> <div class="similar-articles-block"> <div class="similar-articles-block__image"> <img src="/uploads/42c83ff46438cde05d0d1d3de22fe5cc.jpg" alt="Як конвертувати файли FLAC в MP3, AAC, WMA, WAV і т.д." loading=lazy loading=lazy> </div> <a href="https://polarize.ru/uk/internet/sposob-kak-razzhat-flac-v-wav-kak-konvertirovat-faily-flac-v-mp3-aac-wma-wav-i-t-d/" title="Як конвертувати файли FLAC в MP3, AAC, WMA, WAV і т.д." class="similar-articles-block__title">Як конвертувати файли FLAC в MP3, AAC, WMA, WAV і т.д.</a> </div> </div> <div class="block-column _triple"> <div class="similar-articles-block"> <div class="similar-articles-block__image"> <img src="/uploads/fb7233f0e598e5f9932e447988bcb419.jpg" alt="Розширення wps. Чим відкрити файл WPS? Інші причини проблем із відкриттям файлів WPS" loading=lazy loading=lazy> </div> <a href="https://polarize.ru/uk/components/rasshirenie-wps-chem-otkryt-fail-wps-drugie-prichiny-problem-s/" title="Розширення wps. Чим відкрити файл WPS? Інші причини проблем із відкриттям файлів WPS" class="similar-articles-block__title">Розширення wps. Чим відкрити файл WPS? Інші причини проблем із відкриттям файлів WPS</a> </div> </div> </div> <div class="block-row"> <div class="block-column _triple"> <div class="similar-articles-block"> <div class="similar-articles-block__image"> <img src="/uploads/e95609cce53c93076d22048ac448d9c4.jpg" alt="Як конвертувати файл VOB в AVI" loading=lazy loading=lazy> </div> <a href="https://polarize.ru/uk/office/kak-preobrazovat-fail-vob-v-avi-kak-konvertirovat-fail-vob-v-avi-chem/" title="Як конвертувати файл VOB в AVI" class="similar-articles-block__title">Як конвертувати файл VOB в AVI</a> </div> </div> <div class="block-column _triple"> <div class="similar-articles-block"> <div class="similar-articles-block__image"> <img src="/uploads/d7b745f2bc9abcc610654e6683f4cddb.jpg" alt="Як змінити формат зображення Утиліта конвертер з png до bmp" loading=lazy loading=lazy> </div> <a href="https://polarize.ru/uk/components/kak-konvertirovat-graficheskii-fail-bmp-v-jpg-i-naoborot-jpg-v-bmp-kak-izmenit/" title="Як змінити формат зображення Утиліта конвертер з png до bmp" class="similar-articles-block__title">Як змінити формат зображення Утиліта конвертер з png до bmp</a> </div> </div> <div class="block-column _triple"> <div class="similar-articles-block"> <div class="similar-articles-block__image"> <img src="/uploads/532e4219a00a1dc40d24dc48b30341cc.jpg" alt="Перетворюємо DOC на EPUB" loading=lazy loading=lazy> </div> <a href="https://polarize.ru/uk/video/preobrazovyvaem-doc-v-epub-konverter-doc-v-epub-kak-konvertirovat-iz/" title="Перетворюємо DOC на EPUB" class="similar-articles-block__title">Перетворюємо DOC на EPUB</a> </div> </div> </div> </div> <div class="full-place" data-place="article_after_related_articles" data-priority="0" style="width: 100%;"></div> <div class="comments"> <div id="mc-container"></div> </div> </article> <aside class="sidebar hide-on-mobile"> <div class="day-sovet"> <h3 class="day-sovet__hd">Тема дня</h3> <div class="day-sovet__box"> <img src="/uploads/a650f6e576928770b61c881041a6aac7.jpg" alt="Як конвертувати DWG файли онлайн?" class="day-sovet__image" loading=lazy loading=lazy> <a href="https://polarize.ru/uk/category/windows/" class="day-sovet__category"> <span>Windows</span> </a> </div> <a href="https://polarize.ru/uk/windows/preobrazovanie-jpg-v-dwg-onlain-kak-konvertirovat-dwg-faily-onlain-sohranenie/" class="day-sovet__link"> <span>Як конвертувати DWG файли онлайн?</span> </a> </div> <!-- /next_post --> <div class="vk-widget"> <h3 class="vk-widget__hd">Реклама</h3> </div> <div class="popular-articles"> <h3 class="black-hd popular-articles__title">Популярні матеріали</h3> <div class="popular-articles__item"> <div class="row-gui"> <div class="row-gui__image"> <a href="https://polarize.ru/uk/office/konvertiruem-pdf-v-txt-konvertiruem-pdf-v-txt-konverter-iz-word-v-txt/" class=""> <img src="/uploads/d3295bc217a2c169625b5ffad2565281.jpg" alt="Конвертуємо PDF у TXT Конвертер з word у txt онлайн" loading=lazy loading=lazy> </a> </div> <div class="row-gui__content"> <a href="https://polarize.ru/uk/office/konvertiruem-pdf-v-txt-konvertiruem-pdf-v-txt-konverter-iz-word-v-txt/" class="row-gui__link"> <span>Конвертуємо PDF у TXT Конвертер з word у txt онлайн</span> </a> </div> </div> </div> <div class="popular-articles__item"> <div class="row-gui"> <div class="row-gui__image"> <a href="https://polarize.ru/uk/program/kak-proverit-skaip-na-virusy-i-udalit-zarazhenie-otkuda-beretsya-spam-v-skaipe/" class=""> <img src="/uploads/ac3de62c307bbc66c653a0e75381e590.jpg" alt="Звідки береться спам у Скайпі?" loading=lazy loading=lazy> </a> </div> <div class="row-gui__content"> <a href="https://polarize.ru/uk/program/kak-proverit-skaip-na-virusy-i-udalit-zarazhenie-otkuda-beretsya-spam-v-skaipe/" class="row-gui__link"> <span>Звідки береться спам у Скайпі?</span> </a> </div> </div> </div> <div class="popular-articles__item"> <div class="row-gui"> <div class="row-gui__image"> <a href="https://polarize.ru/uk/internet/iz-txt-faila-v-pdf-kak-preobrazovat-txt-fail-v-pdf-fail-prostye/" class=""> <img src="/uploads/56f8cbc8f4069571a0153e645073d1eb.jpg" alt="Як перетворити TXT файл на PDF файл" loading=lazy loading=lazy> </a> </div> <div class="row-gui__content"> <a href="https://polarize.ru/uk/internet/iz-txt-faila-v-pdf-kak-preobrazovat-txt-fail-v-pdf-fail-prostye/" class="row-gui__link"> <span>Як перетворити TXT файл на PDF файл</span> </a> </div> </div> </div> <div class="popular-articles__item"> <div class="row-gui"> <div class="row-gui__image"> <a href="https://polarize.ru/uk/components/kak-konvertirovat-ikonki-iz-png-v-ico-konvertiruem-izobrazheniya-png-v-ico/" class=""> <img src="/uploads/8c97b857914e9098016be50b7869f2f7.jpg" alt="Конвертуємо зображення PNG в ICO" loading=lazy loading=lazy> </a> </div> <div class="row-gui__content"> <a href="https://polarize.ru/uk/components/kak-konvertirovat-ikonki-iz-png-v-ico-konvertiruem-izobrazheniya-png-v-ico/" class="row-gui__link"> <span>Конвертуємо зображення PNG в ICO</span> </a> </div> </div> </div> <div class="popular-articles__item"> <div class="row-gui"> <div class="row-gui__image"> <a href="https://polarize.ru/uk/game/programma-dlya-vosstanovleniya-dannyh-s-nerabochei-fleshki-kak/" class=""> <img src="/uploads/c189feef86d5e7a6085f1aaba7259d0b.jpg" alt="Як відновити свої дані з флешки або картки пам'яті" loading=lazy loading=lazy> </a> </div> <div class="row-gui__content"> <a href="https://polarize.ru/uk/game/programma-dlya-vosstanovleniya-dannyh-s-nerabochei-fleshki-kak/" class="row-gui__link"> <span>Як відновити свої дані з флешки або картки пам'яті</span> </a> </div> </div> </div> <div class="popular-articles__item"> <div class="row-gui"> <div class="row-gui__image"> <a href="https://polarize.ru/uk/history/kak-v-pdf-dobavit-numeraciyu-stranic-vstavit-nomera-stranic/" class=""> <img src="/uploads/016f5bc418e080f7899c1d83b86f903c.jpg" alt="Вставити номери сторінок у PDF" loading=lazy loading=lazy> </a> </div> <div class="row-gui__content"> <a href="https://polarize.ru/uk/history/kak-v-pdf-dobavit-numeraciyu-stranic-vstavit-nomera-stranic/" class="row-gui__link"> <span>Вставити номери сторінок у PDF</span> </a> </div> </div> </div> <div class="popular-articles__item"> <div class="row-gui"> <div class="row-gui__image"> <a href="https://polarize.ru/uk/video/iz-rtf-v-pdf-konvertiruem-rtf-v-pdf-alternativnyi-sposob-togo-kak-preobrazovat-rtf-fail-v-pdf-f/" class=""> <img src="/uploads/328e5e519bb1d6a8f32573fd32c91bf0.jpg" alt="З ртф до пдф. Конвертуємо RTF у PDF. Альтернативний спосіб того, як перетворити RTF файл на PDF файл" loading=lazy loading=lazy> </a> </div> <div class="row-gui__content"> <a href="https://polarize.ru/uk/video/iz-rtf-v-pdf-konvertiruem-rtf-v-pdf-alternativnyi-sposob-togo-kak-preobrazovat-rtf-fail-v-pdf-f/" class="row-gui__link"> <span>З ртф до пдф. Конвертуємо RTF у PDF. Альтернативний спосіб того, як перетворити RTF файл на PDF файл</span> </a> </div> </div> </div> </div> </aside> </div> <div class="full-place" data-place="article_desktop_fixed" data-priority="0" style="width: 100%;"></div> <footer class="footer"> <div class="footer__wrapper"> <div class="footer__box"> <a href="https://polarize.ru/uk/" class="footer__logo1"><img src="/logo.png" loading=lazy loading=lazy></a><br> <div class="social-buttons"> <div class="social-buttons-list"> <a href="" class="social-buttons-list__item _vk">Vkontakte</a> <a href="https://facebook.com/" class="social-buttons-list__item _fb">Facebook</a> </div> </div> <p class="footer__copyright">© 2022. Налаштування обладнання та програмного забезпечення</p> </div> <nav class="footer-menu"> <a class="footer-menu__item" href="https://polarize.ru/uk/category/internet/">Інтернет</a> <a class="footer-menu__item" href="https://polarize.ru/uk/category/program/">Програми</a> <a class="footer-menu__item" href="https://polarize.ru/uk/category/game/">Ігри</a> <a class="footer-menu__item" href="https://polarize.ru/uk/category/history/">Історія</a> <a class="footer-menu__item" href="https://polarize.ru/uk/category/windows/">Windows</a> <a class="footer-menu__item" href="https://polarize.ru/uk/category/computer/">Комп'ютер</a> <a class="footer-menu__item" href="https://polarize.ru/uk/category/graphics/">Графіка</a> <a class="footer-menu__item" href="https://polarize.ru/uk/category/components/">Компоненти</a> </nav> <div class="footer__counters"> </div> </div> </footer> <div class="scroll-up"> <div id="toTop"><span class="up_b"></span>Вгору</div> </div> <div class="full-place" data-place="article_modal" data-priority="0" style="width: 100%;"></div> <div class="full-place" data-place="article_modal" data-priority="0" style="width: 100%;"></div> <script data-rocketsrc="/assets/sovets24-2017/js/app-20171130102046.js" type="text/rocketscript"></script> <script type="text/rocketscript"> if(window.location.hostname.indexOf('hghltd.yandex.net')!=-1){ // hghltd.yandex.net var i; var x = document.getElementsByClassName("direct"); for (i = 0; i < x.length; i++) { x[i].style.display = "none"; } } (function(H){ H.className=H.className.replace(/\bno-js\b/,'js')} )(document.documentElement); </script> <script type="text/rocketscript"> APP.pages.articleView(); APP.modules.ratingBlock.init(); Engine.article.errorInTextReport(); document.oncopy = Engine.addLinkOnCopy; </script> <script type="text/rocketscript"> var BANNERS = { types: { code: 1, consultant: 6, modal: 9, offer: 7 } } </script> </body> </html>