Plugin Directory

Changeset 3149222


Ignore:
Timestamp:
09/10/2024 12:26:22 PM (19 months ago)
Author:
rafasashi
Message:

3.7.11

Location:
language-switcher/trunk
Files:
4 edited

Legend:

Unmodified
Added
Removed
  • language-switcher/trunk/includes/class-language-switcher.php

    r3145399 r3149222  
    197197        add_action('wp_head', array($this,'add_hreflang_in_head'));
    198198        add_action('wp_head', array($this,'add_visibility_css_classes'));
    199        
    200         // multisite sync hooks
    201        
    202         add_action('msc_before_export_post_meta', array($this,'filter_export_post_meta'),0,3);
    203 
    204         add_action('msc_before_import_post_meta', array($this,'filter_import_post_meta'),0,5);
    205                
    206         add_action('msc_before_export_term_meta', array($this,'filter_export_term_meta'),0,3);
    207 
    208         add_action('msc_before_import_term_meta', array($this,'filter_import_term_meta'),0,5);
     199
     200        // bulk task editor hooks
     201       
     202        add_filter('rewbe_before_duplicate_meta', array($this, 'filter_bulk_duplicate_metadata'),0,2);
     203       
     204        add_filter('rewbe_duplicate_meta_value', array($this, 'bulk_duplicate_meta_value'),0,5);
    209205       
    210206    } // End __construct ()
     
    478474        else{
    479475           
    480             $default_locale = get_option('WPLANG');
     476            global $wpdb;
     477       
     478            $options_table = $wpdb->prefix . 'options';
     479           
     480            $results = $wpdb->get_results("SELECT option_value as value FROM $options_table WHERE option_name = 'WPLANG'");
     481           
     482            if( isset($results[0]) && is_object($results[0]) && isset($results[0]->value) ){
     483           
     484                $default_locale = $results[0]->value;
     485            }
    481486           
    482487            if( empty($default_locale) ){
     
    18001805    }
    18011806   
    1802     public function filter_export_term_meta($meta,$term,$site){
    1803        
    1804         if( $active_taxonomies = $this->get_active_taxonomies() ){
    1805            
    1806             if( in_array($term->taxonomy,$active_taxonomies) ){
     1807    public function filter_bulk_duplicate_metadata($metadata,$object){
     1808       
     1809        if( !empty($object->post_type) && in_array($object->post_type,$this->get_active_post_types()) ){
     1810           
     1811            $default_lang = $this->get_default_language(true);
     1812           
     1813            $languages = !empty($metadata['lsw_language_switcher']) ? maybe_unserialize($metadata['lsw_language_switcher']) : false;
     1814           
     1815            if( empty($languages['lsw_language_switcher']['urls'][$default_lang]) ){
     1816               
     1817                $metadata['lsw_language_switcher'] = array(serialize($this->get_post_language($object->ID)));
     1818            }
     1819        }
     1820        elseif( !empty($object->taxonomy) && in_array($object->taxonomy,$this->get_active_taxonomies()) ){
     1821           
     1822            $default_lang = $this->get_default_language(true);
     1823           
     1824            $languages = !empty($metadata['lsw_language_switcher']) ? maybe_unserialize($metadata['lsw_language_switcher']) : false;
     1825           
     1826            if( empty($languages['lsw_language_switcher']['urls'][$default_lang]) ){
     1827               
     1828                $metadata['lsw_language_switcher'] = array(serialize($this->get_term_language($object->term_id)));
     1829            }
     1830        }
     1831       
     1832        return $metadata;
     1833    }
     1834   
     1835    public function bulk_duplicate_meta_value($metadata,$name,$object,$args,$origin){
     1836       
     1837        global $wpdb;
     1838
     1839        if( !isset($origin[$wpdb->prefix]) ){
     1840           
     1841            // db prefix switched
     1842                   
     1843            if( $name == 'lsw_language_switcher' ){
    18071844               
    18081845                $default_lang = $this->get_default_language(true);
    18091846               
    1810                 if( empty($meta['language_switcher']['urls'][$default_lang]) ){
    1811                    
    1812                     $meta['language_switcher'] = $this->get_term_language($term);
    1813                 }
    1814             }
    1815         }
    1816        
    1817         return $meta;
    1818     }
    1819 
    1820     public function filter_export_post_meta($meta,$post,$site){
    1821        
    1822         if( $post_types = $this->get_active_post_types() ){
    1823            
    1824             if( in_array($post->post_type,$post_types) ){
    1825                
    1826                 $default_lang = $this->get_default_language(true);
    1827                
    1828                 if( empty($meta['lsw_language_switcher']['urls'][$default_lang]) ){
    1829                    
    1830                     $meta['lsw_language_switcher'] = $this->get_post_language($post->ID);
    1831                 }
    1832             }
    1833         }
    1834        
    1835         return $meta;
    1836     }
    1837    
    1838     public function filter_import_post_meta($meta,$data,$post_id,$post_type,$site){
    1839        
    1840         if( $post_types = $this->get_active_post_types() ){
    1841            
    1842             if( in_array($post_type,$post_types) && !empty($data['lsw_language_switcher']['urls'])) {
    1843 
    1844                 $default_lang = $this->get_default_language(true);
    1845                
    1846                 if( $language = $this->get_post_language($post_id) ){
    1847                    
    1848                     foreach( $data['lsw_language_switcher']['urls'] as $lang => $url ){
    1849                        
    1850                         if( !empty($url) && $lang != $default_lang ){
     1847                if( !empty($object->post_type) ){
     1848                   
     1849                    $languages = $this->get_post_language($object->ID);
     1850                }
     1851                elseif( !empty($object->taxonomy) ){
     1852                   
     1853                    $languages = $this->get_post_language($object->term_id);
     1854                }
     1855               
     1856                if( !empty($metadata['urls']) ){
     1857                   
     1858                    // merge language urls
     1859                   
     1860                    foreach( $metadata['urls'] as $lang => $url ){
     1861                       
     1862                        if( $metadata['main'] == $lang ){
    18511863                           
    1852                             $language['urls'][$lang] = $url;
     1864                            $languages['urls'][$lang] = $url;
     1865                           
     1866                            break;
    18531867                        }
    18541868                    }
    18551869                   
    1856                     $meta['lsw_main_language'] = $default_lang;
    1857                    
    1858                     $meta['lsw_language_switcher'] = $language;
    1859                 }
    1860             }
    1861         }
    1862        
    1863         return $meta;
    1864     }
    1865    
    1866     public function filter_import_term_meta($meta,$data,$term_id,$taxonomy,$site){
    1867        
    1868         if( $active_taxonomies = $this->get_active_taxonomies() ){
    1869            
    1870             if( in_array($taxonomy,$active_taxonomies) && !empty($data['language_switcher']['urls'])) {
    1871                
    1872                 $default_lang = $this->get_default_language(true);
    1873                
    1874                 if( $language = $this->get_term_language($term_id) ){
    1875                    
    1876                     foreach( $data['language_switcher']['urls'] as $lang => $url ){
    1877                        
    1878                         if( !empty($url) && $lang != $default_lang ){
    1879                            
    1880                             $language['urls'][$lang] = $url;
    1881                         }
    1882                     }
    1883                    
    1884                     $meta['lsw_main_language'] = $default_lang;
    1885                    
    1886                     $meta['language_switcher'] = $language;
    1887                 }
    1888             }
    1889         }
    1890        
    1891         return $meta;
     1870                    $metadata = $languages;
     1871                }
     1872            }
     1873        }
     1874       
     1875        return $metadata;
    18921876    }
    18931877   
  • language-switcher/trunk/includes/lib/class-language-switcher-admin-api.php

    r3145399 r3149222  
    136136
    137137            case 'checkbox_multi':
    138                 foreach ( $field['options'] as $k => $v ) {
    139                     $checked = false;
    140                     if ( in_array( $k, (array) $data ) ) {
    141                         $checked = true;
    142                     }
    143                     $html .= '<label style="display:block;" for="' . esc_attr( $field['id'] . '_' . $k ) . '" class="checkbox_multi"><input type="checkbox" ' . checked( $checked, true, false ) . ' name="' . esc_attr( $option_name ) . '[]" value="' . esc_attr( $k ) . '" id="' . esc_attr( $field['id'] . '_' . $k ) . '" /> ' . $v . '</label> ';
    144                 }
     138               
     139                $html .= '<div style="width:fit-content;">';
     140                   
     141                    foreach ( $field['options'] as $k => $v ) {
     142                       
     143                        $checked = false;
     144                       
     145                        if ( in_array( $k, (array) $data ) ) {
     146                           
     147                            $checked = true;
     148                        }
     149                       
     150                        $html .= '<label style="display:block;" for="' . esc_attr( $field['id'] . '_' . $k ) . '" class="checkbox_multi"><input type="checkbox" ' . checked( $checked, true, false ) . ' name="' . esc_attr( $option_name ) . '[]" value="' . esc_attr( $k ) . '" id="' . esc_attr( $field['id'] . '_' . $k ) . '" /> ' . $v . '</label> ';
     151                    }
     152                   
     153                $html .= '</div>';
     154               
    145155            break;
    146156
    147157            case 'object_checkbox_multi':
    148            
    149                 $labels = $this->parent->get_labels();
    150                
    151                 foreach ( $field['options'] as $k => $v ) {
    152                
    153                     $disabled = true;
    154                    
    155                     if( $this->parent->is_valid_object($field['object'],$v) ){
    156                        
    157                         $disabled = false;
    158                     }
    159                    
    160                     $checked = false;
    161                    
    162                     if ( !$disabled && in_array( $v, (array) $data ) ) {
    163                        
    164                         $checked = true;
    165                     }
    166                    
    167                     $html .= '<label style="display:block;" for="' . esc_attr( $field['id'] . '_' . $k ) . '" class="checkbox_multi">';
    168                        
    169                         $html .= '<input type="checkbox" ' . checked( $checked, true, false ) . ' name="' . esc_attr( $option_name ) . '[]" value="' . esc_attr( $v ) . '" id="' . esc_attr( $field['id'] . '_' . $k ) . '" ' . disabled( $disabled, true, false ) . ' /> ' . $labels[$field['object']][$v] . ' <i style="font-size:10px;">' . $v . '</i>';
    170                    
    171                     $html .= '</label> ';
    172                 }
     158               
     159                $html .= '<div style="width:fit-content;">';
     160                   
     161                    $labels = $this->parent->get_labels();
     162                   
     163                    foreach ( $field['options'] as $k => $v ) {
     164                   
     165                        $disabled = true;
     166                       
     167                        if( $this->parent->is_valid_object($field['object'],$v) ){
     168                           
     169                            $disabled = false;
     170                        }
     171                       
     172                        $checked = false;
     173                       
     174                        if ( !$disabled && in_array( $v, (array) $data ) ) {
     175                           
     176                            $checked = true;
     177                        }
     178                       
     179                        $html .= '<label style="display:block;" for="' . esc_attr( $field['id'] . '_' . $k ) . '" class="checkbox_multi">';
     180                           
     181                            $html .= '<input type="checkbox" ' . checked( $checked, true, false ) . ' name="' . esc_attr( $option_name ) . '[]" value="' . esc_attr( $v ) . '" id="' . esc_attr( $field['id'] . '_' . $k ) . '" ' . disabled( $disabled, true, false ) . ' /> ' . $labels[$field['object']][$v] . ' <i style="font-size:10px;">' . $v . '</i>';
     182                       
     183                        $html .= '</label> ';
     184                    }
     185                   
     186                $html .= '</div>';
    173187               
    174188            break;
  • language-switcher/trunk/language-switcher.php

    r3145424 r3149222  
    44 * Plugin URI: https://code.recuweb.com/download/language-switcher/
    55 * Description: Add a Language Switcher to Post Types and Taxonomies
    6  * Version: 3.7.10
     6 * Version: 3.7.11
    77 * Author: Rafasashi
    88 * Author URI: https://code.recuweb.com/about-us/
  • language-switcher/trunk/readme.txt

    r3145424 r3149222  
    55Requires at least: 4.6
    66Tested up to: 6.6
    7 Stable tag: 3.7.10
     7Stable tag: 3.7.11
    88License: GPLv3
    99License URI: https://code.recuweb.com/product-licenses/
Note: See TracChangeset for help on using the changeset viewer.