/**
 *
 *
 *
 */
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);
}