function smarty_block_url($params, $content, $smarty, $repeat) { $tpl_vars = $smarty->_tpl_vars; // only output on the closing tag if (!$repeat) { if (isset($content)) { $urlparams = array(); $locale_code = $tpl_vars['locale_code']; $request_locale = $tpl_vars['request_locale']; if ($request_locale && $locale_code != $request_locale) { $urlparams['locale_code'] = strtolower($request_locale); } elseif (!is_null($locale_code) && Bolts_Translate::validateLocaleCode($locale_code)) { $urlparams['locale_code'] = strtolower($locale_code); } $url_filter = new Bolts_Url_Filter(); return $url_filter->filter($content, $urlparams); } } }
function setcookieAction() { // TODO maybe? - prevent people from viewing this page if localization is not enabled $request = new Bolts_Request($this->getRequest()); if ($request->has("code") && $request->code != "") { $locale_code = $request->code; $time = Bolts_Registry::get('locale_cache_lifetime'); if (Bolts_Translate::validateLocaleCode($locale_code)) { setcookie("locale_code", $locale_code, time() + $time, "/"); if ($request->has("return_url")) { $url_filter = new Bolts_Url_Filter(); header("Location: " . $url_filter->filter($request->return_url, array('locale_code' => $locale_code))); } else { header("Location: /" . $locale_code); } } } else { $this->_redirect("/bolts/locale/choose/"); } }
protected function _redirect($url, array $options = array(), $auto_add_locale = true) { if ($auto_add_locale) { $urlfilter_params = array('locale_code' => $this->locale_code); } $url_filter = new Bolts_Url_Filter(); return parent::_redirect($url_filter->filter($url, $urlfilter_params), $options); }
protected function _getConfirmationUrl($email, $url = "/bolts/user/resetpassword/email/") { $salt = Bolts_Registry::get('salt'); $url_filter = new Bolts_Url_Filter(); $outstr = Bolts_Registry::get('site_url') . $url_filter->filter($url, array('locale_code' => $this->locale_code)) . urlencode($email); $outstr .= "/code/" . md5($email . $salt); return $outstr; }