Add alert to admin page about old PHP version.

Add an alert message to admin summary page when a PHP version < 5.4 was
detected as this has reached EOL and will not be supported with the new
SabreDAV library.
Some styleguide optimisation.
Add NULL_DATE example to doc/sql_conventions.bb.
Display a "0" when no plugins active in summary page.
Added some more numbers to summary admin page, expired accounts,
channels. Hope I interpreted them right. I have no idea how to get
blocked accounts.
This commit is contained in:
Klaus Weidenbach 2015-03-07 18:19:52 +01:00
parent 9cd7546be5
commit 23ea974615
3 changed files with 294 additions and 308 deletions

View File

@ -56,7 +56,11 @@ $r = q("SELECT * FROM mail WHERE uid=%d AND $sql_extra ORDER BY created DESC LIM
[b]NULL dates[/b] [b]NULL dates[/b]
[li]To be written [li]To be written
[code]Example[/code][/li] [code]// Example
$r = q("DELETE FROM mail WHERE expires != '%s' AND expires < %s ",
dbesc(NULL_DATE),
db_utcnow()
);[/code][/li]
[b]Storing binary data[/b] [b]Storing binary data[/b]
[li]To be written [li]To be written

View File

@ -1,12 +1,14 @@
<?php <?php
/**
/** * @file mod/admin.php
* Red admin * @brief RedMatrix's admin controller.
*/ *
* Controller for the /admin/ area.
*/
/** /**
* @param App $a * @param App &$a
*/ */
function admin_post(&$a){ function admin_post(&$a){
logger('admin_post', LOGGER_DEBUG); logger('admin_post', LOGGER_DEBUG);
@ -16,8 +18,8 @@ function admin_post(&$a){
} }
// urls // urls
if (argc() > 1){ if (argc() > 1) {
switch (argv(1)){ switch (argv(1)) {
case 'site': case 'site':
admin_page_site_post($a); admin_page_site_post($a);
break; break;
@ -27,7 +29,6 @@ function admin_post(&$a){
case 'channels': case 'channels':
admin_page_channels_post($a); admin_page_channels_post($a);
break; break;
case 'plugins': case 'plugins':
if (argc() > 2 && if (argc() > 2 &&
is_file("addon/" . argv(2) . "/" . argv(2) . ".php")){ is_file("addon/" . argv(2) . "/" . argv(2) . ".php")){
@ -38,7 +39,6 @@ function admin_post(&$a){
} }
} }
goaway($a->get_baseurl(true) . '/admin/plugins/' . argv(2) ); goaway($a->get_baseurl(true) . '/admin/plugins/' . argv(2) );
return; // NOTREACHED
break; break;
case 'themes': case 'themes':
$theme = argv(2); $theme = argv(2);
@ -53,8 +53,6 @@ function admin_post(&$a){
if(is_ajax()) return; if(is_ajax()) return;
goaway($a->get_baseurl(true) . '/admin/themes/' . $theme ); goaway($a->get_baseurl(true) . '/admin/themes/' . $theme );
return;
break; break;
case 'logs': case 'logs':
admin_page_logs_post($a); admin_page_logs_post($a);
@ -65,20 +63,17 @@ function admin_post(&$a){
case 'dbsync': case 'dbsync':
admin_page_dbsync_post($a); admin_page_dbsync_post($a);
break; break;
case 'profs': case 'profs':
admin_page_profs_post($a); admin_page_profs_post($a);
break; break;
} }
} }
goaway($a->get_baseurl(true) . '/admin' ); goaway($a->get_baseurl(true) . '/admin' );
return; // NOTREACHED
} }
/** /**
* @param App $a * @param App $$a
* @return string * @return string
*/ */
function admin_content(&$a) { function admin_content(&$a) {
@ -93,25 +88,25 @@ function admin_content(&$a) {
*/ */
// array( url, name, extra css classes ) // array( url, name, extra css classes )
$aside = Array( $aside = array(
'site' => Array($a->get_baseurl(true)."/admin/site/", t("Site") , "site"), 'site' => array($a->get_baseurl(true)."/admin/site/", t("Site") , "site"),
'users' => Array($a->get_baseurl(true)."/admin/users/", t("Accounts") , "users"), 'users' => array($a->get_baseurl(true)."/admin/users/", t("Accounts") , "users"),
'channels' => Array($a->get_baseurl(true)."/admin/channels/", t("Channels") , "channels"), 'channels' => array($a->get_baseurl(true)."/admin/channels/", t("Channels") , "channels"),
'plugins' => Array($a->get_baseurl(true)."/admin/plugins/", t("Plugins") , "plugins"), 'plugins' => array($a->get_baseurl(true)."/admin/plugins/", t("Plugins") , "plugins"),
'themes' => Array($a->get_baseurl(true)."/admin/themes/", t("Themes") , "themes"), 'themes' => array($a->get_baseurl(true)."/admin/themes/", t("Themes") , "themes"),
'queue' => array(z_root() . '/admin/queue', t('Inspect queue'), 'queue'), 'queue' => array(z_root() . '/admin/queue', t('Inspect queue'), 'queue'),
// 'hubloc' => Array($a->get_baseurl(true)."/admin/hubloc/", t("Server") , "server"), // 'hubloc' => array($a->get_baseurl(true)."/admin/hubloc/", t("Server") , "server"),
'profs' => array(z_root() . '/admin/profs', t('Profile Config'), 'profs'), 'profs' => array(z_root() . '/admin/profs', t('Profile Config'), 'profs'),
'dbsync' => Array($a->get_baseurl(true)."/admin/dbsync/", t('DB updates'), "dbsync") 'dbsync' => array($a->get_baseurl(true)."/admin/dbsync/", t('DB updates'), "dbsync")
); );
/* get plugins admin page */ /* get plugins admin page */
$r = q("SELECT * FROM `addon` WHERE `plugin_admin`=1"); $r = q("SELECT * FROM addon WHERE plugin_admin = 1");
$aside['plugins_admin']=Array(); $aside['plugins_admin'] = array();
foreach ($r as $h){ foreach ($r as $h){
$plugin =$h['name']; $plugin = $h['name'];
$aside['plugins_admin'][] = Array($a->get_baseurl(true)."/admin/plugins/".$plugin, $plugin, "plugin"); $aside['plugins_admin'][] = array($a->get_baseurl(true) . '/admin/plugins/' . $plugin, $plugin, 'plugin');
// temp plugins with admin // temp plugins with admin
$a->plugins_admin[] = $plugin; $a->plugins_admin[] = $plugin;
} }
@ -129,7 +124,6 @@ function admin_content(&$a) {
)); ));
/** /**
* Page content * Page content
*/ */
@ -169,7 +163,7 @@ function admin_content(&$a) {
$o = admin_page_queue($a); $o = admin_page_queue($a);
break; break;
default: default:
notice( t("Item not found.") ); notice( t('Item not found.') );
} }
} else { } else {
$o = admin_page_summary($a); $o = admin_page_summary($a);
@ -186,41 +180,72 @@ function admin_content(&$a) {
/** /**
* Admin Summary Page * @brief Returns content for Admin Summary Page.
* @param App $a *
* @return string * @param App $$a
* @return string HTML from parsed admin_summary.tpl
*/ */
function admin_page_summary(&$a) { function admin_page_summary(&$a) {
// list total user accounts, expirations etc. // list total user accounts, expirations etc.
$accounts = array();
$r = q("SELECT COUNT(*) AS total, COUNT(IF(account_expires > %s, 1, NULL)) AS expiring, COUNT(IF(account_expires < %s AND account_expires != '%s', 1, NULL)) AS expired, COUNT(IF((account_flags & %d)>0, 1, NULL)) AS blocked FROM account",
db_utcnow(),
db_utcnow(),
dbesc(NULL_DATE),
intval(ACCOUNT_BLOCKED)
);
if ($r) {
$accounts['total'] = array('label' => t('# Accounts'), 'val' => $r[0]['total']);
//@todo $accounts['blocked'] = array('label' => t('# blocked accounts'), 'val' => $r[0]['blocked']);
$accounts['expired'] = array('label' => t('# expired accounts'), 'val' => $r[0]['expired']);
$accounts['expiring'] = array('label' => t('# expiring accounts'), 'val' => $r[0]['expiring']);
}
// pending registrations
$r = q("SELECT COUNT(account_id) as total FROM `account`"); $r = q("SELECT COUNT(id) AS `count` FROM register");
$users = $r[0]['total'];
$r = q("SELECT COUNT(id) as `count` FROM `register`");
$pending = $r[0]['count']; $pending = $r[0]['count'];
$r = q("select count(*) as total from outq where outq_delivered = 0"); // available channels, primary and clones
$queue = (($r) ? $r[0]['total'] : 0); $channels = array();
$r = q("SELECT COUNT(*) AS total, COUNT(IF(channel_primary = 1, 1, NULL)) AS main, COUNT(IF(channel_primary = 0, 1, NULL)) AS clones FROM channel WHERE NOT (channel_pageflags & %d)>0",
intval(PAGE_REMOVED)
);
if ($r) {
$channels['total'] = array('label' => t('# Channels'), 'val' => $r[0]['total']);
$channels['main'] = array('label' => t('# primary'), 'val' => $r[0]['main']);
$channels['clones'] = array('label' => t('# clones'), 'val' => $r[0]['clones']);
}
// We can do better, but this is a quick queue status // We can do better, but this is a quick queue status
$r = q("SELECT COUNT(outq_delivered) AS total FROM outq WHERE outq_delivered = 0");
$queue = (($r) ? $r[0]['total'] : 0);
$queues = array( 'label' => t('Message queues'), 'queue' => $queue ); $queues = array( 'label' => t('Message queues'), 'queue' => $queue );
// If no plugins active return 0, otherwise list of plugin names
$plugins = (count($a->plugins) == 0) ? count($a->plugins) : $a->plugins;
$t = get_markup_template("admin_summary.tpl"); // Could be extended to provide also other alerts to the admin
$alertmsg = '';
// annoy admin about upcoming unsupported PHP version
if (version_compare(PHP_VERSION, '5.4', '<')) {
$alertmsg = 'Your PHP version ' . PHP_VERSION . ' will not be supported with the next major release of RedMatrix. You are strongly urged to upgrade to a current version.'
. '<br>PHP 5.3 has reached its <a href="http://php.net/eol.php" class="alert-link">End of Life (EOL)</a> in August 2014.'
. ' A list about current PHP versions can be found <a href="http://php.net/supported-versions.php" class="alert-link">here</a>.';
}
$t = get_markup_template('admin_summary.tpl');
return replace_macros($t, array( return replace_macros($t, array(
'$title' => t('Administration'), '$title' => t('Administration'),
'$page' => t('Summary'), '$page' => t('Summary'),
'$adminalertmsg' => $alertmsg,
'$queues' => $queues, '$queues' => $queues,
'$users' => Array( t('Registered users'), $users), '$accounts' => array( t('Registered accounts'), $accounts),
'$accounts' => $accounts, '$pending' => array( t('Pending registrations'), $pending),
'$pending' => Array( t('Pending registrations'), $pending), '$channels' => array( t('Registered channels'), $channels),
'$version' => Array( t('Version'), RED_VERSION), '$plugins' => array( t('Active plugins'), $plugins ),
'$build' => get_config('system','db_version'), '$version' => array( t('Version'), RED_VERSION),
'$plugins' => Array( t('Active plugins'), $a->plugins ) '$build' => get_config('system', 'db_version')
)); ));
} }
@ -230,11 +255,11 @@ function admin_page_summary(&$a) {
* @param App $a * @param App $a
*/ */
function admin_page_site_post(&$a){ function admin_page_site_post(&$a){
if (!x($_POST,"page_site")){ if (!x($_POST, 'page_site')){
return; return;
} }
check_form_security_token_redirectOnErr('/admin/site', 'admin_site'); check_form_security_token_redirectOnErr('/admin/site', 'admin_site');
$sitename = ((x($_POST,'sitename')) ? notags(trim($_POST['sitename'])) : ''); $sitename = ((x($_POST,'sitename')) ? notags(trim($_POST['sitename'])) : '');
$banner = ((x($_POST,'banner')) ? trim($_POST['banner']) : false); $banner = ((x($_POST,'banner')) ? trim($_POST['banner']) : false);
@ -245,7 +270,6 @@ function admin_page_site_post(&$a){
// $site_channel = ((x($_POST,'site_channel')) ? notags(trim($_POST['site_channel'])) : ''); // $site_channel = ((x($_POST,'site_channel')) ? notags(trim($_POST['site_channel'])) : '');
$maximagesize = ((x($_POST,'maximagesize')) ? intval(trim($_POST['maximagesize'])) : 0); $maximagesize = ((x($_POST,'maximagesize')) ? intval(trim($_POST['maximagesize'])) : 0);
$register_policy = ((x($_POST,'register_policy')) ? intval(trim($_POST['register_policy'])) : 0); $register_policy = ((x($_POST,'register_policy')) ? intval(trim($_POST['register_policy'])) : 0);
$access_policy = ((x($_POST,'access_policy')) ? intval(trim($_POST['access_policy'])) : 0); $access_policy = ((x($_POST,'access_policy')) ? intval(trim($_POST['access_policy'])) : 0);
$abandon_days = ((x($_POST,'abandon_days')) ? intval(trim($_POST['abandon_days'])) : 0); $abandon_days = ((x($_POST,'abandon_days')) ? intval(trim($_POST['abandon_days'])) : 0);
@ -259,51 +283,49 @@ function admin_page_site_post(&$a){
$force_publish = ((x($_POST,'publish_all')) ? True : False); $force_publish = ((x($_POST,'publish_all')) ? True : False);
$disable_discover_tab = ((x($_POST,'disable_discover_tab')) ? True : False); $disable_discover_tab = ((x($_POST,'disable_discover_tab')) ? True : False);
$no_login_on_homepage = ((x($_POST,'no_login_on_homepage')) ? True : False); $no_login_on_homepage = ((x($_POST,'no_login_on_homepage')) ? True : False);
$global_directory = ((x($_POST,'directory_submit_url')) ? notags(trim($_POST['directory_submit_url'])) : ''); $global_directory = ((x($_POST,'directory_submit_url')) ? notags(trim($_POST['directory_submit_url'])) : '');
$no_community_page = !((x($_POST,'no_community_page')) ? True : False); $no_community_page = !((x($_POST,'no_community_page')) ? True : False);
$verifyssl = ((x($_POST,'verifyssl')) ? True : False); $verifyssl = ((x($_POST,'verifyssl')) ? True : False);
$proxyuser = ((x($_POST,'proxyuser')) ? notags(trim($_POST['proxyuser'])) : ''); $proxyuser = ((x($_POST,'proxyuser')) ? notags(trim($_POST['proxyuser'])) : '');
$proxy = ((x($_POST,'proxy')) ? notags(trim($_POST['proxy'])) : ''); $proxy = ((x($_POST,'proxy')) ? notags(trim($_POST['proxy'])) : '');
$timeout = ((x($_POST,'timeout')) ? intval(trim($_POST['timeout'])) : 60); $timeout = ((x($_POST,'timeout')) ? intval(trim($_POST['timeout'])) : 60);
$delivery_interval = ((x($_POST,'delivery_interval'))? intval(trim($_POST['delivery_interval'])) : 0); $delivery_interval = ((x($_POST,'delivery_interval'))? intval(trim($_POST['delivery_interval'])) : 0);
$poll_interval = ((x($_POST,'poll_interval'))? intval(trim($_POST['poll_interval'])) : 0); $poll_interval = ((x($_POST,'poll_interval')) ? intval(trim($_POST['poll_interval'])) : 0);
$maxloadavg = ((x($_POST,'maxloadavg'))? intval(trim($_POST['maxloadavg'])) : 50); $maxloadavg = ((x($_POST,'maxloadavg')) ? intval(trim($_POST['maxloadavg'])) : 50);
$feed_contacts = ((x($_POST,'feed_contacts')) ? intval($_POST['feed_contacts']) : 0); $feed_contacts = ((x($_POST,'feed_contacts')) ? intval($_POST['feed_contacts']) : 0);
$diaspora_enabled = ((x($_POST,'diaspora_enabled')) ? intval($_POST['diaspora_enabled']) : 0); $diaspora_enabled = ((x($_POST,'diaspora_enabled')) ? intval($_POST['diaspora_enabled']) : 0);
$verify_email = ((x($_POST,'verify_email')) ? 1 : 0); $verify_email = ((x($_POST,'verify_email')) ? 1 : 0);
set_config('system','feed_contacts',$feed_contacts); set_config('system', 'feed_contacts', $feed_contacts);
set_config('system','diaspora_enabled',$diaspora_enabled); set_config('system', 'diaspora_enabled', $diaspora_enabled);
set_config('system','delivery_interval',$delivery_interval); set_config('system', 'delivery_interval', $delivery_interval);
set_config('system','poll_interval',$poll_interval); set_config('system', 'poll_interval', $poll_interval);
set_config('system','maxloadavg',$maxloadavg); set_config('system', 'maxloadavg', $maxloadavg);
set_config('system','sitename',$sitename); set_config('system', 'sitename', $sitename);
set_config('system','no_login_on_homepage',$no_login_on_homepage); set_config('system', 'no_login_on_homepage', $no_login_on_homepage);
set_config('system','verify_email',$verify_email); set_config('system', 'verify_email', $verify_email);
if ($banner=="") { if ($banner == '') {
del_config('system','banner'); del_config('system', 'banner');
} } else {
else { set_config('system', 'banner', $banner);
set_config('system','banner', $banner);
} }
if ($admininfo==''){ if ($admininfo == ''){
del_config('system','admininfo'); del_config('system', 'admininfo');
} } else {
else {
require_once('include/text.php'); require_once('include/text.php');
linkify_tags($a, $admininfo, local_channel()); linkify_tags($a, $admininfo, local_channel());
set_config('system','admininfo', $admininfo); set_config('system', 'admininfo', $admininfo);
} }
set_config('system','language', $language); set_config('system', 'language', $language);
set_config('system','theme', $theme); set_config('system', 'theme', $theme);
if ( $theme_mobile === '---' ) { if ( $theme_mobile === '---' ) {
del_config('system','mobile_theme'); del_config('system', 'mobile_theme');
} else { } else {
set_config('system','mobile_theme', $theme_mobile); set_config('system', 'mobile_theme', $theme_mobile);
} }
// set_config('system','site_channel', $site_channel); // set_config('system','site_channel', $site_channel);
set_config('system','maximagesize', $maximagesize); set_config('system','maximagesize', $maximagesize);
@ -317,11 +339,10 @@ function admin_page_site_post(&$a){
set_config('system','block_public', $block_public); set_config('system','block_public', $block_public);
set_config('system','publish_all', $force_publish); set_config('system','publish_all', $force_publish);
set_config('system','disable_discover_tab', $disable_discover_tab); set_config('system','disable_discover_tab', $disable_discover_tab);
if($global_directory=="") { if ($global_directory == '') {
del_config('system','directory_submit_url'); del_config('system', 'directory_submit_url');
} } else {
else { set_config('system', 'directory_submit_url', $global_directory);
set_config('system','directory_submit_url', $global_directory);
} }
set_config('system','no_community_page', $no_community_page); set_config('system','no_community_page', $no_community_page);
@ -333,8 +354,6 @@ function admin_page_site_post(&$a){
info( t('Site settings updated.') . EOL); info( t('Site settings updated.') . EOL);
goaway($a->get_baseurl(true) . '/admin/site' ); goaway($a->get_baseurl(true) . '/admin/site' );
return; // NOTREACHED
} }
/** /**
@ -358,17 +377,17 @@ function admin_page_site(&$a) {
} }
/* Installed themes */ /* Installed themes */
$theme_choices_mobile["---"] = t("Default"); $theme_choices_mobile["---"] = t("Default");
$theme_choices = array(); $theme_choices = array();
$files = glob('view/theme/*'); $files = glob('view/theme/*');
if($files) { if($files) {
foreach($files as $file) { foreach($files as $file) {
$vars = ''; $vars = '';
$f = basename($file); $f = basename($file);
if (file_exists($file . '/library')) if (file_exists($file . '/library'))
continue; continue;
if (file_exists($file . '/mobile')) if (file_exists($file . '/mobile'))
$vars = t('mobile'); $vars = t('mobile');
if (file_exists($file . '/experimental')) if (file_exists($file . '/experimental'))
$vars .= t('experimental'); $vars .= t('experimental');
if (file_exists($file . '/unsupported')) if (file_exists($file . '/unsupported'))
@ -376,22 +395,23 @@ function admin_page_site(&$a) {
if ($vars) { if ($vars) {
$theme_choices[$f] = $f . ' (' . $vars . ')'; $theme_choices[$f] = $f . ' (' . $vars . ')';
$theme_choices_mobile[$f] = $f . ' (' . $vars . ')'; $theme_choices_mobile[$f] = $f . ' (' . $vars . ')';
} }
else { else {
$theme_choices[$f] = $f; $theme_choices[$f] = $f;
$theme_choices_mobile[$f] = $f; $theme_choices_mobile[$f] = $f;
} }
} }
} }
/* Banner */ /* Banner */
$banner = get_config('system','banner'); $banner = get_config('system', 'banner');
if($banner == false) if($banner == false)
$banner = 'red'; $banner = 'red';
$banner = htmlspecialchars($banner); $banner = htmlspecialchars($banner);
/* Admin Info */ /* Admin Info */
$admininfo = get_config('system','admininfo'); $admininfo = get_config('system', 'admininfo');
/* Register policy */ /* Register policy */
$register_choices = Array( $register_choices = Array(
@ -424,7 +444,7 @@ function admin_page_site(&$a) {
'$advanced' => t('Advanced'), '$advanced' => t('Advanced'),
'$baseurl' => $a->get_baseurl(true), '$baseurl' => $a->get_baseurl(true),
// name, label, value, help string, extra data... // name, label, value, help string, extra data...
'$sitename' => array('sitename', t("Site name"), htmlspecialchars(get_config('system','sitename'), ENT_QUOTES, 'UTF-8'),''), '$sitename' => array('sitename', t("Site name"), htmlspecialchars(get_config('system','sitename'), ENT_QUOTES, 'UTF-8'),''),
'$banner' => array('banner', t("Banner/Logo"), $banner, ""), '$banner' => array('banner', t("Banner/Logo"), $banner, ""),
'$admininfo' => array('admininfo', t("Administrator Information"), $admininfo, t("Contact information for site administrators. Displayed on siteinfo page. BBCode can be used here")), '$admininfo' => array('admininfo', t("Administrator Information"), $admininfo, t("Contact information for site administrators. Displayed on siteinfo page. BBCode can be used here")),
@ -454,8 +474,7 @@ function admin_page_site(&$a) {
'$delivery_interval' => array('delivery_interval', t("Delivery interval"), (x(get_config('system','delivery_interval'))?get_config('system','delivery_interval'):2), t("Delay background delivery processes by this many seconds to reduce system load. Recommend: 4-5 for shared hosts, 2-3 for virtual private servers. 0-1 for large dedicated servers.")), '$delivery_interval' => array('delivery_interval', t("Delivery interval"), (x(get_config('system','delivery_interval'))?get_config('system','delivery_interval'):2), t("Delay background delivery processes by this many seconds to reduce system load. Recommend: 4-5 for shared hosts, 2-3 for virtual private servers. 0-1 for large dedicated servers.")),
'$poll_interval' => array('poll_interval', t("Poll interval"), (x(get_config('system','poll_interval'))?get_config('system','poll_interval'):2), t("Delay background polling processes by this many seconds to reduce system load. If 0, use delivery interval.")), '$poll_interval' => array('poll_interval', t("Poll interval"), (x(get_config('system','poll_interval'))?get_config('system','poll_interval'):2), t("Delay background polling processes by this many seconds to reduce system load. If 0, use delivery interval.")),
'$maxloadavg' => array('maxloadavg', t("Maximum Load Average"), ((intval(get_config('system','maxloadavg')) > 0)?get_config('system','maxloadavg'):50), t("Maximum system load before delivery and poll processes are deferred - default 50.")), '$maxloadavg' => array('maxloadavg', t("Maximum Load Average"), ((intval(get_config('system','maxloadavg')) > 0)?get_config('system','maxloadavg'):50), t("Maximum system load before delivery and poll processes are deferred - default 50.")),
'$form_security_token' => get_form_security_token("admin_site"), '$form_security_token' => get_form_security_token("admin_site"),
)); ));
} }
@ -474,7 +493,7 @@ function admin_page_hubloc_post(&$a){
//perform ping //perform ping
$m = zot_build_packet($a->get_channel(),'ping'); $m = zot_build_packet($a->get_channel(),'ping');
$r = zot_zot($hublocurl,$m); $r = zot_zot($hublocurl,$m);
//handle results and set the hubloc flags in db to make results visible //handle results and set the hubloc flags in db to make results visible
$r2 = $r['body']; $r2 = $r['body'];
$r3 = $r2['success']; $r3 = $r2['success'];
@ -484,53 +503,44 @@ function admin_page_hubloc_post(&$a){
} else { } else {
//set HUBLOC_OFFLINE to 1 //set HUBLOC_OFFLINE to 1
logger(' success = false ', LOGGER_DEBUG); logger(' success = false ', LOGGER_DEBUG);
} }
//unfotunatly zping wont work, I guess return format is not correct //unfotunatly zping wont work, I guess return format is not correct
//require_once('mod/zping.php'); //require_once('mod/zping.php');
//$r = zping_content($hublocurl); //$r = zping_content($hublocurl);
//logger('zping answer: ' . $r, LOGGER_DEBUG); //logger('zping answer: ' . $r, LOGGER_DEBUG);
//in case of repair store new pub key for tested hubloc (all channel with this hubloc) in db //in case of repair store new pub key for tested hubloc (all channel with this hubloc) in db
//after repair set hubloc flags to 0 //after repair set hubloc flags to 0
} }
goaway($a->get_baseurl(true) . '/admin/hubloc' ); goaway($a->get_baseurl(true) . '/admin/hubloc' );
return;
} }
function admin_page_hubloc(&$a) { function admin_page_hubloc(&$a) {
$o = '';
$hubloc = q("SELECT hubloc_id, hubloc_addr, hubloc_host, hubloc_status FROM hubloc"); $hubloc = q("SELECT hubloc_id, hubloc_addr, hubloc_host, hubloc_status FROM hubloc");
if(! $hubloc){ if(! $hubloc){
notice( t('No server found') . EOL); notice( t('No server found') . EOL);
goaway($a->get_baseurl(true) . '/admin/hubloc'); goaway($a->get_baseurl(true) . '/admin/hubloc');
} }
$t = get_markup_template("admin_hubloc.tpl"); $t = get_markup_template('admin_hubloc.tpl');
return replace_macros($t, array( return replace_macros($t, array(
'$hubloc' => $hubloc, '$hubloc' => $hubloc,
'$th_hubloc' => array(t('ID'), t('for channel'), t('on server'), t('Status')), '$th_hubloc' => array(t('ID'), t('for channel'), t('on server'), t('Status')),
'$title' => t('Administration'), '$title' => t('Administration'),
'$page' => t('Server'), '$page' => t('Server'),
'$queues' => $queues, '$queues' => $queues,
//'$accounts' => $accounts, /*$accounts is empty here*/ //'$accounts' => $accounts, /*$accounts is empty here*/
'$pending' => Array( t('Pending registrations'), $pending), '$pending' => array( t('Pending registrations'), $pending),
'$plugins' => Array( t('Active plugins'), $a->plugins ), '$plugins' => array( t('Active plugins'), $a->plugins ),
'$form_security_token' => get_form_security_token("admin_hubloc") '$form_security_token' => get_form_security_token('admin_hubloc')
)); ));
return $o;
} }
function admin_page_dbsync(&$a) { function admin_page_dbsync(&$a) {
$o = ''; $o = '';
if(argc() > 3 && intval(argv(3)) && argv(2) === 'mark') { if(argc() > 3 && intval(argv(3)) && argv(2) === 'mark') {
@ -558,6 +568,7 @@ function admin_page_dbsync(&$a) {
} }
else else
$o .= sprintf( t('Update function %s could not be found.'), $func); $o .= sprintf( t('Update function %s could not be found.'), $func);
return $o; return $o;
} }
@ -584,7 +595,6 @@ function admin_page_dbsync(&$a) {
)); ));
return $o; return $o;
} }
function admin_page_queue($a) { function admin_page_queue($a) {
@ -604,7 +614,6 @@ function admin_page_queue($a) {
} }
$r = q("select count(outq_posturl) as total, outq_posturl from outq $r = q("select count(outq_posturl) as total, outq_posturl from outq
where outq_delivered = 0 group by outq_posturl order by total desc"); where outq_delivered = 0 group by outq_posturl order by total desc");
@ -627,7 +636,6 @@ function admin_page_queue($a) {
)); ));
return $o; return $o;
} }
/** /**
@ -639,7 +647,7 @@ function admin_page_users_post(&$a){
$pending = ( x($_POST, 'pending') ? $_POST['pending'] : Array() ); $pending = ( x($_POST, 'pending') ? $_POST['pending'] : Array() );
$users = ( x($_POST, 'user') ? $_POST['user'] : Array() ); $users = ( x($_POST, 'user') ? $_POST['user'] : Array() );
check_form_security_token_redirectOnErr('/admin/users', 'admin_users'); check_form_security_token_redirectOnErr('/admin/users', 'admin_users');
if (x($_POST,'page_users_block')){ if (x($_POST,'page_users_block')){
foreach($users as $uid){ foreach($users as $uid){
@ -669,7 +677,6 @@ function admin_page_users_post(&$a){
} }
} }
goaway($a->get_baseurl(true) . '/admin/users' ); goaway($a->get_baseurl(true) . '/admin/users' );
return; // NOTREACHED
} }
/** /**
@ -690,7 +697,7 @@ function admin_page_users(&$a){
switch(argv(2)){ switch(argv(2)){
case "delete":{ case "delete":{
check_form_security_token_redirectOnErr('/admin/users', 'admin_users', 't'); check_form_security_token_redirectOnErr('/admin/users', 'admin_users', 't');
// delete user // delete user
require_once("include/Contact.php"); require_once("include/Contact.php");
account_remove($uid,true,false); account_remove($uid,true,false);
@ -698,7 +705,7 @@ function admin_page_users(&$a){
notice( sprintf(t("User '%s' deleted"), $account[0]['account_email']) . EOL); notice( sprintf(t("User '%s' deleted"), $account[0]['account_email']) . EOL);
}; break; }; break;
case "block":{ case "block":{
check_form_security_token_redirectOnErr('/admin/users', 'admin_users', 't'); check_form_security_token_redirectOnErr('/admin/users', 'admin_users', 't');
q("UPDATE account SET account_flags = ( account_flags & ~%d ) where account_id = %d", q("UPDATE account SET account_flags = ( account_flags & ~%d ) where account_id = %d",
intval(ACCOUNT_BLOCKED), intval(ACCOUNT_BLOCKED),
intval( $uid ) intval( $uid )
@ -708,8 +715,6 @@ function admin_page_users(&$a){
}; break; }; break;
} }
goaway($a->get_baseurl(true) . '/admin/users' ); goaway($a->get_baseurl(true) . '/admin/users' );
return ''; // NOTREACHED
} }
/* get pending */ /* get pending */
@ -736,10 +741,10 @@ function admin_page_users(&$a){
$order = " order by account_email asc "; $order = " order by account_email asc ";
if($_REQUEST['order'] === 'expires') if($_REQUEST['order'] === 'expires')
$order = " order by account_expires desc "; $order = " order by account_expires desc ";
if($_REQUEST['order'] === 'created') if($_REQUEST['order'] === 'created')
$order = " order by account_created desc "; $order = " order by account_created desc ";
$users =q("SELECT `account_id` , `account_email`, `account_lastlog`, `account_created`, `account_expires`, " . "`account_service_class`, ( account_flags & %d )>0 as `blocked`, " . $users = q("SELECT `account_id` , `account_email`, `account_lastlog`, `account_created`, `account_expires`, " . "`account_service_class`, ( account_flags & %d )>0 as `blocked`, " .
"(SELECT %s FROM channel as ch " . "(SELECT %s FROM channel as ch " .
"WHERE ch.channel_account_id = ac.account_id and not (ch.channel_pageflags & %d )>0) as `channels` " . "WHERE ch.channel_account_id = ac.account_id and not (ch.channel_pageflags & %d )>0) as `channels` " .
"FROM account as ac where true $serviceclass $order limit %d offset %d ", "FROM account as ac where true $serviceclass $order limit %d offset %d ",
@ -789,7 +794,7 @@ function admin_page_users(&$a){
'$confirm_delete_multi' => t('Selected users will be deleted!\n\nEverything these users had posted on this site will be permanently deleted!\n\nAre you sure?'), '$confirm_delete_multi' => t('Selected users will be deleted!\n\nEverything these users had posted on this site will be permanently deleted!\n\nAre you sure?'),
'$confirm_delete' => t('The user {0} will be deleted!\n\nEverything this user has posted on this site will be permanently deleted!\n\nAre you sure?'), '$confirm_delete' => t('The user {0} will be deleted!\n\nEverything this user has posted on this site will be permanently deleted!\n\nAre you sure?'),
'$form_security_token' => get_form_security_token("admin_users"), '$form_security_token' => get_form_security_token("admin_users"),
// values // // values //
'$baseurl' => $a->get_baseurl(true), '$baseurl' => $a->get_baseurl(true),
@ -798,6 +803,7 @@ function admin_page_users(&$a){
'$users' => $users, '$users' => $users,
)); ));
$o .= paginate($a); $o .= paginate($a);
return $o; return $o;
} }
@ -817,7 +823,7 @@ function admin_page_channels_post(&$a){
q("UPDATE channel SET channel_pageflags = ( channel_pageflags & ~%d ) where channel_id = %d", q("UPDATE channel SET channel_pageflags = ( channel_pageflags & ~%d ) where channel_id = %d",
intval(PAGE_CENSORED), intval(PAGE_CENSORED),
intval( $uid ) intval( $uid )
); );
proc_run('php','include/directory.php',$uid,'nopush'); proc_run('php','include/directory.php',$uid,'nopush');
} }
notice( sprintf( tt("%s channel censored/uncensored", "%s channels censored/uncensored", count($channels)), count($channels)) ); notice( sprintf( tt("%s channel censored/uncensored", "%s channels censored/uncensored", count($channels)), count($channels)) );
@ -831,7 +837,6 @@ function admin_page_channels_post(&$a){
} }
goaway($a->get_baseurl(true) . '/admin/channels' ); goaway($a->get_baseurl(true) . '/admin/channels' );
return; // NOTREACHED
} }
/** /**
@ -850,9 +855,9 @@ function admin_page_channels(&$a){
goaway($a->get_baseurl(true) . '/admin/channels' ); goaway($a->get_baseurl(true) . '/admin/channels' );
} }
switch(argv(2)){ switch(argv(2)) {
case "delete":{ case "delete":{
check_form_security_token_redirectOnErr('/admin/channels', 'admin_channels', 't'); check_form_security_token_redirectOnErr('/admin/channels', 'admin_channels', 't');
// delete channel // delete channel
require_once("include/Contact.php"); require_once("include/Contact.php");
channel_remove($uid,true); channel_remove($uid,true);
@ -872,8 +877,6 @@ function admin_page_channels(&$a){
}; break; }; break;
} }
goaway($a->get_baseurl(true) . '/admin/channels' ); goaway($a->get_baseurl(true) . '/admin/channels' );
return ''; // NOTREACHED
} }
/* get channels */ /* get channels */
@ -920,13 +923,14 @@ function admin_page_channels(&$a){
'$confirm_delete_multi' => t('Selected channels will be deleted!\n\nEverything that was posted in these channels on this site will be permanently deleted!\n\nAre you sure?'), '$confirm_delete_multi' => t('Selected channels will be deleted!\n\nEverything that was posted in these channels on this site will be permanently deleted!\n\nAre you sure?'),
'$confirm_delete' => t('The channel {0} will be deleted!\n\nEverything that was posted in this channel on this site will be permanently deleted!\n\nAre you sure?'), '$confirm_delete' => t('The channel {0} will be deleted!\n\nEverything that was posted in this channel on this site will be permanently deleted!\n\nAre you sure?'),
'$form_security_token' => get_form_security_token("admin_channels"), '$form_security_token' => get_form_security_token("admin_channels"),
// values // // values //
'$baseurl' => $a->get_baseurl(true), '$baseurl' => $a->get_baseurl(true),
'$channels' => $channels, '$channels' => $channels,
)); ));
$o .= paginate($a); $o .= paginate($a);
return $o; return $o;
} }
@ -950,7 +954,7 @@ function admin_page_plugins(&$a){
} }
if (x($_GET,"a") && $_GET['a']=="t"){ if (x($_GET,"a") && $_GET['a']=="t"){
check_form_security_token_redirectOnErr('/admin/plugins', 'admin_themes', 't'); check_form_security_token_redirectOnErr('/admin/plugins', 'admin_plugins', 't');
// Toggle plugin status // Toggle plugin status
$idx = array_search($plugin, $a->plugins); $idx = array_search($plugin, $a->plugins);
@ -965,18 +969,19 @@ function admin_page_plugins(&$a){
} }
set_config("system","addon", implode(", ",$a->plugins)); set_config("system","addon", implode(", ",$a->plugins));
goaway($a->get_baseurl(true) . '/admin/plugins' ); goaway($a->get_baseurl(true) . '/admin/plugins' );
return ''; // NOTREACHED
} }
// display plugin details // display plugin details
require_once('library/markdown.php'); require_once('library/markdown.php');
if (in_array($plugin, $a->plugins)){ if (in_array($plugin, $a->plugins)){
$status="on"; $action= t("Disable"); $status = 'on';
$action = t('Disable');
} else { } else {
$status="off"; $action= t("Enable"); $status = 'off';
$action = t('Enable');
} }
$readme=Null; $readme = null;
if (is_file("addon/$plugin/README.md")){ if (is_file("addon/$plugin/README.md")){
$readme = file_get_contents("addon/$plugin/README.md"); $readme = file_get_contents("addon/$plugin/README.md");
$readme = Markdown($readme); $readme = Markdown($readme);
@ -984,8 +989,7 @@ function admin_page_plugins(&$a){
$readme = "<pre>". file_get_contents("addon/$plugin/README") ."</pre>"; $readme = "<pre>". file_get_contents("addon/$plugin/README") ."</pre>";
} }
$admin_form=""; $admin_form = '';
if (is_array($a->plugins_admin) && in_array($plugin, $a->plugins_admin)){ if (is_array($a->plugins_admin) && in_array($plugin, $a->plugins_admin)){
@require_once("addon/$plugin/$plugin.php"); @require_once("addon/$plugin/$plugin.php");
if(function_exists($plugin.'_plugin_admin')) { if(function_exists($plugin.'_plugin_admin')) {
@ -994,8 +998,7 @@ function admin_page_plugins(&$a){
} }
} }
$t = get_markup_template('admin_plugins_details.tpl');
$t = get_markup_template("admin_plugins_details.tpl");
return replace_macros($t, array( return replace_macros($t, array(
'$title' => t('Administration'), '$title' => t('Administration'),
'$page' => t('Plugins'), '$page' => t('Plugins'),
@ -1015,29 +1018,27 @@ function admin_page_plugins(&$a){
'$screenshot' => '', '$screenshot' => '',
'$readme' => $readme, '$readme' => $readme,
'$form_security_token' => get_form_security_token("admin_themes"), '$form_security_token' => get_form_security_token('admin_plugins'),
)); ));
} }
/** /**
* List plugins * List plugins
*/ */
$plugins = array(); $plugins = array();
$files = glob("addon/*/"); $files = glob('addon/*/');
if($files) { if($files) {
foreach($files as $file) { foreach($files as $file) {
if (is_dir($file)){ if (is_dir($file)){
list($tmp, $id)=array_map("trim", explode("/",$file)); list($tmp, $id) = array_map('trim', explode('/', $file));
$info = get_plugin_info($id); $info = get_plugin_info($id);
$plugins[] = array( $id, (in_array($id, $a->plugins)?"on":"off") , $info); $plugins[] = array( $id, (in_array($id, $a->plugins)?"on":"off") , $info);
} }
} }
} }
$t = get_markup_template("admin_plugins.tpl"); $t = get_markup_template('admin_plugins.tpl');
return replace_macros($t, array( return replace_macros($t, array(
'$title' => t('Administration'), '$title' => t('Administration'),
'$page' => t('Plugins'), '$page' => t('Plugins'),
@ -1045,7 +1046,7 @@ function admin_page_plugins(&$a){
'$baseurl' => $a->get_baseurl(true), '$baseurl' => $a->get_baseurl(true),
'$function' => 'plugins', '$function' => 'plugins',
'$plugins' => $plugins, '$plugins' => $plugins,
'$form_security_token' => get_form_security_token("admin_themes"), '$form_security_token' => get_form_security_token('admin_plugins'),
)); ));
} }
@ -1074,7 +1075,7 @@ function toggle_theme(&$themes,$th,&$result) {
* @param string $th * @param string $th
* @return int * @return int
*/ */
function theme_status($themes,$th) { function theme_status($themes, $th) {
for($x = 0; $x < count($themes); $x ++) { for($x = 0; $x < count($themes); $x ++) {
if($themes[$x]['name'] === $th) { if($themes[$x]['name'] === $th) {
if($themes[$x]['allowed']) { if($themes[$x]['allowed']) {
@ -1116,8 +1117,8 @@ function rebuild_theme_table($themes) {
*/ */
function admin_page_themes(&$a){ function admin_page_themes(&$a){
$allowed_themes_str = get_config('system','allowed_themes'); $allowed_themes_str = get_config('system', 'allowed_themes');
$allowed_themes_raw = explode(',',$allowed_themes_str); $allowed_themes_raw = explode(',', $allowed_themes_str);
$allowed_themes = array(); $allowed_themes = array();
if(count($allowed_themes_raw)) if(count($allowed_themes_raw))
foreach($allowed_themes_raw as $x) foreach($allowed_themes_raw as $x)
@ -1125,16 +1126,16 @@ function admin_page_themes(&$a){
$allowed_themes[] = trim($x); $allowed_themes[] = trim($x);
$themes = array(); $themes = array();
$files = glob('view/theme/*'); $files = glob('view/theme/*');
if($files) { if($files) {
foreach($files as $file) { foreach($files as $file) {
$f = basename($file); $f = basename($file);
$is_experimental = intval(file_exists($file . '/.experimental')); $is_experimental = intval(file_exists($file . '/.experimental'));
$is_supported = 1-(intval(file_exists($file . '/.unsupported'))); // Is not used yet $is_supported = 1-(intval(file_exists($file . '/.unsupported'))); // Is not used yet
$is_allowed = intval(in_array($f,$allowed_themes)); $is_allowed = intval(in_array($f,$allowed_themes));
$themes[] = array('name' => $f, 'experimental' => $is_experimental, 'supported' => $is_supported, 'allowed' => $is_allowed); $themes[] = array('name' => $f, 'experimental' => $is_experimental, 'supported' => $is_supported, 'allowed' => $is_allowed);
} }
} }
if(! count($themes)) { if(! count($themes)) {
notice( t('No themes found.')); notice( t('No themes found.'));
@ -1153,20 +1154,19 @@ function admin_page_themes(&$a){
} }
if (x($_GET,"a") && $_GET['a']=="t"){ if (x($_GET,"a") && $_GET['a']=="t"){
check_form_security_token_redirectOnErr('/admin/themes', 'admin_themes', 't'); check_form_security_token_redirectOnErr('/admin/themes', 'admin_themes', 't');
// Toggle theme status // Toggle theme status
toggle_theme($themes,$theme,$result); toggle_theme($themes, $theme, $result);
$s = rebuild_theme_table($themes); $s = rebuild_theme_table($themes);
if($result) if($result)
info( sprintf('Theme %s enabled.',$theme)); info( sprintf('Theme %s enabled.', $theme));
else else
info( sprintf('Theme %s disabled.',$theme)); info( sprintf('Theme %s disabled.', $theme));
set_config('system','allowed_themes',$s); set_config('system', 'allowed_themes', $s);
goaway($a->get_baseurl(true) . '/admin/themes' ); goaway($a->get_baseurl(true) . '/admin/themes' );
return ''; // NOTREACHED
} }
// display theme details // display theme details
@ -1186,21 +1186,19 @@ function admin_page_themes(&$a){
$readme = "<pre>". file_get_contents("view/theme/$theme/README") ."</pre>"; $readme = "<pre>". file_get_contents("view/theme/$theme/README") ."</pre>";
} }
$admin_form=""; $admin_form = '';
if (is_file("view/theme/$theme/php/config.php")){ if (is_file("view/theme/$theme/php/config.php")){
require_once("view/theme/$theme/php/config.php"); require_once("view/theme/$theme/php/config.php");
if(function_exists("theme_admin")){ if(function_exists("theme_admin")){
$admin_form = theme_admin($a); $admin_form = theme_admin($a);
} }
} }
$screenshot = array( get_theme_screenshot($theme), t('Screenshot')); $screenshot = array( get_theme_screenshot($theme), t('Screenshot'));
if(! stristr($screenshot[0],$theme)) if(! stristr($screenshot[0],$theme))
$screenshot = null; $screenshot = null;
$t = get_markup_template("admin_plugins_details.tpl"); $t = get_markup_template('admin_plugins_details.tpl');
return replace_macros($t, array( return replace_macros($t, array(
'$title' => t('Administration'), '$title' => t('Administration'),
'$page' => t('Themes'), '$page' => t('Themes'),
@ -1219,12 +1217,11 @@ function admin_page_themes(&$a){
'$screenshot' => $screenshot, '$screenshot' => $screenshot,
'$readme' => $readme, '$readme' => $readme,
'$form_security_token' => get_form_security_token("admin_themes"), '$form_security_token' => get_form_security_token('admin_themes'),
)); ));
} }
/** /**
* List themes * List themes
*/ */
@ -1236,7 +1233,7 @@ function admin_page_themes(&$a){
} }
} }
$t = get_markup_template("admin_plugins.tpl"); $t = get_markup_template('admin_plugins.tpl');
return replace_macros($t, array( return replace_macros($t, array(
'$title' => t('Administration'), '$title' => t('Administration'),
'$page' => t('Themes'), '$page' => t('Themes'),
@ -1246,7 +1243,7 @@ function admin_page_themes(&$a){
'$plugins' => $xthemes, '$plugins' => $xthemes,
'$experimental' => t('[Experimental]'), '$experimental' => t('[Experimental]'),
'$unsupported' => t('[Unsupported]'), '$unsupported' => t('[Unsupported]'),
'$form_security_token' => get_form_security_token("admin_themes"), '$form_security_token' => get_form_security_token('admin_themes'),
)); ));
} }
@ -1256,25 +1253,21 @@ function admin_page_themes(&$a){
* *
* @param App $a * @param App $a
*/ */
function admin_page_logs_post(&$a) { function admin_page_logs_post(&$a) {
if (x($_POST,"page_logs")) { if (x($_POST, 'page_logs')) {
check_form_security_token_redirectOnErr('/admin/logs', 'admin_logs'); check_form_security_token_redirectOnErr('/admin/logs', 'admin_logs');
$logfile = ((x($_POST,'logfile')) ? notags(trim($_POST['logfile'])) : ''); $logfile = ((x($_POST,'logfile')) ? notags(trim($_POST['logfile'])) : '');
$debugging = ((x($_POST,'debugging')) ? true : false); $debugging = ((x($_POST,'debugging')) ? true : false);
$loglevel = ((x($_POST,'loglevel')) ? intval(trim($_POST['loglevel'])) : 0); $loglevel = ((x($_POST,'loglevel')) ? intval(trim($_POST['loglevel'])) : 0);
set_config('system','logfile', $logfile); set_config('system','logfile', $logfile);
set_config('system','debugging', $debugging); set_config('system','debugging', $debugging);
set_config('system','loglevel', $loglevel); set_config('system','loglevel', $loglevel);
} }
info( t("Log settings updated.") ); info( t('Log settings updated.') );
goaway($a->get_baseurl(true) . '/admin/logs' ); goaway($a->get_baseurl(true) . '/admin/logs' );
return; // NOTREACHED
} }
/** /**
@ -1291,9 +1284,9 @@ function admin_page_logs(&$a){
LOGGER_ALL => 'All' LOGGER_ALL => 'All'
); );
$t = get_markup_template("admin_logs.tpl"); $t = get_markup_template('admin_logs.tpl');
$f = get_config('system','logfile'); $f = get_config('system', 'logfile');
$data = ''; $data = '';
@ -1333,12 +1326,12 @@ readable.");
'$baseurl' => $a->get_baseurl(true), '$baseurl' => $a->get_baseurl(true),
'$logname' => get_config('system','logfile'), '$logname' => get_config('system','logfile'),
// name, label, value, help string, extra data... // name, label, value, help string, extra data...
'$debugging' => array('debugging', t("Debugging"),get_config('system','debugging'), ""), '$debugging' => array('debugging', t("Debugging"),get_config('system','debugging'), ""),
'$logfile' => array('logfile', t("Log file"), get_config('system','logfile'), t("Must be writable by web server. Relative to your Red top-level directory.")), '$logfile' => array('logfile', t("Log file"), get_config('system','logfile'), t("Must be writable by web server. Relative to your Red top-level directory.")),
'$loglevel' => array('loglevel', t("Log level"), get_config('system','loglevel'), "", $log_choices), '$loglevel' => array('loglevel', t("Log level"), get_config('system','loglevel'), "", $log_choices),
'$form_security_token' => get_form_security_token("admin_logs"), '$form_security_token' => get_form_security_token('admin_logs'),
)); ));
} }
@ -1367,7 +1360,6 @@ function admin_page_profs_post(&$a) {
// add to chosen array basic or advanced // add to chosen array basic or advanced
goaway(z_root() . '/admin/profs'); goaway(z_root() . '/admin/profs');
} }
function admin_page_profs(&$a) { function admin_page_profs(&$a) {
@ -1390,7 +1382,6 @@ function admin_page_profs(&$a) {
'$field_help' => array('field_help',t('Help text'),$_REQUEST['field_help'],t('Additional info (optional)')), '$field_help' => array('field_help',t('Help text'),$_REQUEST['field_help'],t('Additional info (optional)')),
'$submit' => t('Save') '$submit' => t('Save')
)); ));
} }
if((argc() > 2) && intval(argv(2))) { if((argc() > 2) && intval(argv(2))) {
@ -1414,8 +1405,3 @@ function admin_page_profs(&$a) {
} }
} }

View File

@ -1,36 +1,32 @@
<div class="generic-content-wrapper-styled" id='adminpage'> <div class="generic-content-wrapper-styled" id='adminpage'>
<h1>{{$title}} - {{$page}}</h1> <h1>{{$title}} - {{$page}}</h1>
{{if $adminalertmsg}}
<p class="alert alert-warning" role="alert">{{$adminalertmsg}}</p>
{{/if}}
<dl> <dl>
<dt>{{$queues.label}}</dt> <dt>{{$queues.label}}</dt>
<dd>{{$queues.queue}}</dd> <dd>{{$queues.queue}}</dd>
</dl> </dl>
<dl>
<dt>{{$accounts.0}}</dt>
<dd>{{foreach from=$accounts.1 item=acc name=account}}<span title="{{$acc.label}}">{{$acc.val}}</span>{{if !$smarty.foreach.account.last}} / {{/if}}{{/foreach}}</dd>
</dl>
<dl> <dl>
<dt>{{$pending.0}}</dt> <dt>{{$pending.0}}</dt>
<dd>{{$pending.1}}</dt> <dd>{{$pending.1}}</dt>
</dl> </dl>
<dl> <dl>
<dt>{{$users.0}}</dt> <dt>{{$channels.0}}</dt>
<dd>{{$users.1}}</dd> <dd>{{foreach from=$channels.1 item=ch name=chan}}<span title="{{$ch.label}}">{{$ch.val}}</span>{{if !$smarty.foreach.chan.last}} / {{/if}}{{/foreach}}</dd>
</dl> </dl>
<!-- $accounts is empty
{{foreach $accounts as $p}}
<dl>
<dt>{{$p.0}}</dt>
<dd>{{if $p.1}}{{$p.1}}{{else}}0{{/if}}</dd>
</dl>
{{/foreach}} -->
<dl> <dl>
<dt>{{$plugins.0}}</dt> <dt>{{$plugins.0}}</dt>
<dd> <dd>
{{foreach $plugins.1 as $p}} {{$p}} {{/foreach}} {{foreach $plugins.1 as $p}} {{$p}} {{/foreach}}
&nbsp;
</dd> </dd>
</dl> </dl>
<dl> <dl>
<dt>{{$version.0}}</dt> <dt>{{$version.0}}</dt>
<dd>{{$version.1}} - {{$build}}</dd> <dd>{{$version.1}} - {{$build}}</dd>
</dl> </dl>
</div> </div>