WordPress.org

Make WordPress Core

Ticket #19974: 19974.diff

File 19974.diff, 4.6 KB (added by nacin, 3 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>