Making WordPress.org

Changeset 10003


Ignore:
Timestamp:
07/03/2020 04:10:55 AM (4 years ago)
Author:
tellyworth
Message:

Block directory: initial UI improvements for block validator.

Props ryelle.
See #5303.

Location:
sites/trunk/wordpress.org/public_html/wp-content/plugins/plugin-directory
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • sites/trunk/wordpress.org/public_html/wp-content/plugins/plugin-directory/cli/class-block-plugin-checker.php

    r10000 r10003  
    6868                __FUNCTION__,
    6969                'error',
    70                 sprintf( __( 'Invalid url %s', 'wporg-plugins' ), $url ),
     70                sprintf( __( 'Invalid url: %s', 'wporg-plugins' ), $url ),
    7171                $url
    7272            );
     
    7878                __FUNCTION__,
    7979                'error',
    80                 sprintf( __( 'URL must be GitHub or plugins.svn.wordpress.org %s', 'wporg-plugins' ), $url ),
     80                sprintf( __( 'URL must be GitHub or plugins.svn.wordpress.org: %s', 'wporg-plugins' ), $url ),
    8181                $url
    8282            );
     
    9090                    __FUNCTION__,
    9191                    'error',
    92                     sprintf( __( 'URL must be a plugin repository %s', 'wporg-plugins' ), $url ),
     92                    sprintf( __( 'URL must be a plugin repository: %s', 'wporg-plugins' ), $url ),
    9393                    $url
    9494                );
     
    116116                    __FUNCTION__,
    117117                    'error',
    118                     sprintf( __( 'URL must be a plugin repository %s', 'wporg-plugins' ), $url ),
     118                    sprintf( __( 'URL must be a plugin repository: %s', 'wporg-plugins' ), $url ),
    119119                    $url
    120120                );
     
    213213
    214214    public function find_blocks( $base_dir ) {
     215        $blocks = array();
    215216        $this->block_json_files = Filesystem::list_files( $base_dir, true, '!(?:^|/)block\.json$!i' );
    216217        if ( false && ! empty( $this->block_json_files ) ) {
     
    282283            $this->record_result( __FUNCTION__,
    283284                'error',
    284                 __( 'Missing readme.txt file', 'wporg-plugins' ),
     285                __( 'Missing readme.txt file.', 'wporg-plugins' ),
    285286                $this->relative_filename( $this->readme_path )
    286287            );
     
    333334                    $this->record_result( __FUNCTION__,
    334335                        'info',
    335                         sprintf( __( 'Block name already exists in plugin %s', 'wporg-plugins' ), $query->posts[0]->post_name ),
     336                        sprintf( __( 'Block name %s already exists in plugin %s.', 'wporg-plugins' ), $block->name, $query->posts[0]->post_name ),
    336337                        [ 'block_name' => $block->name, 'slug' => $post->post_name ]
    337338                    );
     
    354355            $this->record_result( __FUNCTION__,
    355356                'info',
    356                 sprintf( _n( 'Found %d block', 'Found %d blocks', count( $this->blocks ), 'wporg-plugins' ), count( $this->blocks ) ),
     357                sprintf( _n( 'Found %d block.', 'Found %d blocks.', count( $this->blocks ), 'wporg-plugins' ), count( $this->blocks ) ),
    357358                array_keys( $this->blocks )
    358359            );
     
    368369                $this->record_result( __FUNCTION__,
    369370                    'info',
    370                     sprintf( __( 'block.json file exists for block %s', 'wporg-plugins' ), $block_name ),
     371                    sprintf( __( 'block.json file exists for block %s.', 'wporg-plugins' ), $block_name ),
    371372                    $this->block_json_files[ $block_name ]
    372373                );
     
    377378            $this->record_result( __FUNCTION__,
    378379                'warning',
    379                 __( 'No block.json files were found', 'wporg-plugins' )
     380                __( 'No block.json files were found.', 'wporg-plugins' )
    380381            );
    381382        }
     
    392393                $this->record_result( __FUNCTION__,
    393394                    'info',
    394                     sprintf( __( 'Scripts found for block %s', 'wporg-plugins' ), $block_name ),
     395                    sprintf( __( 'Scripts found for block %s.', 'wporg-plugins' ), $block_name ),
    395396                    $block_scripts[ $block_name ]
    396397                );
     
    398399                $this->record_result( __FUNCTION__,
    399400                    'warning',
    400                     sprintf( __( 'No scripts found for block %s', 'wporg-plugins' ), $block_name ),
     401                    sprintf( __( 'No scripts found for block %s.', 'wporg-plugins' ), $block_name ),
    401402                    $block_name
    402403                );
     
    414415                    $this->record_result( __FUNCTION__,
    415416                        'info',
    416                         sprintf( __( 'Script file exists for block %s', 'wporg-plugins' ), $block_name ),
     417                        sprintf( __( 'Script file exists for block %s.', 'wporg-plugins' ), $block_name ),
    417418                        $script
    418419                    );
     
    420421                    $this->record_result( __FUNCTION__,
    421422                        'warning',
    422                         sprintf( __( 'Missing script file for block %s', 'wporg-plugins' ), $block_name ),
     423                        sprintf( __( 'Missing script file for block %s.', 'wporg-plugins' ), $block_name ),
    423424                        $script
    424425                    );
     
    445446            $this->record_result( __FUNCTION__,
    446447                'error',
    447                 sprintf( __( 'registerBlockType() must be called in a JavaScript file', 'wporg-plugins' ) )
     448                sprintf( __( '<code>registerBlockType()</code> must be called in a JavaScript file.', 'wporg-plugins' ) )
    448449            );
    449450        }
  • sites/trunk/wordpress.org/public_html/wp-content/plugins/plugin-directory/shortcodes/class-block-validator.php

    r9993 r10003  
    77
    88    /**
    9      * Displays a form to validate block plugins.   
     9     * Displays a form to validate block plugins.
    1010     */
    1111    public static function display() {
     12        $plugin_url = $_REQUEST['plugin_url'] ?? '';
    1213        ?>
    1314        <div class="wrap">
    14 <?php
    15         if ( $_POST && wp_verify_nonce( $_POST['block-nonce'], 'validate-block-plugin' ) ) {
    16 
    17                 self::validate_block( $_POST['plugin_url'] );
    18             }
    19 
    20             $plugin_url      = $_REQUEST['plugin_url'] ?? '';
    21             ?>
    22 
    2315            <form method="post" action="">
    2416                <p>
    25                     <input type="text" name="plugin_url" size="70" placeholder="https://plugins.svn.wordpress.org/" value="<?php echo esc_url( $plugin_url ); ?>" />
     17                    <label for="plugin_url"><?php _e( 'Plugin repo URL', 'wporg-plugins' ); ?></label>
     18                </p>
     19                <p>
     20                    <input type="text" id="plugin_url" name="plugin_url" size="70" placeholder="https://plugins.svn.wordpress.org/" value="<?php echo esc_url( $plugin_url ); ?>" />
    2621                    <input type="submit" class="button button-secondary" value="<?php esc_attr_e( 'Validate!', 'wporg-plugins' ); ?>" />
    2722                    <?php wp_nonce_field( 'validate-block-plugin', 'block-nonce' ); ?>
     
    2924            </form>
    3025
     26            <?php
     27            if ( $_POST && wp_verify_nonce( $_POST['block-nonce'], 'validate-block-plugin' ) ) {
     28                self::validate_block( $_POST['plugin_url'] );
     29            }
     30            ?>
    3131        </div>
    3232        <?php
     
    3535    /**
    3636     * Validates readme.txt contents and adds feedback.
     37     *
     38     * @param string $plugin_url The URL of a Subversion or GitHub repository.
    3739     */
    3840    protected static function validate_block( $plugin_url ) {
     
    4143        $results = $checker->run_check_plugin_repo( $plugin_url );
    4244
     45        echo '<h2>' . __( 'Results', 'wporg-plugins' ) . '</h2>';
     46
    4347        if ( $checker->repo_url && $checker->repo_revision ) {
    44             echo '<h2>Validating..</h2>';
    45             echo '<p>Results for ' . esc_url( $checker->repo_url ) . ' revision ' . esc_html( $checker->repo_revision ) . '</p>';
     48            echo '<p>';
     49            printf(
     50                'Results for %1$s revision %2$s',
     51                '<code>' . esc_url( $checker->repo_url ) . '</code>',
     52                esc_html( $checker->repo_revision )
     53            );
     54            echo '</p>';
    4655        }
    4756
     
    5059            $results_by_type[ $item->type ][] = $item;
    5160        }
    52 
    5361
    5462        $output = '';
     
    6068        );
    6169        foreach ( $error_types as $type => $warning_label ) {
     70            if ( empty( $results_by_type[ $type ] ) ) {
     71                continue;
     72            }
    6273
    63                 if ( empty( $results_by_type[ $type ] ) )
    64                     continue;
    65 
    66                 $output .= "<h3>{$warning_label}</h3>\n";
    67                 $output .= "<div class='notice notice-{$type} notice-alt'>\n";
    68                 $output .= "<ul class='{$type}'>\n";
    69                 foreach ( $results_by_type[ $type ] as $item ) {
    70                     $output .= "<li title='{$item->check_name}'><a href='/hypothetical/doc/page#{$item->check_name}'><span class='dashicons dashicons-info'></span></a> {$item->message}</li>\n";
     74            $output .= "<h3>{$warning_label}</h3>\n";
     75            $output .= "<div class='notice notice-{$type} notice-alt'>\n";
     76            $output .= "<ul class='{$type}'>\n";
     77            foreach ( $results_by_type[ $type ] as $item ) {
     78                $docs_link = '';
     79                if ( 'check' === substr( $item->check_name, 0, 5 ) ) {
     80                    $docs_link = "<a href='/hypothetical/doc/page#{$item->check_name}'>" . __( 'More about this.', 'wporg-plugins' ) . '</a>';
    7181                }
    72                 $output .= "</ul>\n";
    73                 $output .= "</div>\n";
     82                $output .= "<li class='{$item->check_name}'>{$item->message} {$docs_link}</li>\n";
     83            }
     84            $output .= "</ul>\n";
     85            $output .= "</div>\n";
    7486        }
    7587
Note: See TracChangeset for help on using the changeset viewer.