function txAdministratorDelete() { global $json, $DB; VerifyAdministrator(TRUE); if (!is_array($_REQUEST['username'])) { $_REQUEST['username'] = array($_REQUEST['username']); } // No deleting your own account if (in_array($_SERVER['REMOTE_USER'], $_REQUEST['username'])) { echo $json->encode(array('status' => JSON_FAILURE, 'message' => 'You cannot delete your own account')); exit; } foreach ($_REQUEST['username'] as $username) { $DB->Update('DELETE FROM `tx_administrators` WHERE `username`=?', array($username)); } echo $json->encode(array('status' => JSON_SUCCESS, 'message' => 'The selected administrator accounts have been deleted')); }
function txAdministratorMail() { global $DB, $C, $t; VerifyAdministrator(); $message = PrepareMessage(); $t = new Template(); $t->assign_by_ref('config', $C); foreach (explode(',', $_REQUEST['to']) as $to_account) { $account = $DB->Row('SELECT * FROM `tx_administrators` WHERE `username`=?', array($to_account)); if ($account) { $t->assign_by_ref('account', $account); SendMail($account['email'], $message, $t, FALSE); } } $message = 'The selected administrator accounts have been e-mailed'; include_once 'includes/message.php'; }
function lxSaveGeneralSettings() { global $C; VerifyAdministrator(); CheckAccessList(); $server = GetServerCapabilities(); $GLOBALS['_server_'] = $server; $v = new Validator(); $required = array('base_url' => 'Base URL', 'cookie_domain' => 'Cookie Domain', 'from_email' => 'E-mail Address', 'from_email_name' => 'E-mail Name', 'page_new' => 'New Links Page', 'page_popular' => 'Popular Links Page', 'page_top' => 'Top Links Page', 'page_details' => 'Link Details Page', 'extension' => 'File Extension', 'date_format' => 'Date Format', 'time_format' => 'Time Format', 'dec_point' => 'Decimal Point', 'thousands_sep' => 'Thousands Separator', 'min_desc_length' => 'Minimum Description Length', 'max_desc_length' => 'Maximum Description Length', 'min_title_length' => 'Maximum Title Length', 'max_title_length' => 'Maximum Title Length', 'max_keywords' => 'Maximum Keywords', 'link_weight' => 'Default Link Weight', 'min_comment_length' => 'Maximum Comment Length', 'max_comment_length' => 'Maximum Comment Length', 'max_rating' => 'Maximum Rating', 'font_dir' => 'Font Directory', 'min_code_length' => 'Minimum Code Length', 'max_code_length' => 'Maximum Code Length', 'cache_index' => 'Index Page Cache', 'cache_category' => 'Category Page Cache', 'cache_new' => 'New Link Page Cache', 'cache_popular' => 'Popular Links Page Cache', 'cache_top' => 'Top Links Page Cache', 'cache_search' => 'Search Page Cache', 'cache_details' => 'Details Page Cache'); foreach ($required as $field => $name) { $v->Register($_REQUEST[$field], V_EMPTY, "The {$name} field is required"); } if ($v->Validate()) { if (!preg_match('~%d~', $_REQUEST['page_details'])) { if (strpos($_REQUEST['page_details'], '.') === FALSE) { $_REQUEST['page_details'] .= "%d"; } else { $_REQUEST['page_details'] = preg_replace('~\\.([^.]*)$~', '%d.$1', $_REQUEST['page_details']); } } $_REQUEST['extension'] = preg_replace('~^\\.~', '', $_REQUEST['extension']); $_REQUEST['base_url'] = preg_replace('~/$~', '', $_REQUEST['base_url']); $_REQUEST['domain'] = preg_replace('~^www\\.~', '', $_SERVER['HTTP_HOST']); $_REQUEST = array_merge($server, $_REQUEST); WriteConfig($_REQUEST); $GLOBALS['message'] = 'Your settings have been successfully updated'; } else { $C = array_merge($C, $_REQUEST); $GLOBALS['errstr'] = join('<br />', $v->GetErrors()); } lxShGeneralSettings(); }
function tlxGeneralSettingsSave() { global $C; VerifyAdministrator(); CheckAccessList(); $server = GetServerCapabilities(); $GLOBALS['_server_'] = $server; $v = new Validator(); $required = array('document_root' => 'Document Root', 'install_url' => 'ToplistX URL', 'cookie_domain' => 'Cookie Domain', 'from_email' => 'E-mail Address', 'from_email_name' => 'E-mail Name', 'date_format' => 'Date Format', 'time_format' => 'Time Format', 'dec_point' => 'Decimal Point', 'thousands_sep' => 'Thousands Separator', 'secret_key' => 'Secret Key', 'forward_url' => 'Default Forward URL', 'alternate_out_url' => 'Alternate Out URL', 'redirect_code' => 'Redirect Status Code', 'max_rating' => 'Maximum Site Rating', 'min_comment_length' => 'Minimum Comment Length', 'max_comment_length' => 'Maximum Comment Length', 'comment_interval' => 'Comment Interval', 'min_desc_length' => 'Minimum Description Length', 'max_desc_length' => 'Maximum Description Length', 'max_keywords' => 'Maximum Keywords', 'return_percent' => 'Default Return Percent', 'banner_max_width' => 'Maximum Banner Width', 'banner_max_height' => 'Maximum Banner Height', 'banner_max_bytes' => 'Maximum Banner Filesize', 'font_dir' => 'Font Directory', 'min_code_length' => 'Minimum Code Length', 'max_code_length' => 'Maximum Code Length'); if (!$_REQUEST['using_cron']) { $required['rebuild_interval'] = 'Rebuild Interval'; $v->Register($_REQUEST['rebuild_interval'], V_GREATER_EQ, 'The Rebuild Interval must be 60 or larger', 60); } foreach ($required as $field => $name) { $v->Register($_REQUEST[$field], V_EMPTY, "The {$name} field is required"); } $_REQUEST['return_percent'] /= 100; $_REQUEST['document_root'] = preg_replace('~/$~', '', $_REQUEST['document_root']); $_REQUEST['install_url'] = preg_replace('~/$~', '', $_REQUEST['install_url']); $_REQUEST['domain'] = preg_replace('~^www\\.~', '', $_SERVER['HTTP_HOST']); $_REQUEST['banner_dir'] = DirectoryFromRoot($_REQUEST['document_root'], $_REQUEST['banner_url']); if (!$v->Validate()) { $C = array_merge($C, $_REQUEST); return $v->ValidationError('tlxShGeneralSettings'); } $_REQUEST = array_merge($server, $_REQUEST); WriteConfig($_REQUEST); $GLOBALS['message'] = 'Your settings have been successfully updated'; tlxShGeneralSettings(); }