From 46127baf3f1915a6cf73424ab155abee0b1700df Mon Sep 17 00:00:00 2001 From: Yuriy Pikhtarev Date: Sat, 27 May 2017 13:12:07 +0300 Subject: [PATCH] Old ads module removal. --- README.md | 78 +++++------ install/sql/mysql.sql | 28 +--- install/upgrade/changes.txt | 2 + internal_data/captcha/.keep | 0 library/config.php | 18 --- .../includes/datastore/build_cat_forums.php | 27 ---- library/includes/functions.php | 2 +- library/includes/init_bb.php | 2 - library/includes/page_header.php | 12 -- src/Legacy/Common/Ads.php | 127 ------------------ src/Legacy/Common/User.php | 23 +--- 11 files changed, 49 insertions(+), 270 deletions(-) delete mode 100644 internal_data/captcha/.keep delete mode 100644 src/Legacy/Common/Ads.php diff --git a/README.md b/README.md index b7e03478b..078474aa4 100644 --- a/README.md +++ b/README.md @@ -11,63 +11,63 @@ Codecov

-# TorrentPier +## About TorrentPier -TorrentPier - движок торрент-трекера, написанный на php. Высокая скорость работы, простота модификации, устойчивость к высоким нагрузкам, в том числе и поддержка альтернативных анонсеров (например, Ocelot). Помимо этого, крайне развитый официальный форум поддержки, где помимо прочего можно испытать движок в работе на демо-версии, не устанавливая его, а также получить любую другую интересующую вас информацию и скачать моды. +TorrentPier - bull-powered BitTorrent tracker engine, written in php. High speed, simple modification, high load +architecture, built-in support for alternative compiled announcers (Ocelot, XBT). In addition we have very helpful +[official support forum](https://torrentpier.me/forum) , where among other things it is possible to test the live +demo, get any support and download modifications for engine. + +## Current status + +TorrentPier is currently in active development. The goal is to remove all legacy code and rewrite existing to +modern standards. If you want to go deep on the code, check our [issues](https://github.com/torrentpier/torrentpier/issues) +and go from there. The documentation will be translated into english in the near future, currently russian is the main language of it. + +## Requirements + +* Apache / nginx +* MySQL / MariaDB / Percona +* PHP: 5.5 / 5.6 / 7.0 / 7.1 ## Installation -Для установки вам необходимо выполнить несколько простых шагов: +For installation you need to follow a few simple steps: 1. Распаковываем на сервер содержимое скачанной вами папки - -2. Создаем базу данных, в которую при помощи phpmyadmin (или любого другого удобного инструмента) импортируем дамп, расположенный в папке **install/sql/mysql.sql** -3. Правим файл конфигурации **library/config.php**, загруженный на сервер: +1. Создаем базу данных, в которую при помощи phpmyadmin (или любого другого удобного инструмента) импортируем дамп, расположенный в папке **install/sql/mysql.sql** +1. Правим файл конфигурации **library/config.php**, загруженный на сервер: > ***'db1' => array('localhost', 'tp_216', 'user', 'pass', $charset, $pconnect)*** -В данной строке изменяем данные входа в базу данных -***$domain_name = 'torrentpier.me';*** +В данной строке изменяем данные входа в базу данных +***$domain_name = 'torrentpier.me';*** В данной строке указываем ваше доменное имя. Остальные правки в файле вносятся по усмотрению, исходя из необходимости из внесения (ориентируйтесь на описания, указанные у полей). -4. Редактируем указанные файлы: +1. Редактируем указанные файлы: + **favicon.ico** (меняем на свою иконку, если есть) + **robots.txt** (меняем адреса в строках **Host** и **Sitemap** на свои) + **opensearch_desc.xml** (меняем описание и адрес на свои) + **opensearch_desc_bt.xml** (меняем описание и адрес на свои) -## Права доступа на папки и файлы +## Access rights on folders and files -Исходя из настроек вашего сервера, устанавливаем рекомендуемые права доступа (chmod) на указанные папки **777**, а на файлы внутри этих папок (кроме файлов **.htaccess** и **.keep**) **666**: -- data/avatars -- data/old_files -- data/torrent_files -- internal_data/ajax_html -- internal_data/atom -- internal_data/cache -- internal_data/log -- internal_data/sitemap -- internal_data/triggers +You must provide write permissions to the specified folders: +* `data/avatars` +* `data/torrent_files` +* `internal_data/ajax_html` +* `internal_data/atom` +* `internal_data/cache` +* `internal_data/log` +* `internal_data/sitemap` +* `internal_data/triggers` -## Необходимая версия php - -Минимально поддерживаемой версией в настоящий момент является 5.5. Существует поддержка вплоть до версии 7.1. - -## Необходимые настройки php - - mbstring.internal_encoding = UTF-8 - magic_quotes_gpc = Off -Внести данные настройки необходимо в файл **php.ini**. Их вам может установить ваш хостер по запросу, если у вас возникают какие-либо проблемы с их самостоятельной установкой. Впрочем, эти настройки могут быть установлены на сервере по-умолчанию, поэтому их внесение требуется исключительно по необходимости. - -## Необходимые модули php - - intl - tidy -Начиная с версии 2.0.9 (ревизия 592 в старой нумерации) данный модуль не является обязательным, но его установка крайне рекомендуется для повышения качества обработки html-кода тем и сообщений пользователей. +The specific settings depend on the server you are using, but in general case we recommend chmod 0755 for folders, +and chmod 0644 for files in them. If you are not sure, leave it as is. ## Рекомендуемый способ запуска cron.php Для значительного ускорения работы трекера может потребоваться отвязка встроенного форумного крона. С более подробной информацией об отвязке крона, вы можете ознакомиться в данной теме https://torrentpier.me/threads/52/ на нашем форуме поддержки. -## Локальный файл конфигурации +## Local configuration Начиная с ревизии 599 была добавлена поддерка автоматического подключения файла config.local.php, при создании его вами. В данном файле вы можете переопределять настройки файла config.php для конкретного сервера, на котором запущен трекер или в целом менять стандартные значения файла config.php, для более простого обновления файлов движка в дальнейшем. @@ -78,13 +78,15 @@ TorrentPier - движок торрент-трекера, написанный Инструкция по сборке приведена на нашем форуме: https://torrentpier.me/threads/sborka-ocelot-pod-debian-7-1.26078/ Для работы анонсера требуется замена двух таблиц в базе данных - дамп в файле: **install/sql/ocelot.sql** -## Official Documentation +## Official documentation Documentation for TorrentPier can be found on the [TorrentPier docs website](https://docs.torrentpier.me). ## Contributing -Please read [CONTRIBUTING.md](CONTRIBUTING.md) for details on our code of conduct, and the process for submitting pull requests to us. +Please read [CONTRIBUTING.md](CONTRIBUTING.md) for details on our code of conduct, and the process for +submitting pull requests to us. But we are always ready to renew your pull-request for compliance with +these requirements. Just send it. ## Versioning diff --git a/install/sql/mysql.sql b/install/sql/mysql.sql index 1a53c8e72..51a887780 100644 --- a/install/sql/mysql.sql +++ b/install/sql/mysql.sql @@ -1,26 +1,5 @@ SET SQL_MODE = ""; --- ---------------------------- --- Table structure for `bb_ads` --- ---------------------------- -DROP TABLE IF EXISTS `bb_ads`; -CREATE TABLE IF NOT EXISTS `bb_ads` ( - `ad_id` MEDIUMINT(8) UNSIGNED NOT NULL AUTO_INCREMENT, - `ad_block_ids` VARCHAR(255) NOT NULL DEFAULT '', - `ad_start_time` DATETIME NOT NULL DEFAULT '0000-00-00 00:00:00', - `ad_active_days` SMALLINT(6) NOT NULL DEFAULT '0', - `ad_status` TINYINT(4) NOT NULL DEFAULT '1', - `ad_desc` VARCHAR(255) NOT NULL DEFAULT '', - `ad_html` TEXT NOT NULL, - PRIMARY KEY (`ad_id`) -) - ENGINE = MyISAM - DEFAULT CHARSET = utf8; - --- ---------------------------- --- Records of bb_ads --- ---------------------------- - -- ---------------------------- -- Table structure for `bb_attachments` -- ---------------------------- @@ -510,7 +489,7 @@ INSERT INTO `bb_config` VALUES ('birthday_min_age', '10'); INSERT INTO `bb_config` VALUES ('birthday_check_day', '7'); INSERT INTO `bb_config` VALUES ('bt_add_auth_key', '1'); INSERT INTO `bb_config` VALUES ('bt_allow_spmode_change', '1'); -INSERT INTO `bb_config` VALUES ('bt_announce_url', 'http://demo.torrentpier.me/bt/announce.php'); +INSERT INTO `bb_config` VALUES ('bt_announce_url', 'https://demo.torrentpier.me/bt/announce.php'); INSERT INTO `bb_config` VALUES ('bt_disable_dht', '0'); INSERT INTO `bb_config` VALUES ('bt_check_announce_url', '0'); INSERT INTO `bb_config` VALUES ('bt_del_addit_ann_urls', '1'); @@ -559,7 +538,6 @@ INSERT INTO `bb_config` VALUES ('smilies_path', 'styles/images/smiles'); INSERT INTO `bb_config` VALUES ('static_sitemap', ''); INSERT INTO `bb_config` VALUES ('topics_per_page', '50'); INSERT INTO `bb_config` VALUES ('xs_use_cache', '1'); -INSERT INTO `bb_config` VALUES ('active_ads', ''); INSERT INTO `bb_config` VALUES ('cron_enabled', '1'); INSERT INTO `bb_config` VALUES ('cron_check_interval', '180'); INSERT INTO `bb_config` VALUES ('magnet_links_enabled', '1'); @@ -994,7 +972,7 @@ CREATE TABLE IF NOT EXISTS `bb_posts_text` ( -- Records of bb_posts_text -- ---------------------------- INSERT INTO `bb_posts_text` VALUES ('1', - 'Благодарим вас за установку новой версии TorrentPier!\n\nЧто делать дальше? Сперва настройте ваш сайт в администраторском разделе. Измените базовые опции: заголовок сайта, число сообщений на страницу, часовой пояс, язык по-умолчанию, настройки сидбонусов, дней рождения и т.д. Создайте несколько форумов, а также не забудьте переименовать или удалить этот. Обязательно настройте возможность создания релизов в созданных вами разделах и добавьте [url=https://torrentpier.me/threads/25867/]шаблоны оформления раздач[/url] для них. Если у вас возникнут вопросы или потребность в дополнительных модификациях, [url=https://torrentpier.me/]посетите наш форум[/url].\n\nТакже напоминаем, что у проекта TorrentPier есть несколько сайтов, которые могут оказаться полезны для вас:\n[list]\n[*]Форум: https://torrentpier.me/\n[*]Демо-версия: https://demo.torrentpier.me/\n[*]Инструкция: https://faq.torrentpier.me/\n[*]Центр загрузки: https://get.torrentpier.me/\n[*]Перевод на другие языки: http://translate.torrentpier.me/\n[/list]\nНе забудьте добавить их себе в закладки и регулярно проверять наличие новых версий движка на нашем форуме, для своевременного обновления.\n\nНе сомневаемся, вам под силу создать самый лучший трекер. Удачи!'); + 'Благодарим вас за установку новой версии TorrentPier!\n\nЧто делать дальше? Сперва настройте ваш сайт в администраторском разделе. Измените базовые опции: заголовок сайта, число сообщений на страницу, часовой пояс, язык по-умолчанию, настройки сидбонусов, дней рождения и т.д. Создайте несколько форумов, а также не забудьте переименовать или удалить этот. Обязательно настройте возможность создания релизов в созданных вами разделах и добавьте [url=https://torrentpier.me/threads/25867/]шаблоны оформления раздач[/url] для них. Если у вас возникнут вопросы или потребность в дополнительных модификациях, [url=https://torrentpier.me/]посетите наш форум[/url].\n\nТакже напоминаем, что у проекта TorrentPier есть несколько сайтов, которые могут оказаться полезны для вас:\n[list]\n[*]Форум: https://torrentpier.me/\n[*]Демо-версия: https://demo.torrentpier.me/\n[*]Инструкция: https://docs.torrentpier.me/\n[*]Центр загрузки: https://get.torrentpier.me/\n[*]Перевод на другие языки: http://translate.torrentpier.me/\n[/list]\nНе забудьте добавить их себе в закладки и регулярно проверять наличие новых версий движка на нашем форуме, для своевременного обновления.\n\nНе сомневаемся, вам под силу создать самый лучший трекер. Удачи!'); -- ---------------------------- -- Table structure for `bb_privmsgs` @@ -1450,4 +1428,4 @@ CREATE TABLE IF NOT EXISTS `buf_topic_view` ( -- ---------------------------- -- Records of buf_topic_view --- ---------------------------- \ No newline at end of file +-- ---------------------------- diff --git a/install/upgrade/changes.txt b/install/upgrade/changes.txt index 8fa8efd60..2dcce6914 100644 --- a/install/upgrade/changes.txt +++ b/install/upgrade/changes.txt @@ -58,3 +58,5 @@ INSERT INTO `bb_cron` VALUES ('', '1', 'Accrual seedbonus', 'tr_seed_bonus.php', UPDATE `bb_config` SET `config_value` = 'http://whatismyipaddress.com/ip/' WHERE `config_name` = 'whois_info'; DELETE FROM `bb_smilies` WHERE `code` = ':ad:'; INSERT INTO `bb_smilies` VALUES ('', ':сd:', 'сd.gif', 'сd'); +DROP TABLE IF EXISTS `bb_ads`; +DELETE FROM `bb_config` WHERE `config_name` = 'active_ads'; diff --git a/internal_data/captcha/.keep b/internal_data/captcha/.keep deleted file mode 100644 index e69de29bb..000000000 diff --git a/library/config.php b/library/config.php index 360f18b7e..bb7feff3b 100644 --- a/library/config.php +++ b/library/config.php @@ -72,7 +72,6 @@ * Users * Groups * Tidy - * Ads * Misc * Extensions * Attachments @@ -542,23 +541,6 @@ $bb_cfg['group_members_per_page'] = 50; // Tidy $bb_cfg['tidy_post'] = (!in_array('tidy', get_loaded_extensions(), true)) ? false : true; -// Ads -$bb_cfg['show_ads'] = false; -$bb_cfg['show_ads_users'] = array( -# user_id => 'name', - 2 => 'admin', -); - -// block_type => [block_id => block_desc] -$bb_cfg['ad_blocks'] = array( - 'trans' => array( - 100 => 'сквозная сверху', - ), - 'index' => array( - 200 => 'главная, под новостями', - ), -); - // Misc define('MEM_USAGE', function_exists('memory_get_usage')); diff --git a/library/includes/datastore/build_cat_forums.php b/library/includes/datastore/build_cat_forums.php index b2d7b00f3..2e53bc0a2 100644 --- a/library/includes/datastore/build_cat_forums.php +++ b/library/includes/datastore/build_cat_forums.php @@ -176,30 +176,3 @@ if ($bb_cfg['show_network_news'] and $net_forum_ids = $bb_cfg['network_news_foru $this->store('network_news', $data); } - -// -// Ads -// -if ($bb_cfg['show_ads']) { - $ad_html = $ad_block_assignment = array(); - - $active_ads = DB()->fetch_rowset(" - SELECT * - FROM " . BB_ADS . " - WHERE ad_status = 1 - AND ad_start_time < NOW() - AND DATE_ADD(ad_start_time, INTERVAL ad_active_days DAY) > NOW() - "); - - foreach ($active_ads as $ad) { - if ($ad['ad_block_ids']) { - foreach (explode(',', $ad['ad_block_ids']) as $block_id) { - $ad_block_assignment[$block_id][] = $ad['ad_id']; - } - } - $ad_html[$ad['ad_id']] = $ad['ad_html']; - } - - $this->store('ads', $ad_html); - bb_update_config(array('active_ads' => serialize($ad_block_assignment))); -} diff --git a/library/includes/functions.php b/library/includes/functions.php index 3dca6b3a2..e786b8853 100644 --- a/library/includes/functions.php +++ b/library/includes/functions.php @@ -192,7 +192,7 @@ $bf['user_opt'] = array( 'dis_passkey' => 7, // Запрет на добавление passkey, он же запрет на скачивание торрентов 'user_porn_forums' => 8, // Скрывать контент 18+ 'user_callseed' => 9, // Позвать скачавших - 'user_hide_ads' => 10, // Запрет на показ рекламы + 'user_empty' => 10, // Запрет на показ рекламы (не используется) 'dis_topic' => 11, // Запрет на создание новых тем 'dis_post' => 12, // Запрет на отправку сообщений 'dis_post_edit' => 13, // Запрет на редактирование сообщений diff --git a/library/includes/init_bb.php b/library/includes/init_bb.php index 499785efc..618b39c08 100644 --- a/library/includes/init_bb.php +++ b/library/includes/init_bb.php @@ -277,7 +277,6 @@ $bb_cfg['tor_no_tor_act'] = array( // Table names define('BUF_TOPIC_VIEW', 'buf_topic_view'); define('BUF_LAST_SEEDER', 'buf_last_seeder'); -define('BB_ADS', 'bb_ads'); define('BB_ATTACH_CONFIG', 'bb_attachments_config'); define('BB_ATTACHMENTS_DESC', 'bb_attachments_desc'); define('BB_ATTACHMENTS', 'bb_attachments'); @@ -467,7 +466,6 @@ if (DBG_USER) { require INC_DIR . '/functions_dev.php'; } -$ads = new TorrentPier\Legacy\Common\Ads(); $html = new TorrentPier\Legacy\Common\Html(); $log_action = new TorrentPier\Legacy\LogAction(); diff --git a/library/includes/page_header.php b/library/includes/page_header.php index a3117f812..d630df184 100644 --- a/library/includes/page_header.php +++ b/library/includes/page_header.php @@ -129,7 +129,6 @@ $template->assign_vars(array( $bb_cfg['lang'][$userdata['user_lang']]['encoding'] : 'utf-8', 'IN_ADMIN' => defined('IN_ADMIN'), - 'SHOW_ADS' => (!$logged_in || isset($bb_cfg['show_ads_users'][$user->id]) || (!IS_AM && $user->show_ads)), 'USER_HIDE_CAT' => (BB_SCRIPT == 'index'), 'USER_LANG' => $userdata['user_lang'], @@ -253,17 +252,6 @@ if (!empty($page_cfg['show_torhelp'][BB_SCRIPT]) && !empty($userdata['torhelp']) } } -// Ads -if ($user->show_ads) { - $load_ads = array('trans'); - if (defined('BB_SCRIPT')) { - $load_ads[] = BB_SCRIPT; - } - foreach ($ads->get($load_ads) as $block_id => $ad_html) { - $template->assign_var("AD_BLOCK_{$block_id}", $ad_html); - } -} - // Login box $in_out = ($logged_in) ? 'in' : 'out'; $template->assign_block_vars("switch_user_logged_{$in_out}", array()); diff --git a/src/Legacy/Common/Ads.php b/src/Legacy/Common/Ads.php deleted file mode 100644 index d923b23bc..000000000 --- a/src/Legacy/Common/Ads.php +++ /dev/null @@ -1,127 +0,0 @@ -ad_blocks =& $bb_cfg['ad_blocks']; - $this->active_ads = !empty($bb_cfg['active_ads']) ? @unserialize($bb_cfg['active_ads']) : []; - } - - /** - * Get ads to show for each block - * - * @param $block_types - * @return array - */ - public function get($block_types) - { - $ads = []; - - if ($this->active_ads) { - $block_ids = $this->get_block_ids($block_types); - - if ($ad_ids = $this->get_ad_ids($block_ids)) { - $ad_html = $this->get_ads_html(); - - foreach ($ad_ids as $block_id => $ad_id) { - $ads[$block_id] =& $ad_html[$ad_id]; - } - } - } - - return $ads; - } - - /** - * Get ads html - * - * @return string - */ - public function get_ads_html() - { - global $datastore; - if (!$ads_html = $datastore->get('ads')) { - $datastore->update('ads'); - $ads_html = $datastore->get('ads'); - } - - return $ads_html; - } - - /** - * Get block_ids for specified block_types - * - * @param $block_types - * @return array - */ - public function get_block_ids($block_types) - { - $block_ids = []; - - foreach ($block_types as $block_type) { - if ($blocks =& $this->ad_blocks[$block_type]) { - $block_ids = array_merge($block_ids, array_keys($blocks)); - } - } - - return $block_ids; - } - - /** - * Get ad_ids for specified blocks - * - * @param $block_ids - * @return array - */ - public function get_ad_ids($block_ids) - { - $ad_ids = []; - - foreach ($block_ids as $block_id) { - if ($ads =& $this->active_ads[$block_id]) { - shuffle($ads); - $ad_ids[$block_id] = $ads[0]; - } - } - - return $ad_ids; - } -} diff --git a/src/Legacy/Common/User.php b/src/Legacy/Common/User.php index 3088ba1b0..e4ed7cff7 100644 --- a/src/Legacy/Common/User.php +++ b/src/Legacy/Common/User.php @@ -88,11 +88,6 @@ class User */ public $id; - /** - * Misc - */ - public $show_ads = false; - /** * Constructor */ @@ -487,7 +482,9 @@ class User if ($expire_check) { if ($create_new && !$autologin_id) { return $this->create_autologin_id($userdata); - } elseif ($autologin_id && $userdata['user_session_time'] && $bb_cfg['max_autologin_time']) { + } + + if ($autologin_id && $userdata['user_session_time'] && $bb_cfg['max_autologin_time']) { if (TIMENOW - $userdata['user_session_time'] > $bb_cfg['max_autologin_time'] * 86400) { return $this->create_autologin_id($userdata, $create_new); } @@ -575,7 +572,6 @@ class User } $this->load_opt_js(); - $this->enqueue_ads(); } /** @@ -717,17 +713,4 @@ class User return array_flip(explode(',', $excluded)); } } - - /** - * Enqueue ads - */ - public function enqueue_ads() - { - global $datastore, $bb_cfg; - - if ($bb_cfg['show_ads'] && !bf($this->opt, 'user_opt', 'user_hide_ads') && !defined('IN_ADMIN') && !defined('IN_AJAX')) { - $datastore->enqueue('ads'); - $this->show_ads = true; - } - } }