From 695864ef6995a3c7b16ade822036c23908fc3aaf Mon Sep 17 00:00:00 2001 From: Roman Kelesidis Date: Wed, 2 Jul 2025 12:46:27 +0300 Subject: [PATCH] feat: Restore some deprecated code for backward compatibility (#2028) * feat: Restore some deprecated code for backward compatibility * feat: Restore some constants * feat: Restore `commify()` function * feat: Restored functions: `bb_ltrim`, `bb_rtrim`, `get_db_stat` * feat: Restore `bb_realpath` * Update functions.php * feat: Restore `AJAX_HTML_DIR` constant * Update defines.php * Update attach_maintenance.php * Update viewtopic.php --- library/config.php | 2 + library/defines.php | 2 + .../includes/cron/jobs/attach_maintenance.php | 4 +- library/includes/functions.php | 74 ++++++++++++++++++ library/includes/init_bb.php | 1 + library/includes/page_header.php | 6 ++ posting.php | 2 + .../images/icons_sources/icon_large.gif | Bin 0 -> 2335 bytes .../images/icons_sources/icon_medium.gif | Bin 0 -> 1953 bytes .../images/icons_sources/icon_small.gif | Bin 0 -> 1718 bytes .../default/images/icons_sources/info.txt | 2 + viewtopic.php | 4 +- 12 files changed, 94 insertions(+), 3 deletions(-) create mode 100644 styles/templates/default/images/icons_sources/icon_large.gif create mode 100644 styles/templates/default/images/icons_sources/icon_medium.gif create mode 100644 styles/templates/default/images/icons_sources/icon_small.gif create mode 100644 styles/templates/default/images/icons_sources/info.txt diff --git a/library/config.php b/library/config.php index e782b10ea..2c9e8ccd2 100644 --- a/library/config.php +++ b/library/config.php @@ -724,6 +724,8 @@ $bb_cfg['tracker'] = [ 'update_dlstat' => true, 'expire_factor' => 2.5, 'compact_mode' => true, + 'upd_user_up_down_stat' => true, + 'browser_redirect_url' => '', 'scrape' => true, 'limit_active_tor' => true, 'limit_seed_count' => 0, diff --git a/library/defines.php b/library/defines.php index df8813a64..0f50090d7 100644 --- a/library/defines.php +++ b/library/defines.php @@ -15,11 +15,13 @@ if (!defined('BB_ROOT')) { define('ADMIN_DIR', BB_PATH . '/admin'); define('DATA_DIR', BB_PATH . '/data'); define('INT_DATA_DIR', BB_PATH . '/internal_data'); +define('AJAX_HTML_DIR', BB_ROOT . '/internal_data/ajax_html/'); define('CACHE_DIR', BB_PATH . '/internal_data/cache'); define('LOG_DIR', BB_PATH . '/internal_data/log'); define('TRIGGERS_DIR', BB_PATH . '/internal_data/triggers'); define('AJAX_DIR', BB_PATH . '/library/ajax'); define('ATTACH_DIR', BB_PATH . '/library/attach_mod'); +define('CFG_DIR', BB_PATH . '/library/config'); define('INC_DIR', BB_PATH . '/library/includes'); define('UCP_DIR', BB_PATH . '/library/includes/ucp'); define('LANG_ROOT_DIR', BB_PATH . '/library/language'); diff --git a/library/includes/cron/jobs/attach_maintenance.php b/library/includes/cron/jobs/attach_maintenance.php index 99e9a7168..d778cb38c 100644 --- a/library/includes/cron/jobs/attach_maintenance.php +++ b/library/includes/cron/jobs/attach_maintenance.php @@ -26,9 +26,9 @@ $posts_without_attach = $topics_without_attach = []; DB()->query(" CREATE TEMPORARY TABLE $tmp_attach_tbl ( - physical_filename VARCHAR(255) NOT NULL default '', + physical_filename VARCHAR(255) NOT NULL default '' COLLATE utf8mb4_unicode_ci, KEY physical_filename (physical_filename(20)) - ) ENGINE = MyISAM DEFAULT CHARSET = utf8 + ) ENGINE = MyISAM DEFAULT CHARSET = utf8mb4 COLLATE = utf8mb4_unicode_ci "); DB()->add_shutdown_query("DROP TEMPORARY TABLE IF EXISTS $tmp_attach_tbl"); diff --git a/library/includes/functions.php b/library/includes/functions.php index c222ecc39..38db141cd 100644 --- a/library/includes/functions.php +++ b/library/includes/functions.php @@ -800,6 +800,11 @@ function str_short($text, $max_length, $space = ' ') return $text ?? ''; } +function wbr($text, $max_word_length = HTML_WBR_LENGTH) +{ + return preg_replace("/([\w\->;:.,~!?(){}@#$%^*\/\\\\]{" . $max_word_length . "})/ui", '$1', $text); +} + function generate_user_info($row, bool $have_auth = IS_ADMIN): array { global $userdata, $lang, $images, $bb_cfg; @@ -940,6 +945,47 @@ function bb_update_config($params, $table = BB_CONFIG) bb_get_config($table, true, true); } +function get_db_stat($mode) +{ + switch ($mode) { + case 'usercount': + $sql = "SELECT COUNT(user_id) AS total FROM " . BB_USERS; + break; + + case 'newestuser': + $sql = "SELECT user_id, username FROM " . BB_USERS . " WHERE user_id <> " . GUEST_UID . " ORDER BY user_id DESC LIMIT 1"; + break; + + case 'postcount': + case 'topiccount': + $sql = "SELECT SUM(forum_topics) AS topic_total, SUM(forum_posts) AS post_total FROM " . BB_FORUMS; + break; + } + + if (!($result = DB()->sql_query($sql))) { + return false; + } + + $row = DB()->sql_fetchrow($result); + + switch ($mode) { + case 'usercount': + return $row['total']; + break; + case 'newestuser': + return $row; + break; + case 'postcount': + return $row['post_total']; + break; + case 'topiccount': + return $row['topic_total']; + break; + } + + return false; +} + function clean_username($username) { $username = mb_substr(htmlspecialchars(str_replace("\'", "'", trim($username))), 0, 25, DEFAULT_CHARSET); @@ -949,6 +995,28 @@ function clean_username($username) return $username; } +function bb_ltrim($str, $charlist = false) +{ + if ($charlist === false) { + return ltrim($str); + } + + $str = ltrim($str, $charlist); + + return $str; +} + +function bb_rtrim($str, $charlist = false) +{ + if ($charlist === false) { + return rtrim($str); + } + + $str = rtrim($str, $charlist); + + return $str; +} + /** * Get Userdata * @@ -1094,6 +1162,7 @@ function setup_style() $css_dir = 'styles/' . basename(TEMPLATES_DIR) . '/' . $tpl_dir_name . '/css/'; $template->assign_vars([ + 'BB_ROOT' => BB_ROOT, 'SPACER' => make_url('styles/images/spacer.gif'), 'STYLESHEET' => make_url($css_dir . $stylesheet), 'EXT_LINK_NEW_WIN' => $bb_cfg['ext_link_new_win'], @@ -1412,6 +1481,11 @@ function bb_simple_die($txt, $status_code = null) die($txt); } +function bb_realpath($path) +{ + return realpath($path); +} + function login_redirect($url = '') { redirect(LOGIN_URL . '?redirect=' . (($url) ?: ($_SERVER['REQUEST_URI'] ?? '/'))); diff --git a/library/includes/init_bb.php b/library/includes/init_bb.php index 932dba5a1..1cb8a6c6f 100644 --- a/library/includes/init_bb.php +++ b/library/includes/init_bb.php @@ -293,6 +293,7 @@ define('USER_AGENT', strtolower($_SERVER['HTTP_USER_AGENT'])); define('HTML_SELECT_MAX_LENGTH', 60); define('HTML_SF_SPACER', ' |- '); +define('HTML_WBR_LENGTH', 12); define('HTML_CHECKED', ' checked '); define('HTML_DISABLED', ' disabled '); diff --git a/library/includes/page_header.php b/library/includes/page_header.php index 195bcec10..ad05b8919 100644 --- a/library/includes/page_header.php +++ b/library/includes/page_header.php @@ -194,8 +194,14 @@ $template->assign_vars([ 'BONUS_URL' => BB_ROOT . BONUS_URL, 'TOPIC_URL' => BB_ROOT . TOPIC_URL, + 'AJAX_HTML_DIR' => AJAX_HTML_DIR, + + 'ONLY_NEW_POSTS' => ONLY_NEW_POSTS, + 'ONLY_NEW_TOPICS' => ONLY_NEW_TOPICS, + // Misc 'BOT_UID' => BOT_UID, + 'COOKIE_MARK' => COOKIE_MARK, 'SID' => $userdata['session_id'], 'SID_HIDDEN' => '', diff --git a/posting.php b/posting.php index 39d44c373..b75e17091 100644 --- a/posting.php +++ b/posting.php @@ -625,6 +625,8 @@ $template->assign_vars([ 'POSTER_RGROUPS' => !empty($poster_rgroups) ? $poster_rgroups : '', 'ATTACH_RG_SIG' => $switch_rg_sig ?: false, + 'U_VIEWTOPIC' => ($mode == 'reply') ? TOPIC_URL . "$topic_id&postorder=desc" : '', + 'S_NOTIFY_CHECKED' => $notify_user ? 'checked' : '', 'S_ROBOTS_CHECKED' => $robots_indexing ? 'checked' : '', 'S_TYPE_TOGGLE' => $topic_type_toggle, diff --git a/styles/templates/default/images/icons_sources/icon_large.gif b/styles/templates/default/images/icons_sources/icon_large.gif new file mode 100644 index 0000000000000000000000000000000000000000..e3d072db648f30cd5e140320539cc8899ed5a07c GIT binary patch literal 2335 zcmb_e3vdi)96v?8+Ytu!+$>5a_V#hRd$-HcxVy-Sgo#X@N62RPySuI2?b+S9OE40| zb5IfO6rC|uj8GkK8p?PTEj8_s(U1`{nT}F1S|UaDySv=ck(PFPGrRlke!u_Y_y7OC z@4ICavc`1j*t?^_VCdpZw`apA2d~8T3GiO0%?`jvhd}yd&0y%%Eqt{ytl!wnU`SXl z=eTrN<~Uwdd`3Z1@_{kr3!@E&5u-u@L7WM6Bp-NWzZGq$I));$WJM=2nM7v52E1~5 zu?i*@XXS{+Geu59M~y^Agm~z{2Xp}m`3n3RAF`qmzdRg=KjSD8f#@@>Xlghh;>w(W z*c25YoRP#tf*=ty9MLRg;kaQ4MNlT3U~!7UD1s+Qo?(#Y9}2^%lAF)Ar!@zIZ&uW+ z>j56egTbINXfi6Q2PZj>!wCwfC=4Pnt;nwnA`};93Uw2R=7; z%!ZMhIlP9kV>a;XadTMve>RTAk;FJIP^cC}$|Q+6C;&d_PlKGuIH7=7(G|_B{Eh4Q zbfggB0I*v8cvXg~5en>zSQvKcv|CX)W0YixCkfb8+h`kYGjR@*BrP0EI@naxXh)jO zo|a~b`Dn?O;LNPuVuAK7GH7$Ryb>DM9T8G_VUg zu%b|}G)7PuN#&3n&scbhN+HZV5lxKGR3zD5^b#~IZ4*zJ{{n@pMG|!3m0(Ha-HPfH zpl)QJ-~o8R??I7xTX>sNpr|k~%+3^6e6&G!pvtp>l%^^^BqCW}ZlPqaZdKG)`Y&z9 zSB3MxqTKpnp<2Z}bDk)h3kNRIgy zy@KBZ;BJYdVVdDx<=>NeJ;6q^Y>~{1n)?69;9)k=CgD*rJ?~#+?uGpna*uq1n{;>> zKOW#q{D1*|SSJ-8ALpA0!eDq~xYM4R<0`BFDAQl_Zs)R5=hK!CyXn&w>EQT|X`6aB zRu1v5nh;!LoN|h|vGj{hZ!!b7wB3oWDy=A~dwYRt?&|sF;}RQkzszVI>ePg%8xPiC z$NL}piuh1lTJm`Cy>5qU3)o>jR&)}Jt!qwIFKJgZ$~x~>$%Y5TD?d(>uY8xA-hWP` ztLomqnGU<#=5(ke|`UA%Dh9zPTe?B-#TG@U*n)hdazwyM#-+*ix+NN(os4g z?M`~u_i$-xS=U4`fc598%eP)@Ysu@q>zfp;G5dPWjW_#rKS2_wnS>pemxGND4CsbQ ziOxZ-TpQm~PuC4KjJs02eK>Qmw*S5)OX;?}uG4bowJ)F7Fu&?&diTyTdMJl|J19W&G4RY zx;%K{w8sa2IdJD$(%RZahTnTC<#Gp)Wk%Z#^%Y~s+^RwMcIn|vy?=PM`bqBeE&aAW zK{sEx#I5MQ`Xp^^Gc~VdPSUN~AxE0B3~K{@Mpt+KR4W8!dEPsfth>~dTs{9DS^nb^ zrt+uTXQ!mD6Myfra$MilUn50xM}A+p;_57=U1Pd)&<`7?%h=~+ztX3+`{E{7(Zj6% z^%pYIj!bED?%~aob;lDQ?SFirswp%l!}DIko+(H27AF__E?3u_>Dm^IXOAZDDNm`J z+i;F7Kf3cB^V#*D`KICDesHi<^)CG*G`G#AL|3cF4OQ3YJnh)@q|cd0M``Q+h1KD| OFiuC7eb?x`1%CqD#xsTh literal 0 HcmV?d00001 diff --git a/styles/templates/default/images/icons_sources/icon_medium.gif b/styles/templates/default/images/icons_sources/icon_medium.gif new file mode 100644 index 0000000000000000000000000000000000000000..fed70f75eb949c20646ed41a7d42036e30a43300 GIT binary patch literal 1953 zcmbVNdu-Hn9PdEKKrwTofPaiyKp^a{uY0v}%)9oE8*)V`9ii}El`8A=fpjT0`Ma@r_@B}mrkM6(YD)#*}{t>J@NWpL%inoLt;aXgt! z+LN?h)f;h=VHljCaEh`)gw1GGOd(}cjL|s;9vGr7Yo@F!sKqEWsLiGqgQjMDNNC}3 zo>(!mk%BS9Q-X$*b^=c%EXUGl!>j>U%;*hfIg9VhqNZuRE;L}AE@)k=|ETtV6@mO zU4~U7#CcV0wkRujF9uKSk}R<#0h7x4IR{5G0g@y=jEfAoe6&9hLO^jK#^&AmeYY?s(M6KZ2_gdxtCAdT?GNg(iu)QUyf2bq3jYa~L^i7G2?17)oDdoTt|^Te znokVNsc}_@ilKG1Rr8q?@j#bbfE3i#1ez{dR_-Tg6yxxD_yFT);Fl&zzt0!s0|d_m znV{262e7QH^nVhK=Zy);1`K#>_Da`++1XiKhWzkOu!3k^PcLQ&&}K`iwb`G+*O%pt ze6k5Z%4;)rO&T&VLyekAK?lA@Sjm4c2+Co1UtJLyA+bqN8UgH=IA*ztTa6{-7oLg# z6_?XzS2dv=9CkKqn(wJ_k?+btfz&$ext&|fzeSLOXDfJLB((V8DzaubQ5-nN&Z>Fl zj-|z&``a;ho4>5yT~_enJEN+$ zFMPh}LR}H@6nB5w=R0~=e}ATU!Jr?p2c~!ZG7`TvFk=%txci7}Gqs?rt#sU%Ya6=G z4XZ>hy7ooiJ~L=?RnhCyC#*QXPZ`EDe$>a+He z?n9TK+xYU5sXIOBEB8$ADlc60QvKN zIZ&?F4qwrEniC#D)FZa}CECEBA9c6KE^d1K&%z)vDskz(i4N;0S`nz^-}TR2@E6<+ BoN537 literal 0 HcmV?d00001 diff --git a/styles/templates/default/images/icons_sources/icon_small.gif b/styles/templates/default/images/icons_sources/icon_small.gif new file mode 100644 index 0000000000000000000000000000000000000000..85b723015d8aaf2344a311fed1c7dab3dfd4152b GIT binary patch literal 1718 zcmbVNTZr6L7>7yEYrm8joovbu-wa^CZ)8eLyqJ{?U$)%_fP^JgM7Wf&J~+CoHn90y~p41j8?p zhCRL%kg26=&0K1ls>O~zi1v3hAaF^9QO9+>Q0o-f96NLgOU^HPqJ1WgdNTn;5a7Pbql1#MCvOE!b60^5ip zU*q|9yPaugGc>64qN=LAAn}sK0fGy=UW7ZG7w#S~=p-})+mCGOp_mcR)5WO3g4DhT z*H3A^Fv$~SjPGEd7c)ZaX#g~g|AxA5iVmYma!v2L#9^)L6Mm9}bTKdqz;_R}3Zrrh zBqnAz5nOH&FG|BLGmZ5Z1E-fJ%jAheT!4k(N=$Y74I0s~K{rT3`Z!I6uayFVBO25w zbp~ag7_gwyR1VG9o<-YX>?T1I9Y>_VLcL{9kT_AQLA_;3%gOf(iY5qss6j1zp}Q_r z*0TA(L803$9O2D?4MVGVVT3)CRP+K1qB6E^X_h6+N=^_sQIS+m73D0aDp`S3ayhI> z1m~r!+0zB_IyD#L+zsL_h!=`#er!a^W=nZR6wA8bPK^4cO5lK}Bv5yBfykgk- ze;k&nEzrQl&xB2cI*Zb>XeH{<01^k;&Bh%M?qa3f3yS|P3u#hf9Z5)td9m@Ofc9!Ifg7zd0y?3C^Y+$cWU|RBQY?F`2O5YdX&;K>c zy=T{rpaC4_TD(jrDqN&9nRq}Qz{H*T;_0I>t>3BW#oC@jZ@+fnju+4l{mgw&etu__Jf}t8R{&*i-Wo0yO=AE^YS-`R+yom+;3|P`|}g0 zSF1lh`@^N3`@TAQ9({0Ob(%SM%h~svZyq*RFYh{8Io;jSdhz@#Ys#4$SJ3h1@w0zi z-A<1c@BQV`3tPVX_1s&(zdEus{oJL!PWWDHZKpK5>s0fpKQB+y*FQe6_Wklz5`S4L M<*NSSLkFM#3$U3irT_o{ literal 0 HcmV?d00001 diff --git a/styles/templates/default/images/icons_sources/info.txt b/styles/templates/default/images/icons_sources/info.txt new file mode 100644 index 000000000..5a3a6608e --- /dev/null +++ b/styles/templates/default/images/icons_sources/info.txt @@ -0,0 +1,2 @@ +Color: #3c618b +Font: Arial (Regular) 11pt diff --git a/viewtopic.php b/viewtopic.php index c059c1b68..7a0aec0bf 100644 --- a/viewtopic.php +++ b/viewtopic.php @@ -759,7 +759,9 @@ if (defined('SPLIT_FORM_START')) { $template->assign_vars([ 'SPLIT_FORM' => true, 'START' => $start, - 'S_SPLIT_ACTION' => 'modcp.php' + 'S_SPLIT_ACTION' => 'modcp.php', + 'POST_FORUM_URL' => POST_FORUM_URL, + 'POST_TOPIC_URL' => POST_TOPIC_URL, ]); }