Files
2025-03-12 17:06:23 +01:00

44 lines
1.3 KiB
PHP

<?php
class stLanguageFrontendComponents extends sfComponents
{
public function executeChoose()
{
if ($this->getUser()->getParameter('hide', false, 'soteshop/stLanguagePlugin'))
{
return sfView::NONE;
}
$languages = LanguagePeer::doSelectActive();
if (!$languages || count($languages) == 1)
{
return sfView::NONE;
}
$selected = LanguagePeer::retrieveByCulture($this->getUser()->getCulture());
$smarty = new stSmarty('stLanguageFrontend');
$smarty->assign('languages', $languages);
$smarty->assign('selected', $selected);
$smarty->register_function('url_for_language', array('stLanguageFrontendComponents', 'urlForLanguage'));
sfLoader::loadHelpers(array('Helper', 'stUrl'));
return $smarty;
}
public static function urlForLanguage($params)
{
$language = stLanguage::getInstance(sfContext::getInstance());
$shortcut = $params['language']->getShortcut();
if($language->hasLangParameterInUrl($shortcut))
{
return st_url_for($language->getPath($shortcut), false, null, null, $shortcut);
}
else
{
return st_url_for($language->getPath($shortcut), true , null, $language->hasLangParameterInUrl($shortcut, true), $shortcut);
}
}
}