52 : array {
54
55 $query = "SELECT DISTINCT mep_tree.*, object_data.* " .
56 "FROM mep_tree JOIN mep_item ON (mep_tree.child = mep_item.obj_id) " .
57 " JOIN object_data ON (mep_item.foreign_id = object_data.obj_id) ";
58
59 if ($format_filter != "" or $caption_filter != '') {
60 $query .= " JOIN media_item ON (media_item.mob_id = object_data.obj_id) ";
61 }
62
63 $query .=
64 " WHERE mep_tree.mep_id = " .
$db->
quote($pool_id,
"integer") .
65 " AND object_data.type = " .
$db->
quote(
"mob",
"text");
66
67
68 if (trim($title_filter) != "") {
69 $query .=
" AND " .
$db->
like(
"object_data.title",
"text",
"%" . trim($title_filter) .
"%");
70 }
71 if (!in_array($format_filter, ["", "mob"])) {
72 $filter = ($format_filter === "unknown")
73 ? ""
74 : $format_filter;
75 $query .=
" AND " .
$db->
equals(
"media_item.format", $filter,
"text",
true);
76 }
77 if (trim($caption_filter)) {
78 $query .=
'AND ' .
$db->
like(
'media_item.caption',
'text',
'%' . trim($caption_filter) .
'%');
79 }
80
81 $query .=
82 " ORDER BY object_data.title";
83
84 $objs = [];
85 $obj_ids = [];
88 $obj_ids[] = $rec['obj_id'];
89 $rec["foreign_id"] = $rec["obj_id"];
90 $rec["obj_id"] = "";
91 $objs[] = $rec;
92 }
93
94
95 if ($keyword_filter) {
97 $filtered = [];
98 foreach ($objs as $obj) {
99 if (in_array($obj[
'foreign_id'],
$res)) {
100 $filtered[] = $obj;
101 }
102 }
103 return (array) $filtered;
104 }
105 return $objs;
106 }
equals(string $columns, $value, string $type, bool $emptyOrNull=false)