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; }); }
<?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;
/** * @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'); }
/** * @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; }
/** * @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); }