| @@ -5,14 +5,22 @@ | ||
| 5 | 5 | * @package Friends |
| 6 | 6 | */ |
| 7 | 7 | |
| 8 | 8 | if ( empty( $args['menu'] ) ) { |
| 9 | + $friends_subscriptions = Friends\User_Query::all_associated_users(); | |
| 10 | + if ( 0 === $friends_subscriptions->get_total() ) { | |
| 11 | + $home_label = __( 'Welcome', 'friends' ); | |
| 12 | + } else { | |
| 13 | + $home_label = __( 'News', 'friends' ); | |
| 14 | + } | |
| 15 | + | |
| 9 | 16 | $args['menu'] = apply_filters( |
| 10 | 17 | 'friends_admin_tabs', |
| 11 | 18 | array( |
| 12 | - __( 'Welcome', 'friends' ) => 'friends', | |
| 13 | - __( 'Settings' ) => 'friends-settings', // phpcs:ignore WordPress.WP.I18n.MissingArgDomain | |
| 14 | - __( 'Notification Manager', 'friends' ) => 'friends-notification-manager', | |
| 19 | + $home_label => 'friends', | |
| 20 | + __( 'Settings' ) => 'friends-settings', // phpcs:ignore WordPress.WP.I18n.MissingArgDomain | |
| 21 | + __( 'Notifications', 'friends' ) => 'friends-notification-manager', | |
| 22 | + __( 'Import/Export', 'friends' ) => 'friends-import-export', | |
| 15 | 23 | ) |
| 16 | 24 | ); |
| 17 | 25 | } |
| 18 | 26 | |
| @@ -19,8 +27,12 @@ | ||
| 19 | 27 | if ( empty( $args['active'] ) ) { |
| 20 | 28 | $args['active'] = false; |
| 21 | 29 | } |
| 22 | 30 | |
| 31 | +if ( empty( $args['title'] ) ) { | |
| 32 | + $args['title'] = __( 'Friends', 'friends' ); | |
| 33 | +} | |
| 34 | + | |
| 23 | 35 | ?> |
| 24 | 36 | <div class="wrap"> |
| 25 | 37 | <div class="friends-header"> |
| 26 | 38 | <div class="friends-title-section"> |
| @@ -33,10 +45,10 @@ | ||
| 33 | 45 | ?> |
| 34 | 46 | <nav class="friends-tabs-wrapper hide-if-no-js" aria-label="<?php /* phpcs:ignore WordPress.WP.I18n.MissingArgDomain */ esc_html_e( 'Secondary menu' ); ?>"> |
| 35 | 47 | <?php |
| 36 | 48 | |
| 37 | - foreach ( $args['menu'] as $label => $page ) { | |
| 38 | - if ( ! $page ) { | |
| 49 | + foreach ( $args['menu'] as $label => $_page ) { | |
| 50 | + if ( ! $_page ) { | |
| 39 | 51 | ?> |
| 40 | 52 | <span class="friends-tab"> |
| 41 | 53 | <?php echo esc_html( $label ); ?> |
| 42 | 54 | </span> |
| @@ -42,10 +54,17 @@ | ||
| 42 | 54 | </span> |
| 43 | 55 | <?php |
| 44 | 56 | continue; |
| 45 | 57 | } |
| 46 | - $url = admin_url( 'admin.php?page=' . $page ); | |
| 47 | - if ( $page === $args['active'] ) { | |
| 58 | + if ( is_array( $_page ) ) { | |
| 59 | + $query = $_page; | |
| 60 | + $_page = $_page['page']; | |
| 61 | + } else { | |
| 62 | + $query = array( | |
| 63 | + 'page' => $_page, | |
| 64 | + ); | |
| 65 | + } | |
| 66 | + if ( $_page === $args['active'] ) { | |
| 48 | 67 | ?> |
| 49 | 68 | <span class="friends-tab active" aria-current="true"> |
| 50 | 69 | <?php echo esc_html( $label ); ?> |
| 51 | 70 | </span> |
| @@ -50,10 +69,15 @@ | ||
| 50 | 69 | <?php echo esc_html( $label ); ?> |
| 51 | 70 | </span> |
| 52 | 71 | <?php |
| 53 | 72 | } else { |
| 73 | + if ( filter_var( $query['page'], FILTER_VALIDATE_URL ) ) { | |
| 74 | + $url = $query['page']; | |
| 75 | + } else { | |
| 76 | + $url = add_query_arg( $query, admin_url( 'admin.php' ) ); | |
| 77 | + } | |
| 54 | 78 | ?> |
| 55 | - <a href="<?php echo esc_attr( $url ); ?>" class="friends-tab"> | |
| 79 | + <a href="<?php echo esc_url( $url ); ?>" class="friends-tab"> | |
| 56 | 80 | <?php echo esc_html( $label ); ?> |
| 57 | 81 | </a> |
| 58 | 82 | <?php |
| 59 | 83 | } |