33*
44* @package phpBB Gallery
55* @version $Id$
6- * @copyright (c) 2007 nickvergessen nickvergessen@gmx.de http ://www.flying-bits.org
6+ * @copyright (c) 2025 Leinad4Mind https ://leinad4mind.top/forum
77* @license http://opensource.org/licenses/gpl-license.php GNU Public License
88*
99*/
@@ -23,29 +23,54 @@ function main($id, $mode)
2323 global $ phpbb_container ;
2424
2525 $ this ->language = $ phpbb_container ->get ('language ' );
26+ $ this ->language ->add_lang (['info_acp_gallery_logs ' ], 'phpbbgallery/core ' );
2627
27- $ this ->language ->add_lang (array ('info_acp_gallery_logs ' ), 'phpbbgallery/core ' );
2828 $ this ->tpl_name = 'gallery_logs ' ;
2929 add_form_key ('acp_logs ' );
30- $ page = $ request ->variable ('page ' , 0 );
31- $ filter_log = $ request ->variable ('lf ' , 'all ' );
32- $ sort_days = $ request ->variable ('st ' , 0 );
33- $ sort_key = $ request ->variable ('sk ' , 't ' );
34- $ sort_dir = $ request ->variable ('sd ' , 'd ' );
35- $ deletemark = $ request ->variable ('delmarked ' , false , false , \phpbb \request \request_interface::POST );
36- $ marked = $ request ->variable ('mark ' , array (0 ));
30+
31+ $ page = $ request ->variable ('page ' , 0 );
32+ $ filter_log = $ request ->variable ('lf ' , 'all ' );
33+ $ sort_days = $ request ->variable ('st ' , 0 );
34+ $ sort_key = $ request ->variable ('sk ' , 't ' );
35+ $ sort_dir = $ request ->variable ('sd ' , 'd ' );
36+ $ deletemark = $ request ->is_set_post ('delmarked ' );
37+ $ marked = $ request ->variable ('mark ' , []);
38+
3739 $ log = $ phpbb_container ->get ('phpbbgallery.core.log ' );
3840
41+ $ valid_filters = ['all ' , 'admin ' , 'moderator ' , 'system ' ];
42+ $ valid_sort_keys = ['u ' , 't ' , 'i ' , 'o ' ];
43+ $ valid_sort_dirs = ['a ' , 'd ' ];
44+
45+ // Sanitize inputs
46+ if (!in_array ($ filter_log , $ valid_filters ))
47+ {
48+ $ filter_log = 'all ' ;
49+ }
50+ if (!in_array ($ sort_key , $ valid_sort_keys ))
51+ {
52+ $ sort_key = 't ' ;
53+ }
54+ if (!in_array ($ sort_dir , $ valid_sort_dirs ))
55+ {
56+ $ sort_dir = 'd ' ;
57+ }
58+
3959 // Delete entries if requested and able
40- if (( $ deletemark) && $ auth ->acl_get ('a_clearlogs ' ))
60+ if ($ deletemark && $ auth ->acl_get ('a_clearlogs ' ) && ! empty ( $ marked ))
4161 {
62+ if (!check_form_key ('acp_logs ' ))
63+ {
64+ trigger_error ($ this ->language ->lang ('FORM_INVALID ' ));
65+ }
66+
4267 if (confirm_box (true ))
4368 {
4469 $ log ->delete_logs ($ marked );
4570 }
4671 else
4772 {
48- confirm_box (false , $ this ->language ->lang ('CONFIRM_OPERATION ' ), build_hidden_fields (array (
73+ confirm_box (false , $ this ->language ->lang ('CONFIRM_OPERATION ' ), build_hidden_fields ([
4974 'page ' => $ page ,
5075 'delmarked ' => $ deletemark ,
5176 'mark ' => $ marked ,
@@ -54,50 +79,47 @@ function main($id, $mode)
5479 'sd ' => $ sort_dir ,
5580 'i ' => $ id ,
5681 'mode ' => $ mode ,
57- 'action ' => $ this ->u_action ,
58- ) ));
82+ 'action ' => $ this ->u_action ,
83+ ] ));
5984 }
6085 }
86+
6187 switch ($ mode )
6288 {
6389 case 'main ' :
64- switch ($ filter_log )
65- {
66- case 'all ' :
67- $ title = 'ACP_GALLERY_LOGS ' ;
68- $ template ->assign_vars (array (
69- 'L_TITLE ' => $ this ->language ->lang ('ACP_GALLERY_LOGS ' ),
70- 'L_EXPLAIN ' => '' ,
71- 'S_SELECT_OPTION ' => 'all '
72- ));
73- break ;
74- case 'admin ' :
75- $ title = 'ACP_LOG_GALLERY_ADM ' ;
76- $ template ->assign_vars (array (
77- 'L_TITLE ' => $ this ->language ->lang ('ACP_LOG_GALLERY_ADM ' ),
78- 'L_EXPLAIN ' => $ this ->language ->lang ('ACP_LOG_GALLERY_ADM_EXP ' ),
79- 'S_SELECT_OPTION ' => 'admin '
80- ));
81- break ;
82- case 'moderator ' :
83- $ title = 'ACP_LOG_GALLERY_MOD ' ;
84- $ template ->assign_vars (array (
85- 'L_TITLE ' => $ this ->language ->lang ('ACP_LOG_GALLERY_MOD ' ),
86- 'L_EXPLAIN ' => $ this ->language ->lang ('ACP_LOG_GALLERY_MOD_EXP ' ),
87- 'S_SELECT_OPTION ' => 'moderator '
88- ));
89- break ;
90- case 'system ' :
91- $ title = 'ACP_LOG_GALLERY_SYSTEM ' ;
92- $ template ->assign_vars (array (
93- 'L_TITLE ' => $ this ->language ->lang ('ACP_LOG_GALLERY_SYSTEM ' ),
94- 'L_EXPLAIN ' => $ this ->language ->lang ('ACP_LOG_GALLERY_SYSTEM_EXP ' ),
95- 'S_SELECT_OPTION ' => 'system '
96- ));
97- break ;
98- }
99- $ limit_days = array (0 => $ this ->language ->lang ('ALL_ENTRIES ' ), 1 => $ this ->language ->lang ('1_DAY ' ), 7 => $ this ->language ->lang ('7_DAYS ' ), 14 => $ this ->language ->lang ('2_WEEKS ' ), 30 => $ this ->language ->lang ('1_MONTH ' ), 90 => $ this ->language ->lang ('3_MONTHS ' ), 180 => $ this ->language ->lang ('6_MONTHS ' ), 365 => $ this ->language ->lang ('1_YEAR ' ));
100- $ sort_by_text = array ('u ' => $ this ->language ->lang ('SORT_USER_ID ' ), 't ' => $ this ->language ->lang ('SORT_DATE ' ), 'i ' => $ this ->language ->lang ('SORT_IP ' ), 'o ' => $ this ->language ->lang ('SORT_ACTION ' ));
90+ // Template vars based on filter
91+ $ log_titles = [
92+ 'all ' => ['ACP_GALLERY_LOGS ' , '' ],
93+ 'admin ' => ['ACP_LOG_GALLERY_ADM ' , 'ACP_LOG_GALLERY_ADM_EXP ' ],
94+ 'moderator ' => ['ACP_LOG_GALLERY_MOD ' , 'ACP_LOG_GALLERY_MOD_EXP ' ],
95+ 'system ' => ['ACP_LOG_GALLERY_SYSTEM ' , 'ACP_LOG_GALLERY_SYSTEM_EXP ' ],
96+ ];
97+ $ title = $ log_titles [$ filter_log ][0 ];
98+
99+ $ template ->assign_vars ([
100+ 'L_TITLE ' => $ this ->language ->lang ($ log_titles [$ filter_log ][0 ]),
101+ 'L_EXPLAIN ' => $ log_titles [$ filter_log ][1 ] ? $ this ->language ->lang ($ log_titles [$ filter_log ][1 ]) : '' ,
102+ 'S_SELECT_OPTION ' => $ filter_log ,
103+ ]);
104+
105+ // Sorting
106+ $ limit_days = [
107+ 0 => $ this ->language ->lang ('ALL_ENTRIES ' ),
108+ 1 => $ this ->language ->lang ('1_DAY ' ),
109+ 7 => $ this ->language ->lang ('7_DAYS ' ),
110+ 14 => $ this ->language ->lang ('2_WEEKS ' ),
111+ 30 => $ this ->language ->lang ('1_MONTH ' ),
112+ 90 => $ this ->language ->lang ('3_MONTHS ' ),
113+ 180 => $ this ->language ->lang ('6_MONTHS ' ),
114+ 365 => $ this ->language ->lang ('1_YEAR ' ),
115+ ];
116+ $ sort_by_text = [
117+ 'u ' => $ this ->language ->lang ('SORT_USER_ID ' ),
118+ 't ' => $ this ->language ->lang ('SORT_DATE ' ),
119+ 'i ' => $ this ->language ->lang ('SORT_IP ' ),
120+ 'o ' => $ this ->language ->lang ('SORT_ACTION ' ),
121+ ];
122+
101123 $ s_limit_days = $ s_sort_key = $ s_sort_dir = $ u_sort_param = '' ;
102124 gen_sort_selects ($ limit_days , $ sort_by_text , $ sort_days , $ sort_key , $ sort_dir , $ s_limit_days , $ s_sort_key , $ s_sort_dir , $ u_sort_param );
103125
@@ -106,24 +128,27 @@ function main($id, $mode)
106128 'S_SORT_KEY ' => $ s_sort_key ,
107129 'S_SORT_DIR ' => $ s_sort_dir ,
108130 'S_CLEARLOGS ' => $ auth ->acl_get ('a_clearlogs ' ),
109- 'U_ACTION ' => $ this ->u_action . "& $ u_sort_param&page= $ page " ,
131+ 'U_ACTION ' => $ this ->u_action . "& $ u_sort_param&page= $ page " ,
110132 ));
111133 $ this ->page_title = $ this ->language ->lang ($ title );
112- // Let's build some additional parameters for the log
113- $ additional = array ();
134+
135+ // Build additional filters
136+ $ additional = [];
114137 if ($ sort_days > 0 )
115138 {
116139 $ additional ['sort_days ' ] = $ sort_days ;
117140 }
118- if ($ sort_key != 't ' )
141+ if ($ sort_key !== 't ' )
119142 {
120143 $ additional ['sort_key ' ] = $ sort_key ;
121144 }
122- if ($ sort_dir != 'd ' )
145+ if ($ sort_dir !== 'd ' )
123146 {
124147 $ additional ['sort_dir ' ] = $ sort_dir ;
125148 }
126- $ log ->build_list ($ filter_log , 25 , ($ page /25 ) + 1 , -1 , 0 , $ additional );
149+
150+ // Build list
151+ $ log ->build_list ($ filter_log , 0 , $ page , -1 , 0 , $ additional );
127152 break ;
128153
129154 default :
0 commit comments