libretime/legacy/application/models/Library.php

71 lines
2.1 KiB
PHP

<?php
class Application_Model_Library
{
public static function getObjInfo($p_type)
{
$info = [];
if (strcmp($p_type, 'playlist') == 0) {
$info['className'] = 'Application_Model_Playlist';
} elseif (strcmp($p_type, 'block') == 0) {
$info['className'] = 'Application_Model_Block';
} elseif (strcmp($p_type, 'webstream') == 0) {
$info['className'] = 'Application_Model_Webstream';
} else {
throw new Exception("Unknown object type: '{$p_type}'");
}
return $info;
}
public static function changePlaylist($p_id, $p_type)
{
$obj_sess = new Zend_Session_Namespace(UI_PLAYLISTCONTROLLER_OBJ_SESSNAME);
if (is_null($p_id) || is_null($p_type)) {
unset($obj_sess->id, $obj_sess->type);
} else {
$obj_sess->id = intval($p_id);
$obj_sess->type = $p_type;
}
}
public static function getPlaylistNames($alphasort = false)
{
$playlistNames = [null => _('None')];
// if we want to return the playlists sorted alphabetically by name
if ($alphasort) {
$playlists = CcPlaylistQuery::create()
->setFormatter(ModelCriteria::FORMAT_ON_DEMAND)
->orderByname()
->find();
} else {
$playlists = CcPlaylistQuery::create()
->setFormatter(ModelCriteria::FORMAT_ON_DEMAND)
->find();
}
foreach ($playlists as $playlist) {
$playlistNames[$playlist->getDbId()] = $playlist->getDbName();
}
return $playlistNames;
}
public static function getTracktypes()
{
$track_type_options = [null => _('None')];
$track_types = Application_Model_Tracktype::getTracktypes();
array_multisort(array_map(function ($element) {
return $element['type_name'];
}, $track_types), SORT_ASC, $track_types);
foreach ($track_types as $key => $tt) {
$track_type_options[$tt['id']] = $tt['type_name'];
}
return $track_type_options;
}
}