Changeset 3149222
- Timestamp:
- 09/10/2024 12:26:22 PM (19 months ago)
- Location:
- language-switcher/trunk
- Files:
-
- 4 edited
-
includes/class-language-switcher.php (modified) (3 diffs)
-
includes/lib/class-language-switcher-admin-api.php (modified) (1 diff)
-
language-switcher.php (modified) (1 diff)
-
readme.txt (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
-
language-switcher/trunk/includes/class-language-switcher.php
r3145399 r3149222 197 197 add_action('wp_head', array($this,'add_hreflang_in_head')); 198 198 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); 209 205 210 206 } // End __construct () … … 478 474 else{ 479 475 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 } 481 486 482 487 if( empty($default_locale) ){ … … 1800 1805 } 1801 1806 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' ){ 1807 1844 1808 1845 $default_lang = $this->get_default_language(true); 1809 1846 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 ){ 1851 1863 1852 $language['urls'][$lang] = $url; 1864 $languages['urls'][$lang] = $url; 1865 1866 break; 1853 1867 } 1854 1868 } 1855 1869 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; 1892 1876 } 1893 1877 -
language-switcher/trunk/includes/lib/class-language-switcher-admin-api.php
r3145399 r3149222 136 136 137 137 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 145 155 break; 146 156 147 157 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>'; 173 187 174 188 break; -
language-switcher/trunk/language-switcher.php
r3145424 r3149222 4 4 * Plugin URI: https://code.recuweb.com/download/language-switcher/ 5 5 * Description: Add a Language Switcher to Post Types and Taxonomies 6 * Version: 3.7.1 06 * Version: 3.7.11 7 7 * Author: Rafasashi 8 8 * Author URI: https://code.recuweb.com/about-us/ -
language-switcher/trunk/readme.txt
r3145424 r3149222 5 5 Requires at least: 4.6 6 6 Tested up to: 6.6 7 Stable tag: 3.7.1 07 Stable tag: 3.7.11 8 8 License: GPLv3 9 9 License URI: https://code.recuweb.com/product-licenses/
Note: See TracChangeset
for help on using the changeset viewer.