0

joomla 2.5バイリンガルWeb サイトがあり、index.php に次のコードがあります。

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

その結果、Android フォン/タブレットからログインすると、a.htmlリンクに誘導されます。

私がしたいことは:

Web サイトの URL が www.test.com/index.php だとします。lang=enなので、Android からログインするとa.htmlに移動し、www.test.com/index.php? からログインすると、lang=frは b.htmlにつながるはずです。

言語に基づいて区別する必要があります。

前もって感謝します。

4

1 に答える 1

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
}
?>

基本的に、Web サイトが表示されている言語に応じて、現在の言語タグとアラートを取得します。したがって、アラートen-GBまたはfr-FR. ifand elseelseステートメント内でサーバー側のリダイレクトを使用してみてください

于 2013-10-23T18:40:17.287 に答える