Making WordPress.org

Ticket #2131: 2131-2.diff

File 2131-2.diff, 29.9 KB (added by audrasjb, 7 years ago)

no more display block on already block-level HTML element

  • wordpress.org/public_html/wp-content/plugins/plugin-directory/admin/class-status-transitions.php

    diff --git a/wordpress.org/public_html/wp-content/plugins/plugin-directory/admin/class-status-transitions.php b/wordpress.org/public_html/wp-content/plugins/plugin-directory/admin/class-status-transitions.php
    index 82994b5..fe04b4c 100644
    a b https://make.wordpress.org/plugins', 'wporg-plugins' ), 
    263263         */
    264264        private function get_plugin_root( $dir ) {
    265265                $plugin_root  = '';
    266                 $plugin_files = Filesystem::list_files( $dir, true /* Recursive */, '!\.php$!i', 1 /* Depth */ );
     266                $plugin_files = Filesystem::list_files( $dir, true /* Recursive */, '!\.php$!i' );
    267267
    268268                foreach ( $plugin_files as $plugin_file ) {
    269269
  • wordpress.org/public_html/wp-content/plugins/plugin-directory/admin/metabox/class-review-tools.php

    diff --git a/wordpress.org/public_html/wp-content/plugins/plugin-directory/admin/metabox/class-review-tools.php b/wordpress.org/public_html/wp-content/plugins/plugin-directory/admin/metabox/class-review-tools.php
    index 8f83e71..c04cc3c 100644
    a b  
    11<?php
    22namespace WordPressdotorg\Plugin_Directory\Admin\Metabox;
    3 use WordPressdotorg\Plugin_Directory\Tools;
    43
    54/**
    65 * The Plugin Review metabox.
    class Review_Tools { 
    4645                add_filter( 'wp_comment_reply', function( $string ) use ( $post ) {
    4746                        $author = get_user_by( 'id', $post->post_author );
    4847
    49                         $committers = Tools::get_plugin_committers( $post->post_name );
    50                         $committers = array_map( function ( $user_login ) {
    51                                 return get_user_by( 'login', $user_login );
    52                         }, $committers );
    53 
    54                         $cc_emails = wp_list_pluck( $committers, 'user_email' );
    55                         $cc_emails = implode( ', ', array_diff( $cc_emails, array( $author->user_email ) ) );
    56 
    5748                        if ( 'new' === $post->post_status || 'pending' === $post->post_status ) {
    5849                                /* translators: %s: plugin title */
    5950                                $subject = sprintf( __( '[WordPress Plugin Directory] Request: %s', 'wporg-plugins' ), $post->post_title );
    class Review_Tools { 
    6960                        <form id="contact-author" class="contact-author" method="POST" action="https://supportpress.wordpress.org/plugins/thread-new.php">
    7061                                <input type="hidden" name="to_email" value="<?php echo esc_attr( $author->user_email ); ?>" />
    7162                                <input type="hidden" name="to_name" value="<?php echo esc_attr( $author->display_name ); ?>" />
    72                                 <input type="hidden" name="cc" value="<?php echo esc_attr( $cc_emails ); ?>" />
    7363                                <input type="hidden" name="subject" value="<?php echo esc_attr( $subject ); ?>" />
    7464                                <button class="button button-primary" type="submit"><?php _e( 'Contact plugin author', 'wporg-plugins' ); ?></button>
    7565                        </form>
  • wordpress.org/public_html/wp-content/plugins/plugin-directory/bin/rebuild-zip.php

    diff --git a/wordpress.org/public_html/wp-content/plugins/plugin-directory/bin/rebuild-zip.php b/wordpress.org/public_html/wp-content/plugins/plugin-directory/bin/rebuild-zip.php
    index b6dbe27..4d870ca 100644
    a b  
    11<?php
    22namespace WordPressdotorg\Plugin_Directory;
    3 use WordPressdotorg\Plugin_Directory\Plugin_Directory;
    43use WordPressdotorg\Plugin_Directory\Tools\SVN;
    54
    65// This script should only be called in a CLI environment.
    echo "Rebuilding ZIPs for $plugin_slug... "; 
    8685try {
    8786        $zip_builder = new ZIP\Builder();
    8887
    89         $plugin_post = Plugin_Directory::get_plugin_post( $plugin_slug );
    90         if ( ! $plugin_post ) {
    91                 throw new Exception( "Could not locate plugin post" );
    92         }
    93         $stable_tag = get_post_meta( $plugin_post->ID, 'stable_tag', true ) ?? 'trunk';
    94 
    9588        // (re)Build & Commit 5 Zips at a time to avoid limitations.
    9689        foreach ( array_chunk( $versions, 5 ) as $versions_to_build ) {
    9790                $zip_builder->build(
    9891                        $plugin_slug,
    9992                        $versions_to_build,
    100                         "{$plugin_slug}: Rebuild triggered by " . php_uname('n' ),
    101                         $stable_tag
     93                        "{$plugin_slug}: Rebuild triggered by " . php_uname('n' )
    10294                );
    10395        }
    10496
  • wordpress.org/public_html/wp-content/plugins/plugin-directory/class-template.php

    diff --git a/wordpress.org/public_html/wp-content/plugins/plugin-directory/class-template.php b/wordpress.org/public_html/wp-content/plugins/plugin-directory/class-template.php
    index 5cb0057..a85e407 100644
    a b class Template { 
    132132        }
    133133
    134134        /**
    135          * Returns a string representing the number of active installations for an item.
     135         * Returns a string representing the number of active installs for an item.
    136136         *
    137137         * @static
    138138         *
    139          * @param bool              $full Optional. Whether to include "active installations" suffix. Default: true.
     139         * @param bool              $full Optional. Whether to include "active installs" suffix. Default: true.
    140140         * @param int|\WP_Post|null $post Optional. Post ID or post object. Defaults to global $post.
    141          * @return string "1+ million" or "1+ million active installations" depending on $full.
     141         * @return string "1+ million" or "1+ million active installs" depending on $full.
    142142         */
    143143        public static function active_installs( $full = true, $post = null ) {
    144144                $post  = get_post( $post );
    class Template { 
    154154                        $text = number_format_i18n( $count ) . '+';
    155155                }
    156156
    157                 return $full ? sprintf( __( '%s active installations', 'wporg-plugins' ), $text ) : $text;
     157                return $full ? sprintf( __( '%s active installs', 'wporg-plugins' ), $text ) : $text;
    158158        }
    159159
    160160        /**
  • wordpress.org/public_html/wp-content/plugins/plugin-directory/cli/class-import.php

    diff --git a/wordpress.org/public_html/wp-content/plugins/plugin-directory/cli/class-import.php b/wordpress.org/public_html/wp-content/plugins/plugin-directory/cli/class-import.php
    index baceda1..5780013 100644
    a b class Import { 
    195195                                array_unique( $versions_to_build ),
    196196                                $svn_revision_triggered ?
    197197                                        "{$plugin_slug}: ZIP build triggered by https://plugins.trac.wordpress.org/changeset/{$svn_revision_triggered}" :
    198                                         "{$plugin_slug}: ZIP build triggered by " . php_uname('n'),
    199                                 $stable_tag
     198                                        "{$plugin_slug}: ZIP build triggered by " . php_uname('n')
    200199                        );
    201200                } catch( Exception $e ) {
    202201                        return false;
  • wordpress.org/public_html/wp-content/plugins/plugin-directory/shortcodes/class-upload-handler.php

    diff --git a/wordpress.org/public_html/wp-content/plugins/plugin-directory/shortcodes/class-upload-handler.php b/wordpress.org/public_html/wp-content/plugins/plugin-directory/shortcodes/class-upload-handler.php
    index 651300c..e0a22c5 100644
    a b class Upload_Handler { 
    6060                $zip_file = $_FILES['zip_file']['tmp_name'];
    6161                $this->plugin_dir = Filesystem::unzip( $zip_file );
    6262
    63                 $plugin_files = Filesystem::list_files( $this->plugin_dir, true /* Recursive */, '!\.php$!i', 1 /* Depth */ );
     63                $plugin_files = Filesystem::list_files( $this->plugin_dir, true /* Recursive */, '!\.php$!i' );
    6464                foreach ( $plugin_files as $plugin_file ) {
    6565                        $plugin_data = get_plugin_data( $plugin_file, false, false ); // No markup/translation needed.
    6666                        if ( ! empty( $plugin_data['Name'] ) ) {
  • wordpress.org/public_html/wp-content/plugins/plugin-directory/shortcodes/class-upload.php

    diff --git a/wordpress.org/public_html/wp-content/plugins/plugin-directory/shortcodes/class-upload.php b/wordpress.org/public_html/wp-content/plugins/plugin-directory/shortcodes/class-upload.php
    index 8f28042..e4c1f15 100644
    a b class Upload { 
    3030                if ( is_user_logged_in() ) :
    3131                        include_once ABSPATH . 'wp-admin/includes/template.php';
    3232
    33                         $submitted_plugins = self::get_submitted_plugins();
    34                         $submitted_counts  = (object) array_fill_keys( array( 'new', 'pending' ), 0 );
    35 
    36                         $submitted_counts->total = count( $submitted_plugins );
    37 
    38                         foreach ( $submitted_plugins as $key => $plugin ) {
    39                                 if ( 'new' === $plugin->post_status ) {
    40                                         $submitted_plugins[ $key ]->status = __( 'Awaiting Review', 'wporg-plugins' );
    41                                         $submitted_counts->new++;
    42                                 } elseif ( 'pending' === $plugin->post_status ) {
    43                                         $submitted_plugins[ $key ]->status = __( 'Being Reviewed', 'wporg-plugins' );
    44                                         $submitted_counts->pending++;
    45                                 }
    46                         }
    47 
    4833                        if ( ! empty( $_POST['_wpnonce'] ) && wp_verify_nonce( $_POST['_wpnonce'], 'wporg-plugins-upload' ) && 'upload' === $_POST['action'] ) :
    4934                                if ( UPLOAD_ERR_OK === $_FILES['zip_file']['error'] ) :
    5035                                        $uploader = new Upload_Handler;
    class Upload { 
    8065                                        ?></p>
    8166                                </div>
    8267
    83                                 <?php if ( $submitted_counts->total ) : ?>
     68                                <?php
     69                                $submitted_plugins = self::get_submitted_plugins();
     70                                $submitted_counts  = (object) array_fill_keys( array( 'new', 'pending' ), 0 );
     71
     72                                foreach ( $submitted_plugins as $key => $plugin ) {
     73                                        if ( 'new' === $plugin->post_status ) {
     74                                                $submitted_plugins[ $key ]->status = __( 'Awaiting Review', 'wporg-plugins' );
     75                                                $submitted_counts->new++;
     76                                        } elseif ( 'pending' === $plugin->post_status ) {
     77                                                $submitted_plugins[ $key ]->status = __( 'Being Reviewed', 'wporg-plugins' );
     78                                                $submitted_counts->pending++;
     79                                        }
     80                                }
     81                                ?>
     82
     83                                <?php if ( $submitted_counts->new + $submitted_counts->pending ) : ?>
    8484
    8585                                        <div class="plugin-queue-message notice notice-warning notice-alt">
    8686                                                <p><?php
    87                                                         if ( 1 === $submitted_counts->total ) {
    88                                                                 _e( 'You already have a plugin in the review queue. Please wait for it to be approved before submitting any more.', 'wporg-plugins' );
     87                                                        if ( 1 === ( $submitted_counts->new + $submitted_counts->pending ) ) {
     88                                                                _e( 'You have 1 plugin in the review queue.', 'wporg-plugins' );
    8989                                                        } else {
    9090                                                                printf(
    9191                                                                        _n(
    92                                                                                 'You have %1$s plugins in the review queue, %2$s is being actively reviewed. Please wait for them to be approved before submitting any more.',
    93                                                                                 'You have %1$s plugins in the review queue, %2$s are being actively reviewed. Please wait for them to be approved before submitting any more.',
     92                                                                                'You have %1$s plugins in the review queue, %2$s is being actively reviewed.',
     93                                                                                'You have %1$s plugins in the review queue, %2$s are being actively reviewed.',
    9494                                                                                $submitted_counts->pending,
    9595                                                                                'wporg-plugins'
    9696                                                                        ),
    97                                                                         '<strong>' . $submitted_counts->total . '</strong>',
     97                                                                        '<strong>' . ( $submitted_counts->new + $submitted_counts->pending ) . '</strong>',
    9898                                                                        '<strong>' . $submitted_counts->pending . '</strong>'
    9999                                                                );
    100100                                                        }
    class Upload { 
    114114                                                ?></p>
    115115                                        </div>
    116116
    117                                 <?php endif; // $submitted_counts->total ?>
    118 
    119                         <?php endif; // wp_verify_nonce() && 'upload' === $_POST['action'] ?>
    120 
    121                         <?php if ( ! $submitted_counts->total ) : ?>
    122 
    123                                 <form id="upload_form" class="plugin-upload-form" enctype="multipart/form-data" method="POST" action="">
    124                                         <?php wp_nonce_field( 'wporg-plugins-upload' ); ?>
    125                                         <input type="hidden" name="action" value="upload"/>
    126                                         <?php /* <fieldset>
    127                                                 <legend><?php _e( 'Select categories (up to 3)', 'wporg-plugins' ); ?></legend>
    128                                                 <ul class="category-checklist">
    129                                                         <?php wp_terms_checklist( 0, array( 'taxonomy' => 'plugin_category' ) ); ?>
    130                                                 </ul>
    131                                         </fieldset> */ ?>
    132 
    133                                         <input type="file" id="zip_file" class="plugin-file" name="zip_file" size="25" accept=".zip"/>
    134                                         <label class="button button-secondary" for="zip_file"><?php _e( 'Select File', 'wporg-plugins' ); ?></label>
    135 
    136                                         <input id="upload_button" class="button button-primary" type="submit" value="<?php esc_attr_e( 'Upload', 'wporg-plugins' ); ?>"/>
    137 
    138                                         <p>
    139                                                 <small><?php printf( __( 'Maximum allowed file size: %s', 'wporg-plugins' ), esc_html( self::get_max_allowed_file_size() ) ); ?></small>
    140                                         </p>
    141                                 </form>
    142                                 <script>
    143                                         ( function ( $ ) {
    144                                                 var $label    = $( 'label.button' ),
    145                                                         labelText = $label.text();
    146 
    147                                                 $( '#zip_file' )
    148                                                         .on( 'change', function( event ) {
    149                                                                 var fileName = event.target.value.split( '\\' ).pop();
    150 
    151                                                                 fileName ? $label.text( fileName ) : $label.text( labelText );
    152                                                         } )
    153                                                         .on( 'focus', function() { $label.addClass( 'focus' ); } )
    154                                                         .on( 'blur', function() { $label.removeClass( 'focus' ); } );
    155                                         } ( window.jQuery ) );
    156                                 </script>
    157 
    158                         <?php endif; // ! $submitted_counts->total ?>
     117                                <?php endif; ?>
     118
     119                        <?php endif; ?>
     120
     121                        <form id="upload_form" class="plugin-upload-form" enctype="multipart/form-data" method="POST" action="">
     122                                <?php wp_nonce_field( 'wporg-plugins-upload' ); ?>
     123                                <input type="hidden" name="action" value="upload"/>
     124                                <?php /* <fieldset>
     125                                        <legend><?php _e( 'Select categories (up to 3)', 'wporg-plugins' ); ?></legend>
     126                                        <ul class="category-checklist">
     127                                                <?php wp_terms_checklist( 0, array( 'taxonomy' => 'plugin_category' ) ); ?>
     128                                        </ul>
     129                                </fieldset> */ ?>
     130
     131                                <input type="file" id="zip_file" class="plugin-file" name="zip_file" size="25" accept=".zip"/>
     132                                <label class="button button-secondary" for="zip_file"><?php _e( 'Select File', 'wporg-plugins' ); ?></label>
     133
     134                                <input id="upload_button" class="button button-primary" type="submit" value="<?php esc_attr_e( 'Upload', 'wporg-plugins' ); ?>"/>
     135
     136                                <p>
     137                                        <small><?php printf( __( 'Maximum allowed file size: %s', 'wporg-plugins' ), esc_html( self::get_max_allowed_file_size() ) ); ?></small>
     138                                </p>
     139                        </form>
     140                        <script>
     141                                ( function ( $ ) {
     142                                        var $label    = $( 'label.button' ),
     143                                                labelText = $label.text();
     144
     145                                        $( '#zip_file' )
     146                                                .on( 'change', function( event ) {
     147                                                        var fileName = event.target.value.split( '\\' ).pop();
     148
     149                                                        fileName ? $label.text( fileName ) : $label.text( labelText );
     150                                                } )
     151                                                .on( 'focus', function() { $label.addClass( 'focus' ); } )
     152                                                .on( 'blur', function() { $label.removeClass( 'focus' ); } );
     153                                } ( window.jQuery ) );
     154                        </script>
    159155
    160156                <?php else : ?>
    161157
    162                         <p><?php printf( __( 'Before you can upload a new plugin, <a href="%s">please log in</a>.', 'wporg-plugins' ), esc_url( wp_login_url() ) ); ?></p>
     158                        <p><?php printf( __( 'Before you can upload a new plugin, <a href="%s">please log in</a>.', 'wporg-plugins' ), esc_url( 'https://login.wordpress.org/' ) ); ?></p>
    163159
    164                 <?php endif; // is_user_logged_in()
     160                <?php endif;
    165161
    166162                return ob_get_clean();
    167163        }
  • wordpress.org/public_html/wp-content/plugins/plugin-directory/tools/class-filesystem.php

    diff --git a/wordpress.org/public_html/wp-content/plugins/plugin-directory/tools/class-filesystem.php b/wordpress.org/public_html/wp-content/plugins/plugin-directory/tools/class-filesystem.php
    index 533b116..7a2bfa5 100644
    a b class Filesystem { 
    8080         * @param string $directory Path to directory to search.
    8181         * @param bool   $recursive Optional. Whether to recurse into subdirectories. Default: false.
    8282         * @param string $pattern   Optional. A regular expression to match files against. Default: null.
    83          * @param int    $depth     Optional. Recursion depth. Default: -1 (infinite).
    8483         * @return array All files within the passed directory.
    8584         */
    86         public static function list_files( $directory, $recursive = false, $pattern = null, $depth = -1 ) {
     85        public static function list_files( $directory, $recursive = false, $pattern = null ) {
    8786                if ( $recursive ) {
    8887                        $iterator = new \RecursiveIteratorIterator(
    8988                                new \RecursiveDirectoryIterator( $directory ),
    9089                                \RecursiveIteratorIterator::SELF_FIRST
    9190                        );
    92 
    93                         if ( $depth > -1 ) {
    94                                 $iterator->setMaxDepth( $depth );
    95                         }
    9691                } else {
    9792                        $iterator = new \DirectoryIterator( $directory );
    9893                }
  • wordpress.org/public_html/wp-content/plugins/plugin-directory/widgets/class-meta.php

    diff --git a/wordpress.org/public_html/wp-content/plugins/plugin-directory/widgets/class-meta.php b/wordpress.org/public_html/wp-content/plugins/plugin-directory/widgets/class-meta.php
    index 1777c36..c522aa8 100644
    a b class Meta extends \WP_Widget { 
    4848                                );
    4949                                ?>
    5050                        </li>
    51                         <li><?php printf( __( 'Active installations: %s', 'wporg-plugins' ), '<strong>' . Template::active_installs( false ) . '</strong>' ); ?></li>
     51                        <li><?php printf( __( 'Active installs: %s', 'wporg-plugins' ), '<strong>' . Template::active_installs( false ) . '</strong>' ); ?></li>
    5252
    5353                        <?php if ( $requires = (string) get_post_meta( $post->ID, 'requires', true ) ) : ?>
    5454                                <li><?php
  • wordpress.org/public_html/wp-content/plugins/plugin-directory/zip/class-builder.php

    diff --git a/wordpress.org/public_html/wp-content/plugins/plugin-directory/zip/class-builder.php b/wordpress.org/public_html/wp-content/plugins/plugin-directory/zip/class-builder.php
    index d2fc925..c485d2e 100644
    a b class Builder { 
    1414        const SVN_URL = 'http://plugins.svn.wordpress.org';
    1515        const ZIP_SVN_URL = PLUGIN_ZIP_SVN_URL;
    1616
    17         protected $zip_file      = '';
    18         protected $checksum_file = '';
    19         protected $tmp_build_dir = '';
    20         protected $tmp_dir       = '';
     17        protected $zip_file = '';
     18        protected $tmp_build_dir  = '';
     19        protected $tmp_dir = '';
    2120
    22         protected $slug       = '';
    23         protected $version    = '';
    24         protected $context    = '';
    25         protected $stable_tag = '';
     21        protected $slug    = '';
     22        protected $version = '';
     23        protected $context = '';
    2624
    2725        /**
    28          * Generate a ZIP for a provided Plugin tags.
     26         * Generate a ZIP for a provided Plugin versions.
    2927         *
    3028         * @param string $slug     The plugin slug.
    3129         * @param array  $versions The versions of the plugin to build ZIPs for.
    3230         * @param string $context  The context of this Builder instance (commit #, etc)
    3331         */
    34         public function build( $slug, $versions, $context = '', $stable_tag = '' ) {
     32        public function build( $slug, $versions, $context = '' ) {
    3533                // Bail when in an unconfigured environment.
    3634                if ( ! defined( 'PLUGIN_ZIP_SVN_URL' ) ) {
    3735                        return false;
    3836                }
    3937
    40                 $this->slug       = $slug;
    41                 $this->versions   = $versions;
    42                 $this->context    = $context;
    43                 $this->stable_tag = $stable_tag;
     38                $this->slug     = $slug;
     39                $this->versions = $versions;
     40                $this->context  = $context;
    4441
    4542                // General TMP directory
    4643                if ( ! is_dir( self::TMP_DIR ) ) {
    class Builder { 
    9996
    10097                        // Pull the ZIP file down we're going to modify, which may not already exist.
    10198                        SVN::up( $this->zip_file );
    102                         // This is done within the checksum generation function due to us not knowing the checksum filename until export_plugin().
    103                         // SVN::up( $this->checksum_file );
    10499
    105100                        try {
    106101
    class Builder { 
    108103                                mkdir( $this->tmp_build_dir, 0777, true );
    109104
    110105                                $this->export_plugin();
    111                                 $this->fix_directory_dates();
    112 
     106                                $this->fix_directory_dates();                   
    113107                                $this->generate_zip();
    114 
    115                                 $this->generate_checksums();
    116 
    117108                                $this->cleanup_plugin_tmp();
    118109
    119110                        } catch( Exception $e ) {
    class Builder { 
    122113
    123114                                // Perform an SVN up to revert any changes made.
    124115                                SVN::up( $this->zip_file );
    125                                 if ( $this->checksum_file ) {
    126                                         SVN::up( $this->checksum_file );
    127                                 }
    128116                                continue;
    129117                        }
    130118
    131119                        // Add the ZIP file to SVN - This is only really needed for new files which don't exist in SVN.
    132                         SVN::add( $this->zip_file );
    133                         if ( $this->checksum_file ) {
    134                                 SVN::add( $this->checksum_file );
    135                         }
     120                        SVN::add( $this->zip_file );                   
    136121                }
    137122
    138123                $res = SVN::commit(
    class Builder { 
    160145        }
    161146
    162147        /**
    163          * Generates a JSON file containing the checksums of the files within the ZIP.
    164          *
    165          * In the event that a previous ZIP for this version exists, checksums for all versions of the file will be included.
    166          */
    167         function generate_checksums() {
    168                 // Only enable this for the `exploit-scanner` plugin for the time being.
    169                 if ( 'exploit-scanner' != $this->slug ) {
    170                         return;
    171                 }
    172 
    173                 // Don't create checksums for trunk.
    174                 if ( ! $this->stable_tag || ( 'trunk' == $this->version && 'trunk' != $this->stable_tag && '' != $this->stable_tag ) ) {
    175                         return;
    176                 }
    177 
    178                 // Fetch the plugin headers
    179                 $plugin_data = false;
    180                 foreach ( glob( $this->tmp_build_dir . '/' . $this->slug . '/*.php' ) as $filename ) {
    181                         $plugin_data = get_plugin_data( $filename, false, false );
    182 
    183                         if ( $plugin_data['Name'] && '' !== $plugin_data['Version'] ) {
    184                                 break;
    185                         }
    186                 }
    187 
    188                 if ( ! $plugin_data || '' === $plugin_data['Version'] ) {
    189                         return;
    190                 }
    191 
    192                 $plugin_version = $plugin_data['Version'];
    193                 // Catch malformed version strings.
    194                 if ( basename( $plugin_version ) != $plugin_version ) {
    195                         return;
    196                 }
    197 
    198                 $this->checksum_file = "{$this->tmp_dir}/{$this->slug}/{$this->slug}.{$plugin_version}.checksums.json";
    199 
    200                 // Checkout the Checksum file for this plugin version
    201                 SVN::up( $this->checksum_file );
    202 
    203                 // Existing checksums?
    204                 $existing_json_checksum_file = file_exists( $this->checksum_file );
    205 
    206                 $this->exec( sprintf(
    207                         'cd %s && find . -type f -print0 | sort -z | xargs -0 md5sum 2>&1',
    208                         escapeshellarg( $this->tmp_build_dir . '/' . $this->slug )
    209                 ), $checksum_output, $return_value );
    210 
    211                 if ( $return_value ) {
    212                 //      throw new Exception( __METHOD__ . ': Checksum generation failed, return code: ' . $return_value, 503 );
    213                 // For now, just silently bail.
    214                         return;
    215                 }
    216 
    217                 $checksums = array();
    218                 foreach ( $checksum_output as $line ) {
    219                         list( $md5, $filename ) = preg_split( '!\s+!', $line );
    220                         $filename = preg_replace( '!^./!', '', $filename );
    221                         $checksums[ trim( $filename ) ] = trim( $md5 );
    222                 }
    223 
    224                 $json_checksum_file = (object) array(
    225                         'plugin'     => $this->slug,
    226                         'version'    => $plugin_version,
    227                         'source_tag' => $this->version,
    228                         'zip'        => basename( $this->zip_file ),
    229                         'checksums'  => $checksums
    230                 );
    231 
    232                 // If the checksum file exists already, merge it into this one.
    233                 if ( $existing_json_checksum_file ) {
    234                         $existing_json_checksum_file = json_decode( file_get_contents( $this->checksum_file ) );
    235 
    236                         if ( $existing_json_checksum_file && ! empty( $existing_json_checksum_file->checksums ) ) {
    237                                 foreach ( $existing_json_checksum_file->checksums as $file => $checksum_details ) {
    238 
    239                                         if ( ! isset( $json_checksum_file->checksums[ $file ] ) ) {
    240                                                 // Deleted file, include it in checksums.
    241                                                 $json_checksum_file->checksums[ $file ] = $checksum_details;
    242 
    243                                         } elseif ( $json_checksum_file->checksums[ $file ] != $checksum_details ) {
    244                                                 // Checksum has changed, include both in the resulting json file.
    245                                                 if ( is_array( $checksum_details ) ) {
    246                                                         $checksum_details[] = $json_checksum_file->checksums[ $file ];
    247                                                         $json_checksum_file->checksums[ $file ] = $checksum_details;
    248                                                 } else {
    249                                                         $json_checksum_file->checksums[ $file ] = array(
    250                                                                 $json_checksum_file->checksums[ $file ],
    251                                                                 $checksum_details
    252                                                         );
    253                                                 }
    254                                         }
    255                                 }
    256                         }
    257                 }
    258 
    259                 file_put_contents( $this->checksum_file, wp_json_encode( $json_checksum_file ) );
    260         }
    261 
    262         /**
    263148         * Generates a temporary unique directory in a given directory
    264149         *
    265150         * Performs a similar job to `tempnam()` with an added suffix and doesn't
    class Builder { 
    393278         * @return bool
    394279         */
    395280        public function invalidate_zip_caches( $versions ) {
    396                 // TODO: Implement PURGE
     281                // TODO: Implement PURGE 
    397282                return true;
    398283                if ( ! defined( 'PLUGIN_ZIP_X_ACCEL_REDIRECT_LOCATION' ) ) {
    399284                        return true;
  • wordpress.org/public_html/wp-content/plugins/plugin-directory/zip/class-serve.php

    diff --git a/wordpress.org/public_html/wp-content/plugins/plugin-directory/zip/class-serve.php b/wordpress.org/public_html/wp-content/plugins/plugin-directory/zip/class-serve.php
    index 8c87874..8c7f7fc 100644
    a b class Serve { 
    3636        protected function determine_request() {
    3737                $zip = basename( parse_url( $_SERVER['REQUEST_URI'], PHP_URL_PATH ) );
    3838
    39                 if ( ! preg_match( "!^(?P<slug>[a-z0-9-_]+)(\.(?P<version>.+?))?\.(?P<request_type>zip|checksums\.json)$!i", $zip, $m ) ) {
     39                $slug = false;
     40                $version = 'trunk';
     41
     42                if ( ! preg_match( "!^(?P<slug>[a-z0-9-_]+)(.(?P<version>.+))?.zip$!i", $zip, $m ) ) {
    4043                        throw new Exception( __METHOD__ . ": Invalid URL." );
    4144                }
    4245
    4346                $slug = strtolower( $m['slug'] );
    44 
    45                 $version = 'trunk';
    46                 if ( isset( $m['version'] ) && '' !== $m['version'] ) {
     47                if ( isset( $m['version'] ) ) {
    4748                        $version = $m['version'];
    4849                }
     50
    4951                if ( 'latest-stable' == $version ) {
    5052                        $version = $this->get_stable_tag( $slug );
    5153                }
    5254
    53                 if ( 'zip' == strtolower( $m['request_type'] ) ) {
    54                         $checksum_request = false;
    55                 } else {
    56                         $checksum_request = true;
    57 
    58                         // Checksum requests for 'trunk' are not possible.
    59                         if ( 'trunk' == $version ) {
    60                                 throw new Exception( __METHOD__ . ": Checksum requests must include a version." );
    61                         }
    62 
    63                 }
    64 
    6555                $args = array(
    6656                        'stats' => true,
    6757                );
    68 
    69                 if ( $checksum_request ) {
    70                         $args['stats'] = false;
    71 
    72                 } elseif ( isset( $_GET['stats'] ) ) {
     58                if ( isset( $_GET['stats'] ) ) {
    7359                        $args['stats'] = (bool) $_GET['stats'];
    74 
    7560                } elseif ( isset( $_GET['nostats'] ) ) {
    7661                        $args['stats'] = !empty( $_GET['nostats'] );
    7762                }
    7863
    79                 return compact( 'zip', 'slug', 'version', 'args', 'checksum_request' );
     64                return compact( 'zip', 'slug', 'version', 'args' );
    8065        }
    8166
    8267        /**
    class Serve { 
    132117        }
    133118
    134119        /**
    135          * Returns the file to be served for the request.
     120         * Returns the files to use for the request.
    136121         *
    137122         * @param array $request The request object for the request.
    138          * @return array The file to serve.
     123         * @return array An array containing the files to use for the request, 'zip' and 'md5'.
    139124         */
    140125        protected function get_file( $request ) {
    141                 // Checksum requests must include a version
    142                 if ( $request['checksum_request'] ) {
    143                         return "{$request['slug']}/{$request['slug']}.{$request['version']}.checksums.json";
    144 
    145                 } elseif ( empty( $request['version'] ) || 'trunk' == $request['version'] ) {
     126                if ( empty( $request['version'] ) || 'trunk' == $request['version'] ) {
    146127                        return "{$request['slug']}/{$request['slug']}.zip";
    147 
    148128                } else {
    149129                        return "{$request['slug']}/{$request['slug']}.{$request['version']}.zip";
    150130                }
    151 
    152131        }
    153132
    154133        /**
    class Serve { 
    157136         * @param array $request The request array for the request.
    158137         */
    159138        protected function serve_zip( $request ) {
    160                 $file = $this->get_file( $request );
     139                $zip = $this->get_file( $request );
    161140
    162141                if ( defined( 'PLUGIN_ZIP_X_ACCEL_REDIRECT_LOCATION' ) ) {
    163                         $file_url = PLUGIN_ZIP_X_ACCEL_REDIRECT_LOCATION . $file;
     142                        $zip_url = PLUGIN_ZIP_X_ACCEL_REDIRECT_LOCATION . $zip;
    164143
    165                         if ( $request['checksum_request'] ) {
    166                                 header( 'Content-Type: application/json' );
    167                         } else {
    168                                 header( 'Content-Type: application/zip' );
    169                                 header( 'Content-Disposition: attachment; filename=' . basename( $file ) );
    170                         }
    171                         header( "X-Accel-Redirect: $file_url" );
     144                        header( 'Content-Type: application/zip' );
     145                        header( 'Content-Disposition: attachment; filename=' . basename( $zip ) );
     146                        header( "X-Accel-Redirect: $zip_url" );
    172147                } else {
    173148                        header( 'Content-Type: text/plain' );
    174                         echo "This is a request for $file, this server isn't currently configured to serve files.\n";
     149                        echo "This is a request for $zip, this server isn't currently configured to serve zip files.\n";
    175150                }
    176151
    177152                if ( function_exists( 'fastcgi_finish_request' ) ) {
  • wordpress.org/public_html/wp-content/themes/pub/wporg-plugins/template-parts/content-none.php

    diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins/template-parts/content-none.php b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins/template-parts/content-none.php
    index 6a1ff29..805796f 100644
    a b  
    4141
    4242                <?php else : ?>
    4343               
    44                         <p><?php printf( __( '<a href="%s">Login to WordPress.org</a> to mark plugins as favorites.', 'wporg-plugins' ), esc_url( wp_login_url( 'https://wordpress.org/plugins/browse/favorites/' ) ) ); ?></p>
     44                        <p><?php printf( __( '<a href="%s">Login to WordPress.org</a> to mark plugins as favorites.', 'wporg-plugins' ), esc_url( 'https://login.wordpress.org/?redirect_to=https%3A%2F%2Fwordpress.org%2Fplugins%2Fbrowse%2Ffavorites%2F' ) ); ?></p>
    4545
    4646                <?php
    4747                  endif; // is_user_logged_in()
  • wordpress.org/public_html/wp-content/themes/pub/wporg-plugins/template-parts/plugin.php

    diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins/template-parts/plugin.php b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins/template-parts/plugin.php
    index c176c8f..97062db 100644
    a b use WordPressdotorg\Plugin_Directory\Template; 
    3333                        <i class="dashicons dashicons-admin-users"></i> <?php echo esc_html( strip_tags( get_post_meta( get_the_ID(), 'header_author', true ) ) ?: get_the_author() ); ?>
    3434                </span>
    3535                <span class="active-installs">
    36                         <i class="dashicons dashicons-chart-area"></i> <?php printf( __( '%s active installations', 'wporg-plugins' ), Template::active_installs(false) ); ?>
     36                        <i class="dashicons dashicons-chart-area"></i> <?php printf( __( '%s active installs', 'wporg-plugins' ), Template::active_installs(false) ); ?>
    3737                </span>
    3838                <span class="tested-with">
    3939                        <?php if ( $tested_up_to = (string) get_post_meta( $post->ID, 'tested', true ) ) { ?>
  • wordpress.tv/public_html/wp-content/themes/wptv2/anon-upload-template.php

    diff --git a/wordpress.tv/public_html/wp-content/themes/wptv2/anon-upload-template.php b/wordpress.tv/public_html/wp-content/themes/wptv2/anon-upload-template.php
    index 2eaff55..ee68def 100644
    a b function anon_upload_css() { 
    6161
    6262        .video-upload p {
    6363                margin: 16px 0;
    64                 overflow: auto;
     64                overflow: hidden;
    6565        }
    6666
    6767        .video-upload h3 {