From c2bceb9fc5a96debab81f8d177be42e5e088475d Mon Sep 17 00:00:00 2001 From: "dimka3210@gmail.com" Date: Thu, 14 Aug 2014 20:39:42 +0400 Subject: [PATCH 01/11] =?UTF-8?q?=D0=94=D0=BE=D0=B1=D0=B0=D0=B2=D0=BB?= =?UTF-8?q?=D0=B5=D0=BD=D0=B8=D0=B5=20retracker.local=20=D1=87=D0=B5=D1=80?= =?UTF-8?q?=D0=B5=D0=B7=20=D0=BA=D0=BE=D0=BD=D1=84=D0=B8=D0=B3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- upload/admin/admin_bt_tracker_cfg.php | 1 + upload/config.php | 2 ++ upload/download.php | 17 ++--------------- upload/includes/functions_torrent.php | 12 ++++++++++-- upload/language/en/main.php | 1 + upload/language/ru/main.php | 1 + upload/language/ua/main.php | 2 +- upload/templates/admin/admin_bt_tracker_cfg.tpl | 9 ++++++++- 8 files changed, 26 insertions(+), 19 deletions(-) diff --git a/upload/admin/admin_bt_tracker_cfg.php b/upload/admin/admin_bt_tracker_cfg.php index 15aa17714..e1ea09395 100644 --- a/upload/admin/admin_bt_tracker_cfg.php +++ b/upload/admin/admin_bt_tracker_cfg.php @@ -27,6 +27,7 @@ $default_cfg_bool = array( 'update_dlstat' => 1, 'limit_active_tor' => 0, 'limit_concurrent_ips' => 0, + 'retracker_local' => 0 ); $default_cfg_num = array( diff --git a/upload/config.php b/upload/config.php index 35571b489..9acacc759 100644 --- a/upload/config.php +++ b/upload/config.php @@ -188,6 +188,8 @@ $tr_cfg = array( 'limit_leech_ips' => 0, 'tor_topic_up' => true, 'gold_silver_enabled' => true, + 'retracker_local' => false, + 'retracker_local_host' => 'http://retracker.local', ); $bb_cfg['show_dl_status_in_search'] = true; diff --git a/upload/download.php b/upload/download.php index aeb524e18..4596bed24 100644 --- a/upload/download.php +++ b/upload/download.php @@ -32,19 +32,6 @@ function send_file_to_browser($attachment, $upload_dir) $gotit = true; } - // - // Determine the Browser the User is using, because of some nasty incompatibilities. - // Most of the methods used in this function are from phpMyAdmin. :) - // - if (!empty($_SERVER['HTTP_USER_AGENT'])) - { - $HTTP_USER_AGENT = $_SERVER['HTTP_USER_AGENT']; - } - elseif (!isset($HTTP_USER_AGENT)) - { - $HTTP_USER_AGENT = ''; - } - // Correct the mime type - we force application/octet-stream for all files, except images // Please do not change this, it is a security precaution if (!strstr($attachment['mimetype'], 'image')) @@ -62,8 +49,8 @@ function send_file_to_browser($attachment, $upload_dir) // Now the tricky part... let's dance header('Pragma: public'); $real_filename = clean_filename(basename($attachment['real_filename'])); - $mimetype = "{$attachment['mimetype']};"; - $charset = (@$lang['CONTENT_ENCODING']) ? "charset={$lang['CONTENT_ENCODING']};" : ''; + $mimetype = $attachment['mimetype'].';'; + $charset = (isset($lang['CONTENT_ENCODING'])) ? "charset={$lang['CONTENT_ENCODING']};" : ''; // Send out the Headers header("Content-Type: $mimetype $charset name=\"$real_filename\""); diff --git a/upload/includes/functions_torrent.php b/upload/includes/functions_torrent.php index cf3c516ab..7abdf44f3 100644 --- a/upload/includes/functions_torrent.php +++ b/upload/includes/functions_torrent.php @@ -354,7 +354,7 @@ function tracker_register ($attach_id, $mode = '', $tor_status = TOR_NOT_APPROVE function send_torrent_with_passkey ($filename) { - global $attachment, $auth_pages, $userdata, $bb_cfg, $lang; + global $attachment, $auth_pages, $userdata, $bb_cfg, $tr_cfg, $lang; if (!$bb_cfg['bt_add_auth_key'] || $attachment['extension'] !== TORRENT_EXT || !$size = @filesize($filename)) { @@ -456,11 +456,19 @@ function send_torrent_with_passkey ($filename) { unset($tor['announce-list']); } - elseif (@$tor['announce-list']) + elseif (isset($tor['announce-list'])) { $tor['announce-list'] = array_merge($tor['announce-list'], array(array($announce))); } + // Add retracker.local + if (isset($tr_cfg['retracker_local']) && $tr_cfg['retracker_local']) { + if (!isset($tor['announce-list'])) { + $tor['announce-list'] = array(); + } + $tor['announce-list'][] = array($tr_cfg['retracker_local_host']); + } + // Add publisher & topic url $publisher_name = $bb_cfg['server_name']; $publisher_url = make_url(TOPIC_URL . $topic_id); diff --git a/upload/language/en/main.php b/upload/language/en/main.php index 345f8e734..15d076349 100644 --- a/upload/language/en/main.php +++ b/upload/language/en/main.php @@ -2555,6 +2555,7 @@ $lang['USE_AUTH_KEY_EXPL'] = 'enable check for passkey'; $lang['AUTH_KEY_NAME'] = 'Passkey name'; $lang['AUTH_KEY_NAME_EXPL'] = 'passkey key name in GET request'; $lang['ALLOW_GUEST_DL'] = 'Allow guest access to tracker'; +$lang['RETRACKER_LOCAL'] = 'Add retracker.local'; // // Forum config diff --git a/upload/language/ru/main.php b/upload/language/ru/main.php index 8d482a76f..d307a8914 100644 --- a/upload/language/ru/main.php +++ b/upload/language/ru/main.php @@ -2555,6 +2555,7 @@ $lang['USE_AUTH_KEY_EXPL'] = 'включить авторизацию по passk $lang['AUTH_KEY_NAME'] = 'Имя ключа passkey'; $lang['AUTH_KEY_NAME_EXPL'] = 'имя ключа, который будет добавляться в GET запросе к announce url для идентификации юзера'; $lang['ALLOW_GUEST_DL'] = 'Разрешить "гостям" (неавторизованным юзерам) доступ к трекеру'; +$lang['RETRACKER_LOCAL'] = 'Добавлять retracker.local'; // // Forum config diff --git a/upload/language/ua/main.php b/upload/language/ua/main.php index 0544aca1f..13858a895 100644 --- a/upload/language/ua/main.php +++ b/upload/language/ua/main.php @@ -2555,7 +2555,7 @@ $lang['USE_AUTH_KEY_EXPL'] = 'включити авторизацію по passk $lang['AUTH_KEY_NAME'] = "Ім'я ключа passkey"; $lang['AUTH_KEY_NAME_EXPL'] = "ім'я ключа, який буде додаватися до GET запиті до announce url для ідентифікації користувача"; $lang['ALLOW_GUEST_DL'] = "Дозволити 'гостям' (неавторизованим юзерам) доступ до трекера"; - +$lang['RETRACKER_LOCAL'] = 'Додавати retracker.local'; // // Forum config // diff --git a/upload/templates/admin/admin_bt_tracker_cfg.tpl b/upload/templates/admin/admin_bt_tracker_cfg.tpl index f14150ae0..a494fb254 100644 --- a/upload/templates/admin/admin_bt_tracker_cfg.tpl +++ b/upload/templates/admin/admin_bt_tracker_cfg.tpl @@ -51,7 +51,14 @@

{L_ALLOW_GUEST_DL}

{L_ALLOW_GUEST_DL_EXPL}
  {L_NO}{L_YES} - + +

{L_RETRACKER_LOCAL}

+ + + + + {L_LIMIT_ACTIVE_TOR_HEAD} From 317691eb5f35bb30e36218e0fe24a802d501fbea Mon Sep 17 00:00:00 2001 From: Dmitry Larchikov Date: Fri, 15 Aug 2014 08:57:57 +0400 Subject: [PATCH 02/11] =?UTF-8?q?=D0=91=D0=BE=D0=BB=D0=B5=D0=B5=20=D0=BB?= =?UTF-8?q?=D0=BE=D0=B3=D0=B8=D1=87=D0=BD=D0=B0=D1=8F=20=D0=BF=D0=BE=D0=B4?= =?UTF-8?q?=D1=81=D0=B2=D0=B5=D1=82=D0=BA=D0=B0=20=D1=81=D0=BE=D0=B2=D0=BF?= =?UTF-8?q?=D0=B0=D0=B4=D0=B5=D0=BD=D0=B8=D0=B9.=20=D0=A1=D1=82=D1=80?= =?UTF-8?q?=D0=BE=D0=BA=D1=83=20=D0=BC=D1=8B=20=D0=B8=20=D1=82=D0=B0=D0=BC?= =?UTF-8?q?=20=D0=B2=D0=B8=D0=B4=D0=B8=D0=BC,=20=D0=B0=20=D0=B2=D0=BE?= =?UTF-8?q?=D1=82=20=D1=87=D0=B0=D1=81=D1=82=20=D0=BA=D0=BE=D1=82=D0=BE?= =?UTF-8?q?=D1=80=D0=B0=D1=8F=20=D1=81=D0=BE=D0=B2=D0=BF=D0=B0=D0=BB=D0=B0?= =?UTF-8?q?=20=D1=81=20=D0=BF=D0=BE=D0=B8=D1=81=D0=BA=D0=BE=D0=B2=D0=BE?= =?UTF-8?q?=D0=B9=20=D0=BB=D1=83=D1=87=D1=88=D0=B5=20=D0=BF=D0=BE=D0=B4?= =?UTF-8?q?=D1=81=D0=B2=D0=B5=D1=82=D0=B8=D1=82=D1=8C.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- upload/templates/default/index_map.tpl | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/upload/templates/default/index_map.tpl b/upload/templates/default/index_map.tpl index d78f82101..37cae539d 100644 --- a/upload/templates/default/index_map.tpl +++ b/upload/templates/default/index_map.tpl @@ -18,13 +18,13 @@ a.hl, a.hl:visited { color: #1515FF; } function qs_highlight_found () { this.style.display = ''; - var a = $('a:first', this)[0]; + var a = $('a:first', this); var q = $('#q-search').val().toLowerCase(); - if (q != '' && a.innerHTML.toLowerCase().indexOf(q) != -1) { - a.className = 'hl'; + if (q != '' && a.text().toLowerCase().indexOf(q) != -1) { + a.html(a.text().replace(q, '' + q + '')); } else { - a.className = ''; + a.html(a.text()); } } function open_feed (f_id) From 5f18edc936a0fa04ec4ddbfed049167ba0f1829b Mon Sep 17 00:00:00 2001 From: Exile Date: Fri, 15 Aug 2014 10:16:49 +0400 Subject: [PATCH 03/11] Remove chat drafts MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Удаляем заготовки для чата, раньше времени включенные в основную ветку. Чат отдельной веткой разрабатывается и будет включен только после 600 ревизии. --- upload/ajax.php | 7 ------- upload/ajax/chat.php | 5 ----- upload/includes/init_bb.php | 1 - 3 files changed, 13 deletions(-) delete mode 100644 upload/ajax/chat.php diff --git a/upload/ajax.php b/upload/ajax.php index 34845418f..8b3d2ba2e 100644 --- a/upload/ajax.php +++ b/upload/ajax.php @@ -32,7 +32,6 @@ switch ($ajax->action) require(INC_DIR . 'bbcode.php'); break; - case 'chat': case 'posts': case 'post_mod_comment': require(INC_DIR . 'bbcode.php'); @@ -99,7 +98,6 @@ class ajax_common 'post_mod_comment' => array('mod'), 'avatar' => array('user'), - 'chat' => array('user'), 'gen_passkey' => array('user'), 'change_torrent' => array('user'), 'change_tor_status' => array('user'), @@ -416,11 +414,6 @@ class ajax_common require(AJAX_DIR . 'avatar.php'); } - function chat() - { - require(AJAX_DIR . 'chat.php'); - } - function sitemap() { require(AJAX_DIR .'sitemap.php'); diff --git a/upload/ajax/chat.php b/upload/ajax/chat.php deleted file mode 100644 index 17cdec17a..000000000 --- a/upload/ajax/chat.php +++ /dev/null @@ -1,5 +0,0 @@ - Date: Sat, 16 Aug 2014 08:01:08 +0600 Subject: [PATCH 04/11] Subscribe to the feed in viewforum page MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Добавлена ссылка для подписки на ленту на странице viewforum --- upload/templates/default/viewforum.tpl | 1 + 1 file changed, 1 insertion(+) diff --git a/upload/templates/default/viewforum.tpl b/upload/templates/default/viewforum.tpl index 6e67ab4f1..a9eef738b 100644 --- a/upload/templates/default/viewforum.tpl +++ b/upload/templates/default/viewforum.tpl @@ -405,6 +405,7 @@ td.topic_id { cursor: pointer; }   + {L_ATOM_SUBSCRIBE}  |  {L_SEARCH_SELF}  |  {L_DISPLAYING_OPTIONS} From 5b236c6a8113739a012d1e5a552aabb6f9c21751 Mon Sep 17 00:00:00 2001 From: Exile Date: Sun, 17 Aug 2014 16:19:17 +0400 Subject: [PATCH 05/11] =?UTF-8?q?Atom=20fix=20=C2=AF\(=C2=B0=5Fo)/=C2=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Без комментариев вообще. --- upload/includes/cron/jobs/update_forums_atom.php | 4 ++-- upload/templates/default/index_map.tpl | 4 ++-- upload/templates/default/viewforum.tpl | 4 ++-- 3 files changed, 6 insertions(+), 6 deletions(-) diff --git a/upload/includes/cron/jobs/update_forums_atom.php b/upload/includes/cron/jobs/update_forums_atom.php index eaf6bc73e..7a517feba 100644 --- a/upload/includes/cron/jobs/update_forums_atom.php +++ b/upload/includes/cron/jobs/update_forums_atom.php @@ -9,14 +9,14 @@ require_once(INC_DIR .'functions_atom.php'); $timecheck = TIMENOW - 600; $forums_data = DB()->fetch_rowset("SELECT forum_id, allow_reg_tracker, forum_name FROM ". BB_FORUMS); -if (!file_exists($bb_cfg['atom']['path'] .'/f/0.atom') && filemtime($bb_cfg['atom']['path'] .'/f/0.atom') <= $timecheck) +if (file_exists($bb_cfg['atom']['path'] .'/f/0.atom') && filemtime($bb_cfg['atom']['path'] .'/f/0.atom') <= $timecheck) { update_forum_feed(0, $forums_data); } foreach ($forums_data as $forum_data) { - if (!file_exists($bb_cfg['atom']['path'] .'/f/'. $forum_data['forum_id'] .'.atom') && filemtime($bb_cfg['atom']['path'] .'/f/'. $forum_data['forum_id'] .'.atom') <= $timecheck) + if (file_exists($bb_cfg['atom']['path'] .'/f/'. $forum_data['forum_id'] .'.atom') && filemtime($bb_cfg['atom']['path'] .'/f/'. $forum_data['forum_id'] .'.atom') <= $timecheck) { update_forum_feed($forum_data['forum_id'], $forum_data); } diff --git a/upload/templates/default/index_map.tpl b/upload/templates/default/index_map.tpl index 37cae539d..cf9c5af1c 100644 --- a/upload/templates/default/index_map.tpl +++ b/upload/templates/default/index_map.tpl @@ -21,10 +21,10 @@ function qs_highlight_found () var a = $('a:first', this); var q = $('#q-search').val().toLowerCase(); if (q != '' && a.text().toLowerCase().indexOf(q) != -1) { - a.html(a.text().replace(q, '' + q + '')); + a.html(a.text().replace(q, '' + q + '')); } else { - a.html(a.text()); + a.html(a.text()); } } function open_feed (f_id) diff --git a/upload/templates/default/viewforum.tpl b/upload/templates/default/viewforum.tpl index a9eef738b..46cd57e38 100644 --- a/upload/templates/default/viewforum.tpl +++ b/upload/templates/default/viewforum.tpl @@ -405,8 +405,8 @@ td.topic_id { cursor: pointer; }   - {L_ATOM_SUBSCRIBE}  |  - {L_SEARCH_SELF}  |  + {FEED_IMG} {L_ATOM_SUBSCRIBE} · + {L_SEARCH_SELF} · {L_DISPLAYING_OPTIONS} From 85b7ce76816f9c8b2c20cef42738581fb6301fe1 Mon Sep 17 00:00:00 2001 From: Exile Date: Tue, 19 Aug 2014 01:47:48 +0400 Subject: [PATCH 06/11] DC++ magnets + filelist fix MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Поиск в DC++ по имени файла и расширению. Исправление ошибки с переполнением int в списке файлов (отрицательные размеры). --- upload/ajax/view_torrent.php | 11 +++++++---- upload/images/dc_magnet.png | Bin 0 -> 2198 bytes upload/images/dc_magnet_ext.png | Bin 0 -> 1927 bytes upload/language/en/main.php | 2 ++ upload/language/ru/main.php | 2 ++ upload/language/ua/main.php | 2 ++ upload/templates/default/tpl_config.php | 2 ++ 7 files changed, 15 insertions(+), 4 deletions(-) create mode 100644 upload/images/dc_magnet.png create mode 100644 upload/images/dc_magnet_ext.png diff --git a/upload/ajax/view_torrent.php b/upload/ajax/view_torrent.php index 5f9ed7227..7df15cf13 100644 --- a/upload/ajax/view_torrent.php +++ b/upload/ajax/view_torrent.php @@ -81,8 +81,6 @@ class torrent function build_filelist_array () { - global $lang; - $info = $this->tor_decoded['info']; if (isset($info['name.utf-8'])) @@ -149,7 +147,7 @@ class torrent { $this->multiple = false; $name = isset($info['name']) ? clean_tor_dirname($info['name']) : ''; - $length = isset($info['length']) ? (int) $info['length'] : 0; + $length = isset($info['length']) ? (float) $info['length'] : 0; $this->files_ary['/'][] = $this->build_file_item($name, $length); natsort($this->files_ary['/']); @@ -158,7 +156,12 @@ class torrent function build_file_item ($name, $length) { - return "$name $length"; + global $images, $lang; + + $magnet_name = ''; + $magnet_ext = ''; + + return "$name $length $magnet_name $magnet_ext"; } function build_filelist_html () diff --git a/upload/images/dc_magnet.png b/upload/images/dc_magnet.png new file mode 100644 index 0000000000000000000000000000000000000000..19a7cd5dcb7b0c625f433025948029cbeff9cad1 GIT binary patch literal 2198 zcmV;H2x<3;P)(_`g8%^e{{R4h=l}px2mk>USO5SzmjD14Z`WEM zkN^M(97#k$RCwB?S9^?HRUQ7$pR~e&&`_;08juzsSp8(8wRBi0+0Y6xTcWa-{GYqrIKK9 z5u*eR!<+xqGfe=1)Yqs#08*_&eeWJ*uDS{*j~+vQtcamQhcR89Mkd_`j`Iu!V9lM! zd!TSL)yWEFVPO)+Y)=4@jLj&DrtC2~{QX-`JTIZPZG5t4m=JvAaZcdd?l@+v1lDOL zzc<;I>UA6kLI_Yw>)sH8IF1d^^D?AVx^k*8`So>cj{jui_MWHd#|8e{-N*WsskXGY zw=YknQZNhyQc3`TloF)j7Gn&SWx+H}R8y&ih0**IgWo#wFqHb)=IuS>7XqHK!CMB8 z4w!=N?CtGcp3P<vO#l=`-lbX@?5;}~%qgE0ov zG{G1HB?N|HAel@el}f>~ENGerP1C?R2c;C0QbbXN-rinp>EDiyqyy>uxTwE>$!D%y z_DsSw@AHFzwj9`Y|D>%8u_2X8WgBe*Ap{bMM6+#RSr%N^#pL89PMtc1iQHH?Fe!n_Z`>7WOzYc5RGk&3}O~utqOw)u?3d^oo zid7xAgZtr(nuy~Vwr%0lpSpa}Xuj~}(PH66P6+At9Bv7vplKSC$z&_1&2SfsMR@y9 zzZ<)1^jzI{p?T_7?u6|wr%4J8} z-(ZdnP6*1S63V4gi*PvS@H`KHdG@(omFcM;*@;A%5<;jXfNk5bEDK7hR+TcwAf<%o zc_Dy3T7&910U#wv6oDv(yY?hsyz~C# zhmZU~XxcO(1XN0yCydHeD%HvfV{8U5b5IUIr-VQdf;K`B_4UE)=l~5v0D!^S*w}dK zyU)F}Ywc@qzf*P`2MNQ3k`nt498hoV-TUK|_VnytJv4FD|5LM2yR^6(X76L-IvdL2??V$K|ty1S9< z?nY4tuAXp|QeW(t zJ-Zd&86PnQE1hJOsmjW&3kscEuAbO^>+uEEa#t5TDUo+w6oLS85JD-SR4zj)6*yL6 zr;_q%U5K2fX%ONAqols@C}!Wj(eH~2>?M5fD#Hy&##5pU^>&9 zY`v!TQq8L+i^bwqj^n_#Z9qz>2Kc2@pTG?xtDprnM6rY}1mC=IaeqSS8KIH z&Eix_!O(TMwtY@u^4|Q5XUGu>VBz4gK~u3`_AZ$3c6D{t+bfj#!du@!Qd6x{NeBT= z(_oqga`~~~g_mF5Fj^@7ic(r@MnD(h!qNu~Df{lm-i-mrit_G*Z|vK*55Di?n|p4- zEXPC;1gLqnmI|rMAP*hcS;92*RY4e9O}P|?5h_zt=QMggX}kZyuGhx1{Bz;^`7H+z z41u*}Ft@W4J>5NEl%ZO!!uNfIVF)Q>?0#!+@pP`R&Jd!=83Shw8fOric1}Ah)D3N3 zH>JR(!j8{gw{~Ljf(^^&&ri=v&w^AExzSOSO5;eFCMvZW_74pYR;#s5mFhIqg_Pd; zboH68D+2g}{jOA=cysT+4?J+uyuNFDdU`OgZyu7aiz6dPkS~>=Gz|R_!_bjVr$9cg zpg&uRDsayCC`wl!%Z>h`=KJgV`{uz90#t+Wh%WT|IP>GGS38UK{x9Gr2^d0**|t6C z$I&apBZnUf!!Ye8-Strv9Z#4B{+paVtDQbdKF&2Bf9i>)8skg-Fx;$~H;n(`^7Nkp Y0GQeFSr;$?+W-In07*qoM6N<$f|A-1e*gdg literal 0 HcmV?d00001 diff --git a/upload/images/dc_magnet_ext.png b/upload/images/dc_magnet_ext.png new file mode 100644 index 0000000000000000000000000000000000000000..ee6b2e467c7fce53275d633658fd5a7bcd1efbfe GIT binary patch literal 1927 zcmV;22YC32P)(_`g8%^e{{R4h=l}px2mk>USO5SzmjD14Z`WEM zkN^M&4M{{nRCwB?S6hf&SruLToO{oG)~#1Ml~+r;nxsjL5)A!7$9#-QU>rmT9ArM6 z_~8Sb2}TBF@PU5&KxIZ0CVmY5j8TG_3@9?12qQQ%m|!5JL%NfOPTOsDS68KP)vc=g zIL8nBUT;4p$>@dyb*td6z1LoQon3VL^l1QqQVL0uKq&>K6r_{@04ZhqTmev$QWgPt zN~snR%_^n3M1(YyQUHJ`ig5h+aU42y2=nvvSYBSn?c28z1OY0Q3N$<*q?E%%^rR5t zln~;OuIsh+@2xNlJA=Vsw%_mnQA+tL5zXckcvx%;tdw#YW6!y+`_*Ex_yNnZz&S_$ z#ZpQ$ilQC9?@zW`tpnj} zKYug`g0o7gzds0=<*KL{hViSRp`pX3X(CAyBuN4(C6XioV=SxCFbwFro&l$^bLUQs zjg384tybTZQhp_lX&b1H z;~1q<2`5jUM5R(e6h#;v9X&cVHFeRp?H9r@WNES*5xKgqpAtf3poU?S z0<_z0gkcyl#<=Hs%=0{O&Jo8kbX~{P)D+6)G6sV|W+e4`-7A$!KMccg{OZ-KF9Mk3 z$BrF4Dug&|nx;rAEffkH`bI=(x7%1)Sh&5mw)UM~ulIu>2rk~ge_tOA28V6i{?AAp zIDjKZj${s)Mv^3OT^Hly<3}2e#-|#M#+w=u?c>QbxKdam2;esBN&{X6#U+lTr2d3c_;A^DWCg@pw)o6X+~A^yo2V|Myu zY8ZL306@FlmPwNQlyiP7Zz$_M|5>Ng`Ao0Zd)KloFvieowa{v{GPX2LL%-k08*jYv zmrkeiqT@JiMnp_01So+PfSlwpX>MgnXp=| z7Q!%u5CWGkUtXD=o&A~+qDw^305ph5+P2N|vzreh(imd~V+;VmIfrSQ==b~RcDn!o zUDundtE*qSdGqEw2M-?n{=~#YDNXLijT`FPwQJuj7K{JLk|(0uN+~}-kNNT8oWrs# zu9W&*ew+%00>;M1;CWsqCSBJN1i>p8FJAn_xpU{<>h*e1O5w_tE3YO=^2@y2@rj9v zwIoSSS(dfmG|ep)6A^S>hwuAG<2b(07<(seO=_P>lAv0x!t*?=uCBuO{l&X?@BVgi zadBs}*|Zvs#dps{h-}f;+J&on%s5J zAxV;EyWM__hz!SZGG*rlm$$=OtybN!W5?4=OG{d((|MbSVgTrLI%qbVXfzsIjNN*vQBT_U_#a(=-tT0S1FX#sKFW*RNk+nVFgSJQ3YW_px+8+x9#F z7yt&ku3sXe#lc|ku|lC>mCI$6%VkI@(dl%+IY+zQ#@yW8H#AMVkZvxU=XUd-&IG(pGE89;0=f5xy3n9d7mSxRqnl>JW;p^!V@qXgp0{{a7>FX@$XV?G$ N002ovPDHLkV1iwXrVRi9 literal 0 HcmV?d00001 diff --git a/upload/language/en/main.php b/upload/language/en/main.php index 1da869c0e..e27e6fc1e 100644 --- a/upload/language/en/main.php +++ b/upload/language/en/main.php @@ -1114,6 +1114,8 @@ $lang['SEEDING'] = 'Seed'; $lang['LEECHING'] = 'Leech'; $lang['IS_REGISTERED'] = 'Registered'; $lang['MAGNET'] = 'Magnet'; +$lang['DC_MAGNET'] = 'Search in DC++ by filename'; +$lang['DC_MAGNET_EXT'] = 'Search in DC++ by extension'; //torrent status mod $lang['TOR_STATUS'] = 'Status'; diff --git a/upload/language/ru/main.php b/upload/language/ru/main.php index bf9257575..abfb9d0d6 100644 --- a/upload/language/ru/main.php +++ b/upload/language/ru/main.php @@ -1114,6 +1114,8 @@ $lang['SEEDING'] = 'Сидер'; $lang['LEECHING'] = 'Личер'; $lang['IS_REGISTERED'] = 'Зарегистрирован'; $lang['MAGNET'] = 'Magnet'; +$lang['DC_MAGNET'] = 'Поиск в DC++ по имени файла'; +$lang['DC_MAGNET_EXT'] = 'Поиск в DC++ по расширению'; //torrent status mod $lang['TOR_STATUS'] = 'Статус'; diff --git a/upload/language/ua/main.php b/upload/language/ua/main.php index 667264a1f..c458fd454 100644 --- a/upload/language/ua/main.php +++ b/upload/language/ua/main.php @@ -1114,6 +1114,8 @@ $lang['SEEDING'] = 'Сідер'; $lang['LEECHING'] = 'Лічер'; $lang['IS_REGISTERED'] = 'Зареєстрований'; $lang['MAGNET'] = 'Magnet'; +$lang['DC_MAGNET'] = 'Пошук в DC++ по імені файлу'; +$lang['DC_MAGNET_EXT'] = 'Пошук в DC++ по розширенню'; //torrent status mod $lang['TOR_STATUS'] = 'Статус'; diff --git a/upload/templates/default/tpl_config.php b/upload/templates/default/tpl_config.php index 31773f5bf..d7d976d60 100644 --- a/upload/templates/default/tpl_config.php +++ b/upload/templates/default/tpl_config.php @@ -62,6 +62,8 @@ $images['folder_dl_hot_new'] = $_main .'folder_dl_hot_new.gif'; $images['icon_clip'] = $_img .'icon_clip.gif'; $images['icon_dn'] = $_img .'icon_dn.gif'; $images['icon_magnet'] = $_img .'magnet.png'; +$images['icon_dc_magnet'] = $_img .'dc_magnet.png'; +$images['icon_dc_magnet_ext'] = $_img .'dc_magnet_ext.png'; // posting_icons $images['post_new'] = $_lang .'post.gif'; From 48c5e149c210fe20cabb8d965d30cff9566b7c36 Mon Sep 17 00:00:00 2001 From: Exile Date: Tue, 19 Aug 2014 01:55:16 +0400 Subject: [PATCH 07/11] Topic watch fix MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Мелкий фикс запроса. --- upload/config.php | 4 ++-- upload/viewtopic.php | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/upload/config.php b/upload/config.php index 3e47060e8..73907892b 100644 --- a/upload/config.php +++ b/upload/config.php @@ -69,8 +69,8 @@ $domain_name = (!empty($_SERVER['SERVER_NAME'])) ? $_SERVER['SERVER_NAME'] : $do // Version info $bb_cfg['tp_version'] = '2.0.9 (RC)'; -$bb_cfg['tp_release_date'] = '14-08-2014'; -$bb_cfg['tp_release_state'] = 'R595'; +$bb_cfg['tp_release_date'] = '19-08-2014'; +$bb_cfg['tp_release_state'] = 'R596'; // Database $charset = 'utf8'; diff --git a/upload/viewtopic.php b/upload/viewtopic.php index 7f884761d..d9e0be58e 100644 --- a/upload/viewtopic.php +++ b/upload/viewtopic.php @@ -93,7 +93,7 @@ if ($topic_id) $sql = "SELECT t.*, f.*, tw.notify_status FROM ". BB_TOPICS ." t LEFT JOIN ". BB_FORUMS ." f USING(forum_id) - LEFT JOIN ". BB_TOPICS_WATCH ." tw ON(tw.topic_id = t.topic_id AND user_id = {$userdata['user_id']}) + LEFT JOIN ". BB_TOPICS_WATCH ." tw ON(tw.topic_id = t.topic_id AND tw.user_id = {$userdata['user_id']}) WHERE t.topic_id = $topic_id "; } @@ -103,7 +103,7 @@ elseif ($post_id) FROM ". BB_TOPICS ." t LEFT JOIN ". BB_FORUMS ." f USING(forum_id) LEFT JOIN ". BB_POSTS ." p USING(topic_id) - LEFT JOIN ". BB_TOPICS_WATCH ." tw ON(tw.topic_id = t.topic_id AND user_id = {$userdata['user_id']}) + LEFT JOIN ". BB_TOPICS_WATCH ." tw ON(tw.topic_id = t.topic_id AND tw.user_id = {$userdata['user_id']}) WHERE p.post_id = $post_id "; } From dd26eda857e670b5e217de81392f0873cc380651 Mon Sep 17 00:00:00 2001 From: Exile Date: Tue, 19 Aug 2014 14:33:27 +0400 Subject: [PATCH 08/11] Disable DC++ magnets MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Отключение магнитов для хабов при отключении магнитов в целом. --- upload/ajax/view_torrent.php | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/upload/ajax/view_torrent.php b/upload/ajax/view_torrent.php index 7df15cf13..af2327b8e 100644 --- a/upload/ajax/view_torrent.php +++ b/upload/ajax/view_torrent.php @@ -156,10 +156,15 @@ class torrent function build_file_item ($name, $length) { - global $images, $lang; + global $bb_cfg, $images, $lang; - $magnet_name = ''; - $magnet_ext = ''; + $magnet_name = $magnet_ext = ''; + + if ($bb_cfg['magnet_links_enabled']) + { + $magnet_name = ''; + $magnet_ext = ''; + } return "$name $length $magnet_name $magnet_ext"; } From b1933c1d792b4788d92e14c49387cd6e281c79f9 Mon Sep 17 00:00:00 2001 From: Exile Date: Wed, 20 Aug 2014 02:11:20 +0400 Subject: [PATCH 09/11] Sitemap time fix MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Отображение времени в карте сайта согласно стандарта. --- upload/config.php | 2 +- upload/includes/class.sitemap.php | 73 +++++++++++++------------------ 2 files changed, 31 insertions(+), 44 deletions(-) diff --git a/upload/config.php b/upload/config.php index 73907892b..ead5b4dcf 100644 --- a/upload/config.php +++ b/upload/config.php @@ -69,7 +69,7 @@ $domain_name = (!empty($_SERVER['SERVER_NAME'])) ? $_SERVER['SERVER_NAME'] : $do // Version info $bb_cfg['tp_version'] = '2.0.9 (RC)'; -$bb_cfg['tp_release_date'] = '19-08-2014'; +$bb_cfg['tp_release_date'] = '20-08-2014'; $bb_cfg['tp_release_state'] = 'R596'; // Database diff --git a/upload/includes/class.sitemap.php b/upload/includes/class.sitemap.php index 75fd7a0e0..8e39a2e28 100644 --- a/upload/includes/class.sitemap.php +++ b/upload/includes/class.sitemap.php @@ -2,12 +2,12 @@ class sitemap { - var $home = ""; + var $home = ''; var $limit = 0; - var $topic_priority = "0.5"; - var $stat_priority = "0.5"; - var $priority = "0.6"; - var $cat_priority = "0.7"; + var $topic_priority = '0.5'; + var $stat_priority = '0.5'; + var $priority = '0.6'; + var $cat_priority = '0.7'; function sitemap () { global $bb_cfg; @@ -16,7 +16,6 @@ class sitemap function build_map () { $map = "\n\n"; - $map .= $this->get_static(); $map .= $this->get_forum(); $map .= $this->get_topic(); @@ -26,16 +25,13 @@ class sitemap } function build_index ($count) { + $lm = date('c'); $map = "\n\n"; - - $lastmod = date("Y-m-d"); - $map .= "\n{$this->home}sitemap/sitemap1.xml\n{$lastmod}\n\n"; - + $map .= "\n{$this->home}sitemap/sitemap1.xml\n{$lm}\n\n"; for ($i = 0; $i < $count; $i++) { $t = $i + 2; - $map .= "\n{$this->home}sitemap/sitemap{$t}.xml\n{$lastmod}\n\n"; + $map .= "\n{$this->home}sitemap/sitemap{$t}.xml\n{$lm}\n\n"; } - $map .= ""; return $map; @@ -43,7 +39,6 @@ class sitemap function build_stat () { $map = "\n\n"; - $map .= $this->get_static(); $map .= $this->get_forum(); $map .= ""; @@ -53,7 +48,6 @@ class sitemap function build_map_topic ($n) { $map = "\n\n"; - $map .= $this->get_topic($n); $map .= ""; @@ -64,24 +58,23 @@ class sitemap global $datastore; $this->priority = $this->cat_priority; - $xml = ""; - $lastmod = date( "Y-m-d" ); + $xml = ''; + $lm = date('c'); - if (!$forums = $datastore->get('cat_forums')) - { + if (!$forums = $datastore->get('cat_forums')) { $datastore->update('cat_forums'); $forums = $datastore->get('cat_forums'); } - $not_forums_id = $forums['not_auth_forums']['guest_view']; + $not_forums_id = $forums['not_auth_forums']['guest_view']; $ignore_forum_sql = ($not_forums_id) ? "WHERE forum_id NOT IN($not_forums_id)" : ''; - $sql = DB()->sql_query("SELECT forum_id, forum_topics, forum_parent, forum_name FROM ".BB_FORUMS." ".$ignore_forum_sql." ORDER BY forum_id ASC"); + $sql = DB()->sql_query("SELECT forum_id, forum_topics, forum_parent, forum_name FROM " . BB_FORUMS . " " . $ignore_forum_sql . " ORDER BY forum_id ASC"); while ($row = DB()->sql_fetchrow($sql)) { if (function_exists('seo_url')) $loc = $this->home . seo_url(FORUM_URL . $row['forum_id'], $row['forum_name']); - else $loc = $this->home . FORUM_URL. $row['forum_id']; - $xml .= $this->get_xml( $loc, $lastmod ); + else $loc = $this->home . FORUM_URL . $row['forum_id']; + $xml .= $this->get_xml($loc, $lm); } return $xml; @@ -90,7 +83,7 @@ class sitemap function get_topic ($page = false) { global $datastore; - $xml = ""; + $xml = ''; $this->priority = $this->topic_priority; if ($page) { @@ -99,10 +92,10 @@ class sitemap $this->limit = " LIMIT {$page},40000"; } else { if ($this->limit < 1) $this->limit = false; - if( $this->limit ) { + if ($this->limit) { $this->limit = " LIMIT 0," . $this->limit; } else { - $this->limit = ""; + $this->limit = ''; } } @@ -114,12 +107,12 @@ class sitemap $not_forums_id = $forums['not_auth_forums']['guest_view']; $ignore_forum_sql = ($not_forums_id) ? "WHERE forum_id NOT IN($not_forums_id)" : ''; - $sql = DB()->sql_query("SELECT topic_id, topic_title, topic_time FROM " . BB_TOPICS . " ".$ignore_forum_sql." ORDER BY topic_time DESC" . $this->limit); + $sql = DB()->sql_query("SELECT topic_id, topic_title, topic_time FROM " . BB_TOPICS . " " . $ignore_forum_sql . " ORDER BY topic_time ASC" . $this->limit); while ($row = DB()->sql_fetchrow($sql)) { if (function_exists('seo_url')) $loc = $this->home . seo_url(TOPIC_URL . $row['topic_id'], $row['topic_title']); - else $loc = $this->home . TOPIC_URL. $row['topic_id']; - $xml .= $this->get_xml($loc, date("Y-m-d", $row['topic_time'])); + else $loc = $this->home . TOPIC_URL . $row['topic_id']; + $xml .= $this->get_xml($loc, date('c', $row['topic_time'])); } return $xml; @@ -128,21 +121,19 @@ class sitemap function get_static () { global $bb_cfg; - $xml = ""; - $lastmod = date("Y-m-d"); + $xml = ''; + $lm = date('c'); $this->priority = $this->stat_priority; if (isset($bb_cfg['static_sitemap'])) { $static_url = preg_replace("/\s/", '', $bb_cfg['static_sitemap']); //вырезаем переносы строк - preg_match_all ('#(https?://[\w-]+[\.\w-]+/((?!https?://)[\w- ./?%&=])+)#', $static_url, $out); + preg_match_all('#(https?://[\w-]+[\.\w-]+/((?!https?://)[\w- ./?%&=])+)#', $static_url, $out); $static_url = count($out['0']); - if ($static_url > 0) - { - foreach($out['0'] as $url) - { + if ($static_url > 0) { + foreach ($out['0'] as $url) { $loc = $url; - $xml .= $this->get_xml($loc, $lastmod); + $xml .= $this->get_xml($loc, $lm); } } } @@ -150,11 +141,10 @@ class sitemap return $xml; } - function get_xml ($loc, $lastmod) { + function get_xml ($loc, $lm) { $xml = "\t\n"; - $xml .= "\t\t$loc\n"; - $xml .= "\t\t$lastmod\n"; + $xml .= "\t\t$lm\n"; $xml .= "\t\t" . $this->priority . "\n"; $xml .= "\t\n"; @@ -184,21 +174,19 @@ class sitemap } function create () { - $row = DB()->fetch_row("SELECT COUNT(*) AS count FROM ". BB_TOPICS); + $row = DB()->fetch_row("SELECT COUNT(*) AS count FROM " . BB_TOPICS); if (!$this->limit) $this->limit = $row['count']; if ($this->limit > 40000) { $pages_count = @ceil($row['count'] / 40000); $sitemap = $this->build_index($pages_count); - $handler = fopen(BB_ROOT. "/sitemap/sitemap.xml", "wb+"); fwrite($handler, $sitemap); fclose($handler); @chmod(BB_ROOT. "/sitemap/sitemap.xml", 0666); $sitemap = $this->build_stat(); - $handler = fopen(BB_ROOT. "/sitemap/sitemap1.xml", "wb+"); fwrite($handler, $sitemap); fclose($handler); @@ -216,7 +204,6 @@ class sitemap } } else { $sitemap = $this->build_map(); - $handler = fopen(BB_ROOT. "/sitemap/sitemap.xml", "wb+"); fwrite($handler, $sitemap); fclose($handler); From 4fe050bf1cf0183b6e269a5eb5285334f4656add Mon Sep 17 00:00:00 2001 From: Exile Date: Wed, 20 Aug 2014 23:30:41 +0400 Subject: [PATCH 10/11] Nofollow MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Добавляем атрибут nofollow для внешних ссылок + успрощение сортировки смайликов. --- install/sql/mysql.sql | 1 - upload/config.php | 7 +++ upload/images/smiles/cd.gif | Bin 1117 -> 0 bytes upload/includes/bbcode.php | 61 +++++++++++++++----- upload/includes/datastore/build_smilies.php | 2 +- upload/includes/functions.php | 10 ---- 6 files changed, 56 insertions(+), 25 deletions(-) delete mode 100644 upload/images/smiles/cd.gif diff --git a/install/sql/mysql.sql b/install/sql/mysql.sql index a34ee47bb..cbc2e9059 100644 --- a/install/sql/mysql.sql +++ b/install/sql/mysql.sql @@ -1228,7 +1228,6 @@ INSERT INTO `bb_smilies` VALUES (52, ':bz:', 'bz.gif', 'bz'); INSERT INTO `bb_smilies` VALUES (53, ':ca:', 'ca.gif', 'ca'); INSERT INTO `bb_smilies` VALUES (54, ':cb:', 'cb.gif', 'cb'); INSERT INTO `bb_smilies` VALUES (55, ':cc:', 'cc.gif', 'cc'); -INSERT INTO `bb_smilies` VALUES (56, ':cd:', 'cd.gif', 'cd'); -- -------------------------------------------------------- diff --git a/upload/config.php b/upload/config.php index ead5b4dcf..056bebe97 100644 --- a/upload/config.php +++ b/upload/config.php @@ -57,6 +57,7 @@ * Misc * Captcha * Atom feed + * Nofollow **/ if (!defined('BB_ROOT')) die(basename(__FILE__)); @@ -605,4 +606,10 @@ $bb_cfg['atom'] = array( 'url' => './atom', # without '/' ); +// Nofollow +$bb_cfg['nofollow'] = array( + 'disabled' => false, + 'allowed_url' => array($domain_name), // 'allowed.site', 'www.allowed.site' +); + define('BB_CFG_LOADED', true); \ No newline at end of file diff --git a/upload/images/smiles/cd.gif b/upload/images/smiles/cd.gif deleted file mode 100644 index b50ce59827fc9a7d9e4c38405e8eda002493cfa7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1117 zcmZ?wbhEHb6k!ly_};_dY$EXgnbMEjazAg&e>^Xh86ooLp~Al>ivOM}{eP+^l@|(;KBL(roT;5=;w}xj36^-9(|crzBsWlA1fYB0G??HcRaKX0bS5 z;fgfTmF@h`_K582f%LtZD@Dj`N z<2buY(?)3`?0U?75s8b;oCjM(q!|SYXoNGv2UNicXbg@h7U(ss@0TYp5i3a zb91=oPp!JUULf0_K*JE-rNL5aU&n5%EZL60wZUkSJWN zagv3LUEJb_l1BpzCzDCchC{~>HZ{pz3lL0rz`(@9&cktHfkKZIKeOc=4Wk6-CI-eG zEFK#Y85ns?b8-ZCG`TA>yH9kwu<1%et57DBqEJW5sRm|`txN$<&l?!n_yhh3Mm*=` zW>MpMAtpl; - $img_url_exp = '(https?:)?//[^\s\?&;=\#\"<>]+?\.(jpg|jpeg|gif|png)([a-z0-9/?&%;][^\[\]]*)?'; - $email_exp = '[a-z0-9&\-_.]+?@[\w\-]+\.([\w\-\.]+\.)?[\w]+'; - $url_exp = '[\w\#!$%&~/.\-;:=,?@а-яА-Я\[\]+]+?'; + $tpl = $this->tpl; + $img_exp = '(https?:)?//[^\s\?&;=\#\"<>]+?\.(jpg|jpeg|gif|png)([a-z0-9/?&%;][^\[\]]*)?'; + $email_exp = '[a-z0-9&\-_.]+?@[\w\-]+\.([\w\-\.]+\.)?[\w]+'; $this->preg = array( '#\[quote="(.+?)"\]#isu' => $tpl['quote_username_open'], @@ -514,12 +513,8 @@ class bbcode '#\[size=([1-2]?[0-9])\]#isu' => '', '#\[align=(left|right|center|justify)\]#isu' => '', '#\[font="([\w\- \']+)"\]#isu' => '', - "#\[img\]($img_url_exp)\[/img\]#isu" => $tpl['img'], - "#\[img=(left|right)\]($img_url_exp)\[/img\]\s*#isu" => $tpl['img_aligned'], - "#\[url\](https?://$url_exp)\[/url\]#isu" => '$1', - "#\[url\](www\.$url_exp)\[/url\]#isu" => '$1', - "#\[url=(https?://$url_exp)\]([^?\n\t].*?)\[/url\]#isu" => '$2', - "#\[url=(www\.$url_exp)\]([^?\n\t].*?)\[/url\]#isu" => '$2', + "#\[img\]($img_exp)\[/img\]#isu" => $tpl['img'], + "#\[img=(left|right|center)\]($img_exp)\[/img\]\s*#isu" => $tpl['img_aligned'], "#\[email\]($email_exp)\[/email\]#isu" => '$1', "#\[qpost=([0-9]*)\]#isu" => '$1', ); @@ -570,15 +565,22 @@ class bbcode $text = $this->clean_up($text); $text = $this->spam_filter($text); - // парсинг тегов + // Tag parse if (strpos($text, '[') !== false) { - // [CODE] + // [code] $text = preg_replace_callback('#(\s*)\[code\](.+?)\[/code\](\s*)#s', array(&$this, 'code_callback'), $text); // Escape tags inside tiltes in [quote="tilte"] $text = preg_replace_callback('#(\[(quote|spoiler)=")(.+?)("\])#', array(&$this, 'escape_tiltes_callback'), $text); + // [url] + $url_exp = '[\w\#!$%&~/.\-;:=,?@а-яА-Я\[\]+]+?'; + $text = preg_replace_callback("#\[url\](https?://$url_exp)\[/url\]#isu", array(&$this, 'url_callback'), $text); + $text = preg_replace_callback("#\[url\](www\.$url_exp)\[/url\]#isu", array(&$this, 'url_callback'), $text); + $text = preg_replace_callback("#\[url=(https?://$url_exp)\]([^?\n\t].*?)\[/url\]#isu", array(&$this, 'url_callback'), $text); + $text = preg_replace_callback("#\[url=(www\.$url_exp)\]([^?\n\t].*?)\[/url\]#isu", array(&$this, 'url_callback'), $text); + // Normalize block level tags wrapped with new lines $block_tags = join('|', $this->block_tags); $text = str_replace("\n\n[hr]\n\n", '[br][hr][br]', $text); @@ -692,6 +694,28 @@ class bbcode return $this->tpl['code_open'] . $code . $this->tpl['code_close']; } + /** + * [url] callback + */ + function url_callback ($m) + { + global $bb_cfg; + + $url = trim($m[1]); + $url_name = (isset($m[2])) ? trim($m[2]) : $url; + + if (in_array(parse_url($url, PHP_URL_HOST), $bb_cfg['nofollow']['allowed_url']) || $bb_cfg['nofollow']['disabled']) + { + $link = "$url_name"; + } + else + { + $link = "$url_name"; + } + + return $link; + } + /** * Escape tags inside tiltes in [quote="tilte"] */ @@ -739,11 +763,22 @@ class bbcode */ function make_url_clickable_callback ($m) { + global $bb_cfg; + $max_len = 70; $href = $m[1]; $name = (mb_strlen($href, 'UTF-8') > $max_len) ? mb_substr($href, 0, $max_len - 19) .'...'. mb_substr($href, -16) : $href; - return "$name"; + if (in_array(parse_url($href, PHP_URL_HOST), $bb_cfg['nofollow']['allowed_url']) || $bb_cfg['nofollow']['disabled']) + { + $link = "$name"; + } + else + { + $link = "$name"; + } + + return $link; } /** diff --git a/upload/includes/datastore/build_smilies.php b/upload/includes/datastore/build_smilies.php index 0bc49996a..64aab6d74 100644 --- a/upload/includes/datastore/build_smilies.php +++ b/upload/includes/datastore/build_smilies.php @@ -7,7 +7,7 @@ global $bb_cfg; $smilies = array(); $rowset = DB()->fetch_rowset("SELECT * FROM ". BB_SMILIES); -usort($rowset, 'smiley_sort'); +sort($rowset, 'SORT_NUMERIC'); foreach ($rowset as $smile) { diff --git a/upload/includes/functions.php b/upload/includes/functions.php index 2779b68b5..09d508309 100644 --- a/upload/includes/functions.php +++ b/upload/includes/functions.php @@ -1777,16 +1777,6 @@ function obtain_word_list (&$orig_word, &$replacement_word) return true; } -function smiley_sort ($a, $b) -{ - if (strlen($a['code']) == strlen($b['code'])) - { - return 0; - } - - return (strlen($a['code']) > strlen($b['code'])) ? -1 : 1; -} - function bb_die ($msg_text) { global $ajax, $bb_cfg, $lang, $template, $theme, $userdata; From 4b2c5d9d649b92a60080ded07bf15e8d440d8b9f Mon Sep 17 00:00:00 2001 From: Exile Date: Wed, 20 Aug 2014 23:47:52 +0400 Subject: [PATCH 11/11] Simply sort MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Можно и без атрибута. --- upload/includes/datastore/build_smilies.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/upload/includes/datastore/build_smilies.php b/upload/includes/datastore/build_smilies.php index 64aab6d74..01d9ad6a3 100644 --- a/upload/includes/datastore/build_smilies.php +++ b/upload/includes/datastore/build_smilies.php @@ -7,7 +7,7 @@ global $bb_cfg; $smilies = array(); $rowset = DB()->fetch_rowset("SELECT * FROM ". BB_SMILIES); -sort($rowset, 'SORT_NUMERIC'); +sort($rowset); foreach ($rowset as $smile) {