WordPress.org

Plugin Directory

Changeset 346418


Ignore:
Timestamp:
02/16/11 13:46:37 (3 years ago)
Author:
leogermani
Message:

[fix] options funcionando!

File:
1 edited

Legend:

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

    r300422 r346418  
    11<?php 
     2global $wpdb, $mlf_options_restore; 
    23 
    3 #add_action('wp', 'mlf_option_filters'); 
     4$mlf_all_options = $wpdb->get_col("SELECT option_name FROM $wpdb->options"); 
    45 
     6foreach ($mlf_all_options as $o) { 
     7    if (!preg_match('/^mlf_\S+_/', $o)) { 
     8        add_filter('pre_option_' . $o, 'mlf_pre_option'); 
     9    } 
     10} 
    511 
    6 #function mlf_option_filters() { 
    7 #echo 'bbbbbbbbbbb'; 
    8     global $wpdb; 
    9  
    10     $mlf_all_options = $wpdb->get_col("SELECT option_name FROM $wpdb->options"); 
    11  
    12     foreach ($mlf_all_options as $o) { 
    13         if (!preg_match('/^mlf_\S+_/', $o)) { 
    14        
    15        
    16              
    17             add_filter('pre_option_' . $o, 'mlf_pre_option'); 
    18              
    19              
    20         } 
    21     } 
    22  
    23  
    24     add_action('updated_option', 'mlf_update_option', 10, 3); 
    25     #add_filter('get_option', 'mlf_get_option_filter', 10, 3); 
    26      
    27 #} 
    28  
     12add_action('update_option', 'mlf_update_option', 10, 3); 
     13add_action('updated_option', 'mlf_updated_option', 10, 3); 
    2914 
    3015function mlf_update_option($option, $old_value, $new_value) { 
     
    3318        return false; 
    3419     
    35     global $wpdb, $admin_language; 
     20    global $wpdb, $admin_language, $mlf_options_restore; 
     21     
     22    $default_language = mlf_get_option('default_language'); 
     23     
     24    if ($admin_language == $default_language) 
     25        return false; 
     26     
     27    // We need to save the value before its updated so we can restore it afterwars 
     28    // On the updated_option hook we can not trust $old_value, because its already filtered in the get_option() call 
     29     
     30    // save value 
     31    $mlf_options_restore[$option] = $wpdb->get_var("SELECT option_value FROM $wpdb->options WHERE option_name = '$option' LIMIT 1"); 
     32    } 
     33 
     34function mlf_updated_option($option, $old_value, $new_value) { 
     35 
     36    if (preg_match('/^mlf_\S+_/', $option)) 
     37        return false; 
     38     
     39    global $wpdb, $admin_language, $mlf_options_restore; 
    3640     
    3741    $default_language = mlf_get_option('default_language'); 
     
    4145     
    4246    // restore old_value 
     47     
     48    //print_r($mlf_options_restore); die('aaa'); 
     49     
     50    $old_value = $mlf_options_restore[$option]; 
     51     
    4352    $wpdb->update( $wpdb->options, array( 'option_value' => $old_value ), array( 'option_name' => $option ) ); 
    4453     
     
    6978} 
    7079 
    71  
    72 /* Não está sendo usada, era a função que usava se fosse usar o novo filtro q eu fiz o patch */ 
    73 function mlf_get_option_filter($flag, $option, $default) { 
    74      
    75     if (preg_match('/^mlf_\S+_/', $option)) 
    76         return false; 
    77      
    78     global $admin_language, $wpdb; 
    79      
    80     $default_language = mlf_get_option('default_language'); 
    81      
    82     #if ($option == 'blogname') 
    83     #    var_dump(get_option('mlf_' . $admin_language . '_' . $option)); 
    84     #var_dump( $admin_language , $default_language); die; 
    85      
    86     if ($admin_language != $default_language && $value = get_option('mlf_' . $admin_language . '_' . $option, false) ) { 
    87         #if ($option == 'blogname') die('aa'); 
    88         return $value; 
    89     } else { 
    90         return false; 
    91     } 
    92  
    93 } 
    9480?> 
Note: See TracChangeset for help on using the changeset viewer.