options = &$polylang->options; parent::__construct( $polylang, array( 'module' => 'browser', 'title' => __( 'Detect browser language', 'polylang' ), 'description' => __( 'When the front page is visited, set the language according to the browser preference', 'polylang' ), 'active_option' => $this->is_available() ? 'browser' : false, ) ); if ( ! class_exists( 'PLL_Xdata_Domain', true ) ) { add_action( 'admin_print_footer_scripts', array( $this, 'print_js' ) ); } } /** * Tells if the option is available * * @since 2.0 * * @return bool */ protected function is_available() { return ( 3 > $this->options['force_lang'] ) || class_exists( 'PLL_Xdata_Domain', true ); } /** * Tells if the module is active * * @since 1.8 * * @return bool */ public function is_active() { return $this->is_available() ? parent::is_active() : false; } /** * Displays the javascript to handle dynamically the change in url modifications * as the preferred browser language is not used when the language is set from different domains * * @since 1.8 */ public function print_js() { wp_enqueue_script( 'jquery' ); if ( parent::is_active() && 3 > $this->options['force_lang'] ) { $func = 'removeClass( "inactive" ).addClass( "active" )'; $link = sprintf( '%s', $this->action_links['deactivate'] ); } else { $func = 'removeClass( "active" ).addClass( "inactive" )'; $link = sprintf( '%s', $this->action_links['activate'] ); } $deactivated = sprintf( '%s', $this->action_links['deactivated'] ); ?>