3declare(strict_types=1);
29 protected \ilDBInterface
$db;
34 $this->db = (
$db) ?:
$DIC->database();
42 string $title_filter =
"",
43 string $format_filter =
"",
44 string $keyword_filter =
'',
45 string $caption_filter =
""
49 $query =
"SELECT DISTINCT mep_tree.*, object_data.* " .
50 "FROM mep_tree JOIN mep_item ON (mep_tree.child = mep_item.obj_id) " .
51 " JOIN object_data ON (mep_item.foreign_id = object_data.obj_id) ";
53 if ($format_filter !=
"" or $caption_filter !=
'') {
54 $query .=
" JOIN media_item ON (media_item.mob_id = object_data.obj_id) ";
58 " WHERE mep_tree.mep_id = " .
$db->
quote($pool_id,
"integer") .
59 " AND object_data.type = " .
$db->
quote(
"mob",
"text");
62 if (trim($title_filter) !=
"") {
63 $query .=
" AND " .
$db->
like(
"object_data.title",
"text",
"%" . trim($title_filter) .
"%");
65 if (!in_array($format_filter, [
"",
"mob"])) {
66 $filter = ($format_filter ===
"unknown")
69 $query .=
" AND " .
$db->
equals(
"media_item.format", $filter,
"text",
true);
71 if (trim($caption_filter)) {
72 $query .=
'AND ' .
$db->
like(
'media_item.caption',
'text',
'%' . trim($caption_filter) .
'%');
76 " ORDER BY object_data.title";
81 $rec[
"foreign_id"] = $rec[
"obj_id"];
87 if ($keyword_filter) {
90 foreach ($objs as $obj) {
91 if (in_array($obj[
'foreign_id'],
$res)) {
95 return (array) $filtered;
105 string $title_filter =
"",
106 string $format_filter =
"",
107 string $keyword_filter =
'',
108 string $caption_filter =
""
111 if (!in_array($format_filter, [
"pg",
""])) {
116 if ($caption_filter !=
"") {
122 $query =
"SELECT DISTINCT mep_tree.*, mep_item.* " .
123 "FROM mep_tree JOIN mep_item ON (mep_tree.child = mep_item.obj_id) ";
126 " WHERE mep_tree.mep_id = " .
$db->quote($pool_id,
"integer") .
127 " AND mep_item.type = " .
$db->quote(
"pg",
"text");
130 if (trim($title_filter) !=
"") {
131 $query .=
" AND " .
$db->like(
"mep_item.title",
"text",
"%" . trim($title_filter) .
"%");
136 while ($rec =
$db->fetchAssoc($set)) {
143 if ($keyword_filter) {
144 include_once
'./Services/MetaData/classes/class.ilMDKeyword.php';
146 foreach ($objs as $obj) {
147 if (in_array($obj[
'obj_id'],
$res)) {
151 return (array) $filtered;
161 string $title_filter =
"",
162 string $format_filter =
"",
163 string $keyword_filter =
"",
164 string $caption_filter =
""
166 $mobs = $this->getMediaObjects(
174 $snippets = $this->getContentSnippets(
182 return \ilArrayUtil::sortArray(array_merge(
$mobs, $snippets),
"title",
"asc");
static _searchKeywords(string $a_query, string $a_type, int $a_rbac_id=0)
if(!file_exists(getcwd() . '/ilias.ini.php'))
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...
like(string $column, string $type, string $value="?", bool $case_insensitive=true)
Generate a like subquery.
equals(string $columns, $value, string $type, bool $emptyOrNull=false)
quote($value, string $type)
query(string $query)
Run a (read-only) Query on the database.
fetchAssoc(ilDBStatement $statement)