Ticket #1058: class-wporg-themes-upload.php.2.patch
File class-wporg-themes-upload.php.2.patch, 10.1 KB (added by , 9 years ago) |
---|
-
public_html/wp-content/plugins/theme-directory/class-wporg-themes-upload.php
102 102 // Do we have a stylesheet? Life is kind of pointless without. 103 103 $style_css = $this->get_style_css( $theme_files ); 104 104 if ( empty( $style_css ) ) { 105 /* translators: %s: style.css */ 105 106 return sprintf( __( 'The zip file must include a file named %s.', 'wporg-themes' ), '<code>style.css</code>' ); 106 107 } 107 108 … … 110 111 111 112 // We need a screen shot. People love screen shots. 112 113 if ( ! $this->has_screenshot( $theme_files ) ) { 114 /* translators: 1: screenshot.png 2: screenshot.jpg */ 113 115 return sprintf( __( 'The zip file must include a file named %1$s or %2$s.', 'wporg-themes' ), '<code>screenshot.png</code>', '<code>screenshot.jpg</code>' ); 114 116 } 115 117 … … 119 121 // Let's check some theme headers, shall we? 120 122 121 123 if ( ! $this->theme_name = $this->theme->get( 'Name' ) ) { 122 return __( "The theme has no name. Add it to style.css and upload the theme again. <a href='https://codex.wordpress.org/Theme_Development#Theme_Style_Sheet'>Theme Style Sheets</a>", 'wporg-themes' ); 124 /* translators: 1: style.css 2: codex link */ 125 return sprintf( __( 'The theme has no name. Add it to %1$s and upload the theme again. <a href="%2$s">Theme Style Sheets</a>', 'wporg-themes' ), '<code>style.css</code>', 'https://codex.wordpress.org/Theme_Development#Theme_Style_Sheet' ); 123 126 } 124 127 125 128 // determine the theme slug based on the name of the theme in the stylesheet … … 129 132 130 133 // Make sure it doesn't use a slug deemed not to be used by the public. 131 134 if ( $this->has_reserved_slug() ) { 132 return sprintf( __( 'Sorry, the theme name %s is reserved for use by WordPress Core. Please change the name of your theme in <code>style.css</code> and upload it again.', 'wporg-themes' ), '<code>' . $this->theme_slug . '</code>' ); 135 /* translators: 1: theme slug 2: style.css */ 136 return sprintf( __( 'Sorry, the theme name %1$s is reserved for use by WordPress Core. Please change the name of your theme in %2$s and upload it again.', 'wporg-themes' ), '<code>' . $this->theme_slug . '</code>', '<code>style.css</code>' ); 133 137 } 134 138 135 139 // populate the theme post and author … … 137 141 138 142 $theme_description = $this->strip_non_utf8( (string) $this->theme->get( 'Description' ) ); 139 143 if ( empty( $theme_description ) ) { 140 return sprintf( __( 'The theme has no description. Add it to <code>style.css</code> and upload the theme again. <a href="%s">Theme Style Sheets</a>', 'wporg-themes' ), 'https://codex.wordpress.org/Theme_Development#Theme_Style_Sheet' ); 144 /* translators: 1: style.css 2: codex link */ 145 return sprintf( __( 'The theme has no description. Add it to %1$s and upload the theme again. <a href="%2$s">Theme Style Sheets</a>', 'wporg-themes' ), '<code>style.css</code>', 'https://codex.wordpress.org/Theme_Development#Theme_Style_Sheet' ); 141 146 } 142 147 143 148 if ( ! $this->theme->get( 'Tags' ) ) { 144 return __( 'The stylesheet has no tags. Add a Tags: line to your <code>style.css</code> file and upload the zip file again.', 'wporg-themes' ); 149 /* translators: 1: style.css 2: codex link */ 150 return sprintf( __( 'The theme has no tags. Add it to %1$s and upload the theme again. <a href="%2$s">Theme Style Sheets</a>', 'wporg-themes' ), '<code>style.css</code>', 'https://codex.wordpress.org/Theme_Development#Theme_Style_Sheet' ); 145 151 } 146 152 147 153 if ( ! $this->theme->get( 'Version' ) ) { 148 return __( 'The stylesheet has no version. Add a Version: line to your <code>style.css</code> file and upload the zip file again.', 'wporg-themes' ); 154 /* translators: 1: style.css 2: codex link */ 155 return sprintf( __( 'The theme has no version. Add it to %1$s and upload the theme again. <a href="%2$s">Theme Style Sheets</a>', 'wporg-themes' ), '<code>style.css</code>', 'https://codex.wordpress.org/Theme_Development#Theme_Style_Sheet' ); 149 156 } 150 157 151 158 if ( preg_match( '|[^\d\.]|', $this->theme->get( 'Version' ) ) ) { 152 return __( 'Version strings can only contain numeric and period characters (like 1.2). Please fix your Version: line in <code>style.css</code> and upload your theme again.', 'wporg-themes' ); 159 /* translators: %s: style.css */ 160 return sprintf( __( 'Version strings can only contain numeric and period characters (like 1.2). Please fix your Version: line in %s and upload your theme again.', 'wporg-themes' ), '<code>style.css</code>' ); 153 161 } 154 162 155 163 // Make sure we have version that is higher than any previously uploaded version of this theme. 156 164 if ( ! empty( $this->theme_post ) && ! version_compare( $this->theme->get( 'Version' ), $this->theme_post->max_version, '>' ) ) { 157 return sprintf( __( 'You need to upload a version of %1$s higher than %2$s. Increase the theme version number in <code>style.css</code>, then upload your zip file again.', 'wporg-themes' ), $this->theme->display( 'Name' ), '<code>' . $this->theme_post->max_version . '</code>' ); 165 /* translators: 1: Theme display name 2: Theme max version 3: style.css */ 166 return sprintf( __( 'You need to upload a version of %1$s higher than %2$s. Increase the theme version number in %3$s, then upload your zip file again.', 'wporg-themes' ), $this->theme->display( 'Name' ), '<code>' . $this->theme_post->max_version . '</code>', '<code>style.css</code>' ); 158 167 } 159 168 160 169 // Prevent duplicate URLs. … … 166 175 167 176 // Check for child theme's parent in the directory (non-buddypress only) 168 177 if ( $this->theme->parent() && ! in_array( 'buddypress', $this->theme->get( 'Tags' ) ) && ! $this->is_parent_available() ) { 178 /* translators: %s: parent theme */ 169 179 return sprintf( __( 'There is no theme called %s in the directory. For child themes, you must use a parent theme that already exists in the directory.', 'wporg-themes' ), '<code>' . $this->theme->parent() . '</code>' ); 170 180 } 171 181 172 182 // Is there already a theme with the name name by a different author? 173 183 if ( ! empty( $this->theme_post ) && $this->theme_post->post_author != $this->author->ID ) { 174 return sprintf( __( 'There is already a theme called %s by a different author. Please change the name of your theme in <code>style.css</code> and upload it again.', 'wporg-themes' ), '<code>' . $this->theme_slug . '</code>' ); 184 /* translators: 1: Theme slug 2: style.css */ 185 return sprintf( __( 'There is already a theme called %1$s by a different author. Please change the name of your theme in %2$s and upload it again.', 'wporg-themes' ), '<code>' . $this->theme_slug . '</code>', '<code>style.css</code>' ); 175 186 } 176 187 177 188 // We know it's the correct author, now we can check if it's suspended. 178 189 if ( ! empty( $this->theme_post ) && 'suspend' === $this->theme_post->post_status ) { 190 /* translators: %s: mailto link */ 179 191 return sprintf( __( 'This theme is suspended from the Theme Repository and it can’t be updated. If you have any questions about this please contact %s.', 'wporg-themes' ), '<a href="mailto:themes@wordpress.org">themes@wordpress.org</a>' ); 180 192 } 181 193 … … 185 197 $result = $this->check_theme( $theme_files ); 186 198 187 199 if ( ! $result ) { 200 /* translators: %s: codex link */ 188 201 return sprintf( __( 'Your theme has failed the theme check. Please correct the problems with it and upload it again. You can also use the <a href="%1$s">Theme Check Plugin</a> to test your theme before uploading. If you have any questions about this please post them to %2$s.', 'wporg-themes' ), '//wordpress.org/plugins/theme-check/', '<a href="https://make.wordpress.org/themes">https://make.wordpress.org/themes</a>' ); 189 202 } 190 203 } … … 199 212 $ticket_id = $this->create_or_update_trac_ticket(); 200 213 201 214 if ( ! $ticket_id ) { 215 /* translators: %s: mailto link */ 202 216 return sprintf( __( 'There was an error creating a Trac ticket for your theme, please report this error to %s', 'wporg-themes' ), '<a href="mailto:themes@wordpress.org">themes@wordpress.org</a>' ); 203 217 } 204 218 … … 214 228 do_action( 'theme_upload', $this->theme ); 215 229 216 230 // Success! 231 /* translators: 1: theme display name 2: ticket link */ 217 232 return sprintf( __( 'Thank you for uploading %1$s to the WordPress Theme Directory. We’ve sent you an email verifying that we’ve received it. Feedback will be provided at <a href="%2$s">%2$s</a>', 'wporg-themes' ), $this->theme->display( 'Name' ), esc_url( 'https://themes.trac.wordpress.org/ticket/' . $ticket_id ) ); 218 233 } 219 234 … … 411 426 $this->trac_ticket = new StdClass; 412 427 413 428 // todo - check trac xml-rpc, maybe data needs to be escaped before sending it there. 429 /* translators: 1: theme display name 2: theme version */ 414 430 $this->trac_ticket->summary = sprintf( 'THEME: %1$s – %2$s', $this->theme->display( 'Name' ), $this->theme->display( 'Version' ) ); 415 431 416 432 // Keywords … … 598 614 */ 599 615 public function send_email_notification( $ticket_id ) { 600 616 if ( ! empty( $this->theme_post ) ) { 617 /* translators: 1: theme display name 2: theme version */ 601 618 $email_subject = sprintf( __( '[WordPress Themes] %1$s, new version %2$s', 'wporg-themes' ), $this->theme->display( 'Name' ), $this->theme->display( 'Version' ) ); 602 619 $email_content = sprintf( __( "Thank you for uploading version %s of %s.\n\nFeedback will be provided at %s\n\n--\nThe WordPress.org Themes Team\nhttps://make.wordpress.org/themes", 'wporg-themes' ), $this->theme->display( 'Version' ), $this->theme->display( 'Name' ), 'https://themes.trac.wordpress.org/ticket/' . $ticket_id ); 603 620 } else { 621 /* translators: %s: theme display name */ 604 622 $email_subject = sprintf( __( '[WordPress Themes] New Theme - %s', 'wporg-themes' ), $this->theme->display( 'Name' ) ); 605 623 $email_content = sprintf( __( "Thank you for uploading %s to the WordPress Theme Directory. If your theme is selected to be part of the directory we'll send a follow up email.\n\nFeedback will be provided at %s\n\n--\nThe WordPress.org Themes Team\nhttps://make.wordpress.org/themes", 'wporg-themes' ), $this->theme->display( 'Name' ), 'https://themes.trac.wordpress.org/ticket/' . $ticket_id ); 606 624 }