Make WordPress Core

source: trunk/src/wp-admin/credits.php @ 44264

Last change on this file since 44264 was 44264, checked in by desrosj, 4 years ago

Help/About: WordPress 5.0 About Page.

The About page describes all the great changes in WordPress 5.0.

Highlights:

  • Warn users of Gutenberg plugin of its deactivation upon 5.0 upgrade.
  • Added illustrations to the Four Freedoms page.
  • Include a link to wporg user’s plugin favorites as a way to display only the classic plugin as a suggestion for install.
  • Detail the Classic Editor plugin and the support timeline.

Props pixelverbieger, ocean90, karmatosed, pento, boemedia, lonelyvegan, sami.keijonen, TimothyBlynJacobs, xkon, afercia, laurelfulford, joostdevalk, ipstenu, matveb, joen, tinkerbelly, chanthaboune, kjellr, alexislloyd, melchoyce, mcsf, courtney0burton, Otto42, cathibosco, tobifjellner, helen, audrasjb, antpb, jjj, elrae, desrosj, azaozz, joemcgill, skithund, gziolo.

Merges [43913], [43921-43922], [43937-43938], [43946-43947], [43952-43953], [43967-43969] into trunk.

Fixes #45178.

  • Property svn:eol-style set to native
File size: 4.8 KB
Line 
1<?php
2/**
3 * Credits administration panel.
4 *
5 * @package WordPress
6 * @subpackage Administration
7 */
8
9/** WordPress Administration Bootstrap */
10require_once( dirname( __FILE__ ) . '/admin.php' );
11require_once( dirname( __FILE__ ) . '/includes/credits.php' );
12
13$title = __( 'Credits' );
14
15list( $display_version ) = explode( '-', get_bloginfo( 'version' ) );
16
17include( ABSPATH . 'wp-admin/admin-header.php' );
18?>
19<div class="wrap about-wrap full-width-layout">
20
21<h1><?php printf( __( 'Welcome to WordPress %s' ), $display_version ); ?></h1>
22
23<p class="about-text"><?php printf( __( 'Thank you for updating to the latest version! WordPress %s introduces a robust new content creation experience.' ), $display_version ); ?></p>
24
25<div class="wp-badge"><?php printf( __( 'Version %s' ), $display_version ); ?></div>
26
27<h2 class="nav-tab-wrapper wp-clearfix">
28        <a href="about.php" class="nav-tab"><?php _e( 'What&#8217;s New' ); ?></a>
29        <a href="credits.php" class="nav-tab nav-tab-active"><?php _e( 'Credits' ); ?></a>
30        <a href="freedoms.php" class="nav-tab"><?php _e( 'Freedoms' ); ?></a>
31        <a href="freedoms.php?privacy-notice" class="nav-tab"><?php _e( 'Privacy' ); ?></a>
32</h2>
33
34<div class="about-wrap-content">
35<?php
36
37$credits = wp_credits();
38
39if ( ! $credits ) {
40        echo '<p class="about-description">';
41        /* translators: 1: https://wordpress.org/about/, 2: https://make.wordpress.org/ */
42        printf(
43                __( 'WordPress is created by a <a href="%1$s">worldwide team</a> of passionate individuals. <a href="%2$s">Get involved in WordPress</a>.' ),
44                'https://wordpress.org/about/',
45                __( 'https://make.wordpress.org/' )
46        );
47        echo '</p>';
48        echo '</div>';
49        echo '</div>';
50        include( ABSPATH . 'wp-admin/admin-footer.php' );
51        exit;
52}
53
54echo '<p class="about-description">' . __( 'WordPress is created by a worldwide team of passionate individuals.' ) . "</p>\n";
55
56echo '<p>' . sprintf(
57        /* translators: %s: https://make.wordpress.org/ */
58        __( 'Want to see your name in lights on this page? <a href="%s">Get involved in WordPress</a>.' ),
59        __( 'https://make.wordpress.org/' )
60) . '</p>';
61
62foreach ( $credits['groups'] as $group_slug => $group_data ) {
63        if ( $group_data['name'] ) {
64                if ( 'Translators' == $group_data['name'] ) {
65                        // Considered a special slug in the API response. (Also, will never be returned for en_US.)
66                        $title = _x( 'Translators', 'Translate this to be the equivalent of English Translators in your language for the credits page Translators section' );
67                } elseif ( isset( $group_data['placeholders'] ) ) {
68                        $title = vsprintf( translate( $group_data['name'] ), $group_data['placeholders'] );
69                } else {
70                        $title = translate( $group_data['name'] );
71                }
72
73                echo '<h3 class="wp-people-group">' . esc_html( $title ) . "</h3>\n";
74        }
75
76        if ( ! empty( $group_data['shuffle'] ) ) {
77                shuffle( $group_data['data'] ); // We were going to sort by ability to pronounce "hierarchical," but that wouldn't be fair to Matt.
78        }
79
80        switch ( $group_data['type'] ) {
81                case 'list':
82                        array_walk( $group_data['data'], '_wp_credits_add_profile_link', $credits['data']['profiles'] );
83                        echo '<p class="wp-credits-list">' . wp_sprintf( '%l.', $group_data['data'] ) . "</p>\n\n";
84                        break;
85                case 'libraries':
86                        array_walk( $group_data['data'], '_wp_credits_build_object_link' );
87                        echo '<p class="wp-credits-list">' . wp_sprintf( '%l.', $group_data['data'] ) . "</p>\n\n";
88                        break;
89                default:
90                        $compact = 'compact' == $group_data['type'];
91                        $classes = 'wp-people-group ' . ( $compact ? 'compact' : '' );
92                        echo '<ul class="' . $classes . '" id="wp-people-group-' . $group_slug . '">' . "\n";
93                        foreach ( $group_data['data'] as $person_data ) {
94                                echo '<li class="wp-person" id="wp-person-' . esc_attr( $person_data[2] ) . '">' . "\n\t";
95                                echo '<a href="' . esc_url( sprintf( $credits['data']['profiles'], $person_data[2] ) ) . '" class="web">';
96                                $size   = 'compact' == $group_data['type'] ? 30 : 60;
97                                $data   = get_avatar_data( $person_data[1] . '@md5.gravatar.com', array( 'size' => $size ) );
98                                $size  *= 2;
99                                $data2x = get_avatar_data( $person_data[1] . '@md5.gravatar.com', array( 'size' => $size ) );
100                                echo '<img src="' . esc_url( $data['url'] ) . '" srcset="' . esc_url( $data2x['url'] ) . ' 2x" class="gravatar" alt="" />' . "\n";
101                                echo esc_html( $person_data[0] ) . "</a>\n\t";
102                                if ( ! $compact ) {
103                                        echo '<span class="title">' . translate( $person_data[3] ) . "</span>\n";
104                                }
105                                echo "</li>\n";
106                        }
107                        echo "</ul>\n";
108                        break;
109        }
110}
111
112?>
113</div>
114</div>
115<?php
116
117include( ABSPATH . 'wp-admin/admin-footer.php' );
118
119return;
120
121// These are strings returned by the API that we want to be translatable
122__( 'Project Leaders' );
123__( 'Core Contributors to WordPress %s' );
124__( 'Noteworthy Contributors' );
125__( 'Cofounder, Project Lead' );
126__( 'Lead Developer' );
127__( 'Release Lead' );
128__( 'Release Design Lead' );
129__( 'Release Deputy' );
130__( 'Core Developer' );
131__( 'External Libraries' );
Note: See TracBrowser for help on using the repository browser.