";
if ($authorised) {
admin_menu();
if (array_key_exists(CST_ADMIN_DOMAIN,$_REQUEST)) {
switch($_REQUEST[CST_ADMIN_DOMAIN]) {
case CST_ADMIN_DOMAIN_FOLDER:
$show = folder_admin();
break;
case CST_ADMIN_DOMAIN_CHANNEL:
$show = channel_admin();
break;
case CST_ADMIN_DOMAIN_CONFIG:
if ($authorised >= RSS_USER_LEVEL_ADMIN) $show = config_admin();
break;
case CST_ADMIN_DOMAIN_ITEM:
if ($authorised >= RSS_USER_LEVEL_ADMIN) $show = item_admin();
break;
case CST_ADMIN_DOMAIN_PLUGINS:
// TODO: add plugin management for individual users
if ($authorised >= RSS_USER_LEVEL_ADMIN) $show = plugins_admin();
break;
case CST_ADMIN_DOMAIN_THEMES:
$show = themes_admin();
break;
case CST_ADMIN_DOMAIN_TAGS:
$show = tags_admin();
break;
case CST_ADMIN_DOMAIN_PLUGIN_OPTIONS:
$show = plugin_options_admin();
break;
case CST_ADMIN_DOMAIN_THEME_OPTIONS:
$show = theme_options_admin();
break;
case CST_ADMIN_DOMAIN_USERS:
$show = users_admin();
break;
default:
break;
}
}
if (array_key_exists(CST_ADMIN_VIEW,$_REQUEST) || isset($show)) {
if (!isset($show)) {
$show = $_REQUEST[CST_ADMIN_VIEW];
}
switch ($show) {
case CST_ADMIN_DOMAIN_CONFIG:
config();
break;
case CST_ADMIN_DOMAIN_CHANNEL:
channels();
break;
case CST_ADMIN_DOMAIN_FOLDER:
folders();
break;
case CST_ADMIN_DOMAIN_OPML:
opml();
break;
case CST_ADMIN_DOMAIN_NONE:
break;
case CST_ADMIN_DOMAIN_ITEM:
items();
break;
case CST_ADMIN_DOMAIN_SYSINFO:
sysinfo();
break;
case CST_ADMIN_DOMAIN_DASHBOARD:
dashboard();
break;
case CST_ADMIN_DOMAIN_PLUGINS:
plugins();
break;
case CST_ADMIN_DOMAIN_THEMES:
themes();
break;
case CST_ADMIN_DOMAIN_TAGS:
tags();
break;
case CST_ADMIN_DOMAIN_PLUGIN_OPTIONS:
plugin_options();
break;
case CST_ADMIN_DOMAIN_THEME_OPTIONS:
theme_options();
break;
case CST_ADMIN_DOMAIN_USERS:
users();
break;
default:
}
} else {
if(true == getConfig('rss.config.defaultdashboard')) {
dashboard();
} else {
channels();
}
}
echo "\n
\n";
} else {
rss_error(sprintf(__('Not Authorized!
You are not authorized to access the administration interface.
Please follow this link back to the main page.
Have a nice day!'),getPath()), RSS_ERROR_ERROR,true);
}
echo "\n";
}
/////////
/**
* Renders the admin sub-menu
*/
function admin_menu() {
$active = array_key_exists(CST_ADMIN_VIEW, $_REQUEST) ? $_REQUEST[CST_ADMIN_VIEW] : null;
$use_mod_rewrite = false;
echo "\n\n";
foreach (array (
/* url/id -- internationalized label, defined in intl/* */
array (CST_ADMIN_DOMAIN_DASHBOARD, __('Dashboard')),
array (CST_ADMIN_DOMAIN_CHANNEL, __('feeds')),
array (CST_ADMIN_DOMAIN_ITEM, __('items')),
array (CST_ADMIN_DOMAIN_CONFIG, __('config')),
array (CST_ADMIN_DOMAIN_PLUGINS, __('plugins')),
array (CST_ADMIN_DOMAIN_THEMES, __('themes')),
array (CST_ADMIN_DOMAIN_FOLDER, __('folders')),
array (CST_ADMIN_DOMAIN_OPML, __('opml')),
array (CST_ADMIN_DOMAIN_TAGS, __('Tags')),
array (CST__ADMIN_DOMAIN_USERS, __('Users'))) as $item) {
$link = "index.php?view=".$item[0];
$lbl = $item[1];
$cls = ($item[0] == $active ? " class=\"active\"" : "");
echo "\t- ".ucfirst($lbl)."
\n";
}
echo "\t- ".__('Logout')."
\n";
echo "
\n";
}
function admin_kses_to_html($arr) {
$ret = "";
foreach ($arr as $tag => $attr) {
$ret .= "<$tag";
foreach ($attr as $nm => $val) {
$ret .= " $nm=\"...\" ";
}
$ret .= ">\n";
}
return $ret;
}
function getLanguages() {
$d = dir('../intl');
$files = array();
$ret = array();
$activeIdx = "0";
$ret['en_US']=array(
'language'=>'English',
'windows-locale'=>'english'
);
while (false !== ($entry = $d->read())) {
if (preg_match('#^[a-z]{2}_?([A-Z]{2})?$#',$entry)) {
$ret[$entry]=getLanguageInfo($entry);
}
}
$d->close();
return $ret;
}
function getLanguageInfo($dir) {
$info = array();
$path = "../intl/$dir/langinfo.txt";
if (file_exists($path)) {
$f = @fopen($path,'r');
$contents = "";
if ($f) {
$contents .= fread($f, filesize($path));
@fclose($f);
} else {
$contents = "";
}
if ($contents && preg_match_all("/([^:]+):(.*)/",$contents,$matches,PREG_SET_ORDER)) {
foreach($matches as $match) {
$key = trim(strtolower($match[1]));
$val = trim($match[2]);
$info[$key] = $val;
}
}
}
return $info;
}
function admin_enum_to_html($arr) {
$idx = array_pop($arr);
$ret = "";
foreach ($arr as $i => $val) {
if ($i == $idx)
$ret .= "$val";
}
return $ret;
}
function admin_header() {
header('Content-Type: text/html; charset='
. (getConfig('rss.output.encoding') ? getConfig('rss.output.encoding') : DEFAULT_OUTPUT_ENCODING));
echo "\n";
echo "\n";
echo "";
$header = new Header(admin_title(), LOCATION_ADMIN, null, '', (HDR_NONE | HDR_NO_CACHECONTROL | HDR_NO_OUPUTBUFFERING));
$header -> render();
echo "";
echo "\n";
echo ""
.""
."
" .rss_main_title() ."
";
$nav = new Navigation();
$nav->render();
echo "";
}
function admin_footer() {
echo "\n\n\n\n";
}
function admin_title() {
$title = array(__("Admin"));
if (array_key_exists(CST_ADMIN_VIEW,$_REQUEST)) {
$title[] = ucwords(
preg_replace('#[^a-zA-Z]#',' ',$_REQUEST[CST_ADMIN_VIEW])
) ;
}
return $title;
}
?>