Joomla 2.5:基于语言网站和导航器的区别

时间:2013-10-23 17:47:19

标签: joomla navigator

我有一个joomla 2.5 双语网站,我在index.php中有以下代码

<script type="text/javascript"> // <![CDATA[
    if ( (navigator.userAgent.indexOf('Android') != -1) ) {
        document.location = "a.html";
    } // ]]>
</script>

因此,如果您从Android手机/平板电脑登录,则会通过 a.html 链接引导您。

我想做的是:

假设网站的网址是www.test.com/index.php? lang = en ,那么当您从Android登录时,它会引导您进入 a.html 当您从www.test.com/index.php登录时, lang = fr 应该引导您进入 b.html

我需要根据语言来区分。

提前致谢。

1 个答案:

答案 0 :(得分:0)

你可以使用这样的东西:

<?php
$app = JFactory::getApplication();
$menu = $app->getMenu();
if ($menu->getActive() == $menu->getDefault( 'en-GB' )) { ?>
        <script type="text/javascript"> // <![CDATA[
           if ( (navigator.userAgent.indexOf('Android') != -1) ) {
               document.location = "a.html";
           } // ]]>
        </script>
<?php }
elseif ($menu->getActive() == $menu->getDefault( 'fr-FR' )) { ?>
        <script type="text/javascript"> // <![CDATA[
           if ( (navigator.userAgent.indexOf('Android') != -1) ) {
               document.location = "b.html";
           } // ]]>
        </script>
<?php }
?>

请注意我没有对此进行测试,请告诉我是否有效,如果没有,我可以更新。

<强>更新

正如Oriol所说,重定向服务器端而不是javascript更好。昨天我正在搞乱代码和我写的一半工作:

<?php
$lang = JFactory::getLanguage();
$app = JFactory::getApplication();
$menu = $app->getMenu();
if ($menu->getActive() == $menu->getDefault( 'en-GB' )) {
?>
        <script type="text/javascript">
            alert("<?php echo $lang->getTag() ?>");
        </script>
<?php
}
elseif ($menu->getActive() == $menu->getDefault( 'fr-FR' )) {
?>
        <script type="text/javascript">
            alert("<?php echo $lang->getTag() ?>");
        </script>
<?php
}
?>

它基本上会获取当前的语言标签和提醒,具体取决于网站的查看语言。因此,它会提醒en-GBfr-FR。尝试在if和其他else语句

中使用服务器端重定向