变更集48390
时间戳: 2020年7月7日下午05:47:37 ( 4年 (之前) 位置: 中继/src/wp-admin 文件: -
10编辑
-
css/主题.css (已修改) ( 5个差异 ) -
包括/class-plugin-installer-skin.php (已修改) ( 6个差异 ) -
包括/class-plugin-upgrader.php (已修改) ( 11个差异 ) -
包括/class-theme-installer-skin.php (已修改) ( 5个差异 ) -
包括/class-theme-upgrader.php (已修改) ( 13个差异 ) -
包括/class-wp-upgrader-skin.php (已修改) ( 1个差异 ) -
包括/class-wp-upgrader.php (已修改) ( 1个差异 ) -
包括/plugin-install.php (已修改) ( 1个差异 ) -
包括/theme-install.php (已修改) ( 1个差异 ) -
更新.php (已修改) ( 2个差异 )
图例:
未修改 补充 远离的
-
trunk/src/wp-admin/css/themes.css r48143 48390兰特 985 985 ------------------------------------------------------------------------------*/ 986 986 987 .update-php.wrap{ 988 最大宽度:40雷姆; 989 } 990 987 991 /*已安装主题*/ 988 992 .theme-browser.theme-theme已安装{ 989 993 背景:#0073aa; 990 994 } 995 991 996 .theme-browser.theme.notice-success p:之前{ 992 997 颜色:#79ba49; … … 1031 1036 位置:相对; 1032 1037 顶部:10px; 1033 } 1034 1035 .上传插件包装{ 1036 显示:无; 1038 文本对齐:居中; 1037 1039 } 1038 1040 … … 1050 1052 填充:30px; 1051 1053 边距:30px自动; 1052 最大宽度:380px; 1053 显示:flex; 1054 显示:内联-灵活; 1054 1055 justify-content:space-between; 1055 1056 对齐项目:居中; 1057 } 1058 1059 .upload-theme.wp-upload-form输入[类型=“文件”], 1060 .upload-plugin.wp-upload-form输入[类型=“文件”]{ 1061 边距-右:10px; 1056 1062 } 1057 1063 … … 1094 1100 字体大小:15像素; 1095 1101 填充:20px 0 0; 1096 文本对齐:左; 1097 1102 } 1098 1103 } … … 1115 1120 显示:块; 1116 1121 线高:1.9; 1122 } 1123 1124 .上传比较更新{ 1125 border-top:1px固体#ddd; 1126 border-bottom:1px实心#ddd; 1127 文本对齐:左; 1128 余量:1雷姆0 1.4雷姆; 1129 边界崩塌:崩塌; 1130 宽度:100%; 1131 } 1132 1133 .update-from-upload-comparison tr:last-child td更新{ 1134 高度:1.4rem; 1135 垂直对齐:顶部; 1136 } 1137 1138 .update-from-upload-comparison tr:第一个孩子th{ 1139 font-weight:粗体; 1140 高度:1.4rem; 1141 垂直对齐:底部; 1142 } 1143 1144 .update-from-upload-comparison td.name标签{ 1145 文本对齐:右; 1146 } 1147 1148 来自上传比较td的更新, 1149 .update-from-upload-comparison th更新{ 1150 填充:0.4雷姆1.4雷姆; 1151 } 1152 1153 .update-from-upload-比较td.warning{ 1154 颜色:#a00; 1155 } 1156 1157 。从上载操作更新{ 1158 边缘顶部:1.4雷姆; 1117 1159 } 1118 1160 -
trunk/src/wp-admin/includes/class-plugin-installer-skin.php 47808兰特 48390兰特 19 19 公共$api; 20 20 公共$type; 21 公共$url; 22 公共$overwrite; 23 24 private$is_downgrading=false; 21 25 22 26 /** … … 25 29 公共函数__construct($args=array()){ 26 30 $defaults=数组( 27 “type”=>“web”, 28 “url”=>“”, 29 “插件”=>“”, 30 “nonce”=>“”, 31 “标题”=>“”, 31 “type”=>“web”, 32 “url”=>“”, 33 “插件”=>“”, 34 “nonce”=>“”, 35 “标题”=>“”, 36 “覆盖”=>“”, 32 37 ); 33 38 $args=wp_parse_args($args,$defaults); 34 39 35 $this->类型=$args['type']; 36 $this->api=isset($args['api'])$ args['api']:数组(); 40 $this->类型=$args['type']; 41 $this->url=$args['url']; 42 $this->api=isset($args['api'])$ args['api']:数组(); 43 $this->overwrite=$args['overwrite']; 37 44 38 45 父级::__construct($args); … … 44 51 if(!空($this->api)){ 45 52 $this->upgrader->strings['process_success']=sprintf( 46 /*转换器:1:插件名称,2:插件版本*/ 47 __('已成功安装插件<strong>%1$s%2$s</strong>。'), 53 $this->upgrader->strings['process_success_specific'], 48 54 $this->api->名称, 49 55 $this->api->版本 … … 53 59 54 60 /** 61 *通过上传zip文件更新插件时隐藏“process_failed”错误。 62 * 63 *@自5.5.0起 64 * 65 *@param$wp_error wp_error。 66 *@return bool 67 */ 68 公共函数hide_process_failed($wp_error){ 69 如果( 70 'upload'===$this->类型&& 71 “”===$this->覆盖&& 72 $wp_error->get_error_code()===“文件夹存在” 73 ) { 74 返回true; 75 } 76 77 返回false; 78 } 79 80 /** 55 81 */ 56 82 公共函数after(){ 83 //检查插件是否可以被覆盖并输出HTML。 84 if($this->do_overwrite()){ 85 回报; 86 } 87 57 88 $plugin_file=$this->upgrader->plugin.info(); 58 89 … … 118 149 if(!$this->result||iswp_error($this->result)){ 119 150 取消设置($install_actions['activate_plugin'],$install-actions['网络激活']); 120 }elseif(!current_user_can('activate_plugin',$plugin_file) ) { 151 }elseif(!current_user_can('activate_plugin',$plugin_file) ||is_plugin_active($plugin_file) ) { 121 152 取消设置($install_actions['activate_plugin']); 122 153 } … … 139 170 } 140 171 } 172 173 /** 174 *检查插件是否可以被覆盖,并输出HTML以在上传时覆盖插件。 175 * 176 *@自5.5.0起 177 * 178 *@return bool是否可以覆盖插件并输出HTML。 179 */ 180 私有函数do_overwrite(){ 181 if('upload'!==$this->type||!iswp_error($this->结果)||'folder_exists'!==$ 此->结果->获取错误代码()){ 182 返回false; 183 } 184 185 $folder=$this->result->get_error_data('folder_exists'); 186 $folder=ltrim(子文件夹($folder,strlen(WP_PLUGIN_DIR)),“/”); 187 188 $current_plugin_data=假; 189 foreach(get_plugins()作为$plugin=>$pluging_data){ 190 if(strrpos($plugin,$folder)!== 0){ 191 继续; 192 } 193 194 $current_plugin_data=$plugin_data; 195 } 196 197 if(空($current_plugin_data)||empty($this->upgrader->new_plugin.data)){ 198 返回false; 199 } 200 201 echo'<h2 class=“update-from-upload-heading”>'。 esc_html(__('此插件已安装。'))。'</ h2>'; 202 203 $this->is_downgrading=version_compare($current_plugin_data['version'],$this->upgrader->new_plugin.data['version'],'>'); 204 205 $rows=数组( 206 “名称”=>__(“插件名称”), 207 “版本”=>__(“版本”), 208 “作者”=>__(“作者”), 209 “RequiresWP”=>__(“所需WordPress版本”), 210 '需要PHP'=>__('需要的PHP版本'), 211 ); 212 213 $table='<table class=“update-from-upload-comparison”><tbody>'; 214 $table.='< tr><th></th><th>'。 esc_html(__('当前'))。'</ th>'; 215 $table.='< th>’。 esc_html(__('上传'))。'</ th></tr>'; 216 217 $is_same_plugin=true;// 让我们只考虑这些行 218 foreach($rows作为$field=>$label){ 219 $old_value=! 空($current_plugin_data[$field])$ current_plugin_data[$field]:'-'; 220 $new_value=! 空($this->upgrader->new_plugin_data[$field])$ this->upgrader->new_plugin_data[$field]:'-'; 221 222 $is_same_plugin=$is_same _plugin&&($old_value===$new_value); 223 224 $diff_field=('Version'!==$field&&$new_value!==$old_value); 225 $diff_version=(“版本”===$field&&$this->is_downgrading); 226 227 $table.='< tr><td class=“name-label”>'$ 标签。'</ td><td>”。 esc_html($old_value)。'</ td>'; 228 $表.= ($diff字段||$diff版本)?'< td class=“warning”>':'<td>'; 229 $表.= esc_html($new_value)。'</ td></tr>'; 230 } 231 232 $table.='</ tbody></table>'; 233 234 /** 235 *过滤比较表输出,以便在上传时覆盖插件包。 236 * 237 *@自5.5.0起 238 * 239 *@param string$table带有Name、Version、Author、RequiresWP和RequiresPHP info的输出表。 240 *@param array$current_plugin_data具有当前插件数据的数组。 241 *@param array$new_plugin_data数组,包含上载的插件数据。 242 */ 243 echo apply_filters(“install_plugin_ovewrite_comparation”,$table,$current_plugin_data,$this->upgrader->new_plugin.data); 244 245 $install_actions=数组(); 246 $can_update=true; 247 248 $blocked_message=“<p>”。 esc_html(__('由于以下原因无法更新插件:'))。'</ p> '; 249 $blocked_message.='< ul class=“ul-disc”>'; 250 251 如果( 252 ! 空($this->upgrader->new_plugin_data['RequiresPHP'])&& 253 版本比较(phpversion(),$this->upgrader->new_plugin_data['RequiresPHP'],'<') 254 ) { 255 $error=冲刺( 256 /*转换器:1:当前PHP版本,2:上传插件所需的版本*/ 257 __('您服务器上的PHP版本是%1$s,但上传的插件需要%2$s。'), 258 php版本(), 259 $this->upgrader->new_plugin_data[“需要PHP”] 260 ); 261 262 $blocked_message.='< li>’。 esc_html($error)。'</ li>'; 263 $can_update=false; 264 } 265 266 如果( 267 ! 空($this->upgrader->new_plugin_data['RequiresWP'])&& 268 版本比较($GLOBALS['wp_version'],$this->upgrader->new_plugin_data['RequiresWP'],'<') 269 ) { 270 $error=冲刺( 271 /*翻译人员:1:当前WordPress版本,2:上传插件所需的版本*/ 272 __('你的WordPress版本是%1$s,但上传的插件需要%2$s。'), 273 $GLOBALS['wp_version'], 274 $this->升级程序->new_plugin_data[“需要WP”] 275 ); 276 277 $blocked_message.='< li>’。 esc_html($error)。'</ li>'; 278 $can_update=false; 279 } 280 281 $blocked_message.='</ ul>'; 282 283 if($can_update){ 284 if($this->is_downgrading){ 285 $warning=__('您正在上传当前插件的旧版本。您可以继续安装旧版本,但请确保<a href=“ https://wordpress.org/support/article/wordpress-backups/ “>首先备份数据库和文件。”); 286 }其他{ 287 $warning=__('您正在更新插件。请确保<a href=“ https://wordpress.org/support/article/wordpress-backups/ “>首先备份数据库和文件。”); 288 } 289 290 echo'<p class=“update-from-upload-notice”>'$ 警告。”</ p> '; 291 292 $overwrite=$this->is_downgrading?' downgrade-plugin':'更新-plugin'; 293 294 $install_actions['ovewrite_plugin']=冲刺( 295 '<a class=“button button-primary”href=“%s”target=“_parent”>%s</a>', 296 wp_nonce_url(add_query_arg('overwrite',$overwrite,$this->url),'plugin-upload'), 297 esc_html(__('用上传内容替换当前内容')) 298 ); 299 }其他{ 300 echo$blocked_message; 301 } 302 303 $install_actions['plugins_page']=冲刺( 304 '<a class=“button”href=“%s”>%s</a>', 305 self_admin_url('plugin-install.php'), 306 __('取消并返回') 307 ); 308 309 /** 310 *过滤单个插件安装失败后可用的操作链接列表,但允许ovewrite。 311 * 312 *@自5.5.0起 313 * 314 *@param string[]$install_actions插件操作链接数组。 315 *@param object$api包含WordPress.org api插件数据的对象。 316 *@param array$new_plugin_data数组,包含上载的插件数据。 317 */ 318 $install_actions=apply_filters(“install_plugin_ovewrite_actions”,$install_actions,$this->api,$this->upgrader->new_plugin_data); 319 320 if(!空($install_actions)){ 321 echo'<p class=“update-from-upload-actions”>'。 内爆(“”,(数组)$install_actions)。'</ p> '; 322 } 323 324 返回true; 325 } 141 326 } -
trunk/src/wp-admin/includes/class-plugin-upgrader.php 47814兰特 48390兰特 40 40 41 41 /** 42 *新插件信息。 43 * 44 *@自5.5.0起 45 *@var数组$new_plugin_data 46 * 47 *@参见check_package() 48 */ 49 public$new_plugin_data=数组(); 50 51 /** 42 52 *初始化升级字符串。 43 53 * … … 55 65 $this->strings['process_success']=__('插件更新成功。'); 56 66 $this->strings['process_bulk_success']=__('插件更新成功。'); 67 68 /*转换器:1:插件名称,2:插件版本*/ 69 $this->strings['process_success_specific']=__('成功安装插件<strong>%1$s%2$s</strong>。'); 57 70 } 58 71 … … 68 81 $this->strings['unpack_package']=__('打开包…;'); 69 82 $this->strings['installing_package']=__('安装插件…;'); 83 $this->strings['remove_old']=__('删除当前插件…;'); 84 $this->strings['remove_old_failed']=__('无法删除当前插件。'); 70 85 $this->strings['no_files']=__('插件不包含文件。'); 71 86 $this->strings['process_failed']=__('插件安装失败。'); 72 87 $this->strings['process_success']=__('插件安装成功。'); 88 89 if(!空($this->skin->overwrite)){ 90 if(“update-plugin”===$this->skin->overwrite){ 91 $this->strings['installing_package']=__('更新插件…;'); 92 $this->strings['process_failed']=__('插件更新失败。'); 93 $this->strings['process_success']=__('插件更新成功。'); 94 } 95 96 if('downgrade-plugin'===$this->skin->overwrite){ 97 $this->strings['installing_package']=__('降级插件…;'); 98 $this->string['process_failed']=__('插件降级失败'); 99 $this->strings['process_success']=__('插件降级成功。'); 100 } 101 } 73 102 } 74 103 … … 89 118 */ 90 119 公共函数安装($package,$args=array()){ 91 92 120 $defaults=数组( 93 121 “clear_update_cache”=>true, 122 “overwrite_package”=>false,//不覆盖文件。 94 123 ); 95 124 $parsed_args=wp_parse_args($args,$defaults); … … 108 137 “package”=>$package, 109 138 “目的地”=>WP_PLUGIN_DIR, 110 '清除定义'=> false,//不要覆盖文件。 139 '清除定义'=> $parsed_args[“覆盖包”], 111 140 “clear_working”=>true, 112 141 “hook_extra”=>数组( … … 127 156 wp_clean_plugins_cache($parsed_args['clear_update_cache']); 128 157 158 if($parsed_args['overwrite_package']){ 159 /** 160 *当升级程序成功覆盖当前安装的 161 *带有上传zip包的插件或主题。 162 * 163 *@自5.5.0起 164 * 165 *@param string$package包文件。 166 *@param array$new_plugin_data新插件数据。 167 *@param string$package_type包类型(插件或主题)。 168 */ 169 do_action(“upgrader_overrote_package”,$package,$this->new_plugin_data,“plugin”); 170 } 171 129 172 返回true; 130 173 } … … 146 189 */ 147 190 公共函数升级($plugin,$args=array()){ 148 149 191 $defaults=数组( 150 192 “clear_update_cache”=>true, … … 224 266 */ 225 267 公共函数bulk_update($plugins,$args=array()){ 226 227 268 $defaults=数组( 228 269 “clear_update_cache”=>true, … … 350 391 全局$wp_filesystem; 351 392 393 $this->new_plugin_data=array(); 394 352 395 if(iswp_error($source)){ 353 396 返回$source; … … 360 403 361 404 //检查文件夹是否至少包含一个有效插件。 362 $plugins_found=假; 363 $files=glob($working_directory.'*.php'); 405 $files=glob($working_directory.'*.php'); 364 406 if($个文件){ 365 407 foreach($files作为$file){ 366 408 $info=获取plugin_data($file,false,false); 367 409 if(!空($info['Name'])){ 368 $ plugins_found=真 ; 410 $ this->new_plugin_data=$info ; 369 411 断裂; 370 412 } … … 372 414 } 373 415 374 如果( ! $ 找到插件 ) { 416 如果( 空($this->new_plugin_data) ) { 375 417 return new WP_Error(“incompatible_archive_no_plugins”,$this->strings['incompatiable_archive'],__(“找不到有效插件。”); 376 418 } -
trunk/src/wp-admin/includes/class-theme-installer-skin.php 47219兰特 48390卢比 19 19 公共$api; 20 20 公共$type; 21 公共$url; 22 公共$overwrite; 23 24 private$is_downgrading=false; 21 25 22 26 /** … … 25 29 公共函数__construct($args=array()){ 26 30 $defaults=数组( 27 “type”=>“web”, 28 “url”=>“”, 29 '主题'=>'', 30 “nonce”=>“”, 31 “标题”=>“”, 31 “type”=>“web”, 32 “url”=>“”, 33 '主题'=>'', 34 “nonce”=>“”, 35 'title'=>'', 36 “覆盖”=>“”, 32 37 ); 33 38 $args=wp_parse_args($args,$defaults); 34 39 35 $this->类型=$args['type']; 36 $this->api=isset($args['api'])$ args['api']:数组(); 40 $this->类型=$args['type']; 41 $this->url=$args['url']; 42 $this->api=isset($args['api'])$ args['api']:数组(); 43 $this->overwrite=$args['overwrite']; 37 44 38 45 父级::__construct($args); … … 52 59 53 60 /** 61 *通过上载zip文件更新主题时隐藏“process_failed”错误。 62 * 63 *@自5.5.0起 64 * 65 *@param$wp_error wp_error。 66 *@return bool 67 */ 68 公共函数hide_process_failed($wp_error){ 69 如果( 70 'upload'===$this->类型&& 71 “”===$this->覆盖&& 72 $wp_error->get_error_code()===“文件夹存在” 73 ) { 74 返回true; 75 } 76 77 返回false; 78 } 79 80 /** 54 81 */ 55 82 公共函数after(){ 83 if($this->do_overwrite()){ 84 回报; 85 } 86 56 87 if(空($this->upgrader->result['destination_name']){ 57 88 回报; … … 131 162 if(!$this->result||is_wp_error($this->result)||is_network_admin()||! current_user_can('切换主题'){ 132 163 取消设置($install_actions['activate'],$install-actions[`preview']); 164 }elseif(get_option('template')===$stylesheet){ 165 取消设置($install_actions['activate']); 133 166 } 134 167 … … 148 181 } 149 182 } 183 184 /** 185 *检查主题是否可以被覆盖,并输出HTML以在上传时覆盖主题。 186 * 187 *@自5.5.0起 188 * 189 *@return bool是否可以覆盖主题并输出HTML。 190 */ 191 私有函数do_overwrite(){ 192 if('upload'!==$this->type||!iswp_error($this->结果)||'folder_exists'!==$ 此->结果->获取错误代码()){ 193 返回false; 194 } 195 196 $folder=$this->result->get_error_data('folder_exists'); 197 $folder=rtrim($folder,'/'); 198 199 $current_theme_data=false; 200 $all_themes=wp_get_themes(数组('errors'=>null)); 201 202 foreach($all_themes作为$theme){ 203 if(rtrim($theme->get_stylesheet_directory(),'/')!==$ 文件夹){ 204 继续; 205 } 206 207 $current_theme_data=$theme; 208 } 209 210 if(空($current_theme_data)||empty($this->upgrader->new_theme-data)){ 211 返回false; 212 } 213 214 echo'<h2 class=“update-from-upload-heading”>'。 esc_html(__('此主题已安装。'))。'</ h2>'; 215 216 //检查当前主题的错误 217 if(is_wp_error($current_theme_data->errors())){ 218 $this->反馈('current_theme_has_errors',$current_theme_data->errors()->get_error_message()); 219 } 220 221 $this->is_downgrading=version_compare($current_theme_data['version'],$this->升级程序->new_theme_data['version'],'>'); 222 223 $is_invalid_parent=假; 224 if(!空($this->upgrader->new_theme_data['Template']){ 225 $is_invalid_parent=! in_array($this->upgrader->new_theme_data['Template'],array_keys($all_themes),true); 226 } 227 228 $rows=数组( 229 “名称”=>__(“主题名称”), 230 “版本”=>__(“版本”), 231 “作者”=>__(“作者”), 232 “RequiresWP”=>__(“所需WordPress版本”), 233 “RequiresPHP”=>__(“所需PHP版本”), 234 “模板”=>__(“父主题”), 235 ); 236 237 $table='<table class=“update-from-upload-comparison”><tbody>'; 238 $table.='< tr><th></th><th>’。 esc_html(__('当前'))。'</ th><th>’。 esc_html(__('上传'))。'</ th></tr>'; 239 240 $is_same_theme=true;// 让我们只考虑这些行 241 foreach($rows作为$field=>$label){ 242 $old_value=$current_theme_data->display($field,false); 243 $old_value=$old_value$ 旧值:'-'; 244 245 $new_value=! 空($this->upgrader->new_theme_data[$field])$ this->upgrader->newtheme_data[$field]:'-'; 246 247 if($old_value===$new_value&&‘-’====$新值&&‘模板’===$字段){ 248 继续; 249 } 250 251 $is_same_theme=$is_same_theme&&($old_value==$new_value); 252 253 $diff_field=('版本'!==$field&&$new_value!==$旧值); 254 $diff_version=(“版本”===$field&&$this->is_downgrading); 255 $invalid_parent=false; 256 257 if(“模板”===$field&&$is_invalid_parent){ 258 $invalid_parent=true; 259 $new_value.=“”__ (“(未找到)”); 260 } 261 262 $table.='< tr><td class=“name label”>'$ 标签。'</ td><td>”。 esc_html($old_value)。'</ td>'; 263 $表.= ($diff字段||$diff版本||$invalid_parent)?'< td class=“warning”>':'<td>'; 264 $表.= esc_html($new_value)。'</ td></tr>'; 265 } 266 267 $table.='</ tbody></table>'; 268 269 /** 270 *过滤比较表输出,以便在上传时覆盖主题包。 271 * 272 *@自5.5.0起 273 * 274 *@param string$table带有Name、Version、Author、RequiresWP和RequiresPHP info的输出表。 275 *@param array$current_theme_data具有当前主题数据的数组。 276 *@param array$new_theme_data数组,包含上载的主题数据。 277 */ 278 echo apply_filters('install_theme_override_comparation',$table,$current_theme_data,$this->upgrader->new_theme_data); 279 280 $install_actions=数组(); 281 $can_update=true; 282 283 $blocked_message=“<p>”。 esc_html(__('主题因以下原因无法更新:'))。'</ p> '; 284 $blocked_message.='< ul class=“ul-disc”>'; 285 286 if(!empty($this->upgrader->new_theme_data['RequiresPHP'])&&version_compare(phpversion(),$this->upgrader->new_themes_data['RequiresPHP'],'<')){ 287 $error=冲刺( 288 /*转换器:1:当前PHP版本,2:上传主题所需的版本*/ 289 __('您服务器上的PHP版本是%1$s,但上传的主题需要%2$s。'), 290 phpversion(), 291 $this->upgrader->new_theme_data[“需要PHP”] 292 ); 293 294 $blocked_message.='< li>’。 esc_html($error)。'</ li>'; 295 $can_update=false; 296 } 297 298 如果(!empty($this->upgrader->new_theme_data['RequiresWP'])&&version_compare($GLOBALS['wp_version'],$this->upgrader->new_themes_data['RequiresWD'],'<')){ 299 $error=冲刺( 300 /*翻译人员:1:当前WordPress版本,2:上传主题所需的版本*/ 301 __('您的WordPress版本是%1$s,但上传的主题需要%2$s。'), 302 $GLOBALS['wp_version'], 303 $this->升级程序->new_theme_data[“需要WP”] 304 ); 305 306 $blocked_message.='< li>’。 esc_html($error)。'</ li>'; 307 $can_update=false; 308 } 309 310 $blocked_message.='</ ul>'; 311 312 如果($can_update){ 313 if($this->is_downgrading){ 314 $warning=__('您正在上传当前主题的旧版本。您可以继续安装旧版本,但请确保<a href=“ https://wordpress.org/support/article/wordpress-backups/ “>首先备份数据库和文件。”); 315 }其他{ 316 $warning=__('您正在更新主题。请确保<a href=“ https://wordpress.org/support/article/wordpress-backups/ “>首先备份数据库和文件。”); 317 } 318 319 echo'<p class=“update-from-upload-notice”>'$ 警告。”</ p> '; 320 321 $overwrite=$this->is_downgrading?' 降级主题':'更新主题'; 322 323 $install_actions['ovewrite_theme']=冲刺( 324 '<a class=“button button-primary”href=“%s”target=“_parent”>%s</a>', 325 wp_nonce_url(add_query_arg(“覆盖”,$overwrite,$this->url),“主题上传”), 326 esc_html(__('用上传内容替换当前内容')) 327 ); 328 }其他{ 329 echo$blocked_message; 330 } 331 332 $install_actions['themes_page']=冲刺( 333 '<a class=“button”href=“%s”target=“_parent”>%s</a>', 334 self_admin_url('theme-install.php'), 335 __('取消并返回') 336 ); 337 338 /** 339 *过滤单个主题安装失败但允许ovewrite后可用的操作链接列表。 340 * 341 *@自5.5.0起 342 * 343 *@param string[]$install_actions主题操作链接数组。 344 *@param object$api包含WordPress.org api主题数据的对象。 345 *@param array$new_theme_data数组,包含上载的主题数据。 346 */ 347 $install_actions=apply_filters('install_theme_ovewrite_actions',$install_actions,$this->api,$this->upgrader->new_theme_data); 348 349 if(!空($install_actions)){ 350 echo'<p class=“update-from-upload-actions”>'。 内爆(“”,(数组)$install_actions)</ p> '; 351 } 352 353 返回true; 354 } 355 150 356 } -
trunk/src/wp-admin/includes/class-theme-upgrader.php 47814兰特 48390卢比 39 39 40 40 /** 41 *新主题信息。 42 * 43 *@自5.5.0起 44 *@var数组$new_theme_data 45 * 46 *@参见check_package() 47 */ 48 public$new_theme_data=array(); 49 50 /** 41 51 *初始化升级字符串。 42 52 * … … 66 76 $this->strings['unpack_package']=__('打开包…;'); 67 77 $this->strings['installing_package']=__('安装主题…;'); 78 $this->strings['remove_old']=__('删除旧版本的主题…;'); 79 $this->strings['remove_old_failed']=__('无法删除旧主题。'); 68 80 $this->strings['no_files']=__('主题不包含文件。'); 69 81 $this->strings['process_failed']=__('主题安装失败。'); … … 80 92 /*转换器:%s:主题名称*/ 81 93 $this->string['parent_theme_not_found']=sprintf(__('<strong>找不到父主题。</strong>您需要安装父主题%s,然后才能使用此子主题。'),'<strong>%s</strong>'); 94 /*转换器:%s:主题错误*/ 95 $this->strings['current_theme_has_errors']=__('当前主题有以下错误:“%s”.'); 96 97 if('update-theme'===$this->skin->overwrite){ 98 $this->strings['installing_package']=__('更新主题…;'); 99 $this->strings['process_failed']=__('主题更新失败。'); 100 $this->strings['process_success']=__('主题更新成功。'); 101 } 102 103 if(“降级主题”===$this->skin->overwrite){ 104 $this->strings['installing_package']=__('降级主题…;'); 105 $this->strings['process_failed']=__('主题降级失败。'); 106 $this->strings['process_success']=__('主题降级成功。'); 107 } 82 108 } 83 109 … … 201 227 */ 202 228 公共函数安装($package,$args=array()){ 203 204 229 $defaults=数组( 205 230 “clear_update_cache”=>true, 231 'overwrite_package'=>false,//不覆盖文件。 206 232 ); 207 233 $parsed_args=wp_parse_args($args,$defaults); … … 221 247 “package”=>$package, 222 248 “目的地”=>get_theme_root(), 223 “清除目标”=> false,//不要覆盖文件。 249 '清除定义'=> $args['overwrite_package'], 224 250 “clear_working”=>true, 225 251 “hook_extra”=>数组( … … 241 267 wp_clean_themes_cache($parsed_args['clear_update_cache']); 242 268 269 if($parsed_args['overwrite_package']){ 270 /** 271 *当升级程序成功覆盖当前安装的 272 *带有上传zip包的插件或主题。 273 * 274 *@自5.5.0起 275 * 276 *@param string$package包文件。 277 *@param array$new_plugin_data新主题数据。 278 *@param string$package_type包类型(插件或主题)。 279 */ 280 do_action(“upgrader_overrote_package”,$package,$this->new_theme_data,“theme”); 281 } 282 243 283 返回true; 244 284 } … … 260 300 */ 261 301 公共函数升级($theme,$args=array()){ 262 263 302 $defaults=数组( 264 303 “clear_update_cache”=>true, … … 333 372 */ 334 373 公共函数bulk_upgrade($themes,$args=array()){ 335 336 374 $defaults=数组( 337 375 “clear_update_cache”=>true, … … 462 500 全局$wp_filesystem; 463 501 502 $this->new_theme_data=array(); 503 464 504 if(iswp_error($source)){ 465 505 返回$source; … … 485 525 } 486 526 527 //Theme_Installer_Skin::do_overwrite()上需要所有这些标头。 487 528 $info=获取文件数据( 488 529 $working_directory。” 样式.css', 489 530 阵列( 490 “名称”=>“主题名称”, 491 '模板'=>'模板', 531 “名称”=>“主题名称”, 532 “版本”=>“版本”, 533 “作者”=>“作者”, 534 “模板”=>“模板”, 535 “RequiresWP”=>“至少需要”, 536 “RequiresPHP”=>“Requires PHP”, 492 537 ) 493 538 ); … … 518 563 } 519 564 565 $this->new_theme_data=$info; 520 566 返回$source; 521 567 } … … 641 687 */ 642 688 公共函数theme_info($theme=null){ 643 644 689 if(空($theme)){ 645 690 if(!空($this->result['destination_name']){ … … 649 694 } 650 695 } 651 返回wp_get_theme($theme); 696 697 $theme=wp_get_theme($theme); 698 $theme->cache_delete(); 699 700 return$theme; 652 701 } 653 702 -
trunk/src/wp-admin/includes/class-wp-upgrader-skin.php 47060兰特 48390兰特 206 206 */ 207 207 公共函数bulk_footer(){} 208 209 /** 210 *通过上载zip文件进行更新时隐藏“process_failed”错误消息。 211 * 212 *@自5.5.0起 213 * 214 *@参数$wp_error wp_error 215 *@return bool 216 */ 217 公共函数hide_process_failed($wp_error){ 218 返回false; 219 } 208 220 } -
trunk/src/wp-admin/includes/class-wp-upgrader.php 48110兰特 48390兰特 799 799 if(iswp_error($result)){ 800 800 $this->skin->error($result); 801 $this->skin->反馈(“process_failed”); 801 802 如果(!method_exists($this->skin,'hide_process_failed')|$ 此->皮肤->隐藏进程失败($result)){ 803 $this->skin->反馈(“process_failed”); 804 } 802 805 }其他{ 803 806 //安装成功。 -
trunk/src/wp-admin/includes/plugin-install.php 48281兰特 48390兰特 354 354 <? php wp_nonce_field(“插件上传”);?> 355 355 <label class=“screen-reader-text”for=“pluginzip”><? php_e(“插件zip文件”);?></ 标签> 356 <input type=“file”id=“pluginzip”name=“plugingzip” /> 356 <input type=“file”id=“pluginzip”name=“plugingzip” accept=“.zip” /> 357 357 <? php submit_button(__(“立即安装”),“”,“Install-plugin-submit”,false);?> 358 358 </form> -
trunk/src/wp-admin/includes/theme-install.php 45583兰特 48390兰特 184 184 <? php wp_nonce_field(“主题上传”);?> 185 185 <label class=“screen-reader-text”for=“themezip”><? php_e('主题zip文件');?></ 标签> 186 <input type=“file”id=“themezip”name=“themezip” /> 186 <input type=“file”id=“themezip”name=“themezip” accept=“.zip” /> 187 187 <? php submit_button(__(“立即安装”),“”,“安装主题提交”,false);?> 188 188 </form> -
trunk/src/wp-admin/update.php 47808兰特 48390兰特 158 158 159 159 /*转换器:%s:文件名*/ 160 $title=sprintf(__('安装 P(P) lugin来自上传文件:%s'),esc_html(basename($file_upload->filename)); 160 $title=sprintf(__('安装 第页 lugin来自上传文件:%s'),esc_html(basename($file_upload->filename)); 161 161 $nonce='插件上传'; 162 162 $url=add_query_arg(数组(“package”=>$file_upload->id),“update.php?”? action=上传插件); 163 163 $type=“上传”;// 安装插件类型,从Web或上传。 164 164 165 $upgrader=new Plugin_upgrader(new Plugin_Installer_Skin(compact('type','title','nonce','url')); 166 $result=$upgrader->install($file_upload->package); 165 $overwrite=isset($_GET['overwrite'])? sanitize_text_field($_GET['overwrite']):''; 166 $overwrite=in_array($overwhite,array('update-plugin','downgrade-plugin]),true)$ 覆盖:“”; 167 168 $upgrader=新Plugin_upgrader(新Plugin_Installer_Skin(compact('type','title','nonce','url','overwrite')); 169 $result=$upgrader->install($file_upload->package,array('overwrite_package'=>$overwrite)); 167 170 168 171 if($result|iswp_error($resort)){ … … 278 281 279 282 /*转换器:%s:文件名*/ 280 $title=sprintf(__('安装 T型 上传文件的heme:%s'),esc_html(basename($file_upload->filename)); 283 $title=sprintf(__('安装 t吨 上传文件的heme:%s'),esc_html(basename($file_upload->filename)); 281 284 $nonce='theme-upload'; 282 285 $url=add_query_arg(数组(“package”=>$file_upload->id),“update.php?”? action=上传主题); 283 286 $type=“上传”;// 安装主题类型,从Web或上载。 284 287 285 $upgrader=new Theme_upgrader(新Theme_Installer_Skin(compact('type','title','nonce','url')); 286 $result=$upgrader->install($file_upload->package); 288 $overwrite=isset($_GET['overwrite'])? sanitize_text_field($_GET['overwrite']):''; 289 $overwrite=in_array($overwhite,array('update-theme','download-theme]),true)$ 覆盖:“”; 290 291 $upgrader=new Theme_upgrader(新Theme_Installer_Skin(compact('type','title','nonce','url','overwrite')); 292 $result=$upgrader->install($file_upload->package,array('overwrite_package'=>$overwrite)); 287 293 288 294 if($result|iswp_error($resort)){