Example #1
0
 public function initialise()
 {
     // File System
     $this->registry->set('filesystem', new Filesystem());
     // Config
     $this->registry->set('config', new Config());
     // Database
     $this->registry->set('db', new DB(DB_DRIVER, DB_HOSTNAME, DB_USERNAME, DB_PASSWORD, DB_DATABASE));
     // Store
     if (isset($_SERVER['HTTPS']) && ($_SERVER['HTTPS'] == 'on' || $_SERVER['HTTPS'] == '1')) {
         $store_query = $this->db->query("SELECT * FROM " . DB_PREFIX . "store WHERE REPLACE(`ssl`, 'www.', '') = '" . $this->db->escape('https://' . str_replace('www.', '', $_SERVER['HTTP_HOST']) . rtrim(dirname($_SERVER['PHP_SELF']), '/.\\') . '/') . "'");
     } else {
         $store_query = $this->db->query("SELECT * FROM " . DB_PREFIX . "store WHERE REPLACE(`url`, 'www.', '') = '" . $this->db->escape('http://' . str_replace('www.', '', $_SERVER['HTTP_HOST']) . rtrim(dirname($_SERVER['PHP_SELF']), '/.\\') . '/') . "'");
     }
     if ($store_query->num_rows) {
         $this->config->set('config_store_id', $store_query->row['store_id']);
     } else {
         $this->config->set('config_store_id', 0);
     }
     // Settings
     $query = $this->db->query("SELECT * FROM `" . DB_PREFIX . "setting` WHERE store_id = '0' OR store_id = '" . (int) $this->config->get('config_store_id') . "' ORDER BY store_id ASC");
     foreach ($query->rows as $result) {
         if (!$result['serialized']) {
             $this->config->set($result['key'], $result['value']);
         } else {
             $this->config->set($result['key'], unserialize($result['value']));
         }
     }
     if (!$store_query->num_rows) {
         $this->config->set('config_url', HTTP_SERVER);
         $this->config->set('config_ssl', HTTPS_SERVER);
     }
     // Loader
     $this->registry->set('load', new Loader($this->registry));
     // Trigger
     $this->registry->set('trigger', new Trigger($this->registry));
     // Url
     $this->registry->set('url', new Url($this->config->get('config_url'), $this->config->get('config_ssl'), $this->registry));
     // Uri
     $this->registry->set('uri', new Uri());
     // Log
     $this->registry->set('log', new Log($this->config->get('config_error_filename')));
     // Error Handler
     if ($this->config->get('config_error_display', 0) == 2) {
         ErrorHandler::register();
         ExceptionHandler::register();
     } else {
         set_error_handler(array($this, 'errorHandler'));
     }
     // Security
     $this->registry->set('security', new Security($this->registry));
     // Request
     $this->registry->set('request', new Request($this->registry));
     // Response
     $response = new Response();
     $response->addHeader('Content-Type: text/html; charset=utf-8');
     $response->setCompression($this->config->get('config_compression'));
     $this->registry->set('response', $response);
     // Cache
     $cache = new Cache($this->config->get('config_cache_storage', 'file'), $this->config->get('config_cache_lifetime', 86400));
     $this->registry->set('cache', $cache);
     // Session
     $this->registry->set('session', new Session());
     // Utility
     $utility = new Utility($this->registry);
     $this->registry->set('utility', $utility);
     // Language Detection
     $language = $utility->getLanguage();
     if (!isset($this->session->data['language']) || $this->session->data['language'] != $language['code']) {
         $this->session->data['language'] = $language['code'];
     }
     if (!isset($this->request->cookie['language']) || $this->request->cookie['language'] != $language['code']) {
         setcookie('language', $language['code'], time() + 60 * 60 * 24 * 30, '/', $this->request->server['HTTP_HOST']);
     }
     $this->config->set('config_language', $language['code']);
     $this->config->set('config_language_dir', $language['directory']);
     $this->config->set('config_language_id', $language['language_id']);
     // Language
     $this->registry->set('language', new Language($language['directory'], $this->registry));
     // Page Cache
     $pagecache = new Pagecache($this->registry);
     $pagecache->getPage();
     $this->registry->set('pagecache', $pagecache);
     // Document
     $this->registry->set('document', new Document());
     $this->trigger->fire('post.app.initialise');
 }
        echo '<b>' . $error . '</b>: ' . $errstr . ' in <b>' . $errfile . '</b> on line <b>' . $errline . '</b>';
    }
    if ($config->get('config_error_log')) {
        $log->write('PHP ' . $error . ':  ' . $errstr . ' in ' . $errfile . ' on line ' . $errline);
    }
    return true;
}
// Error Handler
set_error_handler('error_handler');
// Request
$request = new Request();
$registry->set('request', $request);
// Response
$response = new Response();
$response->addHeader('Content-Type: text/html; charset=utf-8');
$response->setCompression($config->get('config_compression'));
$registry->set('response', $response);
// Cache
$cache = new Cache('file');
$registry->set('cache', $cache);
// Session
$session = new Session();
$registry->set('session', $session);
// Language Detection
$languages = array();
$query = $db->query("SELECT * FROM `" . DB_PREFIX . "language` WHERE status = '1'");
foreach ($query->rows as $result) {
    $languages[$result['code']] = $result;
}
if (isset($session->data['language']) && array_key_exists($session->data['language'], $languages) && $languages[$session->data['language']]['status']) {
    $code = $session->data['language'];
Example #3
0
    $db->setAttribute(PDO::ATTR_DEFAULT_FETCH_MODE, PDO::FETCH_OBJ);
} catch (PDOException $e) {
    $error[] = $e->getMessage();
    exit;
}
// Init helpers
function canonical($language_id, $language_code, $url)
{
    return $language_id == DEFAULT_LANGUAGE_ID ? $url : str_replace(URL_BASE, URL_BASE . $language_code . '/', $url);
}
// Init request
$request = new Request();
// Init response
$response = new Response();
$response->addHeader('Content-Type: text/html; charset=utf-8');
$response->setCompression(GZIP_COMPRESSION_LEVEL);
// Init URL
$url = new Url($db, $request, $response, URL_BASE);
// Init sitemap
$sitemap = new Sitemap(URL_BASE);
$sitemap->setPath(DIR_BASE . DIR_SEPARATOR . 'public' . DIR_SEPARATOR);
// Get alt languages
$statement = $db->query('SELECT * FROM `language`');
$languages = array();
foreach ($statement->fetchAll() as $language) {
    $languages[$language->language_id] = $language->code;
}
// Add information Pages
foreach ($languages as $language_id => $language_code) {
    $sitemap->addItem(canonical($language_id, $language_code, $url->link('common/information/about')), '1.0', 'monthly');
    $sitemap->addItem(canonical($language_id, $language_code, $url->link('common/information/team')), '1.0', 'monthly');
Example #4
0
if (!isset($session->data['lang']) || $session->data['lang'] != $code) {
    $session->data['lang'] = $code;
}
if (!isset($request->cookie['lang']) || $request->cookie['lang'] != $code) {
    setcookie('lang', $code, time() + 60 * 60 * 24 * 30, '/', $request->server['HTTP_HOST']);
}
$config->set('config_lang', $languages[$code]['code']);
//lang
$registry->set('lang', new Lang($languages[$code]['directory']));
//validator
$validator = new Validator();
$registry->set('validator', $validator);
//response
$response = new Response();
$response->addHeader('Content-Type: text/html; charset=utf-8');
$response->setCompression($config->get('compression_level'));
$registry->set('response', $response);
//loader
$loader = new loader($registry);
$registry->set('load', $loader);
// Log
$loger = new Loger('logfile.log');
$registry->set('loger', $loger);
function error_handler($errno, $errstr, $errfile, $errline)
{
    global $loger, $config;
    // error suppressed with @
    if (error_reporting() === 0) {
        return false;
    }
    switch ($errno) {
Example #5
0
<?php

// Version
define('VERSION', '0.0.1');
// Configuration
require 'config.php';
//
require 'system/startup.php';
// Request
$request = new Request();
// Response
$response = new Response();
$response->addHeader('Content-Type: text/html; charset=utf-8');
$response->setCompression(0);
if ($request->server['REQUEST_METHOD'] == 'POST') {
    $json = array();
    $code = sha1(uniqid(mt_rand(), true));
    //`name` = '" . $db->escape($name) . "',
    //`filename` = '" . $db->escape($filename) . "',
    //выбираем исходник для картинки
    if ((int) $request->get['point'] > 10) {
        $_template = '3.jpg';
        $x = 380;
        $y = 270;
        $text = $request->get['point'] . ' ' . getNumEnding((int) $request->get['point'], array('услугу', 'услуги', 'услуг'));
        $json['share_title'] = 'Я собрал ' . $request->get['point'] . ' ' . getNumEnding((int) $request->get['point'], array('услугу', 'услуги', 'услуг'));
        $json['share_description'] = 'А ты сможешь лучше?';
    } elseif ((int) $request->get['point'] < 10 && (int) $request->get['point'] >= 5) {
        $_template = '2.jpg';
        $x = 450;
        $y = 232;
 public function __construct()
 {
     $this->loadConfiguration();
     // Startup
     require_once DIR_SYSTEM . 'startup.php';
     // Application Classes
     require_once DIR_SYSTEM . 'library/customer.php';
     require_once DIR_SYSTEM . 'library/affiliate.php';
     require_once DIR_SYSTEM . 'library/currency.php';
     require_once DIR_SYSTEM . 'library/tax.php';
     require_once DIR_SYSTEM . 'library/weight.php';
     require_once DIR_SYSTEM . 'library/length.php';
     require_once DIR_SYSTEM . 'library/cart.php';
     // Registry
     $this->registry = new Registry();
     // Loader
     $loader = new Loader($this->registry);
     $this->registry->set('load', $loader);
     // Config
     $config = new Config();
     $this->registry->set('config', $config);
     // Database
     $db = new DB(DB_DRIVER, DB_HOSTNAME, DB_USERNAME, DB_PASSWORD, DB_DATABASE);
     $this->registry->set('db', $db);
     // assume a HTTP connection
     $store_query = $db->query("SELECT * FROM " . DB_PREFIX . "store WHERE REPLACE(`url`, 'www.', '') = '" . $db->escape('http://' . str_replace('www.', '', $_SERVER['HTTP_HOST']) . rtrim(dirname($_SERVER['PHP_SELF']), '/.\\') . '/') . "'");
     if ($store_query->num_rows) {
         $config->set('config_store_id', $store_query->row['store_id']);
     } else {
         $config->set('config_store_id', 0);
     }
     // Settings
     $query = $db->query("SELECT * FROM " . DB_PREFIX . "setting WHERE store_id = '0' OR store_id = '" . (int) $config->get('config_store_id') . "' ORDER BY store_id ASC");
     foreach ($query->rows as $setting) {
         if (!$setting['serialized']) {
             $config->set($setting['key'], $setting['value']);
         } else {
             $config->set($setting['key'], unserialize($setting['value']));
         }
     }
     if (!$store_query->num_rows) {
         $config->set('config_url', HTTP_SERVER);
         $config->set('config_ssl', HTTPS_SERVER);
     }
     // Url
     $url = new Url($config->get('config_url'), $config->get('config_secure') ? $config->get('config_ssl') : $config->get('config_url'));
     $this->registry->set('url', $url);
     // Request
     $request = new Request();
     $this->registry->set('request', $request);
     // Response
     $response = new Response();
     $response->addHeader('Content-Type: text/html; charset=utf-8');
     $response->setCompression($config->get('config_compression'));
     $this->registry->set('response', $response);
     // Cache
     $cache = new Cache();
     $this->registry->set('cache', $cache);
     // Session
     $session = new Session();
     $this->registry->set('session', $session);
     // Language Detection
     $languages = array();
     $query = $db->query("SELECT * FROM `" . DB_PREFIX . "language` WHERE status = '1'");
     foreach ($query->rows as $result) {
         $languages[$result['code']] = $result;
     }
     $detect = '';
     if (isset($request->server['HTTP_ACCEPT_LANGUAGE']) && $request->server['HTTP_ACCEPT_LANGUAGE']) {
         $browser_languages = explode(',', $request->server['HTTP_ACCEPT_LANGUAGE']);
         foreach ($browser_languages as $browser_language) {
             foreach ($languages as $key => $value) {
                 if ($value['status']) {
                     $locale = explode(',', $value['locale']);
                     if (in_array($browser_language, $locale)) {
                         $detect = $key;
                     }
                 }
             }
         }
     }
     if (isset($session->data['language']) && array_key_exists($session->data['language'], $languages) && $languages[$session->data['language']]['status']) {
         $code = $session->data['language'];
     } elseif (isset($request->cookie['language']) && array_key_exists($request->cookie['language'], $languages) && $languages[$request->cookie['language']]['status']) {
         $code = $request->cookie['language'];
     } elseif ($detect) {
         $code = $detect;
     } else {
         $code = $config->get('config_language');
     }
     if (!isset($session->data['language']) || $session->data['language'] != $code) {
         $session->data['language'] = $code;
     }
     if (!isset($request->cookie['language']) || $request->cookie['language'] != $code) {
         setcookie('language', $code, time() + 60 * 60 * 24 * 30, '/', $request->server['HTTP_HOST']);
     }
     $config->set('config_language_id', $languages[$code]['language_id']);
     $config->set('config_language', $languages[$code]['code']);
     // Language
     $language = new Language($languages[$code]['directory']);
     $language->load($languages[$code]['filename']);
     $this->registry->set('language', $language);
     // Document
     $this->registry->set('document', new Document());
     // Customer
     $this->registry->set('customer', new Customer($this->registry));
     // Affiliate
     $this->registry->set('affiliate', new Affiliate($this->registry));
     if (isset($request->get['tracking'])) {
         setcookie('tracking', $request->get['tracking'], time() + 3600 * 24 * 1000, '/');
     }
     // Currency
     $this->registry->set('currency', new Currency($this->registry));
     // Tax
     $this->registry->set('tax', new Tax($this->registry));
     // Weight
     $this->registry->set('weight', new Weight($this->registry));
     // Length
     $this->registry->set('length', new Length($this->registry));
     // Cart
     $this->registry->set('cart', new Cart($this->registry));
     // Encryption
     $this->registry->set('encryption', new Encryption($config->get('config_encryption')));
     // Front Controller
     $this->front = new Front($this->registry);
     // TODO: check if preactions are neccessary for testing purpouses...
     // SEO URL's
     // $this->front->addPreAction(new Action('common/seo_url'));
     // Maintenance Mode
     // $this->front->addPreAction(new Action('common/maintenance'));
 }
function get_instance($class = '')
{
    $registry = new Registry();
    $loader = new Loader($registry);
    $registry->set('load', $loader);
    $config = new Config();
    $registry->set('config', $config);
    $db = new DB(DB_DRIVER, DB_HOSTNAME, DB_USERNAME, DB_PASSWORD, DB_DATABASE);
    $registry->set('db', $db);
    $request = new Request();
    $registry->set('request', $request);
    $response = new Response();
    $response->addHeader('Content-Type: text/html; charset=utf-8');
    $response->setCompression($config->get('config_compression'));
    $registry->set('response', $response);
    $cache = new Cache('file');
    $registry->set('cache', $cache);
    $session = new Session();
    $registry->set('session', $session);
    $languages = array();
    $query = $db->query("SELECT * FROM `" . DB_PREFIX . "language` WHERE status = '1'");
    foreach ($query->rows as $result) {
        $languages[$result['code']] = $result;
    }
    $detect = '';
    if (isset($request->server['HTTP_ACCEPT_LANGUAGE']) && $request->server['HTTP_ACCEPT_LANGUAGE']) {
        $browser_languages = explode(',', $request->server['HTTP_ACCEPT_LANGUAGE']);
        foreach ($browser_languages as $browser_language) {
            foreach ($languages as $key => $value) {
                if ($value['status']) {
                    $locale = explode(',', $value['locale']);
                    if (in_array($browser_language, $locale)) {
                        $detect = $key;
                    }
                }
            }
        }
    }
    if (isset($session->data['language']) && array_key_exists($session->data['language'], $languages) && $languages[$session->data['language']]['status']) {
        $code = $session->data['language'];
    } elseif (isset($request->cookie['language']) && array_key_exists($request->cookie['language'], $languages) && $languages[$request->cookie['language']]['status']) {
        $code = $request->cookie['language'];
    } elseif ($detect) {
        $code = $detect;
    } else {
        $code = $config->get('config_language');
    }
    if (!isset($session->data['language']) || $session->data['language'] != $code) {
        $session->data['language'] = $code;
    }
    if (!isset($request->cookie['language']) || $request->cookie['language'] != $code) {
        setcookie('language', $code, time() + 60 * 60 * 24 * 30, '/', $request->server['HTTP_HOST']);
    }
    $config->set('config_language_id', $languages[$code]['language_id']);
    $config->set('config_language', $languages[$code]['code']);
    $language = new Language($languages[$code]['directory']);
    $registry->set('language', $language);
    $language->load('module/revslideropencart');
    $currency = new Currency($registry);
    $registry->set('currency', $currency);
    $instance = new $class($registry);
    return $instance;
}