Exemple #1
0
/**
 * Get or set system configuration.
 * 
 * @param string $key
 * @param string $value (optional)
 * @return mixed
 */
function config($key, $value = null)
{
    if ($value === null) {
        return Rhymix\Framework\Config::get($key);
    } else {
        Rhymix\Framework\Config::set($key, $value);
    }
}
 /**
  * Update FTP configuration.
  */
 function procAdminUpdateFTPInfo()
 {
     $vars = Context::getRequestVars();
     $vars->ftp_path = str_replace('\\', '/', rtrim(trim($vars->ftp_path), '/\\')) . '/';
     if (strlen($vars->ftp_pass) === 0) {
         $vars->ftp_pass = Rhymix\Framework\Config::get('ftp.pass');
     }
     // Test FTP connection.
     if ($vars->ftp_sftp !== 'Y') {
         if (!($conn = @ftp_connect($vars->ftp_host, $vars->ftp_port, 3))) {
             return new Object(-1, 'msg_ftp_not_connected');
         }
         if (!@ftp_login($conn, $vars->ftp_user, $vars->ftp_pass)) {
             return new Object(-1, 'msg_ftp_invalid_auth_info');
         }
         if (!@ftp_pasv($conn, $vars->ftp_pasv === 'Y')) {
             return new Object(-1, 'msg_ftp_cannot_set_passive_mode');
         }
         if (!@ftp_chdir($conn, $vars->ftp_path)) {
             return new Object(-1, 'msg_ftp_invalid_path');
         }
         ftp_close($conn);
     } else {
         if (!function_exists('ssh2_connect')) {
             return new Object(-1, 'disable_sftp_support');
         }
         if (!($conn = ssh2_connect($vars->ftp_host, $vars->ftp_port))) {
             return new Object(-1, 'msg_ftp_not_connected');
         }
         if (!@ssh2_auth_password($conn, $vars->ftp_user, $vars->ftp_pass)) {
             return new Object(-1, 'msg_ftp_invalid_auth_info');
         }
         if (!@($sftp = ssh2_sftp($conn))) {
             return new Object(-1, 'msg_ftp_sftp_error');
         }
         if (!@ssh2_sftp_stat($sftp, $vars->ftp_path . 'common/defaults/config.php')) {
             return new Object(-1, 'msg_ftp_invalid_path');
         }
         unset($sftp, $conn);
     }
     // Save settings.
     Rhymix\Framework\Config::set('ftp.host', $vars->ftp_host);
     Rhymix\Framework\Config::set('ftp.port', $vars->ftp_port);
     Rhymix\Framework\Config::set('ftp.user', $vars->ftp_user);
     Rhymix\Framework\Config::set('ftp.pass', $vars->ftp_pass);
     Rhymix\Framework\Config::set('ftp.path', $vars->ftp_path);
     Rhymix\Framework\Config::set('ftp.pasv', $vars->ftp_pasv === 'Y');
     Rhymix\Framework\Config::set('ftp.sftp', $vars->ftp_sftp === 'Y');
     Rhymix\Framework\Config::save();
     $this->setMessage('success_updated');
     $this->setRedirectUrl(Context::get('success_return_url') ?: getNotEncodedUrl('', 'module', 'admin', 'act', 'dispAdminConfigFtp'));
 }
Exemple #3
0
/**
 * Convert YYYYMMDDHHIISS format to Unix timestamp.
 * This function assumes the internal timezone.
 *
 * @param string $str Time in YYYYMMDDHHIISS format
 * @return int
 */
function ztime($str)
{
    if (!$str) {
        return null;
    }
    $year = (int) substr($str, 0, 4);
    $month = (int) substr($str, 4, 2) ?: 1;
    $day = (int) substr($str, 6, 2) ?: 1;
    if (strlen($str) >= 8) {
        $hour = (int) substr($str, 8, 2);
        $min = (int) substr($str, 10, 2);
        $sec = (int) substr($str, 12, 2);
    } else {
        $hour = $min = $sec = 0;
    }
    $timestamp = gmmktime($hour, $min, $sec, $month, $day, $year);
    $offset = Rhymix\Framework\Config::get('locale.internal_timezone') ?: date('Z', $timestamp);
    return $timestamp - $offset;
}
Exemple #4
0
 /**
  * Display FTP Configuration(settings) page
  * @return void
  */
 function dispAdminConfigFtp()
 {
     Context::set('ftp_info', Rhymix\Framework\Config::get('ftp'));
     Context::set('sftp_support', function_exists('ssh2_sftp'));
     $this->setTemplateFile('config_ftp');
 }
Exemple #5
0
 /**
  * Find selected languages to serve in the site
  *
  * @return array Selected languages
  */
 public static function loadLangSelected()
 {
     static $lang_selected = array();
     if (!count($lang_selected)) {
         $supported = Rhymix\Framework\Lang::getSupportedList();
         $selected = Rhymix\Framework\Config::get('locale.enabled_lang');
         if ($selected) {
             foreach ($selected as $lang) {
                 $lang_selected[$lang] = $supported[$lang]['name'];
             }
         } else {
             $lang_selected = array_map(function ($val) {
                 return $val['name'];
             }, $supported);
         }
     }
     return $lang_selected;
 }
 /**
  * Save the exception configuration.
  */
 public function procAdvanced_MailerAdminInsertExceptions()
 {
     // Get the current configuration.
     $config = $this->getConfig();
     $sending_methods = Rhymix\Framework\Mail::getSupportedDrivers();
     // Get and validate the list of exceptions.
     $exceptions = array();
     for ($i = 1; $i <= 3; $i++) {
         $method = strval(Context::get('exception_' . $i . '_method'));
         $domains = trim(Context::get('exception_' . $i . '_domains'));
         if ($method !== '' && $domains !== '') {
             if ($method !== 'default' && !isset($sending_methods[$method])) {
                 return new Object(-1, 'msg_advanced_mailer_sending_method_is_invalid');
             }
             if ($method !== 'default') {
                 foreach ($this->sending_methods[$method]['required'] as $conf_name) {
                     if (!Rhymix\Framework\Config::get("mail.{$method}.{$conf_name}")) {
                         return new Object(-1, sprintf(Context::getLang('msg_advanced_mailer_sending_method_is_not_configured'), Context::getLang('cmd_advanced_mailer_sending_method_' . $method)));
                     }
                 }
             }
             $exceptions[$i]['method'] = $method;
             $exceptions[$i]['domains'] = array();
             $domains = array_map('trim', preg_split('/[,\\n]/', $domains, null, PREG_SPLIT_NO_EMPTY));
             foreach ($domains as $domain) {
                 if (strpos($domain, 'xn--') !== false) {
                     $domain = Rhymix\Framework\URL::decodeIdna($domain);
                 }
                 $exceptions[$i]['domains'][] = $domain;
             }
         }
     }
     // Save the new configuration.
     $config->exceptions = $exceptions;
     $output = getController('module')->insertModuleConfig('advanced_mailer', $config);
     if ($output->toBool()) {
         $this->setMessage('success_registed');
     } else {
         return $output;
     }
     if (Context::get('success_return_url')) {
         $this->setRedirectUrl(Context::get('success_return_url'));
     } else {
         $this->setRedirectUrl(getNotEncodedUrl('', 'module', 'admin', 'act', 'dispAdvanced_mailerAdminExceptions'));
     }
 }
Exemple #7
0
                }
                $filename .= isset($matches[3]) && $matches[3] ? '.' . strtolower($matches[3]) : '.class';
                $filename .= '.php';
            }
    }
    if ($filename && file_exists($filename)) {
        include $filename;
    }
});
/**
 * Also include the Composer autoloader.
 */
require_once RX_BASEDIR . 'vendor/autoload.php';
/**
 * Load system configuration.
 */
Rhymix\Framework\Config::init();
/**
 * Install the debugger.
 */
Rhymix\Framework\Debug::registerErrorHandlers(error_reporting());
/**
 * Set the internal timezone.
 */
$internal_timezone = Rhymix\Framework\DateTime::getTimezoneNameByOffset(config('locale.internal_timezone'));
date_default_timezone_set($internal_timezone);
/**
 * Initialize the cache handler.
 */
Rhymix\Framework\Cache::init(Rhymix\Framework\Config::get('cache'));