Commit Graph

167 Commits

Author SHA1 Message Date
Weston Ruter
3fab757196 Theme Editor: Ensure files listed recursively can be both viewed and edited.
Prevent edits to 2-level deep theme files from returning a `disallowed_theme_file` error when attempting to save an edit. Aligns logic for gathering `$allowed_files` in `theme-editor.php` for listing files with the validation logic in `wp_edit_theme_plugin_file()`.

Amends [41806].
See #6531.
Fixes #42425.


git-svn-id: https://develop.svn.wordpress.org/trunk@42112 602fd350-edb4-49c9-b593-d223f7449a82
2017-11-02 23:04:54 +00:00
John Blackbourn
3e9a42ed27 Filesystem API: Add more specificity to the rules for valid files in validate_file().
This now treats files containing `./` as valid, and also treats files containing a trailing `../` as valid due to widespread use of this pattern in theme and plugin zip files.

Adds tests.

Props Ipstenu, borgesbruno, DavidAnderson, philipjohn, birgire
Fixes #42016, #36170


git-svn-id: https://develop.svn.wordpress.org/trunk@42011 602fd350-edb4-49c9-b593-d223f7449a82
2017-10-24 23:14:33 +00:00
John Blackbourn
49b7cb458f Filesystem API: Don't immediately return an error for invalid file names contained within a Zip while it's being extracted.
This allows the extraction of the rest of the valid files within the archive to continue.

See #42016


git-svn-id: https://develop.svn.wordpress.org/trunk@42010 602fd350-edb4-49c9-b593-d223f7449a82
2017-10-24 23:10:37 +00:00
John Blackbourn
7329816301 Docs: Improve the docs for validate_file() and validate_file_to_edit().
See #42016, #36170, #41017


git-svn-id: https://develop.svn.wordpress.org/trunk@42007 602fd350-edb4-49c9-b593-d223f7449a82
2017-10-24 22:49:13 +00:00
Gary Pendergast
33a0ff50b7 File Editor: Add support for more than one sub-directory level.
The theme and plugin editors now list all files in the selected theme or plugin, recursing through subdirectories as necessary.

Props WraithKenny, schlessera, chsxf, MikeHansenMe, Daedalon, valendesigns, westonruter, pento.
Fixes #6531.



git-svn-id: https://develop.svn.wordpress.org/trunk@41806 602fd350-edb4-49c9-b593-d223f7449a82
2017-10-10 05:33:57 +00:00
Weston Ruter
5deddd9c62 File Editor: Increase robustness of fatal error checking when saving PHP file edits.
* Increase PHP execution time limit prior to issuing loopback requests where are themselves given timeouts to ensure PHP file can be reverted.
* Output scrape messages on success and failure so that absence of either can also be flagged as an error condition.
* Forward browser's HTTP Basic Auth credentials in loopback requests to admin and home URL.
* Display more helpful message when loopback request fails.

Amends [41721].
See #21622.
Fixes #42102.


git-svn-id: https://develop.svn.wordpress.org/trunk@41805 602fd350-edb4-49c9-b593-d223f7449a82
2017-10-10 05:26:53 +00:00
Weston Ruter
3fcfefd05c File Editors: Introduce sandboxed live editing of PHP files with rollbacks for both themes and plugins.
* Edits to active plugins which cause PHP fatal errors will no longer auto-deactivate the plugin. Supersedes #39766.
* Introduce sandboxed PHP file edits for active themes, preventing accidental whitescreening of a user's site when introducing a fatal error.
* After writing a change to a PHP file for an active theme or plugin, perform loopback requests on the file editor admin screens and the homepage to check for fatal errors. If a fatal error is encountered, roll back the edited file and display the error to the user to fix and try again.
* Introduce a secure way to scrape PHP fatal errors from a site via `wp_start_scraping_edited_file_errors()` and `wp_finalize_scraping_edited_file_errors()`.
* Moves file modifications from `theme-editor.php` and `plugin-editor.php` to common `wp_edit_theme_plugin_file()` function.
* Refactor themes and plugin editors to submit file changes via Ajax instead of doing full page refreshes when JS is available.
* Use `get` method for theme/plugin dropdowns.
* Improve styling of plugin editors, including width of plugin/theme dropdowns.
* Improve notices API for theme/plugin editor JS component.
* Strip common base directory from plugin file list. See #24048.
* Factor out functions to list editable file types in `wp_get_theme_file_editable_extensions()` and `wp_get_plugin_file_editable_extensions()`.
* Scroll to line in editor that has linting error when attempting to save. See #41886.
* Add checkbox to dismiss lint errors to proceed with saving. See #41887.
* Only style the Update File button as disabled instead of actually disabling it for accessibility reasons.
* Ensure that value from CodeMirror is used instead of `textarea` when CodeMirror is present.
* Add "Are you sure?" check when leaving editor when there are unsaved changes.

Supersedes [41560].
See #39766, #24048, #41886.
Props westonruter, Clorith, melchoyce, johnbillion, jjj, jdgrimes, azaozz.
Fixes #21622, #41887.


git-svn-id: https://develop.svn.wordpress.org/trunk@41721 602fd350-edb4-49c9-b593-d223f7449a82
2017-10-04 00:19:16 +00:00
John Blackbourn
64e8c4952a Filesystem API: Ensure filenames are valid before attempting to unzip them to ensure malformed file paths don't cause issues.
git-svn-id: https://develop.svn.wordpress.org/trunk@41457 602fd350-edb4-49c9-b593-d223f7449a82
2017-09-19 14:35:09 +00:00
Weston Ruter
7aa34b77e9 Customize: Re-use homepage settings help tab text from Reading Options admin screen in description for corresponding Customizer section.
Also remove "Static" reference in template name, missed in [41363].

See #41829.


git-svn-id: https://develop.svn.wordpress.org/trunk@41364 602fd350-edb4-49c9-b593-d223f7449a82
2017-09-10 17:07:50 +00:00
Weston Ruter
d0dbcf5913 Customize: Rename "Static front page" to just "Homepage".
Props danieltj, melchoyce.
Fixes #41828.


git-svn-id: https://develop.svn.wordpress.org/trunk@41363 602fd350-edb4-49c9-b593-d223f7449a82
2017-09-10 16:19:53 +00:00
Drew Jaynes
0fb490ee1a Filesystem: Introduce the pre_move_uploaded_file filter.
Passing a non-null value to the filter will prevent the uploaded file from being moved to the uploads directory for any of the functions leveraging `_wp_handle_upload()`, such as `wp_handle_upload()` or `wp_handle_sideload()`.

Error reporting related to the file being moved will also be skipped.

Props ryan, Mte90.
Fixes #24603.


git-svn-id: https://develop.svn.wordpress.org/trunk@41258 602fd350-edb4-49c9-b593-d223f7449a82
2017-08-16 21:58:12 +00:00
Sergey Biryukov
7e8d932935 Docs: Add a @global entry for $allowed_files in get_file_description().
Props div33, ajayghaghretiya1.
Fixes #41294.

git-svn-id: https://develop.svn.wordpress.org/trunk@41032 602fd350-edb4-49c9-b593-d223f7449a82
2017-07-12 21:39:37 +00:00
Aaron D. Campbell
96c3a01019 Add nonce for updating file system credentials.
git-svn-id: https://develop.svn.wordpress.org/trunk@40723 602fd350-edb4-49c9-b593-d223f7449a82
2017-05-16 14:47:08 +00:00
swissspidy
fd211c9a2e Cron API: Add a new wp_doing_cron() helper function.
This replaces `DOING_CRON` checks via the constant.

Props tfrommen.
Fixes #39591.


git-svn-id: https://develop.svn.wordpress.org/trunk@40575 602fd350-edb4-49c9-b593-d223f7449a82
2017-05-06 14:29:01 +00:00
Dion Hulse
85ad040c97 Updates: Remove a stray " from a tag.
Props afercia.
See #39057.


git-svn-id: https://develop.svn.wordpress.org/trunk@39656 602fd350-edb4-49c9-b593-d223f7449a82
2016-12-30 07:41:45 +00:00
Andrea Fercia
ee7f970ffa Administration: Improve the usage of the button CSS classes.
Introduces some consistency in the usage of the button CSS classes, fixes the
focus style for accessibility and responsiveness of the buttons.

- Adds the `button` class to all primary buttons make them responsive
- Removes all `secondary-button` classes and replaces it with button when needed. `button-secondary` shouldn't be used and exists just for backward compatibility reasons
- Replaces classes inside `submit_button()` with a shorthand for some buttons, and use an empty string for the default `button` class. Passing `button` is unnecessary
- Adjusts `get_submit_button()` to remove empty items

Props iseulde, dimchik, chris_d2d, mhowell, afercia.
Fixes #27314, #37138, #37448.


git-svn-id: https://develop.svn.wordpress.org/trunk@38672 602fd350-edb4-49c9-b593-d223f7449a82
2016-09-28 19:53:07 +00:00
Scott Taylor
cba0e2c8f7 Bootstrap: do not go gentle into that good night r38411, r38412, and parts of r38389.
See #36335.


git-svn-id: https://develop.svn.wordpress.org/trunk@38470 602fd350-edb4-49c9-b593-d223f7449a82
2016-08-31 16:30:48 +00:00
Scott Taylor
4225e71a6b Bootstrap: after r38409 and r38410, revert r38402 which reverted r38399.
This fixes the paths in `wp-vendor/` that were including `src`. I want to drop this in so we can find out what else will break.

See #36335.


git-svn-id: https://develop.svn.wordpress.org/trunk@38411 602fd350-edb4-49c9-b593-d223f7449a82
2016-08-27 22:31:11 +00:00
Dion Hulse
e353179ce5 Bootstrap: Revert [38399] as it's broken /build/ and subsequently core.svn.wordpress.org.
The generated classmaps reference `/src/` files and operates in the assumption that the base directory is one level above `wp-settings.php`, which it isn't after our build processes are run.

See #36335


git-svn-id: https://develop.svn.wordpress.org/trunk@38402 602fd350-edb4-49c9-b593-d223f7449a82
2016-08-27 14:36:42 +00:00
Scott Taylor
388690382c Bootstrap: Autoload classes using a Composer-generated PHP 5.2-compatible Autoloader.
* `wp-admin` and `wp-includes` are scanned for classes to autoload
* Several 3rd-party and Ryan McCue-shaped libraries are excluded when the classmap is generated, see `composer.json`: `autoload.exclude-from-classmap`
* `wp-vendor/autoload_52.php` is included at the top of `wp-settings.php` - no changes need to be made to unit tests to include the autoloader
* An avalanche of `require()` and `require_once()` calls that loaded class files have been removed from the codebase.

The following files have been added to `svn:ignore` - they are not 5.2-compatible and fail during pre-commit:
* src/wp-vendor/autoload.php
* src/wp-vendor/composer/autoload_real.php
* src/wp-vendor/composer/autoload_static.php
* src/wp-vendor/composer/ClassLoader.php

We favor these files instead:
* src/wp-vendor/autoload_52.php
* src/wp-vendor/composer/autoload_real_52.php
* src/wp-vendor/composer/ClassLoader52.php

When new PHP classes are added to the codebase, simply run `composer install` or `composer update` from the project root to update the autoloader.

The future is now.

See #36335.


git-svn-id: https://develop.svn.wordpress.org/trunk@38399 602fd350-edb4-49c9-b593-d223f7449a82
2016-08-27 09:15:01 +00:00
Scott Taylor
d911ef44dc Media: when calling pathinfo(), also pass a PATHINFO_* constant to avoid array notices for unset keys.
Props JaworskiMatt.
Fixes #37608.


git-svn-id: https://develop.svn.wordpress.org/trunk@38294 602fd350-edb4-49c9-b593-d223f7449a82
2016-08-20 23:35:50 +00:00
Dominik Schilling
3844065c1a Media: In _wp_handle_upload() use call_user_func_array() to call the upload error handler.
The default error handler `wp_handle_upload_error()` expects a reference for the first parameter but `call_user_func()` doesn't pass parameters by reference. The current code didn't produce any issues until now. PHP 7.0.9 (and PHP 7.1) is now stricter and prevents calling the error handler with a warning:
> PHP Warning:  Parameter 1 to wp_handle_upload_error() expected to be a reference, value given.

To restore the error handler `_wp_handle_upload()` now uses `call_user_func_array()`.

Props jbrinley.
Props jorbin for review.
Fixes #37570.

git-svn-id: https://develop.svn.wordpress.org/trunk@38235 602fd350-edb4-49c9-b593-d223f7449a82
2016-08-09 21:53:12 +00:00
Dominik Schilling
076cbcdb71 Filesystem API: Prevent an endless self-calling loop in wp_tempnam().
Under certain conditions upgrades on Windows may fail because `wp_tempnam()` gets called in a loop.
This can happen when `wp_tempnam()` is called with `\.maintenance` for the `$filename` parameter. The function strips the extension, in this case `.maintenance`, which results in an empty filename. Because it's empty, `wp_tempnam()` calls itself with `dirname( '\.maintenance' )`. On *nix systems this would be `"/"` which allows `wp_tempnam()` to fall back on `time()`. But on Windows it's `"\"`.

This change adds the backslash to the list of characters which allow `wp_tempnam()` to fall back on `time()`.

See [32322], [31936].
Fixes #33999.

git-svn-id: https://develop.svn.wordpress.org/trunk@38151 602fd350-edb4-49c9-b593-d223f7449a82
2016-07-25 15:27:43 +00:00
Dominik Schilling
92231118dd Filesystem API: Change the default value for the $context parameter of get_filesystem_method() and request_filesystem_credentials() to an empty string.
`$context` is a full path to the directory that is tested for being writable. A path shouldn't be a boolean value.
This also updates `WP_Upgrader_Skin::request_filesystem_credentials()` and `Automatic_Upgrader_Skin::request_filesystem_credentials()` and adds missing docs.

Props DrewAPicture, ocean90.
Fixes #37412.


git-svn-id: https://develop.svn.wordpress.org/trunk@38138 602fd350-edb4-49c9-b593-d223f7449a82
2016-07-22 12:09:55 +00:00
Dominik Schilling
c68f1ec772 Bootstrap: Enhance core's memory limit handling.
* Don't lower memory limit if the current limit is greater than `WP_MAX_MEMORY_LIMIT`.
* Set `WP_MEMORY_LIMIT` and `WP_MAX_MEMORY_LIMIT` to current limit if the `memory_limit` setting can't be changed at runtime.
* Use `wp_convert_hr_to_bytes()` when parsing the value of the `memory_limit` setting because it can be a shorthand or an integer value.
* Introduce `wp_raise_memory_limit( $context )` to raise the PHP memory limit for memory intensive processes. This DRYs up some logic and includes the existing `admin_memory_limit` and `image_memory_limit` filters. The function can also be used for custom contexts, the `{$context}_memory_limit` filter allows to customize the limit.
* Introduce `wp_is_ini_value_changeable( $setting )` to determine whether a PHP ini value is changeable at runtime.
* Remove a `function_exists( 'memory_get_usage' )` check. Since PHP 5.2.1 support for memory limit is always enabled.

Related commits: [38011-38013]

Props jrf, A5hleyRich, swissspidy, ocean90.
Fixes #32075.

git-svn-id: https://develop.svn.wordpress.org/trunk@38015 602fd350-edb4-49c9-b593-d223f7449a82
2016-07-08 14:36:37 +00:00
Dion Hulse
dd472b7d2e Updates: Only use the filename component of URLs to form part of the temporary filename.
Previously we were passing the entire URL to `wp_tempnam()` (incorrectly) which caused the query string to be used as part of the temporary filename.
We now only use the file component of a url such as `https://example.com/filename.zip?arg1=1&arg2=2....&arg100=100` to prevent a long filename.

Fixes #34938


git-svn-id: https://develop.svn.wordpress.org/trunk@37598 602fd350-edb4-49c9-b593-d223f7449a82
2016-05-31 02:20:58 +00:00
Drew Jaynes
2111185ab9 Docs: Apply inline @see tags to hooks referenced in DocBlocks for wp-admin/* files.
Applying these specially-crafted `@see` tags allows the Code Reference parser to recognize and link these elements as actions and filters.

See #36921.


git-svn-id: https://develop.svn.wordpress.org/trunk@37537 602fd350-edb4-49c9-b593-d223f7449a82
2016-05-23 17:27:19 +00:00
Drew Jaynes
1cd420af5e Docs: Standardize hook docs in wp-admin/* to use third-person singular verbs per the inline documentation standards for PHP.
See #36913.


git-svn-id: https://develop.svn.wordpress.org/trunk@37488 602fd350-edb4-49c9-b593-d223f7449a82
2016-05-22 18:00:23 +00:00
Andrea Fercia
86b5802d75 Refine the FTP credentials form interaction.
Properly toggle SSH2 Authentication Keys fieldset visibility.
JavaScript and CSS clean-up.

Props Mte90.
Fixes #34376.

git-svn-id: https://develop.svn.wordpress.org/trunk@37467 602fd350-edb4-49c9-b593-d223f7449a82
2016-05-19 22:58:55 +00:00
Dominik Schilling (ocean90)
954eeba053 Filesystem API: Don't add '.' to the list of directories which need to be checked/created when extracting a file.
Prevents a PHP warning by `WP_Filesystem_Direct::mkdir()` when installing a language pack which doesn't have subdirectories.

Props tfrommen.
Fixes #36570.

git-svn-id: https://develop.svn.wordpress.org/trunk@37421 602fd350-edb4-49c9-b593-d223f7449a82
2016-05-12 12:39:49 +00:00
Sergey Biryukov
2f3c1769fa Theme Editor: After [37217], add other embed templates to file descriptions.
Props Frozzare.
Fixes #34561. See #34561.

git-svn-id: https://develop.svn.wordpress.org/trunk@37232 602fd350-edb4-49c9-b593-d223f7449a82
2016-04-18 01:04:15 +00:00
Sergey Biryukov
25f590a423 Theme Editor: Add embed.php to file descriptions.
Props ramiy.
Fixes #36551.

git-svn-id: https://develop.svn.wordpress.org/trunk@37217 602fd350-edb4-49c9-b593-d223f7449a82
2016-04-16 12:46:26 +00:00
Dominik Schilling (ocean90)
39ddaa65cc Docs: Correct grammar when referring to "a URL" vs "an URL" in several places.
Fixes #36218.

git-svn-id: https://develop.svn.wordpress.org/trunk@36970 602fd350-edb4-49c9-b593-d223f7449a82
2016-03-12 12:38:48 +00:00
Drew Jaynes
5572e1d4f4 Docs: Add private access notation to the DocBlock for the core _wp_handle_upload() function.
See #32246.


git-svn-id: https://develop.svn.wordpress.org/trunk@36473 602fd350-edb4-49c9-b593-d223f7449a82
2016-02-03 20:18:15 +00:00
Sergey Biryukov
ac704e838c Media: In _wp_handle_upload(), move ending brace to a new line.
Props georgestephanis.
Fixes #35565.

git-svn-id: https://develop.svn.wordpress.org/trunk@36373 602fd350-edb4-49c9-b593-d223f7449a82
2016-01-21 20:26:06 +00:00
SergeyBiryukov
2ce0bfa8f4 Theme Editor: Break $wp_file_descriptions array into sections and reorder for consistency and readability.
Props ramiy.
Fixes #35223.

git-svn-id: https://develop.svn.wordpress.org/trunk@36088 602fd350-edb4-49c9-b593-d223f7449a82
2015-12-25 21:11:02 +00:00
Sergey Biryukov
ffc86bf4e1 Theme Editor: Add taxonomy.php, home.php, front-page.php, date.php, and singular.php to file descriptions.
Props ramiy.
See #35223.

git-svn-id: https://develop.svn.wordpress.org/trunk@36087 602fd350-edb4-49c9-b593-d223f7449a82
2015-12-25 21:04:13 +00:00
Sergey Biryukov
ddf45b0142 Docs: Improve documentation for request_filesystem_credentials() and the corresponding filter.
Props swissspidy, danhgilmore, slushman.
Fixes #34858.

git-svn-id: https://develop.svn.wordpress.org/trunk@35888 602fd350-edb4-49c9-b593-d223f7449a82
2015-12-12 16:15:07 +00:00
Pascal Birchler
4e58589669 Docs: Fix some minor DocBlock alignment issues.
See #32246.

git-svn-id: https://develop.svn.wordpress.org/trunk@35885 602fd350-edb4-49c9-b593-d223f7449a82
2015-12-12 15:36:36 +00:00
John Blackbourn
c4cf5124ca Comments: The year is 2003. Permalinks are a new thing and everyone's using Blogger. It's a time when opening a modal window in JavaScript to view a section of a website is not a completely weird thing, although many users get annoyed by it. b2 has recently become WordPress, and with it comes a bunch of functionality that will become stale over the next decade, remnants of simpler times.
Twelve years later, after no fewer than three themes have intentionally implemented popup comments in their functionality, before being abandoned for at least the last six years, we've reached a time where we can put this era behind us. A time when we can remove comment popup functionality from WordPress.

If this breaks the internet, I'll eat my hat.

Fixes #28617


git-svn-id: https://develop.svn.wordpress.org/trunk@35848 602fd350-edb4-49c9-b593-d223f7449a82
2015-12-10 03:05:34 +00:00
Konstantin Kovshenin
318455ff24 Docs: Remove some more dittography.
See #34885, r35793.


git-svn-id: https://develop.svn.wordpress.org/trunk@35796 602fd350-edb4-49c9-b593-d223f7449a82
2015-12-06 21:49:43 +00:00
Mark Jaquith
baa1da6c57 Do not pass FALSE as second parameter in variable class_exists() checks
Because these are generally plugin-provided, we want plugins to be
able to use autoloaders.

fixes #20523

git-svn-id: https://develop.svn.wordpress.org/trunk@35749 602fd350-edb4-49c9-b593-d223f7449a82
2015-11-30 04:14:31 +00:00
Aaron Jorbin
ee18e04df0 Revert [34291] bringing back my-hacks
Keeping myhacks support is a small price to pay for not breaking people's sites.  Even if it is very very very few sites, breaking sites isn't something that should be encouraged. Even with 10 years of deprecation notices.

https://core.trac.wordpress.org/ticket/33741#comment:18 outlines all the ways that the hack_file and my-hacks options can be setup and thus all the ways that the removal of those options could break sites.

Fixes #33741.




git-svn-id: https://develop.svn.wordpress.org/trunk@35688 602fd350-edb4-49c9-b593-d223f7449a82
2015-11-18 20:48:24 +00:00
Dion Hulse
10c377b9b9 Decrease the chances that wp_tempnam() will conflict with an existing file by suffixing a random ID to the generated filename.
This also switches from using `touch()` to using `fopen( $file, 'x')` to ensure that we're the process creating the file.

Fixes #34562


git-svn-id: https://develop.svn.wordpress.org/trunk@35644 602fd350-edb4-49c9-b593-d223f7449a82
2015-11-16 05:32:32 +00:00
Dion Hulse
28ab6b9578 Media: Allow media_sideload_image() to work when the upload directory is a PHP Stream. Using copy() instead of rename() allows the function to work across different stream sources.
Props mattheu.
Fixes #29257


git-svn-id: https://develop.svn.wordpress.org/trunk@35579 602fd350-edb4-49c9-b593-d223f7449a82
2015-11-09 00:44:01 +00:00
Scott Taylor
6f6c0ebb52 Plugins/Updates: in request_filesystem_credentials(), alter the heading HTML tag based on the current screen for improved semantics.
Props afercia.
Fixes #34267.


git-svn-id: https://develop.svn.wordpress.org/trunk@35315 602fd350-edb4-49c9-b593-d223f7449a82
2015-10-21 03:50:19 +00:00
Drew Jaynes
ea8e9f89cd Docs: Standardize the file header summary for wp-admin/includes/file.php.
Also adds an `@since` version and corrects the `@subpackage` value.

See #33701.


git-svn-id: https://develop.svn.wordpress.org/trunk@35221 602fd350-edb4-49c9-b593-d223f7449a82
2015-10-16 16:55:24 +00:00
Boone Gorges
578134d4ff Use wp_installing() instead of WP_INSTALLING constant.
The `WP_INSTALLING` constant is a flag that WordPress sets in a number of
places, telling the system that options should be fetched directly from the
database instead of from the cache, that WP should not ping wordpress.org for
updates, that the normal "not installed" checks should be bypassed, and so on.

A constant is generally necessary for this purpose, because the flag is
typically set before the WP bootstrap, meaning that WP functions are not yet
available.  However, it is possible - notably, during `wpmu_create_blog()` -
for the "installing" flag to be set after WP has already loaded. In these
cases, `WP_INSTALLING` would be set for the remainder of the process, since
there's no way to change a constant once it's defined. This, in turn, polluted
later function calls that ought to have been outside the scope of site
creation, particularly the non-caching of option data. The problem was
particularly evident in the case of the automated tests, where `WP_INSTALLING`
was set the first time a site was created, and remained set for the rest of the
suite.

The new `wp_installing()` function allows developers to fetch the current
installation status (when called without any arguments) or to set the
installation status (when called with a boolean `true` or `false`). Use of
the `WP_INSTALLING` constant is still supported; `wp_installing()` will default
to `true` if the constant is defined during the bootstrap.

Props boonebgorges, jeremyfelt.
See #31130.

git-svn-id: https://develop.svn.wordpress.org/trunk@34828 602fd350-edb4-49c9-b593-d223f7449a82
2015-10-05 15:05:26 +00:00
Scott Taylor
b59df508cf Theme Editor: ensure that files named index.php in theme subfolders are not labeled as "Main Index Template"
Props MikeHansenMe, wonderboymusic, bravokeyl, Shelob9.
Fixes #27201.


git-svn-id: https://develop.svn.wordpress.org/trunk@34658 602fd350-edb4-49c9-b593-d223f7449a82
2015-09-28 03:10:08 +00:00
John Blackbourn
1bb2876fe6 callback is not a valid type in PHP, PSR-5, or phpDocumentor. callable should be used instead.
Fixes #34032


git-svn-id: https://develop.svn.wordpress.org/trunk@34566 602fd350-edb4-49c9-b593-d223f7449a82
2015-09-25 23:57:46 +00:00
Scott Taylor
ed7d34cb13 Pass false as the 2nd argument to class_exists() to disable autoloading and to not cause problems for those who define __autoload().
Fixes #20523.


git-svn-id: https://develop.svn.wordpress.org/trunk@34348 602fd350-edb4-49c9-b593-d223f7449a82
2015-09-20 03:51:55 +00:00
Aaron Jorbin
308179c232 Remove support for my-hacks.php
For the last 10 years, my-hacks has been deprecated and has been throwing a deprecation notice. For the last six years, you haven't been able to enable my-hacks.php in the admin UI. That should be enough time to give developers notice. Plugins and themes seem like they might have staying power.

Fixes #33741
Props bobbingwide



git-svn-id: https://develop.svn.wordpress.org/trunk@34291 602fd350-edb4-49c9-b593-d223f7449a82
2015-09-18 17:05:28 +00:00
Dominik Schilling (ocean90)
7f562dd69f Theme Editor: Change file descriptions of header.php and footer.php.
`header.php` is now "Theme Header" and `footer.php` is "Theme Footer". This prevents a clash with other "Header" strings in the context of "Custom Header".

Props ramiy.
Fixes #32975.

git-svn-id: https://develop.svn.wordpress.org/trunk@34290 602fd350-edb4-49c9-b593-d223f7449a82
2015-09-18 16:02:24 +00:00
Drew Jaynes
7682e433fc Docs: Put "it's" in its place (again).
Props kitchin.
Fixes #33894.


git-svn-id: https://develop.svn.wordpress.org/trunk@34234 602fd350-edb4-49c9-b593-d223f7449a82
2015-09-16 12:45:51 +00:00
Sergey Biryukov
36ed764d60 Fix closing div in wp_print_request_filesystem_credentials_modal().
Props trepmal.
Fixes #33737.

git-svn-id: https://develop.svn.wordpress.org/trunk@33908 602fd350-edb4-49c9-b593-d223f7449a82
2015-09-05 15:16:15 +00:00
Scott Taylor
f162be6046 For doc block types, favor bool over the few remaining booleans
See #32444.


git-svn-id: https://develop.svn.wordpress.org/trunk@32964 602fd350-edb4-49c9-b593-d223f7449a82
2015-06-27 01:02:12 +00:00
Scott Taylor
23ce2efd12 Add @global annotations for wp-admin/*.
See #32444.


git-svn-id: https://develop.svn.wordpress.org/trunk@32642 602fd350-edb4-49c9-b593-d223f7449a82
2015-05-28 21:40:27 +00:00
Drew Jaynes
511ce10e53 Clarify accepted types for the $args and $context parameters in WP_Filesystem().
See #32246.


git-svn-id: https://develop.svn.wordpress.org/trunk@32338 602fd350-edb4-49c9-b593-d223f7449a82
2015-05-04 01:03:08 +00:00
Dion Hulse
342989657f When creating a temporary file treat the / directory properly, to prevent it ending up in an endless self-calling loop.
Props hnle, taka2. Fixes #32135. See #31811


git-svn-id: https://develop.svn.wordpress.org/trunk@32322 602fd350-edb4-49c9-b593-d223f7449a82
2015-04-29 03:16:06 +00:00
Dominik Schilling (ocean90)
2abf4c39ef Don't focus input fields outside of the request filesystem credentials form.
props valendesigns.
fixes #32055.

git-svn-id: https://develop.svn.wordpress.org/trunk@32266 602fd350-edb4-49c9-b593-d223f7449a82
2015-04-22 16:23:57 +00:00
Aaron Jorbin
852937d006 Update placeholder for FTP credentials
Two changes:
 * Remove superfluous __ function call
 * Update domain used

Fixes #31922
Props Tmeister



git-svn-id: https://develop.svn.wordpress.org/trunk@32077 602fd350-edb4-49c9-b593-d223f7449a82
2015-04-08 16:49:22 +00:00
Drew Jaynes
8d8ea0c529 Clarify the DocBlock description for wp_print_request_filesystem_credentials_modal().
See [31811]. See #31888.


git-svn-id: https://develop.svn.wordpress.org/trunk@32016 602fd350-edb4-49c9-b593-d223f7449a82
2015-04-04 21:12:10 +00:00
Aaron Jorbin
9932d7973d Refine UI for FTP modal and shiny updates
Numerous changes to make the FTP modal experience a good one.  These include:
 * Update HTML used by both the form here and the form on the standalone screen
 * Allow users to cancel FTP install
 * Focus locking in the modal
 * Focus on modal form on load
 * ARIA Attributes
 * Style Enhancements
 * Add low screen height (such as phone and some tablets) friendly experience for entering credentials

Props ericlewis, afercia 
Fixes #31608



git-svn-id: https://develop.svn.wordpress.org/trunk@31949 602fd350-edb4-49c9-b593-d223f7449a82
2015-04-01 02:47:55 +00:00
Dion Hulse
842d6a9b39 Add some logic into wp_tempnam to prevent it creating 'falsey' directory names that might get used elsewhere within WordPress.
Although this logic looks a little strange at this low level, it's the best location within the Upgrades code for it to happen.
Fixes #31811


git-svn-id: https://develop.svn.wordpress.org/trunk@31936 602fd350-edb4-49c9-b593-d223f7449a82
2015-03-31 02:10:06 +00:00
Drew Jaynes
bd2d4c8d14 Clean up DocBlock information and syntax for get_filesystem_method().
Props ericlewis, HarishChaudhari, valendesigns.
Fixes #31267.


git-svn-id: https://develop.svn.wordpress.org/trunk@31884 602fd350-edb4-49c9-b593-d223f7449a82
2015-03-25 16:31:15 +00:00
Aaron Jorbin
08ac58e160 Request FTP and SSH credentials when needed during shiny updates
This is a restoration of [31749] which was reverted in [31755].

It includes a number of enhancements from the original version.  Namely:
 * Not doing a credential check in src/wp-includes/script-loader.php
 * Add new function `wp_print_request_filesystem_credentials_modal`
 * update the version number in the list table when a plugin is updated

UI still needs further work, but this basic version should enable more testing

Props ericlewis, jorbin
See #31528



git-svn-id: https://develop.svn.wordpress.org/trunk@31811 602fd350-edb4-49c9-b593-d223f7449a82
2015-03-18 03:17:59 +00:00
Scott Taylor
1d3b42d226 Fix some erroneous @param annotations.
See #30799.


git-svn-id: https://develop.svn.wordpress.org/trunk@31219 602fd350-edb4-49c9-b593-d223f7449a82
2015-01-16 22:43:13 +00:00
Scott Taylor
5743898e1e @param cleanup:
* `get_metadata()` will return literally anything, needs to be `mixed`
* `wp()` and `WP_Query::__construct()` no longer just take a query string
* Clarify a few others

See #30799.


git-svn-id: https://develop.svn.wordpress.org/trunk@31212 602fd350-edb4-49c9-b593-d223f7449a82
2015-01-16 19:02:26 +00:00
Scott Taylor
6fd11624d1 The keyword elseif should be used instead of else if so that all control keywords look like single words.
This was a mess, is now standardized across the codebase, except for a few 3rd-party libs. 

See #30799.


git-svn-id: https://develop.svn.wordpress.org/trunk@31090 602fd350-edb4-49c9-b593-d223f7449a82
2015-01-08 07:04:40 +00:00
Scott Taylor
469164785f Pinking Shears.
See #30799.


git-svn-id: https://develop.svn.wordpress.org/trunk@31077 602fd350-edb4-49c9-b593-d223f7449a82
2015-01-08 05:02:05 +00:00
Dion Hulse
28e22a4ec4 Background Updates: Pass back whether Group Writable support is being leveraged for an update to the WordPress.org API.
See #30245


git-svn-id: https://develop.svn.wordpress.org/trunk@30860 602fd350-edb4-49c9-b593-d223f7449a82
2014-12-15 14:07:35 +00:00
Drew Jaynes (DrewAPicture)
7187da0b32 Convert various uses of (optional) in core parameter descriptions to use the style prescribed in the inline documentation standards for PHP.
The style for marking parameters optional in inline PHP docs is: `@param type $var Optional. Description. Accepts. Default.`, where Accepts can be omitted on a case-by-case basis.

Props coffee2code.
Fixes #30591.


git-svn-id: https://develop.svn.wordpress.org/trunk@30753 602fd350-edb4-49c9-b593-d223f7449a82
2014-12-06 21:23:52 +00:00
Drew Jaynes (DrewAPicture)
f45fd382b3 Docs Formatting: Backtick-escape inline code for all dynamic hook docs in wp-admin/includes/*.
Also adds a few inline `@see` cross-references as they apply.

Affects DocBlocks for the following hooks:
* `views_{$this->screen->id}`
* `bulk_actions-{$this->screen->id}`
* `manage_{$this->screen->id}_sortable_columns`
* `theme_action_links_$stylesheet`
* `after_theme_row_$stylesheet`
* `install_plugins_table_api_args_$tab`
* `$prefix . plugin_action_links`
* `after_plugin_row_$plugin_file`
* `manage_taxonomies_for_{$post_type}_columns`
* `manage_{$post_type}_posts_columns`
* `manage_{$post->post_type}_posts_custom_column`
* `{$taxonomy}_row_actions`
* `manage_{$this->screen->taxonomy}_custom_column`
* `install_themes_table_api_args_' . $tab`
* `auto_update_ . $type`
* `{$action}_prefilter`
* `admin_head_{$content_func}`
* `nav_menu_items_{$post_type_name}`
* `activate_ . $plugin`
* `deactivate_ . $plugin`
* `edit_{$post_type}_per_page`
* `postbox_classes_{$page}_{$id}`
* `_wp_post_revision_field_$field`
* `manage_{$screen->id}_columns`
* `in_plugin_update_message-{$file}`
* `in_theme_update_message-{$theme_key}`

See #30552.


git-svn-id: https://develop.svn.wordpress.org/trunk@30648 602fd350-edb4-49c9-b593-d223f7449a82
2014-11-30 11:27:19 +00:00
Drew Jaynes (DrewAPicture)
ad50389634 Ensure inline code is markdown-escaped as such, HTML tags are removed from summaries, and that code snippets in descriptions are properly indented.
Affects DocBlocks for the following core elements:
* Remove HTML tag from parameter description in `comment_form()`
* Remove HTML tag from a summary for the `comment_form_top` hook
* Markdown-indent a code snippet in the description for `get_linkobjectsbyname()`
* Markdown-indent a code snippet and format an unordered list in the description for `get_linkobjects()`
* Backtick-escape some inline code in the description for `clean_pre()`
* Remove HTML tag from the summary for the `rss_tag_pre` hook
* Various formatting fixes in the descriptions for `get_filesystem_method()` and `request_filesystem_credentials()`

Props rarst for the initial patch.
See #30473.


git-svn-id: https://develop.svn.wordpress.org/trunk@30538 602fd350-edb4-49c9-b593-d223f7449a82
2014-11-24 05:18:56 +00:00
Dion Hulse
9d0c957410 Background Updates: Introduce support to take advantage of Group Writable (or World Writable) to Core Background updates.
This is only enabled when new files will not be installed during the update (as indicated by the WordPress.org API), and does not apply to Plugin/Theme/Translation Background Updates.

Additionally, the code to determine if the 'direct' filesystem transport should be used has been tweaked for wider support (where getmyuid() was unavailalbe) which fixes #10424

See #10205, #30245


git-svn-id: https://develop.svn.wordpress.org/trunk@30384 602fd350-edb4-49c9-b593-d223f7449a82
2014-11-19 05:39:52 +00:00
Scott Taylor
6c5e90eaa5 Correct some types in wp-admin/*-location files' doc blocks.
See #30224.


git-svn-id: https://develop.svn.wordpress.org/trunk@30203 602fd350-edb4-49c9-b593-d223f7449a82
2014-11-03 07:08:16 +00:00
Drew Jaynes (DrewAPicture)
3cc10d77a0 Remove redundant and erroneous @uses tag from most core inline documentation.
Per our inline documentation standards, no further use of the `@uses` tag is recommended as used and used-by relationships can be derived through other means. This removes most uses of the tag in core documentation, with remaining tags to be converted to `@global` or `@see` as they apply.

Fixes #30191.


git-svn-id: https://develop.svn.wordpress.org/trunk@30105 602fd350-edb4-49c9-b593-d223f7449a82
2014-10-30 01:04:55 +00:00
Scott Taylor
45a635d8c2 In _wp_handle_upload(), if test_upload is set to false in the array of dangerous overrides that the function allows, the only thing that happens when an upload fails is more potential breakage.
`$test_uploaded_file` lets is know if `$file['tmp_name']` exists, which allows to exit with an error, instead of continuing to attempt to move the file.

`$test_upload` override is now a noop.

Fixes #28208.


git-svn-id: https://develop.svn.wordpress.org/trunk@30076 602fd350-edb4-49c9-b593-d223f7449a82
2014-10-28 21:16:06 +00:00
Andrew Nacin
9c751b268a Don't set ftp_credentials option when installling. see #29635.
git-svn-id: https://develop.svn.wordpress.org/trunk@29749 602fd350-edb4-49c9-b593-d223f7449a82
2014-09-17 17:57:59 +00:00
Dominik Schilling (ocean90)
7770a90d74 Add missing array keys for connection type in request_filesystem_credentials().
see [28456].
fixes #29347.


git-svn-id: https://develop.svn.wordpress.org/trunk@29580 602fd350-edb4-49c9-b593-d223f7449a82
2014-08-24 16:04:01 +00:00
Scott Taylor
1cbe1cec12 In sanitize_file_name(), replace %20 and + with dashes. Remove unnecessary code from _wp_handle_upload().
Adds unit tests.

Props ericmann.
Fixes #16330.


git-svn-id: https://develop.svn.wordpress.org/trunk@29290 602fd350-edb4-49c9-b593-d223f7449a82
2014-07-24 22:08:09 +00:00
Scott Taylor
f59a307e10 Merge wp_handle_upload() and wp_handle_sideload() by making them each wrap a new function: _wp_handle_upload().
Props DrewAPicture for docs.
Fixes #23686.


git-svn-id: https://develop.svn.wordpress.org/trunk@29209 602fd350-edb4-49c9-b593-d223f7449a82
2014-07-17 18:57:26 +00:00
Drew Jaynes (DrewAPicture)
6ddc1e5f6d Fix syntax for single- and multi-line comments in wp-admin-directory files.
See #28931.


git-svn-id: https://develop.svn.wordpress.org/trunk@29206 602fd350-edb4-49c9-b593-d223f7449a82
2014-07-17 09:13:53 +00:00
John Blackbourn
3426416dac Normalise the schemes used in get_home_path() so it returns the correct path for sites using SSL in the admin area but not the front end. Fixes #25767. Props GregLone for the initial patch.
git-svn-id: https://develop.svn.wordpress.org/trunk@28893 602fd350-edb4-49c9-b593-d223f7449a82
2014-06-29 10:28:52 +00:00
Scott Taylor
ccc874514c Eliminate use of extract() in request_filesystem_credentials().
The only property that doesn't need to be set to a variable is `$password`.

See #22400.


git-svn-id: https://develop.svn.wordpress.org/trunk@28456 602fd350-edb4-49c9-b593-d223f7449a82
2014-05-16 18:25:41 +00:00
Scott Taylor
ec17088ff6 Update inline docs for wp_handle_upload|sideload to reflect their non-use of extract().
See #22400.



git-svn-id: https://develop.svn.wordpress.org/trunk@28452 602fd350-edb4-49c9-b593-d223f7449a82
2014-05-16 17:40:44 +00:00
Scott Taylor
8f8b12e6a6 Eliminate use of extract() in wp_handle_sideload().
See #22400.


git-svn-id: https://develop.svn.wordpress.org/trunk@28451 602fd350-edb4-49c9-b593-d223f7449a82
2014-05-16 16:14:56 +00:00
Scott Taylor
176d361626 Eliminate use of extract() in wp_handle_upload().
See #22400.


git-svn-id: https://develop.svn.wordpress.org/trunk@28450 602fd350-edb4-49c9-b593-d223f7449a82
2014-05-16 16:10:00 +00:00
Scott Taylor
650e0580e4 Eliminate one of the uses of extract() in wp_handle_upload().
See #22400.


git-svn-id: https://develop.svn.wordpress.org/trunk@28417 602fd350-edb4-49c9-b593-d223f7449a82
2014-05-15 04:30:32 +00:00
Scott Taylor
219ad73200 Eliminate one of the uses of extract() in wp_handle_sideload().
See #22400.


git-svn-id: https://develop.svn.wordpress.org/trunk@28416 602fd350-edb4-49c9-b593-d223f7449a82
2014-05-15 04:28:24 +00:00
Scott Taylor
e42ec45553 Dead code in wp-admin/includes/file.php:
* In `wp_handle_upload()` and `wp_handle_sideload()`, `$ext` gets conditionally reset... and then is never used.
* In `request_filesystem_credentials()`, `$password` is initialized as an empty string. The variable is never used.

See #27882.



git-svn-id: https://develop.svn.wordpress.org/trunk@28268 602fd350-edb4-49c9-b593-d223f7449a82
2014-05-06 04:21:35 +00:00
Sergey Biryukov
a97e9018c4 Fix typo in verify_file_md5() description. see [25541].
props siobhan.
see #27651.

git-svn-id: https://develop.svn.wordpress.org/trunk@27938 602fd350-edb4-49c9-b593-d223f7449a82
2014-04-04 00:02:12 +00:00
Drew Jaynes (DrewAPicture)
af0f9a5e00 Inline documentation for hooks in wp-admin/includes/file.php.
Fixes #27429.


git-svn-id: https://develop.svn.wordpress.org/trunk@27672 602fd350-edb4-49c9-b593-d223f7449a82
2014-03-24 02:44:17 +00:00
Dion Hulse
526bf7d352 WP_Filesystem: Update request_filesystem_credentials() to handle the correct ssh value of FS_METHOD. Props jnielsendotnet. Fixes #27265
git-svn-id: https://develop.svn.wordpress.org/trunk@27546 602fd350-edb4-49c9-b593-d223f7449a82
2014-03-15 03:08:47 +00:00
Sergey Biryukov
a53fab8750 Avoid an undefined index notice in wp_handle_upload().
props tivnet.
fixes #27225.

git-svn-id: https://develop.svn.wordpress.org/trunk@27319 602fd350-edb4-49c9-b593-d223f7449a82
2014-02-27 21:15:31 +00:00
Andrew Nacin
4cfcdabdd8 Simplify error in validate_file_to_edit().
props MattyRob for initial patch.
fixes #25924.


git-svn-id: https://develop.svn.wordpress.org/trunk@27219 602fd350-edb4-49c9-b593-d223f7449a82
2014-02-21 14:45:06 +00:00
Andrew Ozz
48d24f6bf5 Remove all "valign" attributes from tables in wp-admin, props MikeHansenMe, Marventus. Fixes #22712.
git-svn-id: https://develop.svn.wordpress.org/trunk@27029 602fd350-edb4-49c9-b593-d223f7449a82
2014-01-24 19:05:15 +00:00
Drew Jaynes
bd39e26032 First there were two, and now there are three -- in the @since versions that came before and that shall be. And so it will be, says nacin.
Props JustinSainton, SergeyBiryukov, DrewAPicture.
Fixes #26713.


git-svn-id: https://develop.svn.wordpress.org/trunk@26868 602fd350-edb4-49c9-b593-d223f7449a82
2013-12-24 18:56:05 +00:00
Andrew Nacin
1a7bfffd0b Only enforce disk free space checks when doing background updates.
see #25652.


git-svn-id: https://develop.svn.wordpress.org/trunk@25869 602fd350-edb4-49c9-b593-d223f7449a82
2013-10-22 18:17:13 +00:00
Dion Hulse
3ce626a96b Silence PHP warnings from disk_free_space(). disk_free_space() will produce a warning in error conditions in addition to returning false, this includes a case where the bytes free is greater than PHP_INT_MAX (which is a error condition we don't need to check).
See #25576, #22704


git-svn-id: https://develop.svn.wordpress.org/trunk@25831 602fd350-edb4-49c9-b593-d223f7449a82
2013-10-17 18:39:04 +00:00