/** * Function used to get playlists */ function get_playlists($params = array()) { global $cb_columns, $db; $fields = array('playlists' => $cb_columns->object('playlists')->get_columns()); $order = $params['order']; $limit = $params['limit']; $main_query = $query = "SELECT " . table_fields($fields) . " FROM " . table('playlists'); $condition = "playlists.playlist_type = 'v'"; if (!has_access('admin_access')) { $condition .= $condition ? " AND " : ""; $condition .= "playlists.privacy = 'public'"; } else { if ($params['privacy']) { $condition .= $condition ? " AND " : ""; $condition .= " playlists.privacy = '" . mysql_clean($params['privacy']) . "' "; } } if ($params['category']) { $condition .= $condition ? " AND " : ""; $condition .= " playlists.category = '" . $params['category'] . "' "; } if ($params['include']) { $ids = is_array($params['include']) ? $params['include'] : explode(',', $params['include']); if (is_array($ids) and !empty($ids)) { $condition .= $condition ? " AND " : ""; $ids = implode(",", array_map('trim', $ids)); $condition .= " playlists.playlist_id IN ({$ids}) "; } } if ($params['exclude']) { $ids = is_array($params['exclude']) ? $params['exclude'] : explode(',', $params['exclude']); if (is_array($ids) and !empty($ids)) { $condition .= $condition ? " AND " : ""; $ids = implode(",", array_map('trim', $ids)); $condition .= " playlists.playlist_id NOT IN ({$ids}) "; } } if ($params['date_span']) { $condition .= $condition ? " AND " : ""; $column = $params['date_span_column'] ? trim($params['date_span_column']) : 'playlists.date_added'; $condition .= cbsearch::date_margin($column, $params['date_span']); } if ($params['last_update']) { $condition .= $condition ? " AND " : ""; $condition .= cbsearch::date_margin('playlists.last_update', $params['last_update']); } if ($params['user']) { $condition .= $condition ? " AND " : ""; $condition .= " playlists.userid = '" . $params['user'] . "' "; } if ($params['has_items']) { $condition .= $condition ? " AND " : ""; $condition .= " playlists.total_items > '0' "; } if ($params['count_only']) { $result = $db->count(cb_sql_table('playlists'), 'playlist_id'); return $result; } if ($condition) { $query .= " WHERE " . $condition; } $order = " ORDER BY " . ($order ? trim($order) : "playlists.date_added DESC"); $limit = $limit ? " LIMIT {$limit} " : ""; $query .= $order . $limit; $query_id = cb_query_id($query); $action_array = array('query_id' => $query_id); $data = cb_do_action('select_playlists', array_merge($action_array, $params)); if ($data) { return $data; } $results = select($query); if (!empty($results)) { cb_do_action('return_playlists', array('query_id' => $query_id, 'results' => $results)); return $results; } return false; }
/** * Function used to get playlist items */ function get_playlist_items($playlist_id, $order = null, $limit = -1) { global $db, $cb_columns; $fields = array('playlist_items' => $cb_columns->object('playlist_items')->temp_change('date_added', 'item_added')->get_columns(), 'playlists' => $cb_columns->object('playlists')->temp_remove('first_item,cover')->temp_change('date_added,description,tags,category', 'playlist_added,playlist_description,playlist_tags,playlist_category')->get_columns(), 'video' => $cb_columns->object('videos')->get_columns()); $query = "SELECT " . table_fields($fields) . " FROM " . table('playlist_items'); $query .= " LEFT JOIN " . table('playlists') . " ON playlist_items.playlist_id = playlists.playlist_id"; $query .= " LEFT JOIN " . table('video') . " ON playlist_items.object_id = video.videoid"; $query .= " WHERE playlist_items.playlist_id = '" . $playlist_id . "' "; if (!is_null($order)) { $query .= "ORDER BY " . $order; } if ($limit > 0) { $query .= " LIMIT " . $limit; } $query_id = cb_query_id($query); $data = cb_do_action('select_playlist_items', array('query_id' => $query_id, 'playlist_id' => $playlist_id)); if ($data) { return $data; } $data = select($query); if ($data) { cb_do_action('return_playlist_items', array('query_id' => $query_id, 'results' => $data)); return $data; } return false; }
/** * Alias function for table_fields * * @param $fields * @param bool $table * @return bool|string */ function tbl_fields($fields, $table = false) { return table_fields($fields, $table); }
function database_object_get($tablename, $idvalue, $props = false) { $o = db_fetch_object(db_query("SELECT * FROM {$tablename} WHERE id=%d", $idvalue)); if ($o) { if ($props) { ///get objects for _id fields $fields = table_fields($tablename); foreach ($o as $field => $field_value) { global $fields_stack; if (array_search($field, $fields_stack) !== FALSE) { continue; } if (str_end($field, "_id")) { $subtable = str_start($field, "_id") . "s"; $subtable = connected_table($tablename, $subtable); if ($subtable) { $member = str_start($field, "_id"); $prop = database_object_get($subtable, $field_value); if ($prop) { foreach ($prop as $propname => $propvalue) { $o_prop_name = $propname; $o->{$o_prop_name} = $propvalue; } } } } } ///get linked tables global $tables; foreach ($tables as $table => $tableobject) { $this_object_link = str_start($tablename, "s") . "_id"; $this_object_prefix = str_prefix($tablename); $link_table_prefix = str_prefix($table); $table_no_prefix = $table; if ($this_object_prefix == $link_table_prefix) { $this_object_link = str_no_prefix($this_object_link, $this_object_prefix); $table_no_prefix = str_no_prefix($table_no_prefix, $this_object_prefix); } $ignore_the_table = true; global $database_object_get_tables; if (count($database_object_get_tables) == 0) { $ignore_the_table = false; } else { foreach ($database_object_get_tables as $get_table) { if ($get_table == $table) { $ignore_the_table = 0; break; } } } if ($ignore_the_table === true) { continue; } $fields = table_fields($table); foreach ($fields as $fieldname) { if ($fieldname == $this_object_link) { $rr = db_query("SELECT id FROM {$table} WHERE {$fieldname} = {$idvalue}"); global $fields_stack; $fields_stack[] = $fieldname; $propname = $table; if ($this_object_prefix == $link_table_prefix) { $propname = str_no_prefix($table, $this_object_prefix); } $subobjects = array(); while ($r = db_fetch_object($rr)) { $subobject = database_object_get($table, $r->id, true); $subobjects[] = $subobject; } array_pop($fields_stack); $o->{$propname} = $subobjects; } } } } } return $o; }
function search_on_table($tableno, $search_text) { global $tables_to_search; // build the sql $search_sql = 'select * from ' . $tables_to_search[$tableno] . ' where '; //pre($fields_names); $fields_on_this_table = table_fields($tableno); $len = sizeof($fields_on_this_table); for ($i = 0; $i < $len; $i += 1) { if ($i != 0) { $search_sql .= ' or '; } $search_sql .= '`' . $fields_on_this_table[$i] . '` like \'%' . $search_text . '%\' '; } //pre($data); return fetch_array($search_sql); // run SQL // build the data.. }