WordPress.org

Make WordPress Core

Ticket #19828: core-ticket19828.diff

File core-ticket19828.diff, 2.5 KB (added by tfnab, 8 years ago)
  • wp-admin/includes/screen.php

     
    589589         * - string   - id       - Tab ID. Must be HTML-safe.
    590590         * - string   - content  - Help tab content in plain text or HTML. Optional.
    591591         * - callback - callback - A callback to generate the tab content. Optional.
     592         * @param mixed $before which other tab to insert this tab before; defaults to false: puts the new element at the end of the list; can be a reference to an id (string) or an integer (strict type checking)
    592593         *
    593594         */
    594         public function add_help_tab( $args ) {
     595        public function add_help_tab( $args, $before = false ) {
    595596                $defaults = array(
    596597                        'title'    => false,
    597598                        'id'       => false,
     
    606607                if ( ! $args['id'] || ! $args['title'] )
    607608                        return;
    608609
    609                 $this->_help_tabs[] = $args;
     610                if ( false !== $before ) {
     611                        if ( is_int( $before ) && $before < count( $this->_help_tabs ) ) {
     612                                $keys = array_keys( $this->_help_tabs );
     613                                $before = $keys[$before];
     614                        }
     615                        if ( array_key_exists( $before, $this->_help_tabs ) ) {
     616                                $new = array();
     617                                foreach ( $this->_help_tabs as $k => $v ) {
     618                                        if ( $k == $before )
     619                                                $new[$args['id']] = $args;
     620                                        $new[$k] = $v;
     621                                }
     622                                $this->_help_tabs = $new;
     623                        }
     624                }
     625                $this->_help_tabs[$args['id']] = $args;
    610626        }
    611627
    612628        /**
     
    686702                                <div id="contextual-help-columns">
    687703                                        <div class="contextual-help-tabs">
    688704                                                <ul>
    689                                                 <?php foreach ( $this->_help_tabs as $i => $tab ):
     705                                                <?php $i=0; foreach ( $this->_help_tabs as $tab ):
    690706                                                        $link_id  = "tab-link-{$tab['id']}";
    691707                                                        $panel_id = "tab-panel-{$tab['id']}";
    692708                                                        $classes  = ( $i == 0 ) ? 'active' : '';
     
    697713                                                                        <?php echo esc_html( $tab['title'] ); ?>
    698714                                                                </a>
    699715                                                        </li>
    700                                                 <?php endforeach; ?>
     716                                                <?php $i++; endforeach; ?>
    701717                                                </ul>
    702718                                        </div>
    703719
     
    708724                                        <?php endif; ?>
    709725
    710726                                        <div class="contextual-help-tabs-wrap">
    711                                                 <?php foreach ( $this->_help_tabs as $i => $tab ):
     727                                                <?php $i=0; foreach ( $this->_help_tabs as $tab ):
    712728                                                        $panel_id = "tab-panel-{$tab['id']}";
    713729                                                        $classes  = ( $i == 0 ) ? 'active' : '';
    714730                                                        $classes .= ' help-tab-content';
     
    724740                                                                        call_user_func_array( $tab['callback'], array( $this, $tab ) );
    725741                                                                ?>
    726742                                                        </div>
    727                                                 <?php endforeach; ?>
     743                                                <?php $i++; endforeach; ?>
    728744                                        </div>
    729745                                </div>
    730746                        </div>