WordPress.org

Plugin Directory

Changeset 356875


Ignore:
Timestamp:
03/07/11 20:03:09 (3 years ago)
Author:
leogermani
Message:

refactor
settings page
widget

Location:
multi-language-framework/trunk
Files:
1 added
4 edited
4 moved

Legend:

Unmodified
Added
Removed
  • multi-language-framework/trunk/default_settings.php

    r355199 r356875  
    11<?php 
    22 
    3 function create_default_settings(){ 
    4      
    5     $plugin_prefix = 'mlf_'; 
    6      
    7     // automatically update .mo files 
    8     $mlf_config['auto_update_mo'] = true; 
    9 /* 
    10     $mlf_config['basepath'] = WP_PLUGIN_DIR . '/' . $plugin_folder . '/'; 
    11     $mlf_config['baseurl']  = WP_CONTENT_URL . '/plugins/'. $plugin_folder .'/';  
    12      
    13 */ 
     3function mlf_load_static_options() { 
     4     
    145    $mlf_config['locale']['de'] = "de_DE"; 
    156    $mlf_config['locale']['en'] = "en_US"; 
     
    231222    // Location of flags (needs trailing slash!) 
    232223    $mlf_config['flag_location'] =  "/flags/"; 
    233  
     224     
     225    return $mlf_config; 
     226     
     227} 
     228 
     229function create_default_settings(){ 
     230    
    234231    // enable the use of following languages (order=>language) 
    235232    $mlf_config['enabled_languages'] = array( 
     
    244241     
    245242    $mlf_config['url_mode'] =  "path"; 
    246  
     243     
     244    $mlf_config['post_types'] =  array('post'); 
     245 
     246    /* 
    247247    foreach ($mlf_config as $name => $value){ 
    248248        update_option( $plugin_prefix . $name, $value); 
    249     }     
     249    }  
     250    * */ 
     251    update_option('mlf_config', $mlf_config);    
    250252 
    251253} 
  • multi-language-framework/trunk/functions.php

    r355199 r356875  
    11<?php  
    2  
    3 function mlf_updateGettextDatabases($force = false, $only_for_language = '') { 
    4  
    5     if(!is_dir(WP_LANG_DIR)) { 
    6         if(!@mkdir(WP_LANG_DIR)){                     
    7             return false; 
    8         } 
    9     } 
    10     $next_update = mlf_get_option('next_update_mo'); 
    11     $locale_list = mlf_get_option('locale'); 
    12    
    13     if(time() < $next_update && !$force)  
    14         return true; 
    15          
    16     update_option('mlf_next_update_mo', time() + 7*24*60*60); 
    17      
    18     foreach($locale_list as $lang => $locale) { 
    19          
    20         if(mlf_isEnabled($only_for_language) && $lang != $only_for_language) continue; 
    21          
    22         if(!mlf_isEnabled($lang)) continue; 
    23          
    24         if($locale == 'en_US') continue; 
    25          
    26         if($ll = @fopen(trailingslashit(WP_LANG_DIR).$locale.'.mo.filepart','a')) { 
    27             // can access .mo file 
    28             fclose($ll); 
    29             // try to find a .mo file 
    30             if(!$lcr = @fopen('http://svn.automattic.com/wordpress-i18n/'.$locale.'/tags/'.$GLOBALS['wp_version'].'/messages/'.$locale.'.mo','r')) 
    31             if(!$lcr = @fopen('http://svn.automattic.com/wordpress-i18n/'.substr($locale,0,2).'/tags/'.$GLOBALS['wp_version'].'/messages/'.$locale.'.mo','r')) 
    32             if(!$lcr = @fopen('http://svn.automattic.com/wordpress-i18n/'.$locale.'/branches/'.$GLOBALS['wp_version'].'/messages/'.$locale.'.mo','r')) 
    33             if(!$lcr = @fopen('http://svn.automattic.com/wordpress-i18n/'.substr($locale,0,2).'/branches/'.$GLOBALS['wp_version'].'/messages/'.$locale.'.mo','r')) 
    34             if(!$lcr = @fopen('http://svn.automattic.com/wordpress-i18n/'.$locale.'/branches/'.$GLOBALS['wp_version'].'/'.$locale.'.mo','r')) 
    35             if(!$lcr = @fopen('http://svn.automattic.com/wordpress-i18n/'.substr($locale,0,2).'/branches/'.$GLOBALS['wp_version'].'/'.$locale.'.mo','r')) 
    36             if(!$lcr = @fopen('http://svn.automattic.com/wordpress-i18n/'.$locale.'/trunk/messages/'.$locale.'.mo','r'))  
    37             if(!$lcr = @fopen('http://svn.automattic.com/wordpress-i18n/'.substr($locale,0,2).'/trunk/messages/'.$locale.'.mo','r')) { 
    38             // couldn't find a .mo file 
    39             if(filesize(trailingslashit(WP_LANG_DIR).$locale.'.mo.filepart')==0) unlink(trailingslashit(WP_LANG_DIR).$locale.'.mo.filepart'); 
    40                 continue; 
    41             } 
    42              
    43             // found a .mo file, update local .mo 
    44             $ll = fopen(trailingslashit(WP_LANG_DIR).$locale.'.mo.filepart','w'); 
    45             while(!feof($lcr)) { 
    46                 // try to get some more time 
    47                 @set_time_limit(30); 
    48                 $lc = fread($lcr, 8192); 
    49                 fwrite($ll,$lc); 
    50             } 
    51             fclose($lcr); 
    52             fclose($ll); 
    53             // only use completely download .mo files 
    54             rename(trailingslashit(WP_LANG_DIR).$locale.'.mo.filepart',trailingslashit(WP_LANG_DIR).$locale.'.mo'); 
    55         } 
    56     } 
    57     return true; 
    58 } 
    592 
    603// returns cleaned string and language information 
     
    7013     
    7114    $result = array(); 
    72     $result['language'] = $default_language; 
     15    $result['current_language'] = $default_language; 
    7316    $result['url'] = $url; 
    7417    $result['original_url'] = $url; 
     
    8730                    if(mlf_isEnabled($match[1])) { 
    8831                        // found language information 
    89                         $result['language'] = $match[1]; 
     32                        $result['current_language'] = $match[1]; 
    9033                        $result['url'] = $home['path'].substr($url, 3); 
    9134                    } 
     
    9942                    if(mlf_isEnabled($match[1])) { 
    10043                        // found language information 
    101                         $result['language'] = $match[1]; 
     44                        $result['current_language'] = $match[1]; 
    10245                        $result['host'] = substr($host, 3); 
    10346                    } 
     
    11558    if(isset($_GET['lang']) && mlf_isEnabled($_GET['lang'])) { 
    11659        // language override given 
    117         $result['language'] = $_GET['lang']; 
    118         $result['url'] = preg_replace("#(&|\?)lang=".$result['language']."&?#i","$1",$result['url']); 
     60        $result['current_language'] = $_GET['lang']; 
     61        $result['url'] = preg_replace("#(&|\?)lang=".$result['current_language']."&?#i","$1",$result['url']); 
    11962        $result['url'] = preg_replace("#[\?\&]+$#i","",$result['url']); 
    12063    } elseif($home['host'] == $result['host'] && $home['path'] == $result['url']) { 
     
    14083 
    14184 
    142  
    14385function mlf_localeForCurrentLanguage($locale){ 
    144     global $admin_language; 
     86    global $mlf_config; 
    14587  
    14688    $locale_list = mlf_get_option('locale'); 
     
    14991    // try to figure out the correct locale 
    15092    $locale = array(); 
    151     $locale[] = $locale_list[$admin_language].".utf8"; 
    152     $locale[] = $locale_list[$admin_language]."@euro"; 
    153     $locale[] = $locale_list[$admin_language]; 
    154     $locale[] = $windows_locale_list[$admin_language]; 
    155     $locale[] = $admin_language; 
     93    $locale[] = $locale_list[$mlf_config['current_language']].".utf8"; 
     94    $locale[] = $locale_list[$mlf_config['current_language']]."@euro"; 
     95    $locale[] = $locale_list[$mlf_config['current_language']]; 
     96    $locale[] = $windows_locale_list[$mlf_config['current_language']]; 
     97    $locale[] = $mlf_config['current_language']; 
    15698   
    15799    // return the correct locale and most importantly set it (wordpress doesn't, which is bad) 
     
    159101    setlocale(LC_TIME, $locale); 
    160102     
    161     return $locale_list[$admin_language]; 
     103    return $locale_list[$mlf_config['current_language']]; 
    162104} 
    163105 
     
    168110    // invalid language 
    169111    if($url=='') $url = esc_url($mlf_config['url_info']['url']); 
    170     if($lang=='') $lang = $mlf_config['language']; 
     112    if($lang=='') $lang = $mlf_config['current_language']; 
    171113    if(defined('WP_ADMIN')&&!$forceadmin) return $url; 
    172114    if(!mlf_isEnabled($lang)) return ""; 
     
    257199     
    258200    // see if cookies are activated 
    259     if(!$mlf_config['cookie_enabled'] && !$mlf_config['url_info']['internal_referer'] && $urlinfo['path'] == '' && $lang == $mlf_config['default_language'] && $mlf_config['language'] != $mlf_config['default_language'] && $mlf_config['hide_default_language']) { 
     201    if(!$mlf_config['cookie_enabled'] && !$mlf_config['url_info']['internal_referer'] && $urlinfo['path'] == '' && $lang == $mlf_config['default_language'] && $mlf_config['current_language'] != $mlf_config['default_language'] && $mlf_config['hide_default_language']) { 
    260202        // :( now we have to make unpretty URLs 
    261203        $url = preg_replace("#(&|\?)lang=".$match[2]."&?#i","$1",$url); 
     
    299241     
    300242    // We have to temporarily change the language to retrieve unflitered permalinks 
    301     $currentLanguage = $mlf_config['language']; 
    302     $mlf_config['language'] = $mlf_config['default_language']; 
    303      
    304     foreach($other_languages as $l) { 
    305      
     243    $currentLanguage = $mlf_config['current_language']; 
     244    $mlf_config['current_language'] = $mlf_config['default_language']; 
     245     
     246    $r .= '<div id="postmeta_translations"><ul>'; 
     247 
     248    foreach($other_languages as $lang => $l) { 
     249         
     250        $label = $mlf_config['labels']['available'][$lang] ? $mlf_config['labels']['available'][$lang] : sprintf(__('This entry is also available in %s','mlf'), $mlf_config['language_name'][$lang]); 
    306251        if ($l) { 
     252            $r .= "<li><a href='" . get_permalink($l) . "'>" . $label . "</a></li>"; 
     253        } 
     254    } 
     255 
     256    $r .= '</ul></div>'; 
     257 
     258    //restore language 
     259    $mlf_config['current_language'] = $currentLanguage; 
     260     
     261    return $content . $r; 
     262 
     263} 
     264 
     265 
     266function mlf_isEnabled($lang) { 
     267     
     268    $enabled_languages = mlf_get_option('enabled_languages'); 
     269     
     270    return in_array($lang, $enabled_languages); 
     271} 
     272 
     273function mlf_parseURL($url) { 
     274    $r  = '!(?:(\w+)://)?(?:(\w+)\:(\w+)@)?([^/:]+)?'; 
     275    $r .= '(?:\:(\d*))?([^#?]+)?(?:\?([^#]+))?(?:#(.+$))?!i'; 
     276 
     277    preg_match ( $r, $url, $out ); 
     278    $result = @array( 
     279        "scheme" => $out[1], 
     280        "host" => $out[4].(($out[5]=='')?'':':'.$out[5]), 
     281        "user" => $out[2], 
     282        "pass" => $out[3], 
     283        "path" => $out[6], 
     284        "query" => $out[7], 
     285        "fragment" => $out[8] 
     286        ); 
     287    return $result; 
     288} 
     289 
     290function mlf_startsWith($s, $n) { 
     291    if(strlen($n)>strlen($s)) return false; 
     292    if($n == substr($s,0,strlen($n))) return true; 
     293    return false; 
     294} 
     295 
     296function mlf_get_tranlsations_ids($post_id, $post_type = 'post') { 
     297 
     298    if (!is_numeric($post_id)) 
     299        return false; 
     300     
     301    global $wpdb; 
     302     
     303    $post_type_base = preg_replace('/(.+)_translations_([a-zA-Z]{2})/', "$1", $post_type); 
     304     
     305    $enabled_languages = mlf_get_option('enabled_languages'); 
     306    $default_language = mlf_get_option('default_language'); 
     307    $result = array(); 
     308     
     309    foreach ($enabled_languages as $lang) { 
    307310             
    308             $r .= "<a href='" . get_permalink($l) . "'>" . get_permalink($l) . "</a>"; 
     311        $translation_id = false; 
     312        $p_type = $post_type_base . '_translations_' . $lang;             
    309313         
     314        if ($p_type == $post_type_base . '_translations_' . $default_language) 
     315            $p_type = $post_type_base; 
     316 
     317        if ( $post_type == $p_type ) { 
     318            continue; 
    310319        } 
    311      
    312     } 
    313      
    314     //restore language 
    315     $mlf_config['language'] = $currentLanguage; 
    316      
    317     return $content . $r; 
     320         
     321        $result[$lang] = $wpdb->get_var("SELECT ID FROM $wpdb->posts p JOIN $wpdb->postmeta pm ON post_id = p.ID WHERE post_status <> 'trash' AND post_type='$p_type' AND meta_key='_translation_of' AND meta_value=$post_id "); 
     322         
     323    } 
     324     
     325    return $result; 
     326     
     327} 
     328 
     329function mlf_add_not_available_message($content) { 
     330 
     331    global $post, $mlf_config; 
     332     
     333    $message = $mlf_config['labels']['not_available'][$mlf_config['current_language']] ? $mlf_config['labels']['not_available'][$mlf_config['current_language']] : sprintf(__('This entry is not available in %s','mlf'), $mlf_config['language_name'][$mlf_config['current_language']]); 
     334     
     335    return "<div class='mlf_alert'>$message</div>$content"; 
     336 
     337} 
     338 
     339 
     340function mlf_links_to_languages() { 
     341 
     342    global $mlf_config; 
     343     
     344    $originalLanguage = $mlf_config['current_language']; 
     345     
     346    echo '<ul id="languages_list">'; 
     347    foreach ($mlf_config['enabled_languages'] as $lang) { 
     348        $mlf_config['current_language'] = $lang; 
     349        $flag_img = MLF_PLUGIN_URL . $mlf_config['flag_location'] . $mlf_config['flag'][$lang]; 
     350        ?> 
     351        <li> 
     352            <a href="<?php echo mlf_convertURL(); ?>"> 
     353                <img src="<?php echo $flag_img; ?>" /> 
     354                <?php echo $mlf_config['language_name'][$lang]; ?> 
     355            </a> 
     356        </li> 
     357        <?php 
     358    } 
     359    echo '</ul>'; 
     360     
     361    $mlf_config['current_language'] = $originalLanguage; 
    318362 
    319363} 
  • multi-language-framework/trunk/multi-language-framework.php

    r349882 r356875  
    1010define( 'MLF_VERSION', '0.1' ); 
    1111 
    12 $plugin_folder  = plugin_basename( dirname(__FILE__) ); 
    13 $plugin_url     = WP_CONTENT_URL . '/plugins/'. $plugin_folder .'/';  
    14 $plugin_prefix  = 'mlf_';  
    15 $plugin_name    = 'Multi Language Framework'; 
    16 $admin_language = ''; 
     12 
     13define('MLF_PLUGIN_URL', WP_CONTENT_URL . '/plugins/'. plugin_basename( dirname(__FILE__) ) .'/');  
     14 
    1715 
    1816// Load multi language framework files 
    19 require_once(dirname(__FILE__) . "/config.php"); 
     17require_once(dirname(__FILE__) . "/default_settings.php"); 
    2018require_once(dirname(__FILE__) . "/settings.php"); 
    21 require_once(dirname(__FILE__) . "/core-functions.php"); 
    22 require_once(dirname(__FILE__) . "/utils.php"); 
    23 require_once(dirname(__FILE__) . "/edit_screen.php"); 
     19require_once(dirname(__FILE__) . "/functions.php"); 
     20require_once(dirname(__FILE__) . "/parse_query.php"); 
     21require_once(dirname(__FILE__) . "/post_types.php"); 
    2422require_once(dirname(__FILE__) . "/wp_options.php"); 
    25  
     23require_once(dirname(__FILE__) . "/widget.php"); 
    2624 
    2725function mlf_init() { 
    28     global $admin_language, $mlf_config; 
     26    global $mlf_config; 
    2927     
     28    $mlf_config = array_merge(get_option('mlf_config'), mlf_load_static_options()); 
     29     
     30    /* 
    3031    // só fazer isso depois q existir as opções para não dar problema ao ativar o plugin... 
    3132    if (mlf_get_option('url_mode')) {  
     
    3738        $mlf_config['hide_default_language'] = mlf_get_option('hide_default_language'); 
    3839    } 
     40    * */ 
    3941    // extract url information 
    4042    $mlf_config['url_info'] = mlf_extractURL($_SERVER['REQUEST_URI'], $_SERVER["HTTP_HOST"], isset($_SERVER['HTTP_REFERER']) ? $_SERVER['HTTP_REFERER'] : ''); 
     
    4345    if(defined('WP_ADMIN')) { 
    4446        if(isset($_GET['lang']) && mlf_isEnabled($_GET['lang'])) { 
    45              $mlf_config['language'] = $mlf_config['url_info']['language']; 
    46             setcookie('mlf_admin_language', $mlf_config['language'], time()+60*60*24*30); 
     47            $mlf_config['current_language'] = $mlf_config['url_info']['current_language']; 
     48            setcookie('mlf_admin_language', $mlf_config['current_language'], time()+60*60*24*30); 
    4749        } elseif(isset($_COOKIE['mlf_admin_language']) && mlf_isEnabled($_COOKIE['mlf_admin_language'])) { 
    48             $mlf_config['language'] = $_COOKIE['mlf_admin_language']; 
     50            $mlf_config['current_language'] = $_COOKIE['mlf_admin_language']; 
    4951        } else { 
    50             $mlf_config['language'] = $mlf_config['default_language']; 
     52            $mlf_config['current_language'] = $mlf_config['default_language']; 
    5153        } 
    5254    } else { 
    53         $mlf_config['language'] = $mlf_config['url_info']['language']; 
     55        $mlf_config['current_language'] = $mlf_config['url_info']['current_language']; 
    5456    } 
    5557     
     
    6365    mlf_add_css(); 
    6466     
    65     // update Gettext Databases if on Backend 
    66     if(defined('WP_ADMIN') && $auto_update_mo){ 
    67         mlf_updateGettextDatabases();     
    68     } 
    69      
     67         
    7068    // remove traces of language (or better not?) 
    7169    //unset($_GET['lang']); 
     
    9290         
    9391function mlf_deactivate() { 
    94     global $wpdb, $plugin_prefix; 
     92    global $wpdb; 
    9593     
    96     $wpdb->query("DELETE FROM {$wpdb->options} WHERE option_name LIKE '{$plugin_prefix}%'"); 
     94    $wpdb->query("DELETE FROM {$wpdb->options} WHERE option_name LIKE 'mlf_%'"); 
    9795} 
    9896     
    9997     
    10098function mlf_admin_menu() { 
    101     global $plugin_url; 
    10299     
    103100    $language_name = mlf_get_option('language_name'); 
     
    120117                $link = 'edit.php?lang='.$language; 
    121118        } 
    122         add_menu_page(__($language_name[$language], 'mlf'), __($language_name[$language], 'mlf'), 'read', $link, NULL, $plugin_url . $flag_location . $flag[$language]); 
     119        add_menu_page(__($language_name[$language], 'mlf'), __($language_name[$language], 'mlf'), 'read', $link, NULL, MLF_PLUGIN_URL . $flag_location . $flag[$language]); 
    123120    } 
    124121     
     
    128125 
    129126function mlf_add_js() { 
    130     global $plugin_url; 
     127 
    131128     
    132     wp_enqueue_script('mlf-admin', $plugin_url . 'js/settings.js');     
     129    wp_enqueue_script('mlf-admin', MLF_PLUGIN_URL . 'js/settings.js');     
    133130} 
    134131         
    135132function mlf_add_css() { 
    136     global $plugin_url; 
     133 
    137134    
    138     wp_enqueue_style('mlf-admin', $plugin_url . 'css/style.css'); 
     135    wp_enqueue_style('mlf-admin', MLF_PLUGIN_URL . 'css/style.css'); 
    139136} 
    140137 
     
    146143    
    147144function mlf_get_option($option_name) { 
     145    /* 
    148146    global $plugin_prefix; 
    149      
    150147    return get_option($plugin_prefix . $option_name); 
     148    */ 
     149    global $mlf_config; 
     150    return $mlf_config[$option_name]; 
    151151}    
    152152    
     
    159159 
    160160add_action('plugins_loaded','mlf_init'); 
    161  
    162  
    163  
    164  
    165161 
    166162 
     
    184180add_filter('clean_url',                     'mlf_convertURL'); 
    185181 
    186 add_action('pre_get_posts', 'mlf_parse_query'); 
    187  
    188 function mlf_parse_query($wp_query) { 
    189  
    190     global $mlf_config; 
    191      
    192     //var_dump(mlf_get_option('default_language') , $mlf_config['language']);  
    193     $default_language = mlf_get_option('default_language'); 
    194      
    195     //echo '<pre>'; print_r($wp_query); 
    196      
    197     if ($default_language == $mlf_config['language']) 
    198         return; 
    199      
    200      
    201      
    202     if ($wp_query->is_singular != 1) { 
    203      
    204         $post_type = $wp_query->query_vars['post_type'] ? $wp_query->query_vars['post_type'] : 'post'; 
    205                  
    206         $wp_query->query_vars['post_type'] = $post_type . '_translations_' . $mlf_config['language']; 
    207  
    208              
    209      
    210     } else { 
    211          
    212         // We are querying a custom post type, we have to help wordPress to know that, 
    213         // because we changed the REQUEST_URI so it doesnt know 
    214         if ($wp_query->query_vars['pagename']) { 
    215              
    216             $post_type = $wp_query->query_vars['post_type'] ? $wp_query->query_vars['post_type'] : 'post'; 
    217              
    218             $wp_query->query_vars['post_type'] = $post_type . '_translations_' . $mlf_config['language']; 
    219             $wp_query->query_vars['name'] = $wp_query->query_vars['pagename']; 
    220             $wp_query->query_vars[$wp_query->query_vars['post_type']] =  $wp_query->query_vars['name']; 
    221             $wp_query->query_vars['pagename'] = '';             
    222  
    223  
    224             $wp_query->query = array( 
    225              
    226                 'post_type' => $post_type . '_translations_' . $mlf_config['language'], 
    227                 'name' => $wp_query->query_vars['pagename'], 
    228                 $wp_query->query_vars['post_type'] => $wp_query->query_vars['name'] 
    229                  
    230             ); 
    231              
    232              
    233         } 
    234          
    235         // We dont have the post ID here, so lets do this in another action 
    236         add_action('template_redirect', 'mlf_single_translation'); 
    237      
    238     } 
    239      
    240 } 
    241  
    242 function mlf_single_translation() { 
    243  
    244     global $wp_query; 
    245     $default_language = mlf_get_option('default_language'); 
    246      
    247     if (is_object($wp_query->post) && isset($wp_query->post->ID)) { 
    248      
    249         global $wpdb, $mlf_config; 
    250         $post = $wp_query->post; 
    251         $post_type = preg_replace('/(.+)_translations_([a-zA-Z]{2})/', "$1", $post->post_type); 
    252          
    253         $post_type_search = $default_language == $mlf_config['language'] ? $post_type : $post_type . "_translations_" . $mlf_config['language']; 
    254          
    255         $query = "select * from $wpdb->posts join $wpdb->postmeta on ID = post_id WHERE post_type = '$post_type_search'  
    256                 AND meta_key = '_translation_of' AND meta_value = $post->ID"; 
    257                  
    258         $translation = $wpdb->get_row($query); 
    259          
    260         if ($translation) { 
    261             $wp_query->post = $translation; 
    262             $wp_query->posts[0] = $translation; 
    263         } else { 
    264             add_filter('the_content', 'mlf_add_not_available_message'); 
    265         } 
    266     } 
    267      
    268     //echo '<pre>'; print_r($wp_query); 
    269  
    270 } 
    271  
    272  
    273 function mlf_add_not_available_message($content) { 
    274  
    275     return "Post nao disponivel nesse idioma <br/><br /> $content"; 
    276  
    277 } 
    278182 
    279183?> 
  • multi-language-framework/trunk/parse_query.php

    r355199 r356875  
    11<?php 
    22 
    3 function mlf_isEnabled($lang) { 
     3add_action('pre_get_posts', 'mlf_parse_query'); 
     4 
     5function mlf_parse_query($wp_query) { 
     6 
    47     
    5     $enabled_languages = mlf_get_option('enabled_languages'); 
     8    // We dont want to filter posts in the admin 
     9    if (is_admin()) 
     10        return; 
    611     
    7     return in_array($lang, $enabled_languages); 
    8 } 
     12    global $mlf_config; 
     13     
     14    //var_dump(mlf_get_option('default_language') , $mlf_config['current_language']);  
     15    $default_language = $mlf_config['default_language']; 
     16     
     17    //echo '<pre>'; print_r($wp_query); 
     18     
     19    //if ($default_language == $mlf_config['current_language']) 
     20    //    return; 
     21     
     22     
     23     
     24    if ($wp_query->is_singular != 1) { 
     25     
     26        if ($default_language == $mlf_config['current_language']) 
     27            return; 
     28         
     29        $post_type = $wp_query->query_vars['post_type'] ? $wp_query->query_vars['post_type'] : 'post'; 
     30                 
     31        $wp_query->query_vars['post_type'] = $post_type . '_translations_' . $mlf_config['current_language']; 
     32     
     33    } else { 
     34         
     35        // We are querying a custom post type, we have to help wordPress to know that, 
     36        // because we changed the REQUEST_URI so it doesnt know 
     37        if ($wp_query->query_vars['pagename']) { 
     38             
     39            global $wpdb; 
     40             
     41            $post_type = $wpdb->get_var( $wpdb->prepare("SELECT post_type FROM $wpdb->posts WHERE post_name = %s", $wp_query->query_vars['pagename']) ); 
     42             
     43            $wp_query->query_vars['post_type'] = $post_type; 
     44            //$wp_query->query_vars['post_type'] = $post_type . '_translations_' . $mlf_config['current_language']; 
     45            $wp_query->query_vars['name'] = $wp_query->query_vars['pagename']; 
     46            $wp_query->query_vars[$wp_query->query_vars['post_type']] =  $wp_query->query_vars['name']; 
     47            $wp_query->query_vars['pagename'] = '';             
    948 
    10 function mlf_parseURL($url) { 
    11     $r  = '!(?:(\w+)://)?(?:(\w+)\:(\w+)@)?([^/:]+)?'; 
    12     $r .= '(?:\:(\d*))?([^#?]+)?(?:\?([^#]+))?(?:#(.+$))?!i'; 
    1349 
    14     preg_match ( $r, $url, $out ); 
    15     $result = @array( 
    16         "scheme" => $out[1], 
    17         "host" => $out[4].(($out[5]=='')?'':':'.$out[5]), 
    18         "user" => $out[2], 
    19         "pass" => $out[3], 
    20         "path" => $out[6], 
    21         "query" => $out[7], 
    22         "fragment" => $out[8] 
    23         ); 
    24     return $result; 
    25 } 
    26  
    27 function mlf_startsWith($s, $n) { 
    28     if(strlen($n)>strlen($s)) return false; 
    29     if($n == substr($s,0,strlen($n))) return true; 
    30     return false; 
    31 } 
    32  
    33 function mlf_get_tranlsations_ids($post_id, $post_type = 'post') { 
    34  
    35     if (!is_numeric($post_id)) 
    36         return false; 
    37      
    38     global $wpdb; 
    39      
    40     $post_type_base = preg_replace('/(.+)_translations_([a-zA-Z]{2})/', "$1", $post_type); 
    41      
    42     $enabled_languages = mlf_get_option('enabled_languages'); 
    43     $default_language = mlf_get_option('default_language'); 
    44     $result = array(); 
    45      
    46     foreach ($enabled_languages as $lang) { 
     50            $wp_query->query = array( 
    4751             
    48         $translation_id = false; 
    49         $p_type = $post_type_base . '_translations_' . $lang;             
    50          
    51         if ($p_type == $post_type_base . '_translations_' . $default_language) 
    52             $p_type = $post_type_base; 
    53  
    54         if ( $post_type == $p_type ) { 
    55             continue; 
     52                'post_type' => $post_type, 
     53                //'post_type' => $post_type . '_translations_' . $mlf_config['current_language'], 
     54                'name' => $wp_query->query_vars['pagename'], 
     55                $wp_query->query_vars['post_type'] => $wp_query->query_vars['name'] 
     56                 
     57            ); 
     58             
     59             
    5660        } 
    5761         
    58         $result[$lang] = $wpdb->get_var("SELECT ID FROM $wpdb->posts p JOIN $wpdb->postmeta pm ON post_id = p.ID WHERE post_status <> 'trash' AND post_type='$p_type' AND meta_key='_translation_of' AND meta_value=$post_id "); 
    59          
     62        // We dont have the post ID here, so lets do this in another action 
     63        add_action('template_redirect', 'mlf_single_translation'); 
     64     
    6065    } 
    61      
    62     return $result; 
    6366     
    6467} 
    6568 
     69function mlf_single_translation() { 
     70 
     71    global $wp_query; 
     72    $default_language = mlf_get_option('default_language'); 
     73     
     74    if (is_object($wp_query->post) && isset($wp_query->post->ID)) { 
     75     
     76        global $wpdb, $mlf_config; 
     77        $post = $wp_query->post; 
     78        $post_type = preg_replace('/(.+)_translations_([a-zA-Z]{2})/', "$1", $post->post_type); 
     79         
     80        if (preg_match('/(.+)_translations_([a-zA-Z]{2})/', $post->post_type)) 
     81            $post_lang = preg_replace('/(.+)_translations_([a-zA-Z]{2})/', "$2", $post->post_type); 
     82        else 
     83            $post_lang = $default_language; 
     84         
     85        // we are seeing the language we want, no need to look for translations 
     86         
     87        if ($post_lang == $mlf_config['current_language']) 
     88            return; 
     89         
     90        $post_type_search = $default_language == $mlf_config['current_language'] ? $post_type : $post_type . "_translations_" . $mlf_config['current_language']; 
     91         
     92        $query = "select * from $wpdb->posts join $wpdb->postmeta on ID = post_id WHERE post_type = '$post_type_search'  
     93                AND meta_key = '_translation_of' AND meta_value = $post->ID"; 
     94                 
     95        $translation = $wpdb->get_row($query); 
     96         
     97        if ($translation) { 
     98            $wp_query->post = $translation; 
     99            $wp_query->posts[0] = $translation; 
     100        } else { 
     101            add_filter('the_content', 'mlf_add_not_available_message'); 
     102        } 
     103    } 
     104     
     105    //echo '<pre>'; print_r($wp_query); 
     106 
     107} 
     108 
    66109?> 
  • multi-language-framework/trunk/post_types.php

    r355199 r356875  
    77// Creates a post type for each language 
    88function post_translations_init() { 
    9     global $langs; 
    109    
    11     $language_name = mlf_get_option('language_name'); 
    12     $enabled_languages = mlf_get_option('enabled_languages'); 
    13     $default_language = mlf_get_option('default_language'); 
    14  
    15     $labels = array( 
    16         'name' => _x('Post Translations', 'post type general name'), 
    17         'singular_name' => _x('Post Translation', 'post type singular name'), 
    18         'add_new' => _x('Add New','mlf'), 
    19         'add_new_item' => __('Add New Translation'), 
    20         'edit_item' => __('Edit Translation'), 
    21         'new_item' => __('New Translation'), 
    22         'view_item' => __('View Translation'), 
    23         'search_items' => __('Search Translations'), 
    24         'not_found' =>  __('No translations found'), 
    25         'not_found_in_trash' => __('No translations found in Trash'),  
    26         'parent_item_colon' => '' 
    27     ); 
    28     $args = array( 
    29         'labels' => $labels, 
    30         'public' => true, 
    31         'rewrite' => false, 
    32         'capability_type' => 'post', 
    33         'hierarchical' => false, 
    34         'menu_position' => 5, 
    35         'supports' => array('title','editor','author','thumbnail','excerpt','comments') 
    36     );  
     10    global $wp_post_types, $mlf_config; 
     11     
     12    $language_name = $mlf_config['language_name']; 
     13    $enabled_languages = $mlf_config['enabled_languages']; 
     14    $default_language = $mlf_config['default_language']; 
    3715     
    3816    foreach ($enabled_languages as $l) { 
     
    4018        if ($l == $default_language) 
    4119            continue; 
    42          
    43         $labels = array( 
    44             'name' => _x('Posts - ' . $language_name[$l], 'post type general name'), 
    45             'singular_name' => _x('Post - ' . $l, 'post type singular name'), 
    46             'add_new' => __('Add New', 'mlf'), 
    47             'add_new_item' => __('Add New Translation', 'mlf'), 
    48             'edit_item' => __('Edit Translation','mlf'), 
    49             'new_item' => __('New Translation', 'mlf'), 
    50             'view_item' => __('View Translation', 'mlf'), 
    51             'search_items' => __('Search Translations', 'mlf'), 
    52             'not_found' =>  __('No translations found', 'mlf'), 
    53             'not_found_in_trash' => __('No translations found in Trash', 'mlf'),  
    54             'parent_item_colon' => '' 
    55         ); 
    56         $args = array( 
    57             'labels' => $labels, 
    58             'public' => true, 
    59             'rewrite' => array('slug' => $l), 
    60             'capability_type' => 'post', 
    61             'hierarchical' => false, 
    62             'menu_position' => 5, 
    63             'supports' => array('title','editor','author','thumbnail','excerpt','comments') 
    64         );  
    65         register_post_type('post_translations_' . $l, $args); 
    66     } 
    67 } 
    68  
    69  
    70 // Adds the Translation Column to the Edit screen 
    71  
    72 add_action('manage_posts_custom_column', 'post_translations_add_column', 10, 2); 
    73 add_filter('manage_posts_columns', '_post_translations_add_column'); 
     20        //var_dump($mlf_config['post_types']); 
     21        foreach ($mlf_config['post_types'] as $p_type) { 
     22             
     23            $labels = (array) $wp_post_types[$p_type]->labels; 
     24            $labels['name'] .= ' - ' . $language_name[$l]; 
     25             
     26            switch ($p_type) { 
     27             
     28                case 'post': 
     29                    $menu_pos = 5; 
     30                    break; 
     31                case 'page': 
     32                    $menu_pos = 20; 
     33                    break; 
     34                default: 
     35                    $menu_pos = $wp_post_types[$p_type]->menu_position ? $wp_post_types[$p_type]->menu_position : 25; 
     36             
     37            } 
     38             
     39            $args = array( 
     40                'labels' => $labels, 
     41                'public' => true, 
     42                'rewrite' => array('slug' => $l), 
     43                'capability_type' => $wp_post_types[$p_type]->capability_type, 
     44                'hierarchical' => $wp_post_types[$p_type]->hierarchical == 1, 
     45                'menu_position' => $menu_pos, 
     46                'supports' => array('title','editor','author','thumbnail','excerpt','comments') 
     47            );  
     48            register_post_type($p_type . '_translations_' . $l, $args); 
     49             
     50        } 
     51    } 
     52     
     53    // Adds the Translation Column to the Edit screen 
     54     
     55    add_filter("manage_posts_columns", '_post_translations_add_column'); 
     56     
     57    add_action("manage_posts_custom_column", 'post_translations_add_column', 10, 2); 
     58    add_action("manage_pages_custom_column", 'post_translations_add_column', 10, 2); 
     59     
     60    add_action('admin_menu', 'post_translation_box'); 
     61     
     62    foreach ($mlf_config['post_types'] as $p_type) { 
     63        add_filter("manage_{$p_type}_posts_columns", '_post_translations_add_column'); 
     64        add_action("save_$p_type", 'post_translation_save'); 
     65    } 
     66     
     67     
     68} 
    7469 
    7570function _post_translations_add_column($defaults) { 
     
    9489     
    9590    if ($column_name=="post_translations") { 
    96         global $wpdb, $plugin_url; 
     91        global $wpdb; 
    9792         
    9893        $enabled_languages = mlf_get_option('enabled_languages'); 
     
    107102            $post_type = $_POST['post_type']; 
    108103         
     104        $post_type_base = preg_replace('/^(\S+)_translations_\S{2}$/', "$1", $post_type); 
    109105         
    110106        foreach ($enabled_languages as $lang) { 
    111107             
    112108            $translation_id = false; 
    113             $p_type = 'post_translations_' . $lang;             
    114             $flag_img = $plugin_url . $flag_location . $flag[$lang]; 
    115              
    116             if ($p_type == 'post_translations_' . $default_language) 
    117                 $p_type = 'post'; 
     109            $p_type = $post_type_base . '_translations_' . $lang;             
     110            $flag_img = MLF_PLUGIN_URL . $flag_location . $flag[$lang]; 
     111             
     112            if ($p_type == $post_type_base . '_translations_' . $default_language) 
     113                $p_type = $post_type_base; 
    118114 
    119115            if ( $post_type == $p_type ) { 
     
    134130} 
    135131 
    136 add_action('admin_menu', 'post_translation_box'); 
    137 add_action('save_post', 'post_translation_save'); 
    138  
    139132function post_translation_box() { 
    140133    $enabled_languages = mlf_get_option('enabled_languages'); 
    141      
    142     add_meta_box( 'post_translations',__('Post Translations', 'mlf'),'post_translation_inner_box', 'post', 'side' ); 
    143      
    144     foreach ($enabled_languages as $lang) { 
    145         add_meta_box( 'post_translations',__('Post Translations', 'mlf'),'post_translation_inner_box', 'post_translations_' . $lang, 'side' ); 
    146     } 
     134    $post_types = mlf_get_option('post_types'); 
     135     
     136    foreach ($post_types as $p) { 
     137     
     138        add_meta_box( 'post_translations',__('Post Translations', 'mlf'), 'post_translation_inner_box', $p, 'side' ); 
     139         
     140        foreach ($enabled_languages as $lang) { 
     141            add_meta_box( 'post_translations',__('Post Translations', 'mlf'),'post_translation_inner_box', $p . '_translations_' . $lang, 'side' ); 
     142        } 
     143     
     144    } 
     145     
     146     
    147147} 
    148148    
     
    167167     
    168168     
    169     global $wpdb, $plugin_url; 
     169    global $wpdb; 
    170170     
    171171    $default_language = mlf_get_option('default_language'); 
     
    179179     
    180180    $post_type = $post->post_type; 
     181    $post_type_base = preg_replace('/^(\S+)_translations_\S{2}$/', "$1", $post->post_type); 
     182     
    181183    $flag_location = mlf_get_option('flag_location'); 
    182184    $flag = mlf_get_option('flag');    
     
    185187         
    186188        $translation_id = false; 
    187         $p_type = 'post_translations_' . $lang;             
    188         $flag_img = $plugin_url . $flag_location . $flag[$lang]; 
    189          
    190         if ($p_type == 'post_translations_' . $default_language) 
    191             $p_type = 'post'; 
     189        $p_type = $post_type_base . '_translations_' . $lang;             
     190        $flag_img = MLF_PLUGIN_URL . $flag_location . $flag[$lang]; 
     191         
     192        if ($p_type == $post_type_base . '_translations_' . $default_language) 
     193            $p_type = $post_type_base; 
    192194 
    193195        if ( $post_type == $p_type ) { 
     
    197199         
    198200         
    199         #echo "SELECT ID FROM $wpdb->posts p JOIN $wpdb->postmeta pm ON post_id = p.ID WHERE post_type='$p_type' AND meta_key='_translation_of' AND meta_value=$id "; 
     201        #echo "SELECT ID FROM $wpdb->posts p JOIN $wpdb->postmeta pm ON post_id = p.ID WHERE post_status <> 'trash' AND post_type='$p_type' AND meta_key='_translation_of' AND meta_value={$post->ID} "; 
    200202         
    201203        if ($translation_id = $wpdb->get_var("SELECT ID FROM $wpdb->posts p JOIN $wpdb->postmeta pm ON post_id = p.ID WHERE post_status <> 'trash' AND post_type='$p_type' AND meta_key='_translation_of' AND meta_value={$post->ID} ")) {                 
     
    294296 
    295297add_action('post_submitbox_misc_actions', 'mlf_copy_date_checkbox'); 
     298add_action('page_submitbox_misc_actions', 'mlf_copy_date_checkbox'); 
    296299 
    297300function mlf_copy_date_checkbox() { 
     
    321324 
    322325function mlf_other_versions_box(){ 
    323     global $post, $plugin_url; 
     326    global $post; 
    324327 
    325328    $default_language = mlf_get_option('default_language'); 
     
    353356                <?php 
    354357                    foreach ($translation_version as $lang => $text){ 
    355                         $flag_img = $plugin_url . $flag_location . $flag[$lang]; 
     358                        $flag_img = MLF_PLUGIN_URL . $flag_location . $flag[$lang]; 
    356359                        echo '<li class="' . $class . '"><a href="#post_translation_'. $lang . '"><img src="' . $flag_img . '"></a></li>'; 
    357360                    } 
  • multi-language-framework/trunk/readme.txt

    r297980 r356875  
    21212. Upload to the plugins folder 
    22223. Activate it 
    23 4. See Other Notes for more details on how to configure and use this plugin 
    2423 
     24== FAQ == 
     25 
     261. I have placed some widgets in the sidebar but they wont show up! 
     27 
     28All the options you set in the admin are language-independent. So you can have a different set of wigets for each language of your site. If you want a widget to allways appear you have to edit the widgets settings for all the languages. 
  • multi-language-framework/trunk/settings.php

    r349882 r356875  
    22 
    33function mlf_page_admin() {  
    4     global $plugin_url, $plugin_prefix , $plugin_name; 
     4    global $wp_post_types; 
     5     
     6    $mlf_config = get_option('mlf_config'); 
    57 
    6     $enabled_languages = mlf_get_option('enabled_languages'); 
    7     $language_name_list = mlf_get_option('language_name'); 
     8    $mlf_static = mlf_load_static_options(); 
    89     
    9     foreach ($enabled_languages as $language){ 
    10         $language_label[$language] = $language_name_list[$language]; 
    11     }     
     10    ?> 
     11    <div class="wrap"> 
     12         
     13         
     14            <form method="post" action="options.php"> 
     15             
     16             
     17                <?php settings_fields('multi-language-settings-group'); ?> 
     18                 
     19                <h2><?php _e('Multi Language Options', 'mlf'); ?></h2> 
     20                 
     21                <h3><?php _e('Default language', 'mlf'); ?></h3> 
     22                 
     23                    <select name="mlf_config[default_language]"> 
     24                    <?php foreach( $mlf_config['enabled_languages'] as $lang ) : ?> 
     25                     
     26                        <option value="<?php echo $lang; ?>" <?php if ($lang == $mlf_config['default_language']) echo 'selected'; ?> > <?php echo $mlf_static['language_name'][$lang]; ?></option> 
     27                     
     28                    <?php endforeach; ?> 
     29                    </select> 
     30                     
     31                <h3><?php _e('URL Mode', 'mlf'); ?></h3> 
     32                 
     33                    <input type="radio" name="mlf_config[url_mode]" value="subdomain" <?php if ('subdomain' == $mlf_config['url_mode']) echo 'checked'; ?> > <?php _e('subdomain - es.mysite.com', 'mlf'); ?>  UNTESTED<br /> 
     34                    <input type="radio" name="mlf_config[url_mode]" value="path" <?php if ('path' == $mlf_config['url_mode']) echo 'checked'; ?> > <?php _e('subdirectory - mysite.com/es', 'mlf'); ?> <br /> 
     35                    <input type="radio" name="mlf_config[url_mode]" value="querystring" <?php if ('querystring' == $mlf_config['url_mode']) echo 'checked'; ?> > <?php _e('query string - mysite.com/?lang=es', 'mlf'); ?> UNTESTED<br /> 
     36                 
     37                 
     38                <h3><?php _e('Post types that will be translated', 'mlf'); ?></h3> 
     39                 
     40                    <?php foreach ($wp_post_types as $type_name => $type) : ?> 
     41                         
     42                        <?php if ($type_name == 'attachment' || $type_name == 'revision' || $type_name == 'nav_menu_item' || preg_match('/_translations_/', $type_name)) continue; ?> 
     43                     
     44                        <input type="checkbox" name="mlf_config[post_types][]" value="<?php echo $type_name; ?>" <?php if (in_array($type_name, $mlf_config['post_types'])) echo 'checked'; ?> > <?php echo $type_name; ?> <br /> 
     45                     
     46                    <?php endforeach; ?> 
     47                 
     48                 
     49                <h3><?php _e('Languages', 'mlf'); ?></h3> 
     50                    <table> 
     51                        <tr> 
     52                            <td>Enabled</td> 
     53                            <td>Language</td> 
     54                            <td>Not Available message</td> 
     55                            <td>Translation available link label</td> 
     56                        </tr> 
     57                     
     58                    <?php foreach ($mlf_static['language_name'] as $lang => $name): ?> 
     59                     
     60                        <tr> 
     61                            <td> 
     62                                <input type="checkbox" name="mlf_config[enabled_languages][]" value="<?php echo $lang; ?>" <?php if (in_array($lang, $mlf_config['enabled_languages'])) echo 'checked'; ?> > 
     63                            </td> 
     64                            <td><?php echo $name; ?></td> 
     65                            <td><input type="text" name="mlf_config[labels][not_available][<?php echo $lang; ?>]" value="<?php echo htmlspecialchars($mlf_config['labels']['not_available'][$lang]); ?>"></td> 
     66                            <td><input type="text" name="mlf_config[labels][available][<?php echo $lang; ?>]" value="<?php echo htmlspecialchars($mlf_config['labels']['available'][$lang]); ?>"></td> 
     67                        </tr> 
     68                     
     69                    <?php endforeach; ?> 
     70                    </table> 
     71                     
     72                <input type="hidden" name="mlf_config[hide_default_language]" value="1"> 
     73                 
     74                <p class="submit"> 
     75                <input type="submit" class="button-primary" value="<?php _e('Save Changes') ?>" /> 
     76                </p> 
     77             
     78             
     79            </form> 
     80         
     81         
     82        </div> 
     83         
     84        <?php 
    1285     
    13      
    14     $options = array ( 
    15         array( "name" => $plugin_name." Options", 
    16                "type" => "title"), 
    17                 
    18         array( "name" => "General", 
    19                "type" => "section"), 
    20          
    21         array( "type" => "open"),     
    22           
    23         array( "name" => "Default Language", 
    24             "desc" => "Select the site default language", 
    25             "id" => $plugin_prefix."default_language", 
    26             "type" => "select", 
    27             "options" => $enabled_languages, 
    28             "label" =>   $language_label, 
    29             "std" => "blue"), 
    30              
    31         array( "type" => "close"), 
    32         array( "name" => "Advanced", 
    33             "type" => "section"), 
    34         array( "type" => "open"), 
    35          
    36         array( "name" => "URL Modification Mode", 
    37             "desc" => "Choose a url mode", 
    38             "id" => $plugin_prefix."url_mode", 
    39             "type" => "radio", 
    40             "options" => array("query" => "Use Query Mode (?lang=en)", "path" => "Use Path Mode (puts /en/ in front of URL)", "subdomain" => "Use subdomains (en.yoursite.com)"), 
    41             "std" => "Choose a category"), 
    42              
    43         array( "type" => "close") 
    44     );         
    45     
    46     $i=0; 
    47     global $mlf_config; 
     86} 
     87 
    4888?> 
    49     <h1>No settings page yet</h1> 
    50     Default settings: 
    51      
    52     <pre> 
    53     <?php print_r($mlf_config); ?> 
    54     </pre> 
    55     <!-- 
    56     <div class="wrap mlf_wrap"> 
    57         <h2><?php echo $plugin_name; ?> Settings</h2> 
    58       
    59         <div class="mlf_opts"> 
    60      
    61             <form method="post" action="options.php"> 
    62              
    63             <?php settings_fields( 'multi-language-settings-group' ); ?> 
    64              
    65             <?php foreach ($options as $value) { 
    66  
    67             switch ( $value['type'] ) { 
    68           
    69                 case "open": 
    70                     break; 
    71              
    72                 case "close": 
    73             ?>              
    74                 </div> 
    75             </div> 
    76             <br /> 
    77  
    78             <?php  
    79                 break; 
    80               
    81                 case "title": 
    82             ?>             
    83             <p>To easily use the <?php echo $themename;?> theme, you can use the menu below.</p> 
    84               
    85             <?php  
    86                 break;  
    87                  
    88                 case "text": 
    89             ?> 
    90  
    91             <div class="mlf_input mlf_text"> 
    92              
    93                 <label for="<?php echo $value['id']; ?>"><?php echo $value['name']; ?></label> 
    94                 <input name="<?php echo $value['id']; ?>" id="<?php echo $value['id']; ?>" type="<?php echo $value['type']; ?>" value="<?php if ( get_settings( $value['id'] ) != "") { echo stripslashes(get_settings( $value['id'])  ); } else { echo $value['std']; } ?>" /> 
    95                 <small><?php echo $value['desc']; ?></small><div class="clearfix"></div> 
    96               
    97              </div> 
    98              
    99             <?php  
    100                 break; 
    101               
    102                 case "textarea": 
    103             ?> 
    104  
    105             <div class="mlf_input mlf_textarea"> 
    106              
    107                 <label for="<?php echo $value['id']; ?>"><?php echo $value['name']; ?></label> 
    108                 <textarea name="<?php echo $value['id']; ?>" type="<?php echo $value['type']; ?>" cols="" rows=""><?php if ( get_settings( $value['id'] ) != "") { echo stripslashes(get_settings( $value['id']) ); } else { echo $value['std']; } ?></textarea> 
    109                 <small><?php echo $value['desc']; ?></small><div class="clearfix"></div>              
    110              </div> 
    111                
    112             <?php 
    113                 break; 
    114               
    115                 case "select": 
    116             ?> 
    117  
    118             <div class="mlf_input mlf_select"> 
    119                 <label for="<?php echo $value['id']; ?>"><?php echo $value['name']; ?></label> 
    120                  
    121                 <select name="<?php echo $value['id']; ?>" id="<?php echo $value['id']; ?>"> 
    122                 <?php foreach ($value['options'] as $option) { ?> 
    123                         <option <?php if (get_settings( $value['id'] ) == $option) { echo 'selected="selected"'; } ?> value="<?php echo $option; ?>"> 
    124                         <?php if (isset($value['label'])) { ?> 
    125                             <?php echo $value['label'][$option]; ?> 
    126                         <? }else{ ?> 
    127                             <?php echo $option; ?> 
    128                         <? } ?>                             
    129                         </option> 
    130                 <?php } ?> 
    131                 </select> 
    132  
    133                 <small><?php echo $value['desc']; ?></small><div class="clearfix"></div> 
    134             </div> 
    135              
    136             <?php 
    137                 break; 
    138               
    139                 case "checkbox": 
    140             ?> 
    141  
    142             <div class="mlf_input mlf_checkbox"> 
    143                 <label for="<?php echo $value['id']; ?>"><?php echo $value['name']; ?></label> 
    144                  
    145                 <?php if(get_option($value['id'])){ $checked = "checked=\"checked\""; }else{ $checked = "";} ?> 
    146                 <input type="checkbox" name="<?php echo $value['id']; ?>" id="<?php echo $value['id']; ?>" value="true" <?php echo $checked; ?> /> 
    147  
    148                 <small><?php echo $value['desc']; ?></small><div class="clearfix"></div> 
    149              </div> 
    150               
    151             <?php 
    152                 break; 
    153               
    154                 case "radio": 
    155             ?> 
    156  
    157             <div class="mlf_input mlf_radio"> 
    158                 <label for="<?php echo $value['id']; ?>"><?php echo $value['name']; ?></label> 
    159  
    160                 <ul> 
    161                     <?php foreach ($value['options'] as $option => $label) { ?>                     
    162                         <li><input type="radio" name="<?php echo $value['id']; ?>" id="<?php echo $value['id']; ?>" value="<?php echo $option ?>"  <?php if (get_settings( $value['id'] ) == $option) { echo 'checked="checked"'; } ?>><?php echo $label ?></li> 
    163                     <?php } ?>   
    164                 </ul> 
    165                 <small><?php echo $value['desc']; ?></small><div class="clearfix"></div> 
    166              </div> 
    167             <?php  
    168                 break;  
    169                 case "section": 
    170  
    171                 $i++; 
    172  
    173             ?> 
    174  
    175             <div class="mlf_section"> 
    176                 <div class="mlf_title"><h3><img src="<?php echo $plugin_url; ?>images/trans.png" class="inactive" alt="""><?php echo $value['name']; ?></h3><span class="submit"><input name="save<?php echo $i; ?>" type="submit" value="Save changes" /> 
    177                 </span><div class="clearfix"></div></div> 
    178                 <div class="mlf_options"> 
    179               
    180             <?php  
    181                 break; 
    182             }   // close switch 
    183         }   // close foreach 
    184         ?>              
    185          
    186             <p class="submit"> 
    187                 <input type="submit" class="button-primary" value="<?php _e('Save Changes') ?>" /> 
    188             </p>    
    189             </form>   
    190         </div>  
    191         --> 
    192 <?php 
    193 } 
    194 ?> 
  • multi-language-framework/trunk/wp_options.php

    r346418 r356875  
    55 
    66foreach ($mlf_all_options as $o) { 
    7     if (!preg_match('/^mlf_\S+_/', $o)) { 
     7    if (!preg_match('/^mlf_\S+/', $o)) { 
    88        add_filter('pre_option_' . $o, 'mlf_pre_option'); 
    99    } 
     
    1515function mlf_update_option($option, $old_value, $new_value) { 
    1616 
    17     if (preg_match('/^mlf_\S+_/', $option)) 
     17    if (preg_match('/^mlf_\S+/', $option)) 
    1818        return false; 
    1919     
    20     global $wpdb, $admin_language, $mlf_options_restore; 
     20    global $wpdb, $mlf_config, $mlf_options_restore; 
    2121     
    2222    $default_language = mlf_get_option('default_language'); 
    2323     
    24     if ($admin_language == $default_language) 
     24    if ($mlf_config['current_language'] == $default_language) 
    2525        return false; 
    2626     
     
    3434function mlf_updated_option($option, $old_value, $new_value) { 
    3535 
    36     if (preg_match('/^mlf_\S+_/', $option)) 
     36    if (preg_match('/^mlf_\S+/', $option)) 
    3737        return false; 
    3838     
    39     global $wpdb, $admin_language, $mlf_options_restore; 
     39    global $wpdb, $mlf_config, $mlf_options_restore; 
    4040     
    4141    $default_language = mlf_get_option('default_language'); 
    4242     
    43     if ($admin_language == $default_language) 
     43    if ($mlf_config['current_language'] == $default_language) 
    4444        return false; 
    4545     
    4646    // restore old_value 
    47      
    48     //print_r($mlf_options_restore); die('aaa'); 
    4947     
    5048    $old_value = $mlf_options_restore[$option]; 
     
    5351     
    5452    //save new value to the language option 
    55     update_option('mlf_' . $admin_language . '_' . $option, $new_value); 
     53    update_option('mlf_' . $mlf_config['current_language'] . '_' . $option, $new_value); 
    5654 
    5755 
     
    6159 
    6260function mlf_pre_option($r) { 
    63  
    6461     
    6562    $option = str_replace('pre_option_', '', current_filter()); 
    6663     
    67     global $admin_language, $wpdb; 
     64    global $wpdb, $mlf_config; 
    6865     
    6966    $default_language = mlf_get_option('default_language'); 
    7067     
    71     if ($admin_language != $default_language && $value = get_option('mlf_' . $admin_language . '_' . $option, false) ) { 
     68    if ($mlf_config['current_language'] != $default_language && $value = get_option('mlf_' . $mlf_config['current_language'] . '_' . $option, false) ) { 
    7269        return $value; 
    7370    } else { 
Note: See TracChangeset for help on using the changeset viewer.