function get_theme_type_id() function get_description() function do_theme_query($sql) while ($info = $db->result_array()) $themes[$info["THEME_ID"]] = $info; function get_theme_count() $db->query("SELECT COUNT(*) AS NUM_THEMES FROM Themes " . $this->get_theme_type_id()); $result = $db->result_array(); return $result["NUM_THEMES"]; function get_all_themes($start = 0, $limit = 25) $typeid = $this->get_theme_type_id(); return $this->do_theme_query( "SELECT Themes.*, Users.USER_ID, Users.USERNAME," . " Users.FIRSTNAME, Users.LASTNAME FROM Themes, Users" . " WHERE Themes.TYPE_ID=$typeid AND" . " Themes.USER_ID=Users.USER_ID LIMIT $start,$limit" function get_popular_themes($limit = 10) $typeid = $this->get_theme_type_id(); return $this->do_theme_query( "SELECT Themes.*, Users.USER_ID, Users.USERNAME," . " Users.FIRSTNAME, Users.LASTNAME FROM Themes, Users" . " WHERE Themes.TYPE_ID=$typeid AND " . " Themes.USER_ID=Users.USER_ID AND" . " Themes.DOWNLOAD_COUNT > 1" . " ORDER BY DOWNLOAD_COUNT DESC LIMIT $limit" function get_users_themes($user_id) return $this->do_theme_query( "SELECT * FROM Themes WHERE USER_ID=" . $user_id function get_theme_author($theme_id) "SELECT Users.* FROM Users, Themes" . " WHERE Themes.THEME_ID=" . $theme_id . " AND Users.USER_ID=Themes.USER_ID" return $db->result_array(); function get_theme($theme_id) "SELECT Themes.*, Users.USER_ID, Users.USERNAME," . " Users.FIRSTNAME, Users.LASTNAME FROM Themes, Users" . " WHERE Themes.THEME_ID=" . $theme_id . " AND " . " Themes.USER_ID=Users.USER_ID" $result = $db->result_array(); while (list($var, $val) = each($result)) { $result[$var] = stripslashes($val); function get_icon($theme_id) $exts = array("png", "gif"); for ($i = 0; $i < count($exts); $i++) if (file_exists($theme_icon_dir . "/$theme_id." . $exts[$i])) return $theme_id . "." . $exts[$i]; function add_theme($userid, $name, $version, $url, $homepage, $filesize, $brief, $description) $typeid = $this->get_theme_type_id(); $name = addslashes($name); $version = addslashes($version); $homepage = addslashes($homepage); $brief = addslashes($brief); $description = addslashes($description); "INSERT INTO Themes VALUES(0, $typeid, $userid, \"$name\"," . " \"$version\", \"$url\", \"$homepage\", $filesize," . " \"$brief\", \"$description\", NOW(), NOW(), 0, 0)" "SELECT Themes.THEME_ID FROM Themes WHERE" . " NAME=\"$name\" AND VERSION=\"$version\" AND" $res = $db->result_array(); function update_theme($theme_id, $name, $version, $url, $homepage, $filesize, $brief, $description) $name = addslashes($name); $version = addslashes($version); $homepage = addslashes($homepage); $brief = addslashes($brief); $description = addslashes($description); "UPDATE Themes SET NAME=\"$name\", VERSION=\"$version\"," . " URL=\"$url\", HOMEPAGE=\"$homepage\", FILESIZE=$filesize," . " BRIEF=\"$brief\", DESCRIPTION=\"$description\", " . " UPDATED=NOW() WHERE THEME_ID=" . $theme_id function delete_theme($theme_id) "DELETE FROM Themes WHERE THEME_ID=" . $theme_id function update_download_count($theme_id) "UPDATE Themes SET DOWNLOAD_COUNT=DOWNLOAD_COUNT+1" . " WHERE THEME_ID=" . $theme_id function update_view_count($theme_id) "UPDATE Themes SET VIEW_COUNT=VIEW_COUNT+1" . " WHERE THEME_ID=" . $theme_id function get_search_count($keywords, $type) $typeid = $this->get_theme_type_id(); $keywords = strtolower(str_replace(" ", "|", $keywords)); $querystr = "SELECT COUNT(*) FROM Themes WHERE " . "TYPE_ID=$typeid AND LOWER("; $querystr .= "DESCRIPTION"; $querystr .= ") REGEXP \"(" . $keywords . ")\""; $querystr .= " OR LOWER(BRIEF) REGEXP \"(" . $keywords . ")\""; $result = $db->result_array(); return $result[0]["COUNT(*)"]; function search_themes($keywords, $type, $start, $limit) $typeid = $this->get_theme_type_id(); $keywords = strtolower(str_replace(" ", "|", $keywords)); $querystr = "SELECT * FROM Themes WHERE " . "TYPE_ID=$typeid AND LOWER("; $querystr .= "DESCRIPTION"; $querystr .= ") REGEXP \"(" . $keywords . ")\""; $querystr .= " OR LOWER(BRIEF) REGEXP \"(" . $keywords . ")\""; $querystr .= " LIMIT $start,$limit"; return $this->do_theme_query($querystr);