示例#1
0
 public static function init()
 {
     Event::register('cache', function ($content) {
         // Session form key
         $content = preg_replace_callback('/{{form_key}}/', function ($M) {
             return form_key_html();
         }, $content);
         // Session messages
         $content = preg_replace_callback('/{{messages}}/', function ($M) {
             $session = Mvc::getSession();
             if ($session->getErrorMessages() || $session->getSuccessMessages()) {
                 ob_start();
                 template('blocks/messages');
                 return Event::filter('content', ob_get_clean());
             } else {
                 return '';
             }
         }, $content);
         return $content;
     });
 }
示例#2
0
<?php

$error_messages = \LandingPages\Mvc::getSession()->getErrorMessages();
$success_messages = \LandingPages\Mvc::getSession()->getSuccessMessages();
?>

<?php 
if ($success_messages) {
    ?>
    <div class="alert alert-success" role="alert">
        <?php 
    foreach ($success_messages as $message) {
        ?>
            <p><?php 
        echo $message;
        ?>
</p>
        <?php 
    }
    ?>
    </div>
<?php 
}
if ($error_messages) {
    ?>
    <div class="alert alert-danger" role="alert">
        <?php 
    foreach ($error_messages as $message) {
        ?>
            <p><?php 
        echo $message;
示例#3
0
 /**
  * @return null
  */
 public static function getFormKey()
 {
     $session = Mvc::getSession();
     if (!$session->issetData('_form_key') || !$session->getData('_form_key')) {
         $session->setData('_form_key', generate_form_key());
     }
     return $session->getData('_form_key');
 }
示例#4
0
 /**
  * @return array|null
  */
 public static function getVisitId()
 {
     static $visit_id;
     if (!$visit_id) {
         $session = Mvc::getSession();
         if (!$session->issetData('visit_id')) {
             $session->setData('visit_id', self::generateId());
         }
         $visit_id = $session->getData('visit_id');
     }
     return $visit_id;
 }
示例#5
0
 /**
  * @param $uri
  * @return array|mixed|null|string
  */
 protected function _getLocale($uri)
 {
     $config = Mvc::getConfig();
     $locale = null;
     if (substr(LP_URI, -10) == '/pixel.png') {
         // Set the default locale
         $locale = normalize_locale_name($config->getData('locale.default'));
     } else {
         $detect_methods = explode(',', $config->getData('locale.detect_methods'));
         while ($locale === null && ($detect_method = array_shift($detect_methods))) {
             switch (trim($detect_method)) {
                 // Store detected in URL by the first element
                 case 'url':
                     if (preg_match('/^([a-z_\\-]{2,7})\\/?(.*)$/', $uri, $L) && $this->_isEnabledLocale($L[1])) {
                         $locale = normalize_locale_name($L[1]);
                         $uri = "{$L[2]}";
                     } else {
                         if (preg_match('/^([^\\/]*)\\/?(.*)$/', $uri, $L) && ($matched = $config->getData("locale.url.map.{$L[1]}")) && $this->_isEnabledLocale($matched)) {
                             $locale = normalize_locale_name($matched);
                             $uri = "{$L[2]}";
                         }
                     }
                     break;
                 case 'domain':
                     $domain = $_SERVER['SERVER_NAME'];
                     // TODO: get locale from domain though a map array
                     break;
                 case 'geoip':
                     // TODO: get locale from country/region
                     break;
                     // Get locale from browser HTTP headers (Accept-Languages)
                 // Get locale from browser HTTP headers (Accept-Languages)
                 case 'browser':
                     $languages = array();
                     foreach (explode(',', $_SERVER['HTTP_ACCEPT_LANGUAGE']) as $item) {
                         if (preg_match('/^([^;]*);?q?=?(.*)$/', $item, $M)) {
                             $lang = normalize_locale_name(trim($M[1]));
                             $q = round(($M[2] ? @floatval($M[2]) : 1) * 100);
                             $languages["{$q}"][] = $lang;
                         }
                     }
                     krsort($languages);
                     while (!$locale && $languages) {
                         $langs = array_shift($languages);
                         while (!$locale && $langs) {
                             $lang = array_shift($langs);
                             if ($this->_isEnabledLocale($lang)) {
                                 $locale = $lang;
                                 // Need we redirect to the right URL after browser detection?
                                 $this->_needToRedirect('browser', $locale);
                             }
                         }
                     }
                     break;
                     // Locale stored in session
                 // Locale stored in session
                 case 'session':
                     if (Mvc::getSession()->issetData('locale') && $this->_isEnabledLocale(Mvc::getSession()->getData('locale'))) {
                         $locale = Mvc::getSession()->getData('locale');
                     }
                     break;
             }
         }
         // If no one was detected then we use the default one
         if ($locale === null) {
             // Set the default locale
             $locale = normalize_locale_name($config->getData('locale.default'));
             // Need we redirect to the right URL?
             $this->_needToRedirect('default', $locale);
         }
     }
     // Setup locale & translations
     define('LP_LOCALE', $locale);
     define('LP_LANGUAGE', normalize_language($locale));
     return array($locale, $uri);
 }