@@ -187,57 +187,71 @@ static function showCentralSpecificList($type) {
187187 return false ;
188188 }
189189
190- $ groups = implode ("',' " , $ _SESSION ['glpigroups ' ]);
191- $ numrows = 0 ;
192- $ is_deleted = " `glpi_tickets`.`is_deleted` = 0 " ;
190+ $ criteria = [
191+ 'SELECT ' => ['glpi_tickets.id ' ],
192+ 'DISTINCT ' => true ,
193+ 'FROM ' => 'glpi_tickets ' ,
194+ 'LEFT JOIN ' => [
195+ 'glpi_tickets_users ' => [
196+ 'ON ' => [
197+ 'glpi_tickets ' => 'id ' ,
198+ 'glpi_tickets_users ' => 'tickets_id '
199+ ]
200+ ]
201+ ],
202+ 'WHERE ' => [
203+ 'glpi_tickets.is_deleted ' => 0 ,
204+ ],
205+ 'ORDER ' => ['glpi_tickets.date_mod DESC ' ]
206+ ];
193207
194208 if ($ type == "notold " ) {
195209 $ title = __ ("Tickets to follow (escalated) " , "escalade " );
196210 $ status = CommonITILObject::INCOMING .", " .CommonITILObject::PLANNED .", " .
197211 CommonITILObject::ASSIGNED .", " .CommonITILObject::WAITING ;
198212
199- $ search_assign = " `glpi_plugin_escalade_histories`.`groups_id` IN (' $ groups')
200- AND (`glpi_groups_tickets`.`groups_id` NOT IN (' $ groups')
201- OR `glpi_groups_tickets`.`groups_id` IS NULL) " ;
202-
203- $ query_join = "LEFT JOIN `glpi_plugin_escalade_histories`
204- ON (`glpi_tickets`.`id` = `glpi_plugin_escalade_histories`.`tickets_id`)
205- LEFT JOIN `glpi_groups_tickets`
206- ON (`glpi_tickets`.`id` = `glpi_groups_tickets`.`tickets_id`
207- AND `glpi_groups_tickets`.`type`=2) " ;
213+ $ criteria ['WHERE ' ]['glpi_plugin_escalade_histories.groups_id ' ] = $ _SESSION ['glpigroups ' ];
214+ $ criteria ['WHERE ' ][] = [
215+ 'OR ' => [
216+ 'NOT ' => ['glpi_groups_tickets.groups_id ' => $ _SESSION ['glpigroups ' ]],
217+ 'glpi_groups_tickets.groups_id ' => null
218+ ]
219+ ];
220+
221+ $ criteria ['LEFT JOIN ' ]['glpi_plugin_escalade_histories ' ] = [
222+ 'ON ' => [
223+ 'glpi_tickets ' => 'id ' ,
224+ 'glpi_plugin_escalade_histories ' => 'tickets_id '
225+ ]
226+ ];
208227 } else {
209228 $ title = __ ("Tickets to close (escalated) " , "escalade " );
210229 $ status = CommonITILObject::SOLVED ;
211230
212- $ search_assign = " (`glpi_groups_tickets`.`groups_id` IN (' $ groups')) " ;
213-
214- $ query_join = "LEFT JOIN `glpi_groups_tickets`
215- ON (`glpi_tickets`.`id` = `glpi_groups_tickets`.`tickets_id`
216- AND `glpi_groups_tickets`.`type`=2) " ;
231+ $ criteria ['WHERE ' ]['glpi_groups_tickets.groups_id ' ] = $ _SESSION ['glpigroups ' ];
217232 }
218-
219- $ query = "SELECT DISTINCT `glpi_tickets`.`id`
220- FROM `glpi_tickets`
221- LEFT JOIN `glpi_tickets_users`
222- ON (`glpi_tickets`.`id` = `glpi_tickets_users`.`tickets_id`) " ;
223-
224- $ query .= $ query_join ;
225-
226- $ query .= "WHERE $ is_deleted AND ( $ search_assign )
227- AND (`status` IN ( $ status)) " .
228- getEntitiesRestrictRequest ("AND " , "glpi_tickets " );
229-
230- $ query .= " ORDER BY glpi_tickets.date_mod DESC " ;
231-
232- $ result = $ DB ->query ($ query );
233- $ numrows = $ DB ->numrows ($ result );
233+ $ criteria ['LEFT JOIN ' ]['glpi_groups_tickets ' ] = [
234+ 'ON ' => [
235+ 'glpi_tickets ' => 'id ' ,
236+ 'glpi_groups_tickets ' => 'tickets_id ' ,
237+ [
238+ 'AND ' => ['glpi_groups_tickets.type ' => 2 ]
239+ ]
240+ ]
241+ ];
242+ $ criteria ['WHERE ' ]['status ' ] = $ status ;
243+ $ criteria ['WHERE ' ][] = getEntitiesRestrictCriteria ('glpi_tickets ' );
244+
245+ $ result = $ DB ->request ($ criteria );
246+ $ numrows = count ($ result );
234247 if (!$ numrows ) {
235248 return ;
236249 }
237250
238- $ query .= " LIMIT 0, 5 " ;
239- $ result = $ DB ->query ($ query );
240- $ number = $ DB ->numrows ($ result );
251+ $ criteria ['START ' ] = 0 ;
252+ $ criteria ['LIMIT ' ] = 5 ;
253+ $ result = $ DB ->request ($ criteria );
254+ $ number = count ($ result );
241255
242256 //show central list
243257 if ($ numrows > 0 ) {
@@ -287,9 +301,8 @@ static function showCentralSpecificList($type) {
287301 echo "<th> " .__ ('Requester ' )."</th> " ;
288302 echo "<th> " .__ ('Associated element ' )."</th> " ;
289303 echo "<th> " .__ ('Description ' )."</th></tr></thead> " ;
290- for ($ i = 0 ; $ i < $ number ; $ i ++) {
291- $ ID = $ DB ->result ($ result , $ i , "id " );
292- Ticket::showVeryShort ($ ID , 'Ticket$2 ' );
304+ foreach ($ result as $ data ) {
305+ Ticket::showVeryShort ($ data ['id ' ], 'Ticket$2 ' );
293306 }
294307 }
295308 echo "</table> " ;
0 commit comments