Вход Регистрация
Файл: adultscript-2.0.3-pro/files/admin/modules/main/components/config.php
Строк: 330
<?php
defined
('_VALID') or die('Restricted Access!');
class 
VComponent_Admin_main_config
{
    public function 
__construct()
    {
    }
    
    public function 
render()
    {
        
$cfg     = VF::cfg('core.config');
        
$tpl    = VF::factory('template');
        
$db         = VF::factory('database');
        
        
$cache_drivers   = $this->get_cache_drivers();
        
$session_drivers = $this->get_session_drivers();
        
        
$errors       = array();
        
$messages     = array();
        
$warnings     = array();

        
$languages  = $db->get_rows("SELECT code, name FROM #__language ORDER BY name ASC");
        
$timezones    = VF::cfg('library.timezones');
        
        if (isset(
$_POST['submit_config'])) {
            
$filter              = &VF::factory('filter');
            
$site_name             = $filter->get('site_name');
            
$offline            = $filter->get('offline', 'INT');
            
$offline_message     = $filter->get('offline_message');
            
$meta_desc            = $filter->get('meta_desc');
            
$meta_keys            = $filter->get('meta_keys');
            
$meta_title            = $filter->get('meta_title', 'INT');
            
$meta_author        = $filter->get('meta_author', 'INT');
            
$email_site            = $filter->get('email_site');
             
$email_admin        = $filter->get('email_admin');
            
$email_noreply        = $filter->get('email_noreply');
            
$secret                = $filter->get('secret');
            
$error                = $filter->get('error', 'INT');
            
$debug                = $filter->get('debug', 'INT');
            
$profile            = $filter->get('profile', 'INT');
            
$log                = $filter->get('log', 'INT');
            
$cache                = $filter->get('cache', 'INT');
            
$cache_driver         = $filter->get('cache_driver');
            
$cache_lifetime        = $filter->get('cache_lifetime', 'INT');
            
$mservers            = $filter->get('memcache_servers');
            
$mpersistent        = (int) trim($_POST['memcache_persistent']);
            
$mcompression        = (int) trim($_POST['memcache_compression']);
            
$template_cache        = $filter->get('template_cache', 'INT');
            
$session_name         = $filter->get('session_name');
            
$session_driver      = $filter->get('session_driver');
            
$session_lifetime    = $filter->get('session_lifetime', 'INT');
            
$ads                = $filter->get('ads', 'INT');
            
$timezone            = $filter->get('timezone');
            
$php_cli_path        = $filter->get('php_cli_path');
            
$mailer                = $filter->get('mailer');
            
$sendmail            = $filter->get('sendmail');
            
$smtp                = $filter->get('smtp', 'INT');
            
$smtp_auth            = $filter->get('smtp_auth', 'INT');
            
$smtp_host            = $filter->get('smtp_host');
            
$smtp_port            = $filter->get('smtp_port', 'INT');
            
$smtp_username        = $filter->get('smtp_username');
            
$smtp_password        = $filter->get('smtp_password');
            
$smtp_prefix        = $filter->get('smtp_prefix');
            
$age_check            = $filter->get('age_check', 'INT');
            
$sphinx_host        = $filter->get('sphinx_host');
            
$sphinx_port        = (int) trim($_POST['sphinx_port']);
            
$sphinx_index        = $filter->get('sphinx_index');
            
$comment_delay        = (int) trim($_POST['comment_delay']);
            
$akismet_enabled    = (int) trim($_POST['akismet_enabled']);
            
$akismet_key        = trim($_POST['akismet_key']);
            
$multi_language        = (int) trim($_POST['multi_language']);
            
            if (
$site_name == '') {
                
$errors[]    = 'Site name cannot be left blank!';
            }
            
            if (!
VValid::length($tpl->cfg['meta_desc'], 1, 155)) {
                
$warnings[] = 'Meta description should not contain more than 155 characters!';
            }
            
            if (!
VValid::length($tpl->cfg['meta_keys'], 1, 180)) {
                
$warnings[] = 'Meta keywords should not contain more than 180 characters!';
            }
            
            if (
$cfg['offline'] == '1') {
                if (
$offline_message == '') {
                    
$errors[] = 'Offline message cannot be left blank!';
                }
            }
            
            if (
$email_site == '') {
                
$errors[]    = 'Please enter the site email address!';
            } elseif (!
VValid::email($email_site)) {
                
$errors[]    = 'Site email is not a valid email address!';
            }

            if (
$email_admin == '') {
                
$errors[]    = 'Please enter the admin email address!';
            } elseif (!
VValid::email($email_admin)) {
                
$errors[]    = 'Admin email is not a valid email address!';
            }

            if (
$email_noreply == '') {
                
$errors[]    = 'Please enter the no-reply email address!';
            } elseif (!
VValid::email($email_noreply)) {
                
$errors[]    = 'No-reply email is not a valid email address!';
            }
            
            
$cache_driver_found = FALSE;
            foreach (
$cache_drivers as $driver) {
                if (
$cache_driver == $driver['value']) {
                    
$cache_driver_found = TRUE;
                    break;
                }
            }
            
            if (
$cache_driver_found === FALSE) {
                
$errors[]    = 'Cache driver invalid! What exactly did you select!?';
            }
            
            if (
$session_name == '') {
                
$errors[]    = 'Please enter the session name string!';
            }

            
$session_driver_found = FALSE;
            foreach (
$session_drivers as $driver) {
                if (
$session_driver == $driver['value']) {
                    
$session_driver_found = TRUE;
                    break;
                }
            }
            
            if (
$session_driver_found === FALSE) {
                
$errors[]    = 'Invalid session driver! What exactly did you select!?';
            }
            
            if (!
file_exists($php_cli_path) OR !is_file($php_cli_path) OR
                !
is_executable($php_cli_path)) {
                
$warnings[] = 'PHP-CLI path invalid (could not find php binary at the specified path)!';
            }
            
            if (
$akismet_enabled && !$akismet_key) {
                
$errors[]    = 'Please enter your akismet key to use the akismet spam prevention service!';
            }
            
            if (!
$errors) {
                
// we need to update the timezone here
                
if ($timezone != date_default_timezone_get()) {
                    
date_default_timezone_set($timezone);
                }
            
                
$ncfg                        = array();
                
$ncfg['site_name']             = $site_name;
                
$ncfg['offline']            = (string) $offline;
                
$ncfg['offline_message']    = $offline_message;
                
$ncfg['meta_desc']            = $meta_desc;
                
$ncfg['meta_keys']            = $meta_keys;
                
$ncfg['meta_title']            = $meta_title;
                
$ncfg['meta_author']        = $meta_author;
                
$ncfg['email_site']            = $email_site;
                
$ncfg['email_admin']        = $email_admin;
                
$ncfg['email_noreply']        = $email_noreply;
                
$ncfg['debug']                = (string) $debug;
                
$ncfg['log']                = (string) $log;
                
$ncfg['error']                = (string) $error;
                
$ncfg['profile']            = (string) $profile;
                
$ncfg['cache']                = (string) $cache;
                
$ncfg['cache_driver']        = $cache_driver;
                
$ncfg['cache_lifetime']        = $cache_lifetime;
                
$ncfg['template_cache']        = $template_cache;
                
$ncfg['session_name']        = $session_name;
                
$ncfg['session_driver']        = $session_driver;
                
$ncfg['session_lifetime']    = (string) $session_lifetime;
                
$ncfg['ads']                = (string) $ads;
                
$ncfg['timezone']            = $timezone;
                
$ncfg['php_cli_path']        = $php_cli_path;
                
$ncfg['mailer']                = $mailer;
                
$ncfg['sendmail']            = $sendmail;
                
$ncfg['smtp']                = (string) $smtp;
                
$ncfg['smtp_auth']            = (string) $smtp_auth;
                
$ncfg['smtp_host']            = $smtp_host;
                
$ncfg['smtp_port']            = (string) $smtp_port;
                
$ncfg['smtp_username']        = $smtp_username;
                
$ncfg['smtp_password']        = $smtp_password;
                
$ncfg['smtp_prefix']        = $smtp_prefix;
                
$ncfg['age_check']            = (string) $age_check;
                
$ncfg['sphinx_host']        = (string) $sphinx_host;
                
$ncfg['sphinx_port']        = $sphinx_port;
                
$ncfg['sphinx_index']        = $sphinx_index;
                
$ncfg['editor']                = 'ckeditor';
                
$ncfg['template']            = $cfg['template'];
                
$ncfg['template_admin']        = $cfg['template_admin'];
                
$ncfg['language']            = (isset($cfg['language'])) ? $cfg['language'] : 'en-US';
                
$ncfg['multi_language']        = $multi_language;
                
                
$ncfg['memcache_persistent']    = $mpersistent;
                
$ncfg['memcache_compression']    = $mcompression;
                if (
$mservers != '') {
                    
$mservers            = explode(',', $mservers);
                    
$memcache_servers    = array();
                    foreach (
$mservers as $mserver) {
                        
$mserver             = explode(':', $mserver);
                        
$memcache_servers[] = array(
                            
'server' => $mserver['0'],
                            
'port'     => $mserver['1']
                        );
                    }
                }
                
$ncfg['memcache_servers']        = $memcache_servers;
                
                
$ncfg['google_webmasters']    = (isset($cfg['google_webmasters'])) ? $cfg['google_webmasters'] : '';
                
$ncfg['google_analytics']    = (isset($cfg['google_analytics'])) ? $cfg['google_analytics'] : '';
                
$ncfg['bing_validate']        = (isset($cfg['bing_validate'])) ? $cfg['bing_validate'] : '';
                
$ncfg['yahoo_explorer']        = (isset($cfg['yahoo_explorer'])) ? $cfg['yahoo_explorer'] : '';
                
                
$ncfg['comment_delay']        = $comment_delay;
                
$ncfg['akismet_enabled']    = $akismet_enabled;
                
$ncfg['akismet_key']        = $akismet_key;
                
                
$db->query("UPDATE #__config
                            SET config_cache = '"
.$db->escape(serialize($ncfg))."'
                            WHERE name = '"
.$db->escape($cfg['default'])."'
                            LIMIT 1"
);
                
VF::cache_set('config', $ncfg, 'config');
                
$messages[] = 'Configuration updated!';
            }
        }
        
        
$tpl->cfg = VF::cfg('core.config', TRUE, TRUE);
        if (
$tpl->cfg['memcache_servers']) {
            
$memcache_servers                 = array();
            foreach (
$tpl->cfg['memcache_servers'] as $server) {
                
$memcache_servers[] = $server['server'].':'.$server['port'];
            }
            
$tpl->cfg['memcache_servers'] = implode(',', $memcache_servers);
        }
    
        
$tpl->menu                 = 'main';
        
$tpl->submenu             = 'main_config';
        
$tpl->meta_title         = 'Admin::Configuration';
        
$tpl->errors            = $errors;
        
$tpl->messages            = $messages;
        
$tpl->warnings            = $warnings;
        
$tpl->cache_drivers     = $cache_drivers;
        
$tpl->session_drivers      = $session_drivers;
        
$tpl->languages            = $languages;
        
$tpl->timezones            = $timezones;
        
$tpl->load(array('header', 'main_config', 'footer'));
        
$tpl->display();
    }
    
    private function 
get_cache_drivers()
    {
        
$drivers   = array();
        
$drivers[] = array('value' => 'none', 'name' => 'None');
        
$drivers[] = array('value' => 'file', 'name' => 'File');

        if (
extension_loaded('apc')) {
            
$drivers[] = array('value' => 'apc', 'name' => 'APC');
        }

        if (
extension_loaded('eaccelerator')) {
            
$drivers[] = array('value' => 'eaccelerator', 'name' => 'EAccelerator');
        }

        if (
extension_loaded('memcache') && class_exists('Memcache')) {
            
$drivers[] = array('value' => 'memcache', 'name' => 'Memcache');
        }

        if (
extension_loaded('xcache')) {
            
$drivers[] = array('value' => 'xcache', 'name' => 'XCache');
        }
        
        return 
$drivers;
    }
    
    private function 
get_session_drivers()
    {
        
$drivers     = array();
        
$drivers[]  = array('value' => 'none', 'name' => 'None');
        
$drivers[]  = array('value' => 'database', 'name' => 'Database');

        if (
extension_loaded('memcache') && class_exists('Memcache')) {
            
$drivers[] = array('value' => 'memcache', 'name' => 'Memcache');
        }
        
        return 
$drivers;
    }
}
?>
Онлайн: 2
Реклама