$_nav_menu_placeholder ? $_nav_menu_placeholder - 1 : -1;
?>
base ) {
return;
}
wp_enqueue_script( 'falang_nav_menu', FALANG_ADMIN_URL . '/js/nav-menu.js', array( 'jquery' ), Falang()->get_version(), true );
$data = array(
'strings' => Language_Switcher::get_switcher_options( 'menu', 'string' ), // The strings for the options
'title' => __( 'Languages', 'falang' ), // The title
'val' => array(),
);
// Get all language switcher menu items
$items = get_posts(
array(
'numberposts' => -1,
'nopaging' => true,
'post_type' => 'nav_menu_item',
'fields' => 'ids',
'meta_key' => '_falang_menu_item',
)
);
// The options values for the language switcher
foreach ( $items as $item ) {
$data['val'][ $item ] = get_post_meta( $item, '_falang_menu_item', true );
}
// Send all these data to javascript
wp_localize_script( 'falang_nav_menu', 'falang_data', $data );
}
/**
* Save our menu item options
*
* @since 1.3.1
*
* @param int $menu_id not used
* @param int $menu_item_db_id
*/
public function wp_update_nav_menu_item( $menu_id = 0, $menu_item_db_id = 0 ) {
if ( empty( $_POST['menu-item-url'][ $menu_item_db_id ] ) || '#falang_switcher' !== $_POST['menu-item-url'][ $menu_item_db_id ] ) { // phpcs:ignore WordPress.Security.NonceVerification
return;
}
// Security check as 'wp_update_nav_menu_item' can be called from outside WP admin
if ( current_user_can( 'edit_theme_options' ) ) {
check_admin_referer( 'update-nav_menu', 'update-nav-menu-nonce' );
$options = array( 'hide_current' => 0, 'display_flags' => 0, 'display_name' => 1, 'dropdown' => 0 ); // Default values
// Our jQuery form has not been displayed
if ( empty( $_POST['menu-item-falang-detect'][ $menu_item_db_id ] ) ) {
if ( ! get_post_meta( $menu_item_db_id, '_falang_menu_item', true ) ) { // Our options were never saved
update_post_meta( $menu_item_db_id, '_falang_menu_item', $options );
}
}
else {
foreach ( array_keys( $options ) as $opt ) {
$options[ $opt ] = empty( $_POST[ 'menu-item-' . $opt ][ $menu_item_db_id ] ) ? 0 : 1;
}
update_post_meta( $menu_item_db_id, '_falang_menu_item', $options ); // Allow us to easily identify our nav menu item
}
}
}
/**
* Assigns the title and label to the language switcher menu items
*
* @since 1.3.1
*
* @param object $item Menu item.
* @return object
*/
public function wp_setup_nav_menu_item( $item ) {
if ( '#falang_switcher' === $item->url ) {
$item->post_title = __( 'Languages', 'falang' );
$item->type_label = __( 'Falang Language Switcher', 'falang' );
}
return $item;
}
}