WordPress.org

Make WordPress Core

Ticket #19974: 19974.diff

File 19974.diff, 4.6 KB (added by nacin, 6 years ago)
  • wp-admin/includes/screen.php

     
    580580        }
    581581
    582582        /**
     583         * Gets the help tabs registered for the screen.
     584         *
     585         * @since 3.4.0
     586         *
     587         * @return array Help tabs with arguments.
     588         */
     589        public function get_help_tabs() {
     590                return $this->_help_tabs;
     591        }
     592
     593        /**
     594         * Gets the arguments for a help tab.
     595         *
     596         * @since 3.4.0
     597         *
     598         * @param string $id Help Tab ID.
     599         * @return array Help tab arguments.
     600         */
     601        public function get_help_tab( $id ) {
     602                if ( ! isset( $this->_help_tabs[ $id ] ) )
     603                        return null;
     604                return $this->_help_tabs[ $id ];
     605        }
     606
     607        /**
    583608         * Add a help tab to the contextual help for the screen.
    584609         * Call this on the load-$pagenow hook for the relevant screen.
    585610         *
     
    607632                if ( ! $args['id'] || ! $args['title'] )
    608633                        return;
    609634
    610                 $this->_help_tabs[] = $args;
     635                // Allows for overriding an existing tab with that ID.
     636                $this->_help_tabs[ $args['id'] ] = $args;
    611637        }
    612638
    613639        /**
     
    631657        }
    632658
    633659        /**
     660         * Gets the content from a contextual help sidebar.
     661         *
     662         * @since 3.4.0
     663         *
     664         */
     665        public function get_help_sidebar( ) {
     666                return $this->_help_sidebar;
     667        }
     668       
     669        /**
    634670         * Add a sidebar to the contextual help for the screen.
    635671         * Call this in template files after admin.php is loaded and before admin-header.php is loaded to add a sidebar to the contextual help.
    636672         *
     
    658694                $old_help = apply_filters( 'contextual_help', $old_help, $this->id, $this );
    659695
    660696                // Default help only if there is no old-style block of text and no new-style help tabs.
    661                 if ( empty( $old_help ) && empty( $this->_help_tabs ) ) {
     697                if ( empty( $old_help ) && ! $this->get_help_tabs() ) {
    662698                        $default_help = apply_filters( 'default_contextual_help', '' );
    663699                        if ( $default_help )
    664700                                $old_help = '<p>' . $default_help . '</p>';
     
    672708                        ) );
    673709                }
    674710
    675                 $has_sidebar = ! empty( $this->_help_sidebar );
     711                $help_sidebar = $this->get_help_sidebar();
    676712
    677713                $help_class = 'hidden';
    678                 if ( ! $has_sidebar )
     714                if ( ! $help_sidebar )
    679715                        $help_class .= ' no-sidebar';
    680716
    681717                // Time to render!
     
    687723                                <div id="contextual-help-columns">
    688724                                        <div class="contextual-help-tabs">
    689725                                                <ul>
    690                                                 <?php foreach ( $this->_help_tabs as $i => $tab ):
     726                                                <?php
     727                                                $class = ' class="active"';
     728                                                foreach ( $this->get_help_tabs() as $tab ) :
    691729                                                        $link_id  = "tab-link-{$tab['id']}";
    692730                                                        $panel_id = "tab-panel-{$tab['id']}";
    693                                                         $classes  = ( $i == 0 ) ? 'active' : '';
    694731                                                        ?>
    695732
    696                                                         <li id="<?php echo esc_attr( $link_id ); ?>" class="<?php echo esc_attr( $classes ); ?>">
     733                                                        <li id="<?php echo esc_attr( $link_id ); ?>"<?php echo $class; ?>">
    697734                                                                <a href="<?php echo esc_url( "#$panel_id" ); ?>">
    698735                                                                        <?php echo esc_html( $tab['title'] ); ?>
    699736                                                                </a>
    700737                                                        </li>
    701                                                 <?php endforeach; ?>
     738                                                <?php
     739                                                        $class = '';
     740                                                endforeach;
     741                                                ?>
    702742                                                </ul>
    703743                                        </div>
    704744
    705                                         <?php if ( $has_sidebar ) : ?>
     745                                        <?php if ( $help_sidebar ) : ?>
    706746                                        <div class="contextual-help-sidebar">
    707                                                 <?php echo $this->_help_sidebar; ?>
     747                                                <?php echo $help_sidebar; ?>
    708748                                        </div>
    709749                                        <?php endif; ?>
    710750
    711751                                        <div class="contextual-help-tabs-wrap">
    712                                                 <?php foreach ( $this->_help_tabs as $i => $tab ):
     752                                                <?php
     753                                                $classes = 'help-tab-content active';
     754                                                foreach ( $this->get_help_tabs() as $tab ):
    713755                                                        $panel_id = "tab-panel-{$tab['id']}";
    714                                                         $classes  = ( $i == 0 ) ? 'active' : '';
    715                                                         $classes .= ' help-tab-content';
    716756                                                        ?>
    717757
    718                                                         <div id="<?php echo esc_attr( $panel_id ); ?>" class="<?php echo esc_attr( $classes ); ?>">
     758                                                        <div id="<?php echo esc_attr( $panel_id ); ?>" class="<?php echo $classes; ?>">
    719759                                                                <?php
    720760                                                                // Print tab content.
    721761                                                                echo $tab['content'];
     
    725765                                                                        call_user_func_array( $tab['callback'], array( $this, $tab ) );
    726766                                                                ?>
    727767                                                        </div>
    728                                                 <?php endforeach; ?>
     768                                                <?php
     769                                                        $classes = 'help-tab-content';
     770                                                endforeach;
     771                                                ?>
    729772                                        </div>
    730773                                </div>
    731774                        </div>
     
    736779                ?>
    737780                </div>
    738781                <?php
    739                 if ( ! $this->_help_tabs && ! $this->show_screen_options() )
     782                if ( ! $this->get_help_tabs() && ! $this->show_screen_options() )
    740783                        return;
    741784                ?>
    742785                <div id="screen-meta-links">
    743                 <?php if ( $this->_help_tabs ) : ?>
     786                <?php if ( $this->get_help_tabs() ) : ?>
    744787                        <div id="contextual-help-link-wrap" class="hide-if-no-js screen-meta-toggle">
    745788                        <a href="#contextual-help-wrap" id="contextual-help-link" class="show-settings"><?php _e( 'Help' ); ?></a>
    746789                        </div>