mirror of
https://github.com/Yetangitu/ampache
synced 2025-10-03 09:49:30 +02:00
added in basic browse by song functionality with filtering of unplayed
This commit is contained in:
parent
691c838e90
commit
0dcbad80cd
7 changed files with 217 additions and 267 deletions
36
browse.php
36
browse.php
|
@ -37,6 +37,7 @@ require_once 'lib/init.php';
|
||||||
|
|
||||||
/* Display the headers and menus */
|
/* Display the headers and menus */
|
||||||
require_once Config::get('prefix') . '/templates/header.inc.php';
|
require_once Config::get('prefix') . '/templates/header.inc.php';
|
||||||
|
echo '<div id="browse_content">';
|
||||||
|
|
||||||
switch($_REQUEST['action']) {
|
switch($_REQUEST['action']) {
|
||||||
case 'file':
|
case 'file':
|
||||||
|
@ -104,37 +105,8 @@ switch($_REQUEST['action']) {
|
||||||
break;
|
break;
|
||||||
case 'song':
|
case 'song':
|
||||||
Browse::set_type('song');
|
Browse::set_type('song');
|
||||||
|
$song_ids = Browse::get_objects();
|
||||||
/* Setup the View Object */
|
Browse::show_objects($song_ids);
|
||||||
$view = new View();
|
|
||||||
$view->import_session_view();
|
|
||||||
|
|
||||||
$match = scrub_in($_REQUEST['match']);
|
|
||||||
|
|
||||||
require (conf('prefix') . '/templates/show_box_top.inc.php');
|
|
||||||
show_alphabet_list('song_title','browse.php',$match,'song_title');
|
|
||||||
/* Detect if it's Browse, and if so don't fill it in */
|
|
||||||
if ($match == 'Browse') { $match = ''; }
|
|
||||||
show_alphabet_form($match,_('Show Titles Starting With'),"browse.php");
|
|
||||||
require (conf('prefix') . '/templates/show_box_bottom.inc.php');
|
|
||||||
|
|
||||||
$sql = $song->get_sql_from_match($_REQUEST['match']);
|
|
||||||
|
|
||||||
if ($_REQUEST['keep_view']) {
|
|
||||||
$view->initialize();
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
$db_results = mysql_query($sql, dbh());
|
|
||||||
$total_items = mysql_num_rows($db_results);
|
|
||||||
$offset_limit = 999999;
|
|
||||||
if ($match != 'Show All') { $offset_limit = $user->prefs['offset_limit']; }
|
|
||||||
$view = new View($sql, 'browse.php?action=song_title','title',$total_items,$offset_limit);
|
|
||||||
}
|
|
||||||
|
|
||||||
if ($view->base_sql) {
|
|
||||||
$songs = $song->get_songs($view->sql);
|
|
||||||
show_songs($songs,0,0);
|
|
||||||
}
|
|
||||||
break;
|
break;
|
||||||
case 'catalog':
|
case 'catalog':
|
||||||
|
|
||||||
|
@ -146,6 +118,8 @@ switch($_REQUEST['action']) {
|
||||||
break;
|
break;
|
||||||
} // end Switch $action
|
} // end Switch $action
|
||||||
|
|
||||||
|
echo '</div>';
|
||||||
|
|
||||||
/* Show the Footer */
|
/* Show the Footer */
|
||||||
show_footer();
|
show_footer();
|
||||||
?>
|
?>
|
||||||
|
|
BIN
images/icon_add.png
Normal file
BIN
images/icon_add.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 733 B |
|
@ -29,12 +29,14 @@
|
||||||
*/
|
*/
|
||||||
class Browse {
|
class Browse {
|
||||||
|
|
||||||
|
// Public static vars that are cached
|
||||||
|
public static $sql;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* constructor
|
* constructor
|
||||||
* This should never be called
|
* This should never be called
|
||||||
*/
|
*/
|
||||||
private __construct() {
|
private function __construct() {
|
||||||
|
|
||||||
// Rien a faire
|
// Rien a faire
|
||||||
|
|
||||||
|
@ -56,9 +58,14 @@ class Browse {
|
||||||
case 'unplayed':
|
case 'unplayed':
|
||||||
case 'rated':
|
case 'rated':
|
||||||
$key = $_REQUEST['key'];
|
$key = $_REQUEST['key'];
|
||||||
$_SESSION['browse']['filter'][$key] = make_bool($_REQUEST['value']);
|
if ($_SESSION['browse']['filter'][$key]) {
|
||||||
|
unset($_SESSION['browse']['filter'][$key]);
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
$_SESSION['browse']['filter'][$key] = 1;
|
||||||
|
}
|
||||||
break;
|
break;
|
||||||
default
|
default:
|
||||||
// Rien a faire
|
// Rien a faire
|
||||||
break;
|
break;
|
||||||
} // end switch
|
} // end switch
|
||||||
|
@ -87,4 +94,145 @@ class Browse {
|
||||||
|
|
||||||
} // set_type
|
} // set_type
|
||||||
|
|
||||||
|
/**
|
||||||
|
* get_objects
|
||||||
|
* This gets an array of the ids of the objects that we are
|
||||||
|
* currently browsing by it applies the sql and logic based
|
||||||
|
* filters
|
||||||
|
*/
|
||||||
|
public static function get_objects() {
|
||||||
|
|
||||||
|
// First we need to get the SQL statement we are going to run
|
||||||
|
// This has to run against any possible filters (dependent on type)
|
||||||
|
$sql = self::get_sql();
|
||||||
|
$db_results = Dba::query($sql);
|
||||||
|
|
||||||
|
$results = array();
|
||||||
|
|
||||||
|
while ($data = Dba::fetch_assoc($db_results)) {
|
||||||
|
// If we've hit our offset limit
|
||||||
|
if (count($results) >= $GLOBALS['user']->prefs['offset_limit']) { return $results; }
|
||||||
|
|
||||||
|
// Make sure that this object passes the logic filter
|
||||||
|
if (self::logic_filter($data['id'])) {
|
||||||
|
$results[] = $data['id'];
|
||||||
|
}
|
||||||
|
} // end while
|
||||||
|
|
||||||
|
return $results;
|
||||||
|
|
||||||
|
} // get_objects
|
||||||
|
|
||||||
|
/**
|
||||||
|
* get_sql
|
||||||
|
* This returns the sql statement we are going to use this has to be run
|
||||||
|
* every time we get the objects because it depends on the filters and the
|
||||||
|
* type of object we are currently browsing
|
||||||
|
*/
|
||||||
|
public static function get_sql() {
|
||||||
|
|
||||||
|
// Get our base SQL must always return ID
|
||||||
|
switch ($_SESSION['browse']['type']) {
|
||||||
|
case 'album':
|
||||||
|
|
||||||
|
break;
|
||||||
|
case 'artist':
|
||||||
|
|
||||||
|
break;
|
||||||
|
case 'genre':
|
||||||
|
|
||||||
|
break;
|
||||||
|
case 'song':
|
||||||
|
default:
|
||||||
|
$sql = "SELECT `song`.`id` FROM `song` ";
|
||||||
|
break;
|
||||||
|
} // end base sql
|
||||||
|
|
||||||
|
// No sense to go further if we don't have filters
|
||||||
|
if (!is_array($_SESSION['browse']['filter'])) { return $sql; }
|
||||||
|
|
||||||
|
// Foreach the filters and see if any of them can be applied
|
||||||
|
// as part of a where statement in this sql (type dependent)
|
||||||
|
$where_sql = "WHERE 1=1 AND ";
|
||||||
|
|
||||||
|
foreach ($_SESSION['browse']['filter'] as $key=>$value) {
|
||||||
|
$where_sql .= self::sql_filter($key,$value);
|
||||||
|
} // end foreach
|
||||||
|
|
||||||
|
$where_sql = rtrim($where_sql,'AND ');
|
||||||
|
|
||||||
|
$sql .= $where_sql;
|
||||||
|
|
||||||
|
self::$sql = $sql;
|
||||||
|
|
||||||
|
return $sql;
|
||||||
|
|
||||||
|
} // get_sql
|
||||||
|
|
||||||
|
/**
|
||||||
|
* sql_filter
|
||||||
|
* This takes a filter name and value and if it is possible
|
||||||
|
* to filter by this name on this type returns the approiate sql
|
||||||
|
* if not returns nothing
|
||||||
|
*/
|
||||||
|
private static function sql_filter($filter,$value) {
|
||||||
|
|
||||||
|
$filter_sql = '';
|
||||||
|
|
||||||
|
if ($_SESSION['browse']['type'] == 'song') {
|
||||||
|
switch($filter) {
|
||||||
|
case 'alpha_match':
|
||||||
|
$filter_sql = " `song`.`title` LIKE '" . Dba::escape($value) . "%' AND ";
|
||||||
|
break;
|
||||||
|
case 'unplayed':
|
||||||
|
$filter_sql = " `song`.`played`='0' AND ";
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
// Rien a faire
|
||||||
|
break;
|
||||||
|
} // end list of sqlable filters
|
||||||
|
} // if it is a song
|
||||||
|
|
||||||
|
if ($_SESSION['browse']['type'] == 'album') {
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
} // end album
|
||||||
|
|
||||||
|
return $filter_sql;
|
||||||
|
|
||||||
|
} // sql_filter
|
||||||
|
|
||||||
|
/**
|
||||||
|
* logic_filter
|
||||||
|
* This runs the filters that we can't easily apply
|
||||||
|
* to the sql so they have to be done after the fact
|
||||||
|
* these should be limited as they are often intensive and
|
||||||
|
* require additional queries per object... :(
|
||||||
|
*/
|
||||||
|
private static function logic_filter($object_id) {
|
||||||
|
|
||||||
|
return true;
|
||||||
|
|
||||||
|
} // logic_filter
|
||||||
|
|
||||||
|
/**
|
||||||
|
* show_objects
|
||||||
|
* This takes an array of objects
|
||||||
|
* and requires the correct template based on the
|
||||||
|
* type that we are currently browsing
|
||||||
|
*/
|
||||||
|
public static function show_objects($object_ids) {
|
||||||
|
|
||||||
|
switch ($_SESSION['browse']['type']) {
|
||||||
|
case 'song':
|
||||||
|
show_box_top();
|
||||||
|
require_once Config::get('prefix') . '/templates/show_songs.inc.php';
|
||||||
|
show_box_bottom();
|
||||||
|
break;
|
||||||
|
} // end switch on type
|
||||||
|
|
||||||
|
} // show_object
|
||||||
|
|
||||||
} // browse
|
} // browse
|
||||||
|
|
|
@ -126,12 +126,12 @@ class Song {
|
||||||
|
|
||||||
} // fill_ext_info
|
} // fill_ext_info
|
||||||
|
|
||||||
/*!
|
/**
|
||||||
@function format_type
|
* format_type
|
||||||
@discussion gets the type of song we are trying to
|
* gets the type of song we are trying to
|
||||||
play, used to set mime headers and to trick
|
* play, used to set mime headers and to trick
|
||||||
players into playing them correctly
|
* players into playing them correctly
|
||||||
*/
|
*/
|
||||||
function format_type($override='') {
|
function format_type($override='') {
|
||||||
|
|
||||||
// If we pass an override for downsampling or whatever then use it
|
// If we pass an override for downsampling or whatever then use it
|
||||||
|
@ -633,20 +633,6 @@ class Song {
|
||||||
|
|
||||||
} // _update_ext_item
|
} // _update_ext_item
|
||||||
|
|
||||||
/*!
|
|
||||||
@function format_song
|
|
||||||
@discussion this takes a song object
|
|
||||||
and formats it for display
|
|
||||||
and returns the object cleaned up
|
|
||||||
*/
|
|
||||||
function format_song() {
|
|
||||||
|
|
||||||
$this->format();
|
|
||||||
|
|
||||||
return true;
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* format
|
* format
|
||||||
* This takes the current song object
|
* This takes the current song object
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
<?php
|
<?php
|
||||||
/*
|
/*
|
||||||
|
|
||||||
Copyright (c) 2001 - 2006 Ampache.org
|
Copyright (c) 2001 - 2007 Ampache.org
|
||||||
All rights reserved.
|
All rights reserved.
|
||||||
|
|
||||||
This program is free software; you can redistribute it and/or
|
This program is free software; you can redistribute it and/or
|
|
@ -1,211 +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.
|
|
||||||
|
|
||||||
*/
|
|
||||||
$web_path = conf('web_path');
|
|
||||||
|
|
||||||
/* If it's a playlist and they've got rights */
|
|
||||||
if (is_object($playlist) && ($GLOBALS['user']->username == $playlist->user || $GLOBALS['user']->has_access('100'))) {
|
|
||||||
$tab = 1;
|
|
||||||
$playlist_owner = true;
|
|
||||||
}
|
|
||||||
|
|
||||||
//Horrible hack!
|
|
||||||
if ($_SERVER['SCRIPT_NAME'] == '/browse.php') {
|
|
||||||
// Setup the links
|
|
||||||
$link_end = '</a>';
|
|
||||||
$title_start = '<a href="' . $web_path . '/browse.php?keep_view=true&sort_type=song.title&sort_order=0">';
|
|
||||||
$track_start = '<a href="' . $web_path . '/browse.php?keep_view=true&sort_type=song.track&sort_order=0">';
|
|
||||||
$bit_start = '<a href="' . $web_path . '/browse.php?keep_view=true&sort_type=song.bitrate&sort_order=0">';
|
|
||||||
}
|
|
||||||
?>
|
|
||||||
<?php require(conf('prefix') . '/templates/show_box_top.inc.php'); ?>
|
|
||||||
<form id="songs" method="post" enctype="multipart/form-data" action="#" style="Display:inline;">
|
|
||||||
<table class="tabledata" cellspacing="0" cellpadding="0" border="0">
|
|
||||||
<?php if (is_object($GLOBALS['view'])) { ?>
|
|
||||||
<tr class="table-header" align="center">
|
|
||||||
<td colspan="12">
|
|
||||||
<?php if ($GLOBALS['view']->offset_limit) { require (conf('prefix') . "/templates/list_header.inc"); } ?>
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<?php } ?>
|
|
||||||
<tr class="table-header">
|
|
||||||
<th> <a href="#" onclick="check_select('song'); return false;">Select</a></th>
|
|
||||||
<?php if ($playlist_owner) { ?>
|
|
||||||
<th><?php echo _('Track'); ?></th>
|
|
||||||
<?php } ?>
|
|
||||||
<th><?php echo $title_start . _('Song title') . $link_end; ?></th>
|
|
||||||
<th><?php echo _('Artist'); ?></th>
|
|
||||||
<th><?php echo _('Album'); ?></th>
|
|
||||||
<th><?php echo $track_start . _('Track') . $link_end; ?></th>
|
|
||||||
<th><?php echo _('Time'); ?></th>
|
|
||||||
<th><?php echo _('Size'); ?></th>
|
|
||||||
<th><?php echo $bit_start . _('Bitrate') . $link_end; ?></th>
|
|
||||||
<th><?php echo _('Genre'); ?></th>
|
|
||||||
<th><?php echo _('Action'); ?></th>
|
|
||||||
<?php if (conf('ratings')) { ?>
|
|
||||||
<th width="95px"><?php echo _('Rating'); ?></th>
|
|
||||||
<?php } ?>
|
|
||||||
</tr>
|
|
||||||
<?php
|
|
||||||
/* FIXME: don't even get me started with how many things are wrong with this code */
|
|
||||||
foreach ($song_ids as $song_id) {
|
|
||||||
|
|
||||||
/* Arr matey crapy code abounds! */
|
|
||||||
if (is_object($playlist)) {
|
|
||||||
if ($song_id['song']) {
|
|
||||||
$song = new Song($song_id['song']);
|
|
||||||
$track_id = $song_id['id'];
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
$song = new Song();
|
|
||||||
$song->title = 'Dynamic Song';
|
|
||||||
$track_id = $song_id['id'];
|
|
||||||
}
|
|
||||||
} // end if playlist
|
|
||||||
elseif (!is_object($song_id)) {
|
|
||||||
unset($text_class);
|
|
||||||
$song = new Song($song_id);
|
|
||||||
$track_id = $song->id;
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
$song = $song_id;
|
|
||||||
$track_id = $song->id;
|
|
||||||
}
|
|
||||||
$song->format_song();
|
|
||||||
// Still needed crap
|
|
||||||
$totalsize += $song->size;
|
|
||||||
$totaltime += $song->time;
|
|
||||||
/* If it's disabled */
|
|
||||||
if ($song->status == "disabled") { $text_class = "class=\"disabled\""; }
|
|
||||||
?>
|
|
||||||
<tr class="<?php echo flip_class(); ?>">
|
|
||||||
<td align="center">
|
|
||||||
<input type="checkbox" name="song[]" value="<?php echo $track_id; ?>" id="song_<?php echo $track_id; ?>" />
|
|
||||||
</td>
|
|
||||||
<?php
|
|
||||||
if ($playlist_owner) {
|
|
||||||
$tracknum = $playlist->get_track($track_id); ?>
|
|
||||||
<td>
|
|
||||||
<input type="text" tabindex="<?php echo $tab; ?>" size="3" name="<?php echo "tr_" . $track_id; ?>" value="<?php echo $tracknum; ?>" onchange="<?php echo "document.getElementById('song_" . $track_id . "').checked='checked';"; ?>" />
|
|
||||||
</td>
|
|
||||||
<?php $tab++;
|
|
||||||
} ?>
|
|
||||||
<td>
|
|
||||||
<?php if ($song->has_flag()) { echo "<strong>**</strong>"; } ?>
|
|
||||||
<a href="<?php echo $web_path; ?>/song.php?action=single_song&song_id=<?php echo $song->id; ?>" title="<?php echo scrub_out($song->title); ?>" <?php echo $text_class; ?>><?php echo scrub_out($song->f_title); ?></a>
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
<a href="<?php echo $web_path; ?>/artists.php?action=show&artist=<?php echo scrub_out($song->artist); ?>" title="<?php echo scrub_out($song->f_artist_full); ?>" <?php echo $text_class; ?>><?php echo scrub_out($song->f_artist); ?></a>
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
<a href="<?php echo $web_path; ?>/albums.php?action=show&album=<?php echo scrub_out($song->album); ?>" title="<?php echo scrub_out($song->f_album_full); ?>" <?php echo $text_class; ?>><?php echo scrub_out($song->f_album); ?></a>
|
|
||||||
</td>
|
|
||||||
<td align="right">
|
|
||||||
<?php echo $song->track; ?>
|
|
||||||
</td>
|
|
||||||
<td align="right">
|
|
||||||
<?php echo $song->f_time; ?>
|
|
||||||
</td>
|
|
||||||
<td align="right" nowrap="nowrap">
|
|
||||||
<?php echo $song->f_size; ?> MB
|
|
||||||
</td>
|
|
||||||
<td align="right">
|
|
||||||
<?php echo $song->f_bitrate; ?>
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
<a href="<?php echo $web_path; ?>/genre.php?action=show_genre&genre_id=<?php echo $song->genre; ?>">
|
|
||||||
<?php echo $song->f_genre; ?>
|
|
||||||
</a>
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
<a href="<?php echo $web_path; ?>/flag.php?action=show_flag&type=song&id=<?php echo $song->id; ?>">
|
|
||||||
<?php
|
|
||||||
if ($song->has_flag()) {
|
|
||||||
echo get_user_icon('flag');
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
echo get_user_icon('flag_off');
|
|
||||||
}
|
|
||||||
?>
|
|
||||||
</a>
|
|
||||||
<?php if ($GLOBALS['user']->has_access('100')) { ?>
|
|
||||||
<a href="<?php echo $web_path; ?>/admin/flag.php?action=show_edit_song&song=<?php echo $song->id; ?>">
|
|
||||||
<?php echo get_user_icon('edit'); ?>
|
|
||||||
</a>
|
|
||||||
<?php if ($song->enabled) { ?>
|
|
||||||
<a href="<?php echo $web_path; ?>/admin/flag.php?action=disable&song_ids=<?php echo $song->id; ?>">
|
|
||||||
<?php echo get_user_icon('disable'); ?>
|
|
||||||
</a>
|
|
||||||
<?php } else { ?>
|
|
||||||
<a href="<?php echo $web_path; ?>/admin/flag.php?action=enabled&song_ids=<?php echo $song->id; ?>">
|
|
||||||
<?php echo get_user_icon('enable'); ?>
|
|
||||||
</a>
|
|
||||||
<?php } //status ?>
|
|
||||||
<?php } //access ?>
|
|
||||||
<?php if ($GLOBALS['user']->prefs['download']) { ?>
|
|
||||||
<a href="<?php echo $web_path; ?>/download/index.php?action=download&song_id=<?php echo $song->id; ?>&sid=<?php echo scrub_out(session_id()); ?>&fn=<?php echo rawurlencode($song->f_artist_full . " - " . $song->title . "." . $song->type); ?>">
|
|
||||||
<?php echo get_user_icon('download'); ?>
|
|
||||||
</a>
|
|
||||||
<?php } ?>
|
|
||||||
<?php if ($GLOBALS['user']->prefs['direct_link']) { ?>
|
|
||||||
<a href="<?php echo scrub_out($song->get_url()); ?>">
|
|
||||||
<?php echo get_user_icon('link'); ?>
|
|
||||||
</a>
|
|
||||||
<?php } ?>
|
|
||||||
</td>
|
|
||||||
<?php if(conf('ratings')) { ?>
|
|
||||||
<td id="rating_<?php echo $song->id; ?>_song">
|
|
||||||
<?php show_rating($song->id,'song'); ?>
|
|
||||||
</td>
|
|
||||||
<?php } ?>
|
|
||||||
</tr>
|
|
||||||
<?php
|
|
||||||
}// foreach loop
|
|
||||||
|
|
||||||
$time = floor($totaltime/60) . ":" . sprintf("%02d", ($totaltime%60) );
|
|
||||||
$megs = sprintf("%.2f", ($totalsize/1048576));
|
|
||||||
$num = count($song_ids);
|
|
||||||
?>
|
|
||||||
<tr class="table-header">
|
|
||||||
<td></td>
|
|
||||||
<?php if (is_object($playlist)) { ?> <td></td> <?php } ?>
|
|
||||||
<td><?php echo _("Total"); ?>:</td>
|
|
||||||
<td nowrap="nowrap"><?php echo $num; ?> song(s)</td>
|
|
||||||
<td></td>
|
|
||||||
<td></td>
|
|
||||||
<td align="right" nowrap="nowrap"><?php echo $time; ?></td>
|
|
||||||
<td align="right" nowrap="nowrap"><?php echo $megs; ?> MB</td>
|
|
||||||
<td></td>
|
|
||||||
<td></td>
|
|
||||||
<td colspan="2"></td>
|
|
||||||
</tr>
|
|
||||||
<?php if (is_object($GLOBALS['view'])) { ?>
|
|
||||||
<tr class="even" align="center">
|
|
||||||
<td colspan="12">
|
|
||||||
<?php if ($GLOBALS['view']->offset_limit) { require (conf('prefix') . "/templates/list_header.inc"); } ?>
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<?php } ?>
|
|
||||||
</table>
|
|
||||||
<br />
|
|
||||||
<?php show_play_selected(); ?>
|
|
||||||
</form>
|
|
||||||
<?php require(conf('prefix') . '/templates/show_box_bottom.inc.php'); ?>
|
|
||||||
|
|
53
templates/show_songs.inc.php
Normal file
53
templates/show_songs.inc.php
Normal file
|
@ -0,0 +1,53 @@
|
||||||
|
<?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.
|
||||||
|
|
||||||
|
*/
|
||||||
|
|
||||||
|
// First let's setup some vars we're going to use a lot
|
||||||
|
$web_path = Config::get('web_path');
|
||||||
|
$ajax_url = Config::get('ajax_url');
|
||||||
|
|
||||||
|
?>
|
||||||
|
<table class="tabledata" cellspacing="0" cellpadding="0">
|
||||||
|
<tr class="table-header" align="center">
|
||||||
|
<td colspan="12">
|
||||||
|
<?php //require Config::get('prefix') . '/templates/list_header.inc.php'; ?>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr class="table-header">
|
||||||
|
<th><?php echo _('Add'); ?></th>
|
||||||
|
<th><?php echo _('Song Title'); ?></th>
|
||||||
|
<th><?php echo _('Artist'); ?></th>
|
||||||
|
<th><?php echo _('Album'); ?></th>
|
||||||
|
</tr>
|
||||||
|
<?php
|
||||||
|
foreach ($object_ids as $song_id) {
|
||||||
|
$song = new Song($song_id);
|
||||||
|
$song->format();
|
||||||
|
?>
|
||||||
|
<tr class="<?php echo flip_class(); ?>">
|
||||||
|
<td onclick="ajaxPut('<?php echo $ajax_url; ?>?action=basket&type=song&id=<?php echo $song->id; ?>');return true;">
|
||||||
|
<?php echo get_user_icon('add'); ?>
|
||||||
|
</td>
|
||||||
|
<td><?php echo $song->f_link; ?></td>
|
||||||
|
<td><?php echo $song->f_artist_link; ?></td>
|
||||||
|
<td><?php echo $song->f_album_link; ?></td>
|
||||||
|
</tr>
|
||||||
|
<?php } ?>
|
||||||
|
</table>
|
Loading…
Add table
Add a link
Reference in a new issue