Joomla 2.5:基于带有导航器的语言网站而有所不同



我有一个 joomla 2.5 双语网站,索引中有以下代码.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 所以当你从安卓登录时,它会引导你进入 a.html,当你从 www.test.com/index.php 登录时?lang=fr应该引导你进入 b.html

我需要根据语言进行区分。

提前谢谢。

你可以使用这样的东西:

<?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语句

相关内容

  • 没有找到相关文章

最新更新