1
0
Fork 0
mirror of https://github.com/Yetangitu/ampache synced 2025-10-06 11:59:56 +02:00

Adding the bandwidth option to the preferences. This changes the complexity of the UI and toggles album art.

This commit is contained in:
martian 2010-02-09 17:44:44 +00:00
parent 5e52f0d7cc
commit 1b35c20dd0
14 changed files with 161 additions and 66 deletions

View file

@ -237,13 +237,11 @@ default_auth_level = "admin"
; DEFAULT: true
ratings = "true"
; ShoutBox
; Enabling this will allow any user to 'tag' an item and post
; a comment about it which will then be put on the main pages
; shoutbox. Admins are allowed to create 'sticky' shoutbox items
; POSSIBLE VALUES: false true
; DEFAULT: false
;shoutbox = "false"
; Index features
; Vollmer will probably write better stuff here than I will -Vlet
; POSSIBLE VALUES: shout, played, added, now, random
; DEFAULT: hmm
features = "shout, played, added, now, random"
; This options will turn on/off Demo Mode
; If Demo mode is on you can not play songs or update your catalog

View file

@ -28,6 +28,11 @@
* config overides and/or local configs (for like dba)
* The class should be a static var in the other classes
*/
define('BANDWIDTH_LOW', 0);
define('BANDWIDTH_MEDIUM', 1);
define('BANDWIDTH_HIGH', 2);
class Config {
// These are the settings for this specific class

View file

@ -226,7 +226,7 @@ class Preference {
$sql = "SELECT `preference`.`name`,`preference`.`description`,`user_preference`.`value` FROM `preference` " .
" INNER JOIN `user_preference` ON `user_preference`.`preference`=`preference`.`id` " .
" WHERE `user_preference`.`user`='$user_id' AND `preference`.`catagory` != 'internal' $user_limit";
" WHERE `user_preference`.`user`='$user_id' AND `preference`.`catagory` != 'internal' $user_limit order by `preference`.`description`";
$db_results = Dba::read($sql);
$results = array();

View file

@ -918,7 +918,7 @@ class Song extends database_object implements media {
* it uses the popular threshold to figure out how many to pull
* it will only return unique object
*/
public static function get_recently_played($user_id='') {
public static function get_recently_played($user_id='', $limit=null) {
if ($user_id) {
$user_limit = " AND `object_count`.`user`='" . Dba::escape($user_id) . "'";
@ -936,6 +936,9 @@ class Song extends database_object implements media {
while ($row = Dba::fetch_assoc($db_results)) {
if (isset($results[$row['object_id']])) { continue; }
$results[$row['object_id']] = $row;
if (!is_null($limit))
if (count($results) > $limit) { break; }
else
if (count($results) > Config::get('popular_threshold')) { break; }
}

View file

@ -1829,11 +1829,20 @@ class Update {
$sql = "ALTER TABLE `live_stream` CHANGE `url` `url` VARCHAR ( 4096 )";
$db_results = Dba::write($sql);
// Now add in the min_object_count preference and the random_method
$sql = "INSERT INTO `preferences` (`name`,`value`,`description`,`level`,`type`,`catagory`) " .
"VALUES('bandwidth','1','Bandwidth','100','integer','interface')";
$db_results = Dba::write($sql);
/* Fix every users preferences */
$sql = "SELECT `id` FROM `user`";
$db_results = Dba::read($sql);
User::fix_preferences('-1');
while ($r = Dba::fetch_assoc($db_results)) {
User::fix_preferences($r['id']);
} // while we're fixing the useres stuff
} // while results
} // update_360002

View file

@ -197,7 +197,8 @@ class User extends database_object {
$sql = "SELECT preference.name, preference.description, preference.catagory, preference.level, user_preference.value " .
"FROM preference INNER JOIN user_preference ON user_preference.preference=preference.id " .
"WHERE user_preference.user='$user_id' " . $user_limit;
"WHERE user_preference.user='$user_id' " . $user_limit . " ORDER BY preference.catagory, preference.description";
$db_results = Dba::read($sql);
/* Ok this is crapy, need to clean this up or improve the code FIXME */
@ -206,7 +207,7 @@ class User extends database_object {
$admin = false;
if ($type == 'system') { $admin = true; }
$type_array[$type][$r['name']] = array('name'=>$r['name'],'level'=>$r['level'],'description'=>$r['description'],'value'=>$r['value']);
ksort($type_array[$type]);
//ksort($type_array[$type]); // sorted this via sql and added sub-category sorting - Vlet
$results[$type] = array ('title'=>ucwords($type),'admin'=>$admin,'prefs'=>$type_array[$type]);
} // end while

View file

@ -257,6 +257,14 @@ function create_preference_input($name,$value) {
echo "\t<option value=\"default\"$default>" . _('Default') . "</option>\n";
echo "</select>\n";
break;
case 'bandwidth':
${"bandwidth_$value"} = ' selected="selected"';
echo "<select name=\"$name\">\n";
echo "\t<option value=\"0\"$bandwidth_0>" . _('Low') . "</option>\n";
echo "\t<option value=\"1\"$bandwidth_1>" . _('Medium') . "</option>\n";
echo "\t<option value=\"2\"$bandwidth_2>" . _('High') . "</option>\n";
echo "</select>\n";
break;
case 'transcode':
${$value} = ' selected="selected"';
echo "<select name=\"$name\">\n";

View file

@ -25,6 +25,7 @@
* Tag Definitions
*****************/
/* why god why!?
.tag_size1 {
font-size:.6em;
}
@ -37,10 +38,11 @@
.tag_size4 {
font-size:1.2em;
}
*/
a.tag_size1, a.tag_size2, a.tag_size3, a.tag_size4 { text-decoration: none; }
.hover-add:hover { font-weight:900; }
/* .hover-add:hover { font-weight:900; } */ /* why god why!? */
.hover-remove:hover { text-decoration:line-through;}
/*****************

View file

@ -24,12 +24,16 @@
<?php echo Ajax::button('?action=basket&type=album_random&id=' . $album->id,'random',_('Random'),'random_album_' . $album->id); ?>
</td>
<?php
if (Browse::get_filter('show_art')) {
if (Config::get('bandwidth') > BANDWIDTH_LOW) {
$name = '[' . $album->f_artist . '] ' . scrub_out($album->full_name);
// This should not be hard coded, but it will likely break all the themes.
//$image_size = Config::get('bandwidth') == BANDWIDTH_MEDIUM ? 75 : 128;
$image_size = 75;
?>
<td class="cel_cover">
<a href="<?php echo Config::get('web_path'); ?>/albums.php?action=show&amp;album=<?php echo $album->id; ?>">
<img height="75" width="75" alt="<?php echo($name) ?>" title="<?php echo($name) ?>" src="<?php echo Config::get('web_path'); ?>/image.php?id=<?php echo $album->id; ?>&amp;thumb=1" />
<img height="<?php echo $image_size; ?>" width="<?php echo $image_size; ?>" alt="<?php echo($name) ?>" title="<?php echo($name) ?>" src="<?php echo Config::get('web_path'); ?>/image.php?id=<?php echo $album->id; ?>&amp;thumb=<?php echo Config::get('bandwidth'); ?>" />
</a>
</td>
<?php } ?>
@ -37,14 +41,12 @@
<td class="cel_artist"><?php echo $album->f_artist_link; ?></td>
<td class="cel_songs"><?php echo $album->song_count; ?></td>
<td class="cel_year"><?php echo $album->year; ?></td>
<td class="cel_tags"><?php echo $album->f_tags; ?></td>
<td class="cel_tags"><?php echo (strlen($album->f_tags) > 20) ? substr($album->f_tags, 0, 20) . '&hellip' : $album->f_tags; ?></td>
<td class="cel_rating" id="rating_<?php echo $album->id; ?>_album"><?php Rating::show($album->id,'album'); ?></td>
<td class="cel_action">
<?php if (Config::get('shoutbox')) { ?>
<a href="<?php echo Config::get('web_path'); ?>/shout.php?action=show_add_shout&amp;type=album&amp;id=<?php echo $album->id; ?>">
<?php echo get_user_icon('comment',_('Post Shout')); ?>
</a>
<?php } ?>
<?php if (Access::check_function('batch_download')) { ?>
<a href="<?php echo Config::get('web_path'); ?>/batch.php?action=album&amp;id=<?php echo $album->id; ?>">
<?php echo get_user_icon('batch_download',_('Batch Download')); ?>

View file

@ -25,7 +25,7 @@ $ajax_url = Config::get('ajax_url');
<table class="tabledata" cellpadding="0" cellspacing="0">
<colgroup>
<col id="col_add" />
<?php if (Browse::get_filter('show_art')) { ?>
<?php if (Config::get('bandwidth') > BANDWIDTH_LOW) { ?>
<col id="col_cover" />
<?php } ?>
<col id="col_album" />
@ -38,7 +38,7 @@ $ajax_url = Config::get('ajax_url');
</colgroup>
<tr class="th-top">
<th class="cel_add"><?php echo _('Add'); ?></th>
<?php if (Browse::get_filter('show_art')) { ?>
<?php if (Config::get('bandwidth') > BANDWIDTH_LOW) { ?>
<th class="cel_cover"><?php echo _('Cover'); ?></th>
<?php } ?>
<th class="cel_album"><?php echo Ajax::text('?page=browse&action=set_sort&type=album&sort=name',_('Album'),'album_sort_name'); ?></th>
@ -69,7 +69,7 @@ $ajax_url = Config::get('ajax_url');
<?php } ?>
<tr class="th-bottom">
<th class="cel_add"><?php echo _('Add'); ?></th>
<?php if (Browse::get_filter('show_art')) { ?>
<?php if (Config::get('bandwidth') > BANDWIDTH_LOW) { ?>
<th class="cel_cover"><?php echo _('Cover'); ?></th>
<?php } ?>
<th class="cel_album"><?php echo Ajax::text('?page=browse&action=set_sort&type=album&sort=name',_('Album'),'album_sort_name_bottom'); ?></th>

View file

@ -60,10 +60,6 @@ if (Config::get('ratings')) {
<a href="<?php echo $web_path; ?>/batch.php?action=artist&id=<?php echo $artist->id; ?>"><?php echo _('Download'); ?></a>
</li>
<?php } ?>
<li>
<input type="checkbox" id="show_artist_artCB" <?php echo $string = Browse::get_filter('show_art') ? 'checked="checked"' : ''; ?>/> <?php echo _('Show Art'); ?>
<?php echo Ajax::observe('show_artist_artCB','click',Ajax::action('?page=browse&action=browse&key=show_art&value=1&type=album','')); ?>
</ul>
</div>
<?php show_box_bottom(); ?>
<?php

View file

@ -28,32 +28,94 @@
</div><!-- End XSPF Player -->
<?
// Various settings for the 'bandwidth' option
$feature_sets = array
(
BANDWIDTH_LOW => array('now', 'played'),
BANDWIDTH_MEDIUM => array('now', 'random', 'played'),
BANDWIDTH_HIGH => array('now', 'random', 'shout', 'played', 'added')
);
$feature_limits = array (
BANDWIDTH_LOW => array
(
'shout' => 7,
'played' => 7,
'added' => 7
),
BANDWIDTH_MEDIUM => array
(
'shout' => 10,
'played' => 10,
'added' => 10
),
BANDWIDTH_HIGH => array
(
'shout' => 10,
'played' => 20,
'added' => 20
)
);
$features = $feature_sets[Config::get('bandwidth')];
foreach ($features as $feature) {
switch ($feature) {
case 'shout':
?><div id="shout_objects"><?
$shouts = shoutBox::get_top($feature_limits[Config::get('bandwidth')][$feature]);
if (count($shouts)) require_once Config::get('prefix') . '/templates/show_shoutbox.inc.php';
?></div><?
break;
case 'played':
?><div id="recently_played"><?
$data = Song::get_recently_played('', $feature_limits[Config::get('bandwidth')][$feature]);
<div id="now_playing">
<?php show_now_playing(); ?>
</div> <!-- Close Now Playing Div -->
<!-- Randomly selected albums of the moment -->
<?php echo Ajax::observe('window','load',Ajax::action('?page=index&action=random_albums','random_albums')); ?>
<div id="random_selection">
<?php show_box_top(_('Albums of the Moment')); echo _('Loading...'); show_box_bottom(); ?>
</div>
<!-- Recently Played -->
<div id="recently_played">
<?php
$data = Song::get_recently_played();
Song::build_cache(array_keys($data));
require_once Config::get('prefix') . '/templates/show_recently_played.inc.php';
?>
</div>
<!-- Shoutbox Objects, if shoutbox is enabled -->
<?php if (Config::get('shoutbox')) { ?>
<div id="shout_objects">
<?php
$shouts = shoutBox::get_top('5');
if (count($shouts)) {
require_once Config::get('prefix') . '/templates/show_shoutbox.inc.php';
}
?>
</div>
<?php } ?>
require_once Config::get('prefix') . '/templates/show_recently_played.inc.php';
?></div><?
break;
case 'added':
show_box_top("Recently Added Albums");
$object_ids = Stats::get_newest('album', $feature_limits[Config::get('bandwidth')][$feature]);
echo _('Newest Albums');
require_once Config::get('prefix') . '/templates/show_albums.inc.php';
show_box_bottom();
break;
case 'now':
?><div id="now_playing"><?
show_now_playing();
?></div><?
break;
case 'random':
echo Ajax::observe('window','load',Ajax::action('?page=index&action=random_albums','random_albums'));
?><div id="random_selection"><?
show_box_top(_('Albums of the Moment')); echo _('Loading...'); show_box_bottom();
?></div><?
break;
}
}
?>

View file

@ -23,6 +23,11 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
$title = scrub_out(truncate_with_ellipsis($media->title));
$album = scrub_out(truncate_with_ellipsis($media->f_album_full));
$artist = scrub_out(truncate_with_ellipsis($media->f_artist_full));
// This should not be hard coded, but it will likely break all the themes.
//$image_size = Config::get('bandwidth') == BANDWIDTH_MEDIUM ? 75 : 128;
$image_size = 75;
?>
<div class="np_group">
<div class="np_cell cel_username">
@ -72,11 +77,11 @@ $artist = scrub_out(truncate_with_ellipsis($media->f_artist_full));
</div>
</div>
<?php if (Config::get('show_album_art')) { ?>
<?php if (Config::get('bandwidth') > BANDWIDTH_LOW) { ?>
<div class="np_group">
<div class="np_cell cel_albumart">
<a target="_blank" href="<?php echo $web_path; ?>/image.php?id=<?php echo $media->album; ?>&amp;type=popup&amp;sid=<?php echo session_id(); ?>" onclick="popup_art('<?php echo $web_path; ?>/image.php?id=<?php echo $media->album; ?>&amp;type=popup&amp;sid=<?php echo session_id(); ?>'); return false;">
<img align="middle" src="<?php echo $web_path; ?>/image.php?id=<?php echo $media->album; ?>&amp;thumb=1&amp;sid=<?php echo session_id(); ?>" alt="<?php echo scrub_out($media->f_album_full); ?>" title="<?php echo scrub_out($media->f_album_full); ?>" height="75" width="75" />
<img align="middle" src="<?php echo $web_path; ?>/image.php?id=<?php echo $media->album; ?>&amp;thumb=<?php echo 1; /* This should be dynamic, but until themes are fixed to be more fluid in regards to images, make it static. */ /* Config::get('bandwidth'); */ ?>&amp;sid=<?php echo session_id(); ?>" alt="<?php echo scrub_out($media->f_album_full); ?>" title="<?php echo scrub_out($media->f_album_full); ?>" height="<?php echo $image_size; ?>" width="<?php echo $image_size; ?>" />
</a>
</div>
</div>

View file

@ -29,11 +29,15 @@ $button = Ajax::button('?page=index&action=random_albums','random',_('Refresh'),
$album = new Album($album_id);
$album->format();
$name = '[' . $album->f_artist . '] ' . scrub_out($album->full_name);
// This should not be hard coded, but it will likely break all the themes.
//$image_size = Config::get('bandwidth') == BANDWIDTH_MEDIUM ? 75 : 128;
$image_size = 75;
?>
<div class="random_album">
<a href="<?php echo $web_path; ?>/albums.php?action=show&amp;album=<?php echo $album_id; ?>">
<?php if (Config::get('show_album_art')) { ?>
<img src="<?php echo $web_path; ?>/image.php?thumb=3&amp;id=<?php echo $album_id; ?>" width="80" height="80" alt="<?php echo $name; ?>" title="<?php echo $name; ?>" />
<?php if (Config::get('bandwidth') > BANDWIDTH_LOW) { ?>
<img src="<?php echo $web_path; ?>/image.php?thumb=3&amp;id=<?php echo $album_id; ?>&amp;thumb=<?php echo 1; /* This should be dynamic, but until themes are fixed to be more fluid in regards to images, make it static. */ /* Config::get('bandwidth'); */ ?>" width="<?php echo $image_size; ?>" height="<?php echo $image_size; ?>" alt="<?php echo $name; ?>" title="<?php echo $name; ?>" />
<?php } else { ?>
<?php echo '[' . $album->f_artist . '] ' . $album->f_name; ?>
<?php } ?>