|
Menu |
|
|
Home |
| |
|
Discussions |
| |
|
Tools |
| |
|
Affiliates |
| |
|
Content |
| |
|
Info |
| | |
|
|
|
|
|
User Info |
|
Membership:
Latest: MichaelSnaRe
New Today: 0
New Yesterday: 0
Overall: 9144
People Online:
Visitors: 121
Members: 0
Total: 121
|
|
|
|
|
|
Full disclosure |
|
|
|
|
|
|
|
|
|
IT Security and Insecurity Portal |
|
|
Please HELP URGENT DECODE THIS FILE (IMPOSIBLE TO DECODE) |
|
Posted: Tue Jan 24, 2012 12:48 pm |
|
|
ehraz |
Beginner |
|
|
Joined: Jan 24, 2012 |
Posts: 2 |
|
|
|
|
|
|
|
<?php //0046b
if(!extension_loaded('ionCube Loader')){$__oc=strtolower(substr(php_uname(),0,3));$__ln='ioncube_loader_'.$__oc.'_'.substr(phpversion(),0,3).(($__oc=='win')?'.dll':'.so');if(function_exists('dl')){@dl($__ln);}if(function_exists('_il_exec')){return _il_exec();}$__ln='/ioncube/'.$__ln;$__oid=$__id=realpath(ini_get('extension_dir'));$__here=dirname(__FILE__);if(strlen($__id)>1&&$__id[1]==':'){$__id=str_replace('\\','/',substr($__id,2));$__here=str_replace('\\','/',substr($__here,2));}$__rd=str_repeat('/..',substr_count($__id,'/')).$__here.'/';$__i=strlen($__rd);while($__i--){if($__rd[$__i]=='/'){$__lp=substr($__rd,0,$__i).$__ln;if(file_exists($__oid.$__lp)){$__ln=$__lp;break;}}}if(function_exists('dl')){@dl($__ln);}}else{die('The file '.__FILE__." is corrupted.\n");}if(function_exists('_il_exec')){return _il_exec();}echo('Site error: the file <b>'.__FILE__.'</b> requires the ionCube PHP Loader '.basename($__ln).' to be installed by the website operator. If you are the website operator please use the <a href="http://www.ioncube.com/lw/">ionCube Loader Wizard</a> to assist with installation.');exit(199);
?>
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 |
|
|
|
|
|
|
|
|
Posted: Mon Jul 23, 2012 10:02 pm |
|
|
demon |
Moderator |
|
|
Joined: Sep 22, 2010 |
Posts: 485 |
|
|
|
|
|
|
|
Code: |
<?php
function is_valid_licence( $data )
{
$key_info['key'] = $data;
$key_info['domain'] = $_SERVER['SERVER_NAME'];
$serverurl = "http://labs.phpvibe.com/server/server.php";
$ch = curl_init( $serverurl );
curl_setopt( $ch, CURLOPT_RETURNTRANSFER, true );
curl_setopt( $ch, CURLOPT_POST, true );
curl_setopt( $ch, CURLOPT_POSTFIELDS, $key_info );
$result = curl_exec( $ch );
$result = json_decode( $result, true );
if ( $result['valid'] == "true" )
{
return true;
}
return false;
}
require_once( "DefaultController.class.php" );
$config = MK_Config::getinstance( );
if ( $config->site->installed && ( !$config->licence->key || !is_valid_licence( $config->licence->key ) ) )
{
if ( !$config->licence->key )
{
$h1 .= "<p class=\"simple-message simple-message-warning\">Missing licence key</p>";
}
else if ( !is_valid_licence( $config->licence->key ) )
{
$h1 .= "<p class=\"simple-message simple-message-warning\">The licence key used it's not valid for this domain.</p>";
}
$form_settings = array(
"attributes" => array( "class" => "standard clear-fix large" )
);
$form_structure = array( );
$form_structure['licence_key'] = array(
"type" => "text",
"label" => "Licence Key",
"tooltip" => "This is licence key you have created for this domain at phpVibe.com.",
"fieldset" => "Input your licence key",
"value" => $config->licence->key
);
$form_structure['search_submit'] = array(
"type" => "submit",
"attributes" => array( "value" => "Save Key" )
);
$form = new MK_Form( $form_structure, $form_settings );
if ( $form->isSuccessful( ) )
{
$message = array( );
$config_data = array( );
$fields = $form->getFields( );
$config_data['licence.key'] = $form->getField( "licence_key" )->getValue( );
if ( $config->core->mode === MK_Core::MODE_DEMO )
{
$messages[] = new MK_Message( "warning", "Settings cannot be updated as <strong>".$config->instance->name."</strong> is running in demonstration mode." );
}
else
{
$messages[] = new MK_Message( "success", "Your licence settings have been updated. " );
MK_Utility::writeconfig( $config_data );
}
}
else
{
$licenceform = $form->render( );
print "\r\n\t\t\t<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Strict//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd\">\r\n\r\n<html id=\"large\" xmlns=\"http://www.w3.org/1999/xhtml\">\r\n\r\n\t<head>\r\n\r\n\t\t<meta http-equiv=\"Content-Type\" content=\"text/html; charset=utf-8\" />\r\n\r\n\t\t<base href=\"".$config->site->url."admin/\" /><title>Dashboard / phpVibe</title> <link rel=\"shortcut icon\" type=\"image/x-icon\" href=\"application/views/mokoala-default/themes/default/img/icon.ico\" />\r\n\r\n\t\t<link type=\"text/css\" media=\"screen\" rel=\"stylesheet\" href=\"application/views/mokoala-default/themes/default/css/reset.css\" />\r\n\r\n\t\t<link type=\"text/css\" media=\"screen\" rel=\"stylesheet\" href=\"application/views/mokoala-default/themes/default/css/screen.css\" />\r\n\r\n\t\t<link type=\"text/css\" media=\"screen\" rel=\"stylesheet\" href=\"application/views/mokoala-default/themes/default/js/jquery.wysiwyg/jquery.wysiwyg.css\" />\r\n\r\n\t\t<script language=\"javascript\" type=\"text/javascript\" src=\"application/views/mokoala-default/themes/default/js/jquery.js\"></script>\r\n\r\n\t\t<script language=\"javascript\" type=\"text/javascript\" src=\"application/views/mokoala-default/themes/default/js/jquery.wysiwyg/jquery.wysiwyg.js\"></script>\r\n\r\n\t\t<script language=\"javascript\" type=\"text/javascript\" src=\"application/views/mokoala-default/themes/default/js/jquery.wysiwyg/controls/wysiwyg.link.js\"></script>\r\n\r\n\t\t<script language=\"javascript\" type=\"text/javascript\" src=\"application/views/mokoala-default/themes/default/js/main.js\"></script>\r\n\r\n\t</head>\r\n\r\n\t\r\n\r\n\t<body>\r\n\r\n\t\t <div id=\"content\" class=\"clear-fix\">\t \r\n\r\n\r\n <div class=\"block\">\t\r\n\t\t\t".$h1." <br />\r\n\t\t\t".$licenceform."\r\n\t\t\t</div>\r\n\t\t\t</div>\r\n\t\t\t\r\n\t\t</body>\r\n</html>\t\t";
}
exit( );
}
class MK_DashboardController extends MK_DefaultController
{
public function _init( )
{
parent::_init( );
$this->getView( )->getHead( )->prependTitle( "Dashboard" );
}
public function sectionIndex( )
{
$config = MK_Config::getinstance( );
$message_list = array( );
if ( $config->core->mode == MK_Core::MODE_DEMO )
{
$message_list[] = array(
"type" => "warning",
"message" => "<strong>".$config->instance->name."</strong> is currently running in demonstration mode. Editing and deleting records is disabled. You can create records, however."
);
}
if ( empty( $config->licence->key ) )
{
$message_list[] = array(
"type" => "warning",
"message" => "<strong>".$config->instance->name."</strong> needs a serial key. Please get one from phpVibe.com or the website will self-shutdown at some point.."
);
}
if ( !function_exists( "json_encode" ) )
{
$message_list[] = array( "type" => "warning", "message" => "Cannot find the function 'json_encode' - This is used for some extended JavaScript functionality." );
}
if ( !function_exists( "curl_init" ) )
{
$message_list[] = array( "type" => "warning", "message" => "cURL library not installed - This is used for downloading resources located remotely." );
}
if ( !class_exists( "ZipArchive" ) )
{
$message_list[] = array( "type" => "warning", "message" => "Cannot find the 'ZipArchive' library - This is used for performing a backup." );
}
if ( !ini_set( "memory_limit", "20M" ) )
{
$message_list[] = array( "type" => "warning", "message" => "Cannot use 'ini_set'." );
}
else
{
ini_restore( "memory_limit" );
}
if ( !is_writable( "../".$config->site->upload_path ) )
{
$message_list[] = array(
"type" => "warning",
"message" => "Uploads folder is not writable '../".$config->site->upload_path."' Please chmod to 0777."
);
}
if ( !is_writable( "../tpl/img/thumbs" ) )
{
$message_list[] = array( "type" => "warning", "message" => "Thumbs folder is not writable '../tpl/img/thumbs/' Please chmod to 0777." );
}
if ( !is_writable( "resources/backups" ) )
{
$message_list[] = array( "type" => "warning", "message" => "Backups folder is not writable 'resources/backups/' Please chmod to 0777." );
}
if ( !is_writable( "resources/restore" ) )
{
$message_list[] = array( "type" => "warning", "message" => "Restore folder is not writable 'resources/restore/' Please chmod to 0777." );
}
if ( !set_time_limit( 0 ) )
{
$message_list[] = array( "type" => "warning", "message" => "Cannot use 'set_time_limit'." );
}
else
{
ini_restore( "time_limit" );
}
$backup_type = MK_RecordModuleManager::getfromtype( "backup" );
$backup_search = array(
array( "literal" => "`date_time` > DATE_SUB(NOW(), INTERVAL 30 DAY)" )
);
$backup_records = $backup_type->searchRecords( $backup_search );
if ( count( $backup_records ) == 0 )
{
$message_list[] = array(
"type" => "warning",
"message" => "You have not <a href=\"".$this->getView( )->uri( array( "controller" => "dashboard", "section" => "backup" ) )."\">backed up</a> within the last 30 days."
);
}
if ( count( $message_list ) === 0 )
{
$message_list[] = array( "type" => "information", "message" => "There are currently no system notifications." );
}
$this->getView( )->message_list = $message_list;
}
public function sectionFileManager( )
{
$config = MK_Config::getinstance( );
$this->getView( )->getHead( )->prependTitle( "File Manager" );
$messages = array( );
$files = array( );
$files_to_delete = array( );
if ( $get_file = MK_Request::getquery( "file-select" ) )
{
$files_to_delete[] = $get_file;
}
else if ( $post_files = MK_Request::getpost( "file-select" ) )
{
$files_to_delete = $post_files;
}
if ( 0 < count( $files_to_delete ) )
{
foreach ( $files_to_delete as $file )
{
$file = "../".$config->site->upload_path.$file;
$current_file = new MK_File( $file );
$current_file->delete( );
}
$messages[] = new MK_Message( "success", "The selected files were successfully deleted. <a href=\"".$this->getView( )->uri( )."\">Return to file list</a>." );
}
else
{
if ( !is_readable( "../".$config->site->upload_path ) )
{
$messages[] = new MK_Message( "error", "The folder '../".$config->site->upload_path."' cannot be read. Please chmod this folder to 0777." );
}
else
{
$paginator = new MK_Paginator( );
$paginator->setPage( MK_Request::getparam( "page", 1 ) )->setPerPage( 10 );
$file_list = scandir( "../".$config->site->upload_path );
foreach ( $file_list as $file )
{
if ( $file === "index.php" )
{
continue;
}
$file = "../".$config->site->upload_path.$file;
if ( $file != "." && $file != ".." && !is_dir( $file ) )
{
$files[] = new MK_File( $file );
}
}
$paginator->setTotalRecords( count( $files ) );
$files = array_splice( $files, $paginator->getRecordStart( ), $paginator->getPerPage( ) );
$this->getView( )->paginator = $paginator->render( $this->getView( )->uri( array( "page" => "{page}" ) ) );
}
if ( count( $files ) === 0 )
{
$messages[] = new MK_Message( "information", "There are no files to display." );
}
$this->getView( )->files = $files;
}
$this->getView( )->messages = $messages;
}
public function sectionBackup( )
{
$config = MK_Config::getinstance( );
$this->getView( )->getHead( )->prependTitle( "Backup" );
$form_settings = array(
"attributes" => array( "class" => "standard clear-fix large" )
);
$form_structure = array(
"backup_confirm" => array(
"type" => "select",
"options" => array( 0 => "No", 1 => "Yes" ),
"label" => "Start backup?",
"validation" => array(
"boolean_true" => array( )
)
),
"backup_submit" => array(
"type" => "submit",
"attributes" => array( "value" => "Confirm" )
)
);
$form = new MK_Form( $form_structure, $form_settings );
$this->getView( )->form = $form->render( );
if ( $form->isSuccessful( ) )
{
$messages = array( );
try
{
if ( !class_exists( "ZipArchive" ) )
{
throw new MK_Exception( "Cannot find the 'ZipArchive' library - This is used for performing a backup." );
}
$this->getView( )->setDisplayPath( "dashboard/backup-processed" );
ini_set( "memory_limit", "200M" );
set_time_limit( 0 );
$config = MK_Config::getinstance( );
$zip = new MK_ZipArchive( );
$timestamp = time( );
$file_name = "resources/backups/backup-".$timestamp.".zip";
if ( $zip->open( $file_name, ZIPARCHIVE::CREATE ) !== true )
{
throw new MK_Exception( "Could not create backup file '{$file_name}'. Please ensure this directory is writable." );
}
$message_list = array( );
( new RecursiveDirectoryIterator( ) );
$iterator = new RecursiveIteratorIterator( "../tpl/uploads/" );
foreach ( $iterator as $key => $value )
{
$filename = basename( $key );
if ( !$zip->addFile( $key, "uploads/".$filename ) )
{
$messages[] = new MK_Message( "warning", "Cannot add file '{$key}' to archive - It may be corrupt or too large." );
}
}
$database_backup = "resources/backups/database-".$timestamp.".sql";
$mysql_dump = new MK_MySQLDump( $config->db->name, $database_backup, false, false );
$mysql_dump->doDump( );
if ( !$zip->addFile( $database_backup, "database/database.sql" ) )
{
$messages[] = new MK_Message( "warning", "Cannot add file 'database.sql' to archive - It may be corrupt or too large." );
}
unlink( $database_backup );
$backup_type = MK_RecordModuleManager::getfromtype( "backup" );
$new_backup = MK_RecordManager::getnewrecord( $backup_type->getId( ) );
$new_backup->setFile( "admin/".$file_name )->save( );
$this->getView( )->backup = $new_backup;
$messages[] = new MK_Message( "success", "Your backup has been successfully created. You can restore backups using the <a href=\"".$this->getView( )->uri( array( "controller" => "backups" ) )."\">backups module</a>." );
$zip->close( );
}
catch ( Exception $e )
{
$messages[] = new MK_Message( "error", $e->getMessage( ) );
}
$this->getView( )->messages = $messages;
}
}
public function sectionSettings( )
{
$config = MK_Config::getinstance( );
$this->getView( )->getHead( )->prependTitle( "Settings" );
$form_settings = array(
"attributes" => array( "class" => "standard clear-fix large" )
);
$form_structure = array( );
$form_structure['licence_key'] = array(
"type" => "text",
"label" => "Licence Key",
"tooltip" => "This is licence key you have created for this domain at phpVibe.com.",
"fieldset" => "Video Configs",
"value" => $config->licence->key
);
$form_structure['video_storage'] = array(
"type" => "select",
"options" => array( 1 => "Youtube only. Very lightweight", 2 => "Store videos data from Youtube" ),
"label" => "Video Storage",
"tooltip" => "Select how your video portal behaves. Selecting storage will allow counting views and display most viewed videos..but it will also use more server resources.",
"fieldset" => "Video Configs",
"value" => $config->video->storage
);
$form_structure['video_player'] = array(
"type" => "select",
"options" => array( 1 => "Use Youtube player", 2 => "Use JwPlayer" ),
"label" => "Video Player",
"tooltip" => "Select what video player your prefer.",
"fieldset" => "Video Configs",
"value" => $config->video->player
);
foreach ( $config->db->components as $component )
{
$module_settings = "resources/components/".$component."/settings.php";
if ( is_file( $module_settings ) )
{
require_once( $module_settings );
}
}
if ( $config->core->mode === MK_Core::MODE_FULL )
{
$form_structure['db_host'] = array(
"type" => "text",
"label" => "Host",
"fieldset" => "Database",
"value" => $config->db->host
);
$form_structure['db_username'] = array(
"type" => "text",
"label" => "Username",
"fieldset" => "Database",
"value" => $config->db->username
);
$form_structure['db_password'] = array(
"type" => "text",
"label" => "Password",
"fieldset" => "Database",
"value" => $config->db->password,
"attributes" => array( "type" => "password" )
);
$form_structure['db_name'] = array(
"type" => "text",
"label" => "Database name",
"fieldset" => "Database",
"value" => $config->db->name
);
}
$form_structure['site_facebook_app_id'] = array(
"type" => "text",
"label" => "Facebook App ID",
"fieldset" => "External Services",
"value" => $config->site->facebook->app_id
);
$form_structure['site_facebook_app_secret'] = array(
"type" => "text",
"label" => "Facebook App Secret",
"fieldset" => "External Services",
"value" => $config->site->facebook->app_secret
);
$form_structure['site_facebook_login'] = array(
"type" => "select",
"options" => array( 0 => "No", 1 => "Yes" ),
"label" => "Facebook Login",
"tooltip" => "Can users login to the site using their Facebook account?",
"fieldset" => "External Services",
"value" => $config->site->facebook->login
);
$form_structure['site_twitter_app_key'] = array(
"type" => "text",
"label" => "Twitter App Key",
"fieldset" => "External Services",
"value" => $config->site->twitter->app_key
);
$form_structure['site_twitter_app_secret'] = array(
"type" => "text",
"label" => "Twitter App Secret",
"fieldset" => "External Services",
"value" => $config->site->twitter->app_secret
);
$form_structure['site_twitter_login'] = array(
"type" => "select",
"options" => array( 0 => "No", 1 => "Yes" ),
"label" => "Twitter Login",
"tooltip" => "Can users login to the site using their Twitter account?",
"fieldset" => "External Services",
"value" => $config->site->twitter->login
);
$form_structure['site_name'] = array(
"type" => "text",
"label" => "Name",
"fieldset" => "Website",
"validation" => array(
"instance" => array( )
),
"value" => $config->site->name
);
$form_structure['site_timezone'] = array(
"type" => "select",
"options" => MK_Utility::gettimezonelist( ),
"label" => "Timezone",
"fieldset" => "Website",
"validation" => array(
"instance" => array( )
),
"value" => $config->site->timezone
);
$form_structure['site_valid_file_extensions'] = array(
"type" => "textarea",
"label" => "File extensions",
"tooltip" => "The following file types can be uploaded to the site. Separate with a comma ','.",
"fieldset" => "Website",
"validation" => array(
"instance" => array( )
),
"value" => implode( ", ", ( array )$config->site->valid_file_extensions )
);
$form_structure['site_email'] = array(
"type" => "text",
"label" => "Email address",
"fieldset" => "Website",
"validation" => array(
"email" => array( ),
"instance" => array( )
),
"value" => $config->site->email
);
$form_structure['email_signature'] = array(
"type" => "textarea",
"attributes" => array( "class" => "input-textarea-small" ),
"label" => "Email signature",
"tooltip" => "This will be appended to the bottom of any emails sent to users. This field is HTML.",
"fieldset" => "Website",
"value" => $config->site->email_signature
);
$form_structure['site_url'] = array(
"type" => "text",
"label" => "URL",
"fieldset" => "Website",
"validation" => array(
"url" => array( ),
"instance" => array( )
),
"value" => $config->site->url
);
$form_structure['site_date_format'] = array(
"type" => "text",
"label" => "Date format",
"validation" => array(
"instance" => array( )
),
"fieldset" => "Website",
"value" => $config->site->date_format
);
$form_structure['site_time_format'] = array(
"type" => "text",
"label" => "Date format",
"validation" => array(
"instance" => array( )
),
"fieldset" => "Website",
"value" => $config->site->time_format
);
$form_structure['site_template'] = array(
"type" => "select",
"options" => array( ),
"label" => "Template",
"fieldset" => "Website",
"value" => $config->template."/".$config->template_theme
);
$form_structure['user_timeout'] = array(
"type" => "text",
"label" => "User login time",
"validation" => array(
"instance" => array( ),
"integer" => array( )
),
"tooltip" => "This field defines how long users will be signed in for (in seconds). After this period users will need to login again.",
"fieldset" => "Website",
"value" => $config->site->user_timeout
);
$form_structure['search_submit'] = array(
"type" => "submit",
"attributes" => array( "value" => "Save Changes" )
);
$handle = scandir( "application/views" );
$components_core = array( );
$components_optional = array( );
foreach ( $handle as $template_folder )
{
if ( $template_folder != "." && $template_folder != ".." && is_dir( "application/views/".$template_folder ) )
{
$template_details = simplexml_load_file( "application/views/".$template_folder."/details.xml" );
$template_name = ( boolean )$template_details->name;
$form_structure['site_template']['options'][$template_name] = array( );
$theme_handle = scandir( "application/views/".$template_folder."/themes" );
foreach ( $theme_handle as $theme_folder )
{
if ( $theme_folder != "." && $theme_folder != ".." && is_dir( "application/views/".$template_folder."/themes/".$theme_folder ) )
{
$theme_details = simplexml_load_file( "application/views/".$template_folder."/themes/".$theme_folder."/details.xml" );
$form_structure['site_template']['options'][$template_name][$template_folder."/".$theme_folder] = ( boolean )$theme_details->name." - By ".( boolean )$theme_details->author;
}
}
}
}
$form = new MK_Form( $form_structure, $form_settings );
if ( $form->isSuccessful( ) )
{
$message = array( );
$config_data = array( );
$fields = $form->getFields( );
$config_data['licence.key'] = $form->getField( "licence_key" )->getValue( );
$config_data['video.storage'] = $form->getField( "video_storage" )->getValue( );
$config_data['video.player'] = $form->getField( "video_player" )->getValue( );
$config_data['licence.checked'] = time( );
if ( $config->core->mode === MK_Core::MODE_FULL )
{
$config_data['db.host'] = $form->getField( "db_host" )->getValue( );
$config_data['db.name'] = $form->getField( "db_name" )->getValue( );
$config_data['db.username'] = $form->getField( "db_username" )->getValue( );
$config_data['db.password'] = $form->getField( "db_password" )->getValue( );
}
$config_data['site.facebook.app_id'] = $form->getField( "site_facebook_app_id" )->getValue( );
$config_data['site.facebook.app_secret'] = $form->getField( "site_facebook_app_secret" )->getValue( );
$config_data['site.facebook.login'] = $form->getField( "site_facebook_login" )->getValue( );
$config_data['site.twitter.app_key'] = $form->getField( "site_twitter_app_key" )->getValue( );
$config_data['site.twitter.app_secret'] = $form->getField( "site_twitter_app_secret" )->getValue( );
$config_data['site.twitter.login'] = $form->getField( "site_twitter_login" )->getValue( );
$valid_file_extensions = explode( ",", $form->getField( "site_valid_file_extensions" )->getValue( ) );
$valid_file_extensions = array_map( "trim", $valid_file_extensions );
$valid_file_extensions = array_filter( $valid_file_extensions );
$valid_file_extensions = array_unique( $valid_file_extensions );
$config_data['site.valid_file_extensions'] = implode( ",", $valid_file_extensions );
$config_data['site.name'] = $form->getField( "site_name" )->getValue( );
$config_data['site.timezone'] = $form->getField( "site_timezone" )->getValue( );
$config_data['site.email'] = $form->getField( "site_email" )->getValue( );
$config_data['site.email_signature'] = $form->getField( "email_signature" )->getValue( );
$config_data['site.url'] = $form->getField( "site_url" )->getValue( );
$config_data['site.date_format'] = $form->getField( "site_date_format" )->getValue( );
$config_data['site.time_format'] = $form->getField( "site_time_format" )->getValue( );
$config_data['site.template'] = $form->getField( "site_template" )->getValue( );
$config_data['user.timeout'] = $form->getField( "user_timeout" )->getValue( );
foreach ( $fields as $field_key => $field_value )
{
list( $config_area, $config_section, $config_node ) = config_area if ( $config_area === "extensions" )
{
$config_data["extensions.".$config_section.".".$config_node] = $field_value->getValue( );
}
}
if ( $config->core->mode === MK_Core::MODE_DEMO )
{
$messages[] = new MK_Message( "warning", "Settings cannot be updated as <strong>".$config->instance->name."</strong> is running in demonstration mode." );
}
else
{
$messages[] = new MK_Message( "success", "Your settings have been updated. <a href=\"".$this->getView( )->uri( array( "controller" => "dashboard", "section" => "settings" ) )."\">Make more changes</a> or <a href=\"".$this->getView( )->uri( array( "controller" => "dashboard", "section" => "settings" ) )."\">return to the dashboard</a>." );
MK_Utility::writeconfig( $config_data );
}
$this->getView( )->messages = $messages;
$this->getView( )->setDisplayPath( "dashboard/settings-processed" );
}
else
{
$this->getView( )->form = $form->render( );
}
}
}
?>
|
|
|
|
|
|
|
www.waraxe.us Forum Index -> PHP script decode requests
You cannot post new topics in this forum You cannot reply to topics in this forum You cannot edit your posts in this forum You cannot delete your posts in this forum You cannot vote in polls in this forum
|
All times are GMT
Page 1 of 1
|
|
|
Powered by phpBB © 2001-2008 phpBB Group
|
|
|
|
|
|