Go Back   vb.org Archive > vBulletin 3 Discussion > vB3 Programming Discussions
Prev Previous Post   Next Post Next
  #1  
Old 01-09-2011, 03:04 AM
emisand emisand is offline
 
Join Date: Mar 2006
Posts: 17
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default Help with Language Change by Code

Hello,

I am developing a plugin that automatically changes the forum language depending on the hostname used to access to it.

So if the user tries to access from forum.mysite.com and the language was set to Spanish, it will automatically change the forum language to English.

Then if the user tries to access from foro.mysite.com and the language was set to English, it will automatically change the forum language to Spanish.

I have made my plugin with this code:

PHP Code:
    require_once('./global.php');

    
$name $_SERVER['SERVER_NAME'];
    
$uri $_SERVER['REQUEST_URI'];

    if( 
stripos($name"forum.mysite") !== false )
    {
        if( 
stripos($uri"langid=3") !== false )
        {
            
$newurl "http://forum.mysite.com" $uri;

            if( !
headers_sent() )
            {
                
header("Location: " $newurl "");
                die();
            }
            else
            {
                echo 
"<meta http-equiv=\"refresh\" content=\"0;url=" $newurl ."\">";
                die();
            }
        }
        else if( 
$vbulletin->userinfo['languageid'] == || $vbulletin->userinfo['languageid'] == )
        {
            
$count 0;
            
$uri preg_replace("/langid=[\d]+/""langid=1"$uri, -1$count);

            if( 
$count == )
            {
                if( 
stripos($uri"?") !== false )
                {
                    
$uri .= "&langid=1";
                }
                else
                {
                    
$uri .= "?langid=1";
                }
            }

            
$newurl "http://foro.mysite.com" $uri;

            if( !
headers_sent() )
            {
                
header("Location: " $newurl "");
                die();
            }
            else
            {
                echo 
"<meta http-equiv=\"refresh\" content=\"0;url=" $newurl ."\">";
                die();
            }
        }
    }
    else if( 
stripos($name"foro.mysite") !== false )
    {
        if( 
stripos($uri"langid=1") )
        {
            
$newurl "http://forum.mysite.com" $uri;

            if( !
headers_sent() )
            {
                
header("Location: " $newurl "");
                die();
            }
            else
            {
                echo 
"<meta http-equiv=\"refresh\" content=\"0;url=" $newurl ."\">";
                die();
            }
        }
        else if( 
$vbulletin->userinfo['languageid'] == )
        {
            
$count 0;
            
$uri preg_replace("/langid=[\d]+/""langid=3"$uri, -1$count);

            if( 
$count == )
            {
                if( 
stripos($uri"?") !== false )
                {
                    
$uri .= "&langid=3";
                }
                else
                {
                    
$uri .= "?langid=3";
                }
            }

            
$newurl "http://foro.mysite.com" $uri;

            if( !
headers_sent() )
            {
                
header("Location: " $newurl "");
                die();
            }
            else
            {
                echo 
"<meta http-equiv=\"refresh\" content=\"0;url=" $newurl ."\">";
                die();
            }
        }
    } 
So what I am doing is to redirect the browser with the proper langid HTTP GET Value.

It works, but I would like to be able to change the forum language without doing redirects.

So when the hook is excecuted I can change by code the language.

The things I need to know are:
- Where should I hook the plugin so I can change the language before the language is initialized/updated?
- How can I change the forum language by code?

Thank you!
Reply With Quote
 

Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump


All times are GMT. The time now is 11:24 AM.


Powered by vBulletin® Version 3.8.12 by vBS
Copyright ©2000 - 2025, vBulletin Solutions Inc.
X vBulletin 3.8.12 by vBS Debug Information
  • Page Generation 0.06680 seconds
  • Memory Usage 2,397KB
  • Queries Executed 12 (?)
More Information
Template Usage:
  • (1)SHOWTHREAD
  • (1)ad_footer_end
  • (1)ad_footer_start
  • (1)ad_header_end
  • (1)ad_header_logo
  • (1)ad_navbar_below
  • (1)ad_showthread_beforeqr
  • (2)bbcode_php
  • (1)bbcode_quote
  • (1)footer
  • (1)forumjump
  • (1)forumrules
  • (1)gobutton
  • (1)header
  • (1)headinclude
  • (1)navbar
  • (3)navbar_link
  • (120)option
  • (3)post_thanks_box
  • (3)post_thanks_button
  • (1)post_thanks_javascript
  • (1)post_thanks_navbar_search
  • (3)post_thanks_postbit_info
  • (3)postbit
  • (3)postbit_onlinestatus
  • (3)postbit_wrapper
  • (1)showthread_list
  • (1)spacer_close
  • (1)spacer_open
  • (1)tagbit_wrapper 

Phrase Groups Available:
  • global
  • inlinemod
  • postbit
  • posting
  • reputationlevel
  • showthread
Included Files:
  • ./showthread.php
  • ./global.php
  • ./includes/init.php
  • ./includes/class_core.php
  • ./includes/config.php
  • ./includes/functions.php
  • ./includes/class_hook.php
  • ./includes/modsystem_functions.php
  • ./includes/functions_bigthree.php
  • ./includes/class_postbit.php
  • ./includes/class_bbcode.php
  • ./includes/functions_reputation.php
  • ./includes/functions_threadedmode.php
  • ./includes/functions_post_thanks.php 

Hooks Called:
  • init_startup
  • init_startup_session_setup_start
  • init_startup_session_setup_complete
  • cache_permissions
  • fetch_postinfo_query
  • fetch_postinfo
  • fetch_threadinfo_query
  • fetch_threadinfo
  • fetch_foruminfo
  • style_fetch
  • cache_templates
  • global_start
  • parse_templates
  • global_setup_complete
  • showthread_start
  • showthread_getinfo
  • forumjump
  • showthread_post_start
  • showthread_query_postids_threaded
  • showthread_threaded_construct_link
  • showthread_query
  • bbcode_fetch_tags
  • bbcode_create
  • showthread_postbit_create
  • postbit_factory
  • postbit_display_start
  • post_thanks_function_post_thanks_off_start
  • post_thanks_function_post_thanks_off_end
  • post_thanks_function_fetch_thanks_start
  • post_thanks_function_fetch_thanks_end
  • post_thanks_function_thanked_already_start
  • post_thanks_function_thanked_already_end
  • fetch_musername
  • postbit_imicons
  • bbcode_parse_start
  • bbcode_parse_complete_precache
  • bbcode_parse_complete
  • postbit_display_complete
  • post_thanks_function_can_thank_this_post_start
  • tag_fetchbit_complete
  • forumrules
  • navbits
  • navbits_complete
  • showthread_complete