This is a control module and may not be deactivated or activated.
Author: Aaron Harun
Version: 1.0
AWP Release: 1.0
Author URI: http://anthologyoi.com/
*/
if(!$_REQUEST['custom_options_menu'])
add_action('awp_build_menu',array('AWP_admin','admin_panel'));
class AWP_admin{
function process_admin(){
global $awpall,$awp_mods;
if ($_POST["action"] == "saveconfiguration") {
if($_POST["awp_test"] == 1){
AWP::update_options($_REQUEST['awp']);
$awpall[last_modified] = gmdate('Y-m-d_H:i:59');
update_option('awp_test',$awpall);
$action = '&act=test';
}elseif($_POST["awp_test"] == 2){
update_option('awp_test','');
$action = '&act=testdelete';
$awpall = get_option('awp');
}else{
AWP::update_options($_REQUEST['awp']);
update_option('awp',$awpall);
update_option('awp_test','');
$action = '&act=updated';
}
}elseif($_POST["action"] == "restoredefaults"){
$awp_mods ='';
$awpall = '';
AWP::set_defaults();
$action = '&act=defaults';
}elseif($_POST["action"] == "restoreupdate" && $_POST['resop']){
$options = trim($_POST['resop']);
if( get_magic_quotes_gpc() ) {
$options = trim(stripslashes($options));
}
$options = preg_replace('!s:(\d+):"(.*?)";!e', "'s:'.strlen('$2').':\"$2\";'", $options );
$options = unserialize($options);
$awpall = '';
if(is_array($options)){
AWP::update_options($options);
update_option('awp_test',$awpall);
$action = '&act=restore';
}
}elseif ('activate' == $_GET['action'] && $_GET['module']) {
include_once(ABSPATH . '/wp-admin/admin-functions.php');
check_admin_referer('activate-module_' . $_GET['module']);
$module = trim($_GET['module']);
if ( validate_file($module) )
wp_die(__('Invalid module.','awp'));
if ( ! file_exists(ABSPATH . PLUGINDIR . AWP_MODULES .'/' . $module) )
wp_die(__('Plugin file does not exist.'));
if (!in_array($module, $awp_mods)) {
wp_redirect('themes.php?page='.AWP_BASE.'/control/aWP-admin_panel.php&act=failed');
ob_start();
@include(ABSPATH . PLUGINDIR . AWP_MODULES .'/' . $module);
$awp_mods[] = $module;
sort($awp_mods);
update_option('awp_mods', $awp_mods);
do_action('activate_' . ltrim(AWP_MODULES .'/' . $_GET['module'], '/'));
ob_end_clean();
$action ='&act=activated';
}
} else if ('deactivate' == $_GET['action'] && $_GET['module']) {
check_admin_referer('deactivate-module_' . $_GET['module']);
array_splice($awp_mods, array_search( $_GET['module'], $awp_mods), 1 ); // Array-fu!
update_option('awp_mods', $awp_mods);
do_action('deactivate_' . ltrim(AWP_MODULES .'/' . $_GET['module'], '/'));
$action = '&act=deactivate';
}
do_action('awp_admin_update');
wp_redirect('themes.php?page='.AWP_BASE.'/control/aWP-admin_panel.php'.$action);
}
function admin_panel($menu){
global $aWP, $awpall;
require_once(ABSPATH . PLUGINDIR . '/'. AWP_BASE . '/xmlparser.php');
$marray = AWP::XML($menu);
if(is_array($marray[menus])){
AWP_admin::admin_panel_menu($marray[menus][menu]);
}elseif(is_array($marray[menu])){
AWP_admin::admin_panel_menu($marray[menu]);
}elseif(is_array($marray[submenu])){
AWP_admin::admin_panel_sub($marray[submenu]);
}elseif(is_array($marray[item])){
AWP_admin::admin_panel_item($marray[item]);
}
}
function admin_panel_menu($menu){
global $aWP, $awpall;
foreach($menu as $m){
$id = $m[id];
if($id){
?>
';
AWP_admin::admin_panel_sub($m[submenu]);
if($m[action])
do_action($m[action]);
echo '
';
} ?>
['.__('More Information','awp').']';
echo ''.$menu[info].'
';
$info++;
}
if(is_array($menu[item])){
echo '';
AWP_admin::admin_panel_item($menu[item]);
if($menu[action])
do_action($menu[action]);
echo ' ';
}
}
}
function admin_panel_item($items){
global $aWP, $awpall;
static $radios;
foreach($items as $item){
$selected = $size =$post =$pre = $extra='';
$type = $item[type];
$name = $item[name];
if(!$open){
if($item[important] > 0)
$class= ' class="level'.$item[important].'"';
echo sprintf(' ',$class);
}
if($item[intro])
echo __($item[intro],'awp').' ';
if($type){
if($type != 'select'){
switch($type){
case 'text':
$value=$awpall[$name];
break;
case 'checkbox';
$value='1';
$extra = $aWP[$type][$name];
$pre = '';
$post = ' ';
break;
case 'radio';
$value=$item[value];
$extra = $aWP[$type][$name][$value];
$pre = '';
$post = ' ';
$radios[$name]++;
break;
default:
$value=$awpall[$name];
}
$size = ($item[size]) ? ' size="'.$item[size].'"' : ' ';
$input = sprintf(' ',$type,$value,$name,$extra,$size);
}else{
$input = '';
if(!$item[option]){
$input .= ''.$awpall[$name].'
'.$aWP[$type][$name].' ';
}else{
foreach($item[option] as $option){
$selected = ($awpall[$name]==$option[value] ) ? ' selected="selected"' : '';
$input .= ''.$option[name].' ';
}
}
$input .= ' ';
}
if(strpos($item[d],'%s') === false)
$item[d] = '%s «—'.$item[d];
$output = $pre.sprintf($item[d],$input).$post;
if($item[desc]){
$output .= ' [?] ';
$inline .= ''.$item[desc].' ';
}
}
echo $output;
if(!$item[open] && !$item[nobreak]){
echo $inline.'
'."\n\n";
$inline = $open = null;
}else{
$open = 1;
echo ' ';
if(!$item[nobreak])
echo ' '."\n";
if($item[action])
do_action($item[action]);
}
}
}
function admin_js(){
?>
read() ) !== false ) {
if ( substr($file, 0, 1) == '.' )
continue;
if ( is_dir( $modules_root.'/'.$file ) ) {
$modules_subdir = dir( $modules_root.'/'.$file );
if ( $modules_subdir ) {
while (($subfile = $modules_subdir->read() ) !== false ) {
if ( substr($subfile, 0, 1) == '.' )
continue;
if ( substr($subfile, -4) == '.php' )
$modules_files[] = "$file/$subfile";
}
}
} else {
if ( substr($file, -4) == '.php' )
$modules_files[] = $file;
}
}
}
if ( !$modules_dir || !$modules_files )
return $awp_modules;
foreach ( $modules_files as $modules_file ) {
if ( !is_readable( "$modules_root/$modules_file" ) )
continue;
$modules_data = AWP_admin::get_modules_data( "$modules_root/$modules_file" );
if ( empty ( $modules_data['Name'] ) )
continue;
$awp_modules[plugin_basename( $modules_file )] = $modules_data;
}
uasort( $awp_modules, create_function( '$a, $b', 'return strnatcasecmp( $a["Name"], $b["Name"] );' ));
return $awp_modules;
}
function get_modules_data( $mod_file ) {
$mod_data = implode( '', file( $mod_file ));
preg_match( "@(Plugin|Module) Name:(.*)@i", $mod_data, $mod_name );
preg_match( "@(Plugin|Module) URI:(.*)@i", $mod_data, $mod_uri );
preg_match( "@Description:(.*)@i", $mod_data, $description );
preg_match( "@Author:(.*)@i", $mod_data, $author_name );
preg_match( "@Author URI:(.*)@i", $mod_data, $author_uri );
preg_match( "@Requires:(.*)@i", $mod_data, $requires );
if ( preg_match( "@AWP Release:(.*)@i", $mod_data, $awpversion ))
$awpversion = trim( $awpversion[1] );
else
$awpversion = '';
if ( preg_match( "@Version:(.*)@i", $mod_data, $version ))
$version = trim( $version[1] );
else
$version = '';
$description = wptexturize( trim( $description[1] ));
$name = $mod_name[2];
$name = trim( $name );
$mod = $name;
if ('' != $mod_uri[2] && '' != $name ) {
$mod = ''.$mod.' ';
}
if ('' == $author_uri[1] ) {
$author = trim( $author_name[1] );
} else {
$author = '' . trim( $author_name[1] ) . ' ';
}
return array('Name' => $name, 'Title' => $mod, 'Description' => $description, 'Author' => $author, 'Version' => $version, 'AWP_Version' => $awpversion, 'Requires' => $requires);
}
function print_modules($c=1){
global $aWP,$awp_mods;
?>
class="widefat plugins">
$module_data) {
$style = ('class="alternate"' == $style|| 'class="alternate active"' == $style) ? '' : 'alternate';
if (!empty($awp_mods) && in_array($module_file, $awp_mods)) {
$toggle = "".__('Deactivate')." ";
$module_data['Title'] = "{$module_data['Title']} ";
$style .= $style == 'alternate' ? ' active' : 'active';
} else {
$toggle = "".__('Activate')." ";
}
if($c){
$modules_allowedtags = array('a' => array('href' => array(),'title' => array()),'abbr' => array('title' => array()),'acronym' => array('title' => array()),'code' => array(),'em' => array(),'strong' => array());
}else{
$modules_allowedtags = array('abbr' => array('title' => array()),'acronym' => array('title' => array()),'code' => array(),'em' => array());
}
// Sanitize all displayed data
$module_data['Title'] = wp_kses($module_data['Title'], $modules_allowedtags);
$module_data['Version'] = wp_kses($module_data['Version'], $modules_allowedtags);
$module_data['AWP_Version'] = wp_kses($module_data['AWP_Version'], $modules_allowedtags);
$module_data['Description'] = wp_kses($module_data['Description'], $modules_allowedtags);
$module_data['Author'] = wp_kses($module_data['Author'], $modules_allowedtags);
if ( $style != '' )
$style = 'class="' . $style . '"';
echo "
{$module_data['Title']}
{$module_data['AWP_Version']}
{$module_data['Version']}
{$module_data['Description']} ".sprintf(__('By %s'), $module_data['Author']).".
";
if($c){ echo "$toggle ";}
echo "
";
}
?>
';
break;
case 'activated':
$aWP[admin_message] .= __('Module Activated Successfully.','awp').' ';
break;
case 'deactivated':
$aWP[admin_message] .= __('Module Deactivated Successfully.','awp').' ';
break;
case 'failed':
$aWP[admin_message] .= __('The module you attempted to activate has an error in it and could not be activated.','awp').' ';
break;
case 'defaults':
$aWP[admin_message] .= __('AWP settings restored to defaults.','awp').' ';
break;
case 'restore':
$aWP[admin_message] .= __('Options successfully saved as test options. Please review them for consistancy before saving.','awp').' ';
break;
case 'test':
$aWP[admin_message] .= __('AWP test options updated. These settings will not go live until you save them.','awp').' ';
break;
case 'testdelete':
$aWP[admin_message] .= __('AWP test options deleted.','awp').' ';
break;
}
}
if (version_compare($wp_version, '2.1', '<')){
$aWP[admin_message] .= __('This version of Wordpress is outdated and not supported by this plugin. Please upgrade to the latest version from','awp').'wordpress.org ';
}
$awp_test = get_option('awp_test');
if(is_array($awp_test)){
$awpall = $awp_test;
$is_test= true;
$aWP[admin_message] .= __('You are using the test options currently. You must save them as live options or delete them to see the current live options.','awp').__('To view these settings append ?awp=test to any URL in your blog or click the follwing link to view your homepage>','awp').''.get_settings('siteurl').' $texts, 'radios'=>$radios, 'selects'=>$selects, 'checkboxes' =>$checkboxes));
foreach($options['radios'] as $radio){
$aWP[radio][$radio[0]][$awpall[$radio[0]]] = 'checked="checked"';
if(!$awpall[$radio[0]])
$aWP[radio][$radio[0]][$radio[1]] = 'checked="checked"';
}
foreach($options['texts'] as $name){
$awpall[$name]= stripslashes(htmlspecialchars($awpall[$name],ENT_QUOTES));
}
foreach($options['checkboxes'] as $name){
if(!empty($awpall[$name]))
$aWP[checkbox][$name]= 'checked="checked"';
}
foreach($options['selects'] as $select){
if(!$awpall[$select]){
$awpall[$select] = 'Disabled';
}
$aWP[select][$select] = ($awpall[$select] == 'Disabled') ? 'Enabled' : 'Disabled';
}
}
}
?>