summaryrefslogtreecommitdiffstats
path: root/contrib
diff options
context:
space:
mode:
authornf <nf@ampache>2007-09-20 00:11:47 +0000
committernf <nf@ampache>2007-09-20 00:11:47 +0000
commitc796c8be3803cf7e49b39a2d3fbb9f85f7e7667c (patch)
tree8405abaa8691f8c55b23253d1ae272b2c6886726 /contrib
parent1fa5c4aea3c8c66f64d114e4ca4319b226175d5b (diff)
downloadampache-c796c8be3803cf7e49b39a2d3fbb9f85f7e7667c.tar.gz
ampache-c796c8be3803cf7e49b39a2d3fbb9f85f7e7667c.tar.bz2
ampache-c796c8be3803cf7e49b39a2d3fbb9f85f7e7667c.zip
removed some obsolete theme patches
Diffstat (limited to 'contrib')
-rw-r--r--contrib/themes/Cleandy-Peach/patch-3.3.3.2/README.txt9
-rw-r--r--contrib/themes/Cleandy-Peach/patch-3.3.3.3/README.txt9
-rw-r--r--contrib/themes/Cleandy-Peach/screencap/01.pngbin227810 -> 0 bytes
-rw-r--r--contrib/themes/Cleandy/patch-3.3.3.2/README.txt9
-rw-r--r--contrib/themes/Cleandy/patch-3.3.3.2/ampache/albums.php286
-rw-r--r--contrib/themes/Cleandy/patch-3.3.3.2/ampache/lib/album.lib.php110
-rw-r--r--contrib/themes/Cleandy/patch-3.3.3.2/ampache/lib/class/album.class.php602
-rw-r--r--contrib/themes/Cleandy/patch-3.3.3.2/ampache/lib/class/view.class.php234
-rw-r--r--contrib/themes/Cleandy/patch-3.3.3.3/README.txt9
-rw-r--r--contrib/themes/Cleandy/screencap/01.pngbin174535 -> 0 bytes
10 files changed, 0 insertions, 1268 deletions
diff --git a/contrib/themes/Cleandy-Peach/patch-3.3.3.2/README.txt b/contrib/themes/Cleandy-Peach/patch-3.3.3.2/README.txt
deleted file mode 100644
index 5618977c..00000000
--- a/contrib/themes/Cleandy-Peach/patch-3.3.3.2/README.txt
+++ /dev/null
@@ -1,9 +0,0 @@
-This is optional!
-But it improves accessability and better fits in ampache installations using themes by me.
-
-Copy the files includes in this folder to ampaches root to the appropriate folders.
-They include some patches to ampache 3.3.3.2 for login page, album listing and some other things.
-They'll work fine until included/fixed (maybe) in the next version of ampache.
-They are not necessary but improve look & feel.
-
-Thanks to blueorder and andy90 for help on some patches ;) \ No newline at end of file
diff --git a/contrib/themes/Cleandy-Peach/patch-3.3.3.3/README.txt b/contrib/themes/Cleandy-Peach/patch-3.3.3.3/README.txt
deleted file mode 100644
index 1bbc0b62..00000000
--- a/contrib/themes/Cleandy-Peach/patch-3.3.3.3/README.txt
+++ /dev/null
@@ -1,9 +0,0 @@
-This is optional!
-But it improves accessability and better fits in ampache installations using themes by me
-
-Copy the files includes in this folder to ampaches root to the appropriate folders.
-They include some patches to ampache 3.3.3.3 for login page, album listing and some other things.
-They'll work fine until included/fixed (maybe) in the next version of ampache.
-They are not necessary but improve look & feel.
-
-Thanks to blueorder and andy90 for help on some patches ;) \ No newline at end of file
diff --git a/contrib/themes/Cleandy-Peach/screencap/01.png b/contrib/themes/Cleandy-Peach/screencap/01.png
deleted file mode 100644
index fb7fc376..00000000
--- a/contrib/themes/Cleandy-Peach/screencap/01.png
+++ /dev/null
Binary files differ
diff --git a/contrib/themes/Cleandy/patch-3.3.3.2/README.txt b/contrib/themes/Cleandy/patch-3.3.3.2/README.txt
deleted file mode 100644
index 5618977c..00000000
--- a/contrib/themes/Cleandy/patch-3.3.3.2/README.txt
+++ /dev/null
@@ -1,9 +0,0 @@
-This is optional!
-But it improves accessability and better fits in ampache installations using themes by me.
-
-Copy the files includes in this folder to ampaches root to the appropriate folders.
-They include some patches to ampache 3.3.3.2 for login page, album listing and some other things.
-They'll work fine until included/fixed (maybe) in the next version of ampache.
-They are not necessary but improve look & feel.
-
-Thanks to blueorder and andy90 for help on some patches ;) \ No newline at end of file
diff --git a/contrib/themes/Cleandy/patch-3.3.3.2/ampache/albums.php b/contrib/themes/Cleandy/patch-3.3.3.2/ampache/albums.php
deleted file mode 100644
index 9acda645..00000000
--- a/contrib/themes/Cleandy/patch-3.3.3.2/ampache/albums.php
+++ /dev/null
@@ -1,286 +0,0 @@
-<?php
-/*
-
- Copyright (c) 2001 - 2007 Ampache.org
- All Rights Reserved.
-
- This program is free software; you can redistribute it and/or
- modify it under the terms of the GNU General Public License v2
- as published by the Free Software Foundation.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program; if not, write to the Free Software
- Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
-
-*/
-
-require_once 'lib/init.php';
-
-show_template('header');
-
-// We'll set any input parameters here
-if(!isset($_REQUEST['match'])) { $_REQUEST['match'] = "Browse"; }
-if(isset($_REQUEST['match'])) $match = scrub_in($_REQUEST['match']);
-if(isset($_REQUEST['album'])) $album = scrub_in($_REQUEST['album']);
-if(isset($_REQUEST['artist'])) $artist = scrub_in($_REQUEST['artist']);
-$_REQUEST['artist_id'] = scrub_in($_REQUEST['artist_id']);
-$min_album_size = conf('min_object_count');
-if ($min_album_size == '') {
- $min_album_size = '0';
-}
-
-$action = scrub_in($_REQUEST['action']);
-
-/* Switch on Action */
-switch ($action) {
- case 'clear_art':
- if (!$GLOBALS['user']->has_access('75')) { access_denied(); }
- $album = new Album($_REQUEST['album_id']);
- $album->clear_art();
- show_confirmation(_('Album Art Cleared'),_('Album Art information has been removed from the database'),"/albums.php?action=show&amp;album=" . $album->id);
- break;
- case 'show':
- $album = new Album($_REQUEST['album']);
- $album->format();
-
- require (conf('prefix') . '/templates/show_album.inc');
-
- /* Get the song ids for this album */
- $song_ids = $album->get_song_ids($_REQUEST['artist']);
-
- show_songs($song_ids,0,$album);
- break;
- // Upload album art
- case 'upload_art':
-
- // we didn't find anything
- if (empty($_FILES['file']['tmp_name'])) {
- show_confirmation(_('Album Art Not Located'),_('Album Art could not be located at this time. This may be due to write access error, or the file is not received corectly.'),"/albums.php?action=show&amp;album=" . $album->id);
- break;
- }
-
- $album = new Album($_REQUEST['album_id']);
-
- // Pull the image information
- $data = array('file'=>$_FILES['file']['tmp_name']);
- $image_data = get_image_from_source($data);
-
- // If we got something back insert it
- if ($image_data) {
- $album->insert_art($image_data,$_FILES['file']['type']);
- show_confirmation(_('Album Art Inserted'),'',"/albums.php?action=show&album=" . $album->id);
- }
- // Else it failed
- else {
- show_confirmation(_('Album Art Not Located'),_('Album Art could not be located at this time. This may be due to write access error, or the file is not received corectly.'),"/albums.php?action=show&amp;album=" . $album->id);
- }
-
- break;
- case 'find_art':
-
- // If not a user then kick em out
- if (!$GLOBALS['user']->has_access('25')) { access_denied(); exit; }
-
- // get the Album information
- $album = new Album($_REQUEST['album_id']);
- $images = array();
- $cover_url = array();
-
- // If we've got an upload ignore the rest and just insert it
- if (!empty($_FILES['file']['tmp_name'])) {
- $path_info = pathinfo($_FILES['file']['name']);
- $upload['file'] = $_FILES['file']['tmp_name'];
- $upload['mime'] = 'image/' . $path_info['extension'];
- $image_data = get_image_from_source($upload);
-
- if ($image_data) {
- $album->insert_art($image_data,$upload['0']['mime']);
- show_confirmation(_('Album Art Inserted'),'',"/albums.php?action=show&album=" . $_REQUEST['album_id']);
- break;
-
- } // if image data
-
- } // if it's an upload
-
- // Build the options for our search
- if (isset($_REQUEST['artist_name'])) {
- $artist = scrub_in($_REQUEST['artist_name']);
- }
- elseif ($album->artist_count == '1') {
- $artist = $album->artist;
- }
- if (isset($_REQUEST['album_name'])) {
- $album_name = scrub_in($_REQUEST['album_name']);
- }
- else {
- $album_name = $album->name;
- }
-
- $options['artist'] = $artist;
- $options['album_name'] = $album_name;
- $options['keyword'] = $artist . " " . $album_name;
- // HACK that makes baby jesus cry...
-// $options['skip_id3'] = true; // modified for working covers in id3
-
- // Attempt to find the art.
- $images = $album->find_art($options,'6');
-
- if (!empty($_REQUEST['cover'])) {
- $path_info = pathinfo($_REQUEST['cover']);
- $cover_url[0]['url'] = scrub_in($_REQUEST['cover']);
- $cover_url[0]['mime'] = 'image/' . $path_info['extension'];
- }
- $images = array_merge($cover_url,$images);
-
- // If we've found anything then go for it!
- if (count($images)) {
- // We don't want to store raw's in here so we need to strip them out into a seperate array
- foreach ($images as $index=>$image) {
- if (isset($image['raw'])) {
- //unset($images[$index]);
- unset($images[$index]['raw']);
-// $images[$index]['raw'] = ''; // modified for working covers in id3
- }
- } // end foreach
-
- // Store the results for further use
- $_SESSION['form']['images'] = $images;
- require_once(conf('prefix') . '/templates/show_album_art.inc.php');
- }
- // Else nothing
- else {
- show_confirmation(_('Album Art Not Located'),_('Album Art could not be located at this time. This may be due to write access error, or the file is not received corectly.'),"/albums.php?action=show&amp;album=" . $album->id);
- }
-
- $albumname = $album->name;
- $artistname = $artist;
-
- // Remember the last typed entry, if there was one
- if (isset($_REQUEST['album_name'])) { $albumname = scrub_in($_REQUEST['album_name']); }
- if (isset($_REQUEST['artist_name'])) { $artistname = scrub_in($_REQUEST['artist_name']); }
-
- require_once(conf('prefix') . '/templates/show_get_albumart.inc.php');
-
- break;
- case 'select_art':
-
- /* Check to see if we have the image url still */
- $image_id = $_REQUEST['image'];
- $album_id = $_REQUEST['album_id'];
-
- $image = get_image_from_source($_SESSION['form']['images'][$image_id]);
- $mime = $_SESSION['form']['images'][$image_id]['mime'];
-
- $album = new Album($album_id);
- $album->insert_art($image,$mime);
-
-
- show_confirmation(_('Album Art Inserted'),'',"/albums.php?action=show&album=$album_id");
- break;
- case 'update_from_tags':
-
- $album = new Album($_REQUEST['album_id']);
-
- show_box_top(_('Starting Update from Tags'));
-
- $catalog = new Catalog();
- $catalog->update_single_item('album',$_REQUEST['album_id']);
-
- echo "<br /><b>" . _('Update From Tags Complete') . "</b> &nbsp;&nbsp;";
- echo "<a href=\"" . conf('web_path') . "/albums.php?action=show&amp;album=" . scrub_out($_REQUEST['album_id']) . "\">[" . _('Return') . "]</a>";
- show_box_bottom();
- break;
- // Browse by Album
- default:
- if (strlen($_REQUEST['match']) < '1') { $match = 'a'; }
-
- // Setup the View Ojbect
- $view = new View();
- $view->import_session_view();
-
- if ($match == 'Show_all' || $match == 'Show_missing_art' || $match == 'Browse') { $chr = ''; }
- else { $chr = $match; }
-
- require (conf('prefix') . '/templates/show_box_top.inc.php');
- show_alphabet_list('albums','albums.php',$match);
- show_alphabet_form($chr,_('Show Albums starting with'),"albums.php?action=match");
- require (conf('prefix') . '/templates/show_box_bottom.inc.php');
-
- switch($match) {
- case 'Show_all':
- $offset_limit = 99999;
- $sql = "SELECT album.id FROM song,album ".
- " WHERE song.album=album.id ".
- "GROUP BY song.album ".
- " HAVING COUNT(song.id) > $min_album_size ";
- break;
- case 'Show_missing_art':
- $offset_limit = 99999;
- $sql = "SELECT album.id FROM song,album ".
- " WHERE song.album=album.id ".
- " AND album.art is null ".
- "GROUP BY song.album ".
- " HAVING COUNT(song.id) > $min_album_size ";
- break;
- case 'Browse':
- case 'show_albums':
- $sql = "SELECT album.id FROM song,album ".
- " WHERE song.album=album.id ".
- "GROUP BY song.album ".
- " HAVING COUNT(song.id) > $min_album_size ";
- break;
- default:
- $sql = "SELECT album.id FROM song,album ".
- " WHERE song.album=album.id ".
- " AND album.name LIKE '$match%'".
- "GROUP BY song.album ".
- " HAVING COUNT(song.id) > $min_album_size ";
- } // end switch
-
- switch ($_REQUEST['type']) {
- case 'album_sort':
- if ($match != 'Browse' && $match != 'Show_missing_art' && $match != 'Show_all') {
- $match_string = " AND album.name LIKE '$match%'";
- }
- $sort_sql = "SELECT album.id, IF(COUNT(DISTINCT(song.artist)) > 1,'Various', artist.name) AS artist_name " .
- "FROM song,artist,album WHERE song.album=album.id AND song.artist=artist.id $match_string" .
- "GROUP BY album.name,album.year ".
- "HAVING COUNT(song.id) > $min_album_size ";
- $sort_order = 'artist.name';
- break;
- default:
-
- break;
- } // switch on special sort types
-
- // if we are returning
- if ($_REQUEST['keep_view']) {
- $view->initialize($sort_sql);
- }
-
- // If we aren't keeping the view then initlize it
- elseif ($sql) {
- if (!$sort_order) { $sort_order = 'name'; }
- $db_results = mysql_query($sql, dbh());
- $total_items = mysql_num_rows($db_results);
- if ($match != "Show_all") { $offset_limit = $user->prefs['offset_limit']; }
- $view = new View($sql, 'albums.php',$sort_order,$total_items,$offset_limit);
- }
-
- else { $view = false; }
-
- if ($view->base_sql) {
- $albums = get_albums($view->sql);
- require conf('prefix') . '/templates/show_albums.inc.php';
- }
-
- break;
-} // end switch on action
-
-show_footer();
-?>
diff --git a/contrib/themes/Cleandy/patch-3.3.3.2/ampache/lib/album.lib.php b/contrib/themes/Cleandy/patch-3.3.3.2/ampache/lib/album.lib.php
deleted file mode 100644
index b9069afb..00000000
--- a/contrib/themes/Cleandy/patch-3.3.3.2/ampache/lib/album.lib.php
+++ /dev/null
@@ -1,110 +0,0 @@
-<?php
-/*
-
- This library handles album related functions.... wooo!
- //FIXME: Remove this in favor of /modules/class/album
-*/
-
-/*!
- @function get_albums
- @discussion pass a sql statement, and it gets full album info and returns
- an array of the goods.. can be set to format them as well
-*/
-function get_albums($sql, $action=0) {
-
- $db_results = mysql_query($sql, dbh());
- while ($r = mysql_fetch_array($db_results)) {
- $album = new Album($r[0]);
- $album->format_album();
- $albums[] = $album;
- }
-
- return $albums;
-
-
-} // get_albums
-
-/**
- * get_image_from_source
- * This gets an image for the album art from a source as
- * defined in the passed array. Because we don't know where
- * its comming from we are a passed an array that can look like
- * ['url'] = URL *** OPTIONAL ***
- * ['file'] = FILENAME *** OPTIONAL ***
- * ['raw'] = Actual Image data, already captured
- */
-function get_image_from_source($data) {
-
- // Already have the data, this often comes from id3tags
- if (isset($data['raw'])) {
- return $data['raw'];
- }
-
- // Check to see if it's a URL
- if (isset($data['url'])) {
- $snoopy = new Snoopy();
- $snoopy->fetch($data['url']);
- return $snoopy->results;
- }
-
- // Check to see if it's a FILE
- if (isset($data['file'])) {
- $handle = fopen($data['file'],'rb');
- $image_data = fread($handle,filesize($data['file']));
- fclose($handle);
- return $image_data;
- }
-// // Check to see if it is embedded in id3 of a song
- if (isset($data['song'])) {
- // If we find a good one, stop looking
- $getID3 = new getID3();
- $id3 = $getID3->analyze($data['song']);
-
- if ($id3['format_name'] == "WMA") {
- return $id3['asf']['extended_content_description_object']['content_descriptors']['13']['data'];
- }
- elseif (isset($id3['id3v2']['APIC'])) {
- // Foreach incase they have more then one
- foreach ($id3['id3v2']['APIC'] as $image) {
- return $image['data'];
- }
- }
- }
-// last "checked" added for working covers in id3
- return false;
-
-} // get_image_from_source
-
-/**
- * get_random_albums
- * This returns a random number of albums from the catalogs
- * this is used by the index to return some 'potential' albums to play
- */
-function get_random_albums($count='') {
-
- if (!$count) { $count = 5; }
-
- $count = sql_escape($count);
-
- // We avoid a table scan by using the id index and then using a rand to pick a row #
- $sql = "SELECT `id` FROM `album` WHERE `art` IS NOT NULL";
- $db_results = mysql_query($sql,dbh());
-
- while ($r = mysql_fetch_assoc($db_results)) {
- $albums[] = $r['id'];
- }
-
- $total = count($albums);
-
- for ($i=0; $i <= $count; $i++) {
- $record = rand(0,$total);
- // If we've already set this one, we gotta get another!
- if (isset($results[$record])) { $i--; }
- $results[$record] = $albums[$record];
- }
-
- return $results;
-
-} // get_random_albums
-
-?>
diff --git a/contrib/themes/Cleandy/patch-3.3.3.2/ampache/lib/class/album.class.php b/contrib/themes/Cleandy/patch-3.3.3.2/ampache/lib/class/album.class.php
deleted file mode 100644
index 0bbd9228..00000000
--- a/contrib/themes/Cleandy/patch-3.3.3.2/ampache/lib/class/album.class.php
+++ /dev/null
@@ -1,602 +0,0 @@
-<?php
-/*
-
- Copyright (c) 2001 - 2006 Ampache.org
- All Rights Reserved
-
- This program is free software; you can redistribute it and/or
- modify it under the terms of the GNU General Public License v2
- as published by the Free Software Foundation.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program; if not, write to the Free Software
- Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
-
-*/
-
-/**
- * Album Class
- * This is the class responsible for handling the Album object
- * it is related to the album table in the database.
- */
-class Album {
-
- /* Variables from DB */
- var $id;
- var $name;
- var $year;
- var $prefix;
-
- /* Art Related Fields */
- var $art;
- var $art_mime;
-
- // cached information
- var $_songs=array();
-
- /*!
- @function Album
- @discussion Album class, for modifing a song.
- @param $album_id The ID of the song
- */
- function Album($album_id = 0) {
-
- if (!$album_id) { return false; }
-
- /* Assign id for use in get_info() */
- $this->id = $album_id;
-
- /* Get the information from the db */
- if ($info = $this->_get_info()) {
- $this->name = trim($info['prefix'] . " " . $info['album_name']);
- $this->songs = $info['song_count'];
- $this->artist_count = $info['artist_count'];
- $this->year = $info['year'];
- $this->artist = trim($info['artist_prefix'] . " " . $info['artist_name']);
- $this->artist_id = $info['art_id'];
- $this->album = $info['album_name'];
- $this->has_art = $info['has_art'];
- $this->prefix = $info['prefix'];
- } // if info
-
- return true;
-
- } //constructor
-
- /*!
- @function get_info
- @discussion get's the vars for $this out of the database
- @param $this->id Taken from the object
- */
- function _get_info() {
-
- $this->id = intval($this->id);
-
- /* Grab the basic information from the catalog and return it */
- $sql = "SELECT COUNT(DISTINCT(song.artist)) as artist_count,album.prefix,album.year,album.name AS album_name,COUNT(song.id) AS song_count," .
- "artist.name AS artist_name,artist.id AS art_id,artist.prefix AS artist_prefix,album.art AS has_art ".
- "FROM song,artist,album WHERE album.id='$this->id' AND song.album=album.id AND song.artist=artist.id GROUP BY song.album";
-
- $db_results = mysql_query($sql, dbh());
-
- $results = mysql_fetch_assoc($db_results);
-
- // If there is art then set it to 1, if not set it to 0, we don't want to cary
- // around the full blob with every object because it can be pretty big
- $results['has_art'] = strlen($results['has_art']) ? '1' : '0';
-
- return $results;
-
- } // _get_info
-
- /*!
- @function get_songs
- @discussion gets the songs for this album
- */
- function get_songs($limit = 0) {
-
- $results = array();
-
- $sql = "SELECT id FROM song WHERE album='$this->id' ORDER BY track, title";
- if ($limit) { $sql .= " LIMIT $limit"; }
- $db_results = mysql_query($sql, dbh());
-
- while ($r = mysql_fetch_object($db_results)) {
- $results[] = new Song($r->id);
- }
-
- return $results;
-
- } // get_songs
-
- /**
- * get_song_ids
- * This returns an array of the song id's that are on this album. This is used by the
- * show_songs function and can be pased and artist if you so desire to limit it to that
- */
- function get_song_ids($artist='') {
-
- /* If they pass an artist then constrain it based on the artist as well */
- if ($artist) {
- $artist_sql = " AND artist='" . sql_escape($artist) . "'";
- }
-
- $sql = "SELECT id FROM song WHERE album='" . sql_escape($this->id) . "' $artist_sql ORDER BY track";
- $db_results = mysql_query($sql, dbh());
-
- $results = array();
-
- while ($r = mysql_fetch_assoc($db_results)) {
- $results[] = $r['id'];
- }
-
- return $results;
-
- } // get_song_ids
-
- /**
- * format
- * This is the format function for this object. It sets cleaned up
- * albumĀ information with the base required
- * f_link, f_name
- */
- function format() {
-
- $web_path = conf('web_path');
-
- /* Truncate the string if it's to long */
- $name = scrub_out(truncate_with_ellipse($this->name,conf('ellipse_threshold_album')));
- $artist = scrub_out($this->artist);
- $this->f_name = "<a href=\"$web_path/albums.php?action=show&amp;album=" . $this->id . "\" title=\"" . scrub_out($this->name) . "\">" . $name . "</a>";
- $this->f_link = "<a href=\"$web_path/albums.php?action=show&amp;album=" . scrub_out($this->id) . "\" title=\"" . scrub_out($this->name) . "\">" . $name . "</a>";
- $this->f_songs = "<div align=\"center\">" . $this->songs . "</div>";
- $this->f_title = $name;
- if ($this->artist_count == '1') {
- $this->f_artist = "<a href=\"$web_path/artists.php?action=show&amp;artist=" . $this->artist_id . "\">" . $artist . "</a>";
- }
- else {
- $this->f_artist = _('Various');
- }
-
- if ($this->year == '0') {
- $this->year = "N/A";
- }
-
- } // format
-
- /**
- * format_album
- * DEPRECIATED DO NOT USE!
- */
- function format_album() {
-
- // Call the real function
- $this->format();
-
- } // format_album
-
- /**
- * get_art
- * This function only pulls art from the database, nothing else
- * It should not be called when trying to find new art
- */
- function get_art() {
-
- return $this->get_db_art();
-
- } // get_art
-
- /**
- * find_art
- * This function searches for album art using all configured methods
- * for the current album. There is an optional 'limit' passed that will
- * gather up to the specified number of possible album covers.
- * There is also an optional array of options the possible options are
- * ['keyword'] = STRING
- * ['artist'] = STRING
- * ['album_name'] = STRING
- */
- function find_art($options=array(),$limit='') {
-
- /* Create Base Vars */
- $results = array();
-
- /* Attempt to retrive the album art order */
- $config_value = conf('album_art_order');
- $class_methods = get_class_methods('Album');
-
- /* If it's not set */
- if (empty($config_value)) {
- // They don't want art!
- return array();
- }
- elseif (!is_array($config_value)) {
- $config_value = array($config_value);
- }
-
- foreach ($config_value AS $method) {
-
- $data = array();
-
- $method_name = "get_" . $method . "_art";
- if (in_array($method_name,$class_methods)) {
- // Some of these take options!
- switch ($method_name) {
- case 'get_amazon_art':
- $data = $this->{$method_name}($options['keyword'],$limit);
- break;
- case 'get_id3_art':
- if ($options['skip_id3']) { break; }
- $data = $this->{$method_name}($limit);
- break;
- default:
- $data = $this->{$method_name}();
- break;
- }
-
- // Add the results we got to the current set
- $total_results += count($data);
- $results = array_merge($results,$data);
-
- if ($total_results > $limit AND $limit > 0) {
- return $results;
- }
-
- } // if the method exists
-
- } // end foreach
-
- return $results;
-
- } // find_art
-
- /*!
- @function get_id3_art
- @discussion looks for art from the id3 tags
- */
- function get_id3_art($limit='') {
-
- // grab the songs and define our results
- if (!count($this->_songs)) {
- $this->_songs = $this->get_songs();
- }
- $data = array();
-
- // Foreach songs in this album
- foreach ($this->_songs as $song) {
-
- // If we find a good one, stop looking
- $getID3 = new getID3();
- $id3 = $getID3->analyze($song->file);
-
-// if ($id3['format_name'] == "WMA") {
-// $image = $id3['asf']['extended_content_description_object']['content_descriptors']['13'];
-// $data[] = array('raw'=>$image['data'],'mime'=>$image['mime']);
-// }
-// elseif (isset($id3['id3v2']['APIC'])) {
-// // Foreach incase they have more then one
-// foreach ($id3['id3v2']['APIC'] as $image) {
-// $data[] = array('raw'=>$image['data'],'mime'=>$image['mime']);
-// }
-// }
- if ($id3['format_name'] == "WMA") {
- $image = $id3['asf']['extended_content_description_object']['content_descriptors']['13'];
- $data[] = array('song'=>$song->file,'raw'=>$image['data'],'mime'=>$image['mime']);
- }
- elseif (isset($id3['id3v2']['APIC'])) {
- // Foreach incase they have more then one
- foreach ($id3['id3v2']['APIC'] as $image) {
- $data[] = array('song'=>$song->file,'raw'=>$image['data'],'mime'=>$image['mime']);
- }
- }
-// modified for working covers in id3
-
- if (!empty($limit) && $limit < count($data)) {
- return $data;
- }
-
- } // end foreach
-
- return $data;
-
- } // get_id3_art
-
- /**
- * get_folder_art()
- * returns the album art from the folder of the audio files
- * If a limit is passed or the preferred filename is found the current results set
- * is returned
- */
- function get_folder_art($limit='') {
-
- if (!count($this->_songs)) {
- $this->_songs = $this->get_songs();
- }
- $data = array();
-
- /* See if we are looking for a specific filename */
- $preferred_filename = conf('album_art_preferred_filename');
-
- // Init a horrible hack array of lameness
- $cache =array();
-
- /* Thanks to dromio for origional code */
- /* Added search for any .jpg, png or .gif - Vollmer */
- foreach($this->_songs as $song) {
- $dir = dirname($song->file);
-
- debug_event('folder_art',"Opening $dir and checking for Album Art",'3');
-
- /* Open up the directory */
- $handle = @opendir($dir);
-
- if (!is_resource($handle)) {
- echo "<font class=\"error\">" . _("Error: Unable to open") . " $dir</font><br />\n";
- debug_event('read',"Error: Unable to open $dir for album art read",'2');
- }
-
-
- /* Recurse through this dir and create the files array */
- while ( FALSE !== ($file = @readdir($handle)) ) {
- $extension = substr($file,strlen($file)-3,4);
-
- /* If it's an image file */
- if ($extension == "jpg" || $extension == "gif" || $extension == "png" || $extension == "jp2") {
-
- // HACK ALERT this is to prevent duplicate filenames
- $full_filename = $dir . '/' . $file;
- $index = md5($full_filename);
-
- /* Make sure it's got something in it */
- if (!filesize($dir . '/' . $file)) { continue; }
-
- if ($file == $preferred_filename) {
- // If we found the preferred filename we're done, wipe out previous results
- $data = array(array('file' => $full_filename, 'mime' => 'image/' . $extension));
- return $data;
- }
- elseif (!isset($cache[$index])) {
- $data[] = array('file' => $full_filename, 'mime' => 'image/' . $extension);
- }
-
- $cache[$index] = '1';
-
- } // end if it's an image
-
- } // end while reading dir
- @closedir($handle);
-
- if (!empty($limit) && $limit < count($data)) {
- return $data;
- }
-
- } // end foreach songs
-
- return $data;
-
- } // get_folder_art()
-
- /**
- * get_db_art()
- * returns the album art from the db along with the mime type
- */
- function get_db_art() {
-
- $sql = "SELECT art,art_mime FROM album WHERE id='$this->id' AND art_mime IS NOT NULL";
- $db_results = mysql_query($sql, dbh());
-
- $results = mysql_fetch_assoc($db_results);
-
- if (!$results['art']) { return array(); }
-
- return $results;
-
- } // get_db_art
-
- /**
- * get_amazon_art
- * This takes keywords and performs a search of the Amazon website
- * for album art. It returns an array of found objects with mime/url keys
- */
- function get_amazon_art($keywords = '',$limit='') {
-
- $images = array();
- $final_results = array();
- $possible_keys = array("LargeImage","MediumImage","SmallImage");
-
- // Prevent the script from timing out
- set_time_limit(0);
-
- if (empty($keywords)) {
- $keywords = $this->name;
- /* If this isn't a various album combine with artist name */
- if ($this->artist_count == '1') { $keywords .= ' ' . $this->artist; }
- }
-
- /* Create Base Vars */
- $amazon_base_urls = array();
-
- /* Attempt to retrive the album art order */
- $config_value = conf('amazon_base_urls');
-
- /* If it's not set */
- if (empty($config_value)) {
- $amazon_base_urls = array('http://webservices.amazon.com');
- }
- elseif (!is_array($config_value)) {
- array_push($amazon_base_urls,$config_value);
- }
- else {
- $amazon_base_urls = array_merge($amazon_base_urls, conf('amazon_base_urls'));
- }
-
- /* Foreach through the base urls that we should check */
- foreach ($amazon_base_urls AS $amazon_base) {
-
- // Create the Search Object
- $amazon = new AmazonSearch(conf('amazon_developer_key'), $amazon_base);
- $search_results = array();
-
- /* Setup the needed variables */
- $max_pages_to_search = max(conf('max_amazon_results_pages'),$amazon->_default_results_pages);
- $pages_to_search = $max_pages_to_search; //init to max until we know better.
-
- // while we have pages to search
- do {
- $raw_results = $amazon->search(array('artist'=>$artist,'album'=>$albumname,'keywords'=>$keywords));
-
- $total = count($raw_results) + count($search_results);
-
- // If we've gotten more then we wanted
- if (!empty($limit) && $total > $limit) {
- // We don't want ot re-count every loop
- $i = $total;
- while ($i > $limit) {
- array_pop($raw_results);
- $i--;
- }
-
- debug_event('amazon-xml',"Found $total, Limit $limit reducing and breaking from loop",'5');
- // Merge the results and BREAK!
- $search_results = array_merge($search_results,$raw_results);
- break;
- } // if limit defined
-
- $search_results = array_merge($search_results,$raw_results);
- $pages_to_search = min($max_pages_to_search, $amazon->_maxPage);
- debug_event('amazon-xml', "Searched results page " . ($amazon->_currentPage+1) . "/" . $pages_to_search,'5');
- $amazon->_currentPage++;
-
- } while($amazon->_currentPage < $pages_to_search);
-
-
- // Only do the second search if the first actually returns something
- if (count($search_results)) {
- $final_results = $amazon->lookup($search_results);
- }
-
- /* Log this if we're doin debug */
- debug_event('amazon-xml',"Searched using $keywords with " . conf('amazon_developer_key') . " as key " . count($final_results) . " results found",'5');
-
- // If we've hit our limit
- if (!empty($limit) && count($final_results) >= $limit) {
- break;
- }
-
- } // end foreach
-
- /* Foreach through what we've found */
- foreach ($final_results as $result) {
-
- /* Recurse through the images found */
- foreach ($possible_keys as $key) {
- if (strlen($result[$key])) {
- break;
- }
- } // foreach
-
- // Rudimentary image type detection, only JPG and GIF allowed.
- if (substr($result[$key], -4 == '.jpg')) {
- $mime = "image/jpg";
- }
- elseif (substr($result[$key], -4 == '.gif')) {
- $mime = "image/gif";
- }
- elseif (substr($result[$key], -4 == '.png')) {
- $mime = "image/png";
- }
- else {
- /* Just go to the next result */
- continue;
- }
-
- $data['url'] = $result[$key];
- $data['mime'] = $mime;
-
- $images[] = $data;
-
- if (!empty($limit)) {
- if (count($images) >= $limit) {
- return $images;
- }
- }
-
- } // if we've got something
-
- return $images;
-
- } // get_amazon_art()
-
-
- /*!
- @function get_random_songs
- @discussion gets a random number, and
- a random assortment of songs from this
- album
- */
- function get_random_songs() {
-
- $results = array();
-
- $sql = "SELECT id FROM song WHERE album='$this->id' ORDER BY RAND()";
- $db_results = mysql_query($sql, dbh());
-
- while ($r = mysql_fetch_array($db_results)) {
- $results[] = $r[0];
- }
-
- return $results;
-
- } // get_random_songs
-
- /*!
- @function clear_art
- @discussion clears the album art from the DB
- */
- function clear_art() {
-
- $sql = "UPDATE album SET art=NULL, art_mime=NULL WHERE id='$this->id'";
- $db_results = mysql_query($sql, dbh());
-
- } // clear_art
-
- /*!
- @function insert_art
- @discussion this takes a string representation of an image
- and inserts it into the database. You must pass the
- mime type as well
- */
- function insert_art($image, $mime) {
-
- /* Have to disable this for Demo because people suck and try to
- * insert PORN :(
- */
- if (conf('demo_mode')) { return false; }
-
- // Check for PHP:GD and if we have it make sure this image is of some size
- if (function_exists('ImageCreateFromString')) {
- $im = @ImageCreateFromString($image);
- if (@imagesx($im) == 1 || @imagesy($im) == 1 && $im) {
- return false;
- }
- } // if we have PHP:GD
-
- // Push the image into the database
- $sql = "UPDATE album SET art = '" . sql_escape($image) . "'," .
- " art_mime = '" . sql_escape($mime) . "'" .
- " WHERE id = '$this->id'";
- $db_results = mysql_query($sql, dbh());
-
- return true;
-
- } // insert_art
-
-
-} //end of album class
-
-?>
diff --git a/contrib/themes/Cleandy/patch-3.3.3.2/ampache/lib/class/view.class.php b/contrib/themes/Cleandy/patch-3.3.3.2/ampache/lib/class/view.class.php
deleted file mode 100644
index 17a80fb7..00000000
--- a/contrib/themes/Cleandy/patch-3.3.3.2/ampache/lib/class/view.class.php
+++ /dev/null
@@ -1,234 +0,0 @@
-<?php
-/*
-
- Copyright (c) 2001 - 2006 Ampache.org
- All rights reserved.
-
- This program is free software; you can redistribute it and/or
- modify it under the terms of the GNU General Public License
- as published by the Free Software Foundation; either version 2
- of the License, or (at your option) any later version.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program; if not, write to the Free Software
- Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
-
-*/
-
-/*!
- @header View Object of crappyness
- View object that is thrown into their session
-
-*/
-
-
-class View {
-
- //Basic Componets
- var $base_sql;
- var $offset;
- var $offset_limit;
- var $sort_order; //asc or desc
- var $sort_type;
- var $action;
- var $total_items;
-
- //generate a new view
- function View($base_sql=0,$script=0,$sort_type=0,$total_items=0,$offset_limit=0) {
- global $conf;
-
- // If we don't have a base sql, stop here
- if (!is_string($base_sql)) {
- return true;
- }
-
- //Convert all 's into "s
- $base_sql = str_replace("'",'"',$base_sql);
-
- $this->base_sql = $base_sql;
- if ($offset_limit) { $this->offset_limit = $offset_limit; }
- else { $this->offset_limit = $_SESSION['offset_limit']; }
- if ($this->offset_limit < '1') { $this->offset_limit = '50'; }
- $this->script = $script;
- $this->sort_type = $sort_type;
-// $this->sort_order = "ASC"; // affects only album sorting order
- $this->sort_order = "DESC";
- $this->offset = 0;
- $this->total_items = $total_items;
-
- // Set the session
- $_SESSION['view_offset_limit'] = $this->offset_limit;
- $_SESSION['view_sort_type'] = $this->sort_type;
- $_SESSION['view_offset'] = $this->offset;
- $_SESSION['view_base_sql'] = $this->base_sql;
- $_SESSION['view_sort_order'] = $this->sort_order;
- $_SESSION['view_script'] = $this->script;
- $_SESSION['view_total_items'] = $this->total_items;
- $this->sql = $this->generate_sql();
-
- } //constructor
-
- //takes all the parts and makes a full blown sql statement
- function generate_sql() {
- global $conf;
-
- $sql = $this->base_sql . " ORDER BY " . $this->sort_type ." ". $this->sort_order ." LIMIT " . $this->offset . "," . $this->offset_limit;
-
- return $sql;
-
- } //generate_sql
-
- //change the sort order from asc to desc or vise versa
- function change_sort($new_sort=0) {
- global $conf;
-
- if ($new_sort) {
- $this->sort_order = $new_sort;
- }
- elseif ($this->sort_order == "DESC") {
- $this->sort_order = "ASC";
- }
- else {
- $this->sort_order = "DESC";
- }
-
- $_SESSION['view_sort_order'] = $this->sort_order;
-
- $this->sql = $this->generate_sql();
-
- return;
-
- } //change_sort
-
- //change the base sql
- function change_sql($base_sql) {
- global $conf;
-
- //Convert all 's into "s
- $base_sql = str_replace("'",'"',$base_sql);
-
- $this->base_sql = $base_sql;
-
- $_SESSION['view_base_sql'] = $this->base_sql;
-
- $this->sql = $this->generate_sql();
-
- } //change_sql
-
- //change offset
- function change_offset($offset=0) {
- global $conf;
-
- if (isset($offset)) {
- $this->offset = $offset;
- }
- else {
- $this->offset = $this->offset + $this->offset_limit;
- }
-
- $_SESSION['view_offset'] = $this->offset;
-
- $this->sql = $this->generate_sql();
-
- } //change_offset
-
- //change sort_type
- function change_sort_type($sort_type) {
-
- $this->sort_type = $sort_type;
-
- $_SESSION['view_sort_type'] = $this->sort_type;
-
- $this->sql = $this->generate_sql();
-
- } //change_sort_type
-
- /*!
- @function change_offset_limit
- @discussion changes the offset limit, sets the session
- var and generates the sql statement
- */
- function change_offset_limit($offset_limit) {
-
- $this->offset_limit = $offset_limit;
-
- $_SESSION['view_offset_limit'] = $this->offset_limit;
-
- $this->sql = $this->generate_sql();
-
- } // change_offset_limit
-
- /*!
- @function initialize
- @discussion initializes the view object, checks $_REQUEST
- for changes to the view object
- */
- function initialize($sql='') {
-
- /* From time to time we need to change the SQL statement while
- * maintaining the paging
- */
- if ($sql) {
- $this->change_sql($sql);
- }
-
- if ($_REQUEST['sort_type']) {
- $this->change_sort_type($_REQUEST['sort_type']);
- }
-
- if (isset($_REQUEST['offset'])) {
- $this->change_offset($_REQUEST['offset']);
- }
-
- if ($_REQUEST['base_sql']) {
- $this->change_sql($_REQUEST['base_sql']);
- }
-
- if (isset($_REQUEST['sort_order'])) {
- $this->change_sort($_REQUEST['sort_order']);
- }
-
- if ($_REQUEST['offset_limit']) {
- $this->change_offset_limit($_REQUEST['offset_limit']);
- }
-
- } // initialize
-
-
- /*!
- @function import_session_view
- @discussion this imports the view from the session for use..
- this keeps us from having to globalize anything
- wohoo!
- */
- function import_session_view() {
-
- $this->sort_type = $_SESSION['view_sort_type'];
- $this->offset = $_SESSION['view_offset'];
- $this->base_sql = $_SESSION['view_base_sql'];
- $this->sort_order = $_SESSION['view_sort_order'];
- $this->script = $_SESSION['view_script'];
- $this->total_items = $_SESSION['view_total_items'];
-
-
- if ($_SESSION['view_offset_limit']) {
- $this->offset_limit = $_SESSION['view_offset_limit'];
- }
- else {
- $this->offset_limit = $_SESSION['offset_limit'];
- }
-
-
- $this->sql = $this->generate_sql();
-
- } // import_session_view
-
-
-
-} //end class
-?>
diff --git a/contrib/themes/Cleandy/patch-3.3.3.3/README.txt b/contrib/themes/Cleandy/patch-3.3.3.3/README.txt
deleted file mode 100644
index 1bbc0b62..00000000
--- a/contrib/themes/Cleandy/patch-3.3.3.3/README.txt
+++ /dev/null
@@ -1,9 +0,0 @@
-This is optional!
-But it improves accessability and better fits in ampache installations using themes by me
-
-Copy the files includes in this folder to ampaches root to the appropriate folders.
-They include some patches to ampache 3.3.3.3 for login page, album listing and some other things.
-They'll work fine until included/fixed (maybe) in the next version of ampache.
-They are not necessary but improve look & feel.
-
-Thanks to blueorder and andy90 for help on some patches ;) \ No newline at end of file
diff --git a/contrib/themes/Cleandy/screencap/01.png b/contrib/themes/Cleandy/screencap/01.png
deleted file mode 100644
index d107ab8d..00000000
--- a/contrib/themes/Cleandy/screencap/01.png
+++ /dev/null
Binary files differ