Skip to content

Commit 59a4ca5

Browse files
committed
Fix _AddLeftJoin
1 parent 3e240c6 commit 59a4ca5

1 file changed

Lines changed: 60 additions & 15 deletions

File tree

hook.php

Lines changed: 60 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,7 @@
2828
--------------------------------------------------------------------------
2929
*/
3030

31+
use Glpi\Search\Provider\SQLProvider;
3132
use GlpiPlugin\Connections\Connection;
3233
use GlpiPlugin\Connections\Connection_Item;
3334
use GlpiPlugin\Connections\ConnectionRate;
@@ -326,56 +327,100 @@ function plugin_connections_getAddSearchOptions($itemtype)
326327
* @param $linkfield
327328
* @param $already_link_tables
328329
*
329-
* @return Left|string
330+
* @return array
330331
*/
331332
function plugin_connections_addLeftJoin($type, $ref_table, $new_table, $linkfield, &$already_link_tables)
332333
{
333334
switch ($new_table) {
334335
case "glpi_plugin_connections_connections_items":
335-
return " LEFT JOIN `$new_table` ON (`$ref_table`.`id` = `$new_table`.`plugin_connections_connections_id`) ";
336-
break;
337-
336+
$out['LEFT JOIN'] = [
337+
$new_table => [
338+
'ON' => [
339+
$ref_table => 'id',
340+
$new_table => 'plugin_connections_connections_id'
341+
],
342+
],
343+
];
344+
return $out;
338345
case "glpi_plugin_connections_connections":
339-
$out = " LEFT JOIN `glpi_plugin_connections_connections_items` ON (`$ref_table`.`id` = `glpi_plugin_connections_connections_items`.`items_id` AND `glpi_plugin_connections_connections_items`.`itemtype` = '$type') ";
340-
$out .= " LEFT JOIN `glpi_plugin_connections_connections` ON (`glpi_plugin_connections_connections`.`id` = `glpi_plugin_connections_connections_items`.`plugin_connections_connections_id`) ";
346+
$out['LEFT JOIN'] = [
347+
'glpi_plugin_connections_connections_items' => [
348+
'ON' => [
349+
$ref_table => 'id',
350+
'glpi_plugin_connections_connections_items' => 'items_id', [
351+
'AND' => [
352+
'glpi_plugin_connections_connections_items.itemtype' => $type,
353+
],
354+
],
355+
],
356+
],
357+
'glpi_plugin_connections_connections' => [
358+
'ON' => [
359+
'glpi_plugin_connections_connections' => 'id',
360+
'glpi_plugin_connections_connections_items' => 'plugin_connections_connections_id'
361+
],
362+
],
363+
];
341364
return $out;
342-
break;
343-
344365
case "glpi_plugin_connections_connectiontypes":
345-
$out = Search::addLeftJoin(
366+
$out = SQLProvider::getLeftJoinCriteria(
346367
$type,
347368
$ref_table,
348369
$already_link_tables,
349370
"glpi_plugin_connections_connections",
350371
$linkfield
351372
);
352-
$out .= " LEFT JOIN `glpi_plugin_connections_connectiontypes` ON (`glpi_plugin_connections_connectiontypes`.`id` = `glpi_plugin_connections_connections`.`plugin_connections_connectiontypes_id`) ";
373+
$left = [
374+
'glpi_plugin_connections_connectiontypes' => [
375+
'ON' => [
376+
'glpi_plugin_connections_connectiontypes' => 'id',
377+
'glpi_plugin_connections_connections' => 'plugin_connections_connectiontypes_id'
378+
],
379+
],
380+
];
381+
$out['LEFT JOIN'] = array_merge($out, $left);
353382
return $out;
354383

355384
case "glpi_plugin_connections_connectionrates":
356-
$out = Search::addLeftJoin(
385+
$out = SQLProvider::getLeftJoinCriteria(
357386
$type,
358387
$ref_table,
359388
$already_link_tables,
360389
"glpi_plugin_connections_connections",
361390
$linkfield
362391
);
363-
$out .= " LEFT JOIN `glpi_plugin_connections_connectionrates` ON (`glpi_plugin_connections_connectionrates`.`id` = `glpi_plugin_connections_connections`.`plugin_connections_connectionrates_id`) ";
392+
$left = [
393+
'glpi_plugin_connections_connectionrates' => [
394+
'ON' => [
395+
'glpi_plugin_connections_connectionrates' => 'id',
396+
'glpi_plugin_connections_connections' => 'plugin_connections_connectionrates_id'
397+
],
398+
],
399+
];
400+
$out['LEFT JOIN'] = array_merge($out, $left);
364401
return $out;
365402

366403
case "glpi_plugin_connections_guaranteedconnectionrates":
367-
$out = Search::addLeftJoin(
404+
$out = SQLProvider::getLeftJoinCriteria(
368405
$type,
369406
$ref_table,
370407
$already_link_tables,
371408
"glpi_plugin_connections_connections",
372409
$linkfield
373410
);
374-
$out .= " LEFT JOIN `glpi_plugin_connections_guaranteedconnectionrates` ON (`glpi_plugin_connections_guaranteedconnectionrates`.`id` = `glpi_plugin_connections_connections`.`plugin_connections_guaranteedconnectionrates_id`) ";
411+
$left = [
412+
'glpi_plugin_connections_guaranteedconnectionrates' => [
413+
'ON' => [
414+
'glpi_plugin_connections_guaranteedconnectionrates' => 'id',
415+
'glpi_plugin_connections_connections' => 'plugin_connections_guaranteedconnectionrates_id'
416+
],
417+
],
418+
];
419+
$out['LEFT JOIN'] = array_merge($out, $left);
375420
return $out;
376421
}
377422

378-
return "";
423+
return [];
379424
}
380425

381426
/**

0 commit comments

Comments
 (0)