/** * * * */ function bookmarks_print_bookmarks_section($bookmarksid) { global $USER, $COURSE; $cm = get_coursemodule_from_instance('bookmarks', $bookmarksid); $items = bookmarks_get_items_by_user($USER->id, $bookmarksid); $userids = null; if ($cm->gropumode = 1) { $context = get_context_instance(CONTEXT_MODULE, $cm->id); $gids = bookmarks_get_user_groupids($USER->id, $COURSE->id); if ($gids) { $users = bookmarks_get_groupmembers($gids); $userids = implode(',', $users); } } if (empty($items)) { print_string('noitems', 'bookmarks'); } else { foreach ($items as $item) { bookmarks_print_item($item, $cm->id, $userids, true); } } }
/** * * * */ function bookmarks_search_by($criteria, $id) { global $CFG, $USER, $COURSE; $elements = array(); $queries = array(); $queries['text'] = array(); $queries['tag'] = array(); $queries['url'] = array(); $queries['inurl'] = array(); $elements = explode(',', $criteria); foreach ($elements as $element) { $element = trim($element); switch (substr($element, 0, 4)) { case 'tag:': $queries['tag'][] = substr($element, 4); break; case 'url:': $queries['url'][] = substr($element, 4); break; default: switch (substr($element, 0, 6)) { case 'inurl:': $queries['inurl'][] = substr($element, 6); break; default: $queries['text'][] = $element; } } } $cm = get_coursemodule_from_instance('bookmarks', $id); $query = 'SELECT DISTINCT i.* FROM ' . $CFG->prefix . 'bookmarks_items i LEFT OUTER JOIN ' . $CFG->prefix . 'bookmarks_links l ON i.linkid = l.id LEFT OUTER JOIN ' . $CFG->prefix . 'tag_instance ti ON i.id = ti.itemid LEFT OUTER JOIN ' . $CFG->prefix . 'tag t ON ti.tagid = t.id WHERE i.bookmarksid = ' . $id; if (!empty($queries['text'])) { foreach ($queries['text'] as $text) { $query .= ' AND ('; $query .= " i.name LIKE '%" . $text . "%' OR"; $query .= " i.description LIKE '%" . $text . "%'"; $query .= ')'; } } if (!empty($queries['tag'])) { foreach ($queries['tag'] as $tag) { $query .= ' AND '; $query .= "t.name = '" . $tag . "'"; } } if (!empty($queries['inurl'])) { foreach ($queries['inurl'] as $url) { $query .= ' AND '; $query .= "l.url LIKE '%" . $url . "%'"; } } if (!empty($queries['url'])) { foreach ($queries['url'] as $url) { $query .= ' AND '; $query .= "l.url = '" . $url . "'"; } } if ($cm->gropumode = 1) { $context = get_context_instance(CONTEXT_MODULE, $cm->id); $gids = bookmarks_get_user_groupids($USER->id, $COURSE->id); if ($gids) { $userids = bookmarks_get_groupmembers($gids); $query .= 'AND i.userid IN(' . implode(',', $userids) . ')'; } elseif (!has_capability('mod/bookmarks:manage', $context)) { $query .= 'AND i.userid =' . $USER->id; } } $query .= ' ORDER BY i.name'; return get_records_sql($query); }