Commit Graph

15 Commits

Author SHA1 Message Date
Jeremy Felt
13dd966554 Multisite: Implement the get_by_path method in WP_Network.
Move the internals of `get_network_by_path()` to `WP_Network()` and allow network objects to be retrieved by passing a requested domain and path.

Props johnjamesjacoby, jeremyfelt, drewapicture, wonderboymusic.
See #31985.


git-svn-id: https://develop.svn.wordpress.org/trunk@34099 602fd350-edb4-49c9-b593-d223f7449a82
2015-09-13 23:39:20 +00:00
Jeremy Felt
591a9aa73c Multisite: Introduce the WP_Network class.
A `WP_Network` object initially matches a row from `wp_site` and is populated with additional properties used by WordPress core. The first iteration is used to retrieve an existing network based on data passed to the class.

* A network can be retrieved by its ID through `WP_Network::get_instance()`, following in the steps of `WP_Post` and `WP_Comment`.
* A network object can be created or completed by passing initial properties in as a standard object to `new WP_Network()`.

Using these methods, we are now able to populate the global `$current_site` during load via this class.

Props johnjamesjacoby, jeremyfelt, drewapicture, wonderboymusic.
See #31985.


git-svn-id: https://develop.svn.wordpress.org/trunk@34097 602fd350-edb4-49c9-b593-d223f7449a82
2015-09-13 23:30:57 +00:00
Jeremy Felt
837b6c3e3e Multisite: Add action to handle network not found
`ms_network_not_found` fires when the global `$current_site` has not been filled and `ms_not_installed()` is about to fire. It cannot be used to populate `$current_site`, but can be used to capture the request and redirect or present a custom error.

Props rmccue.
Fixes #31702.


git-svn-id: https://develop.svn.wordpress.org/trunk@33990 602fd350-edb4-49c9-b593-d223f7449a82
2015-09-10 05:05:14 +00:00
Jeremy Felt
d0706ac9ca Multisite: Remove $domain and $path globals in ms_not_installed()
Further reduces the reliance on these unnecessary globals.

Fixes #27264.


git-svn-id: https://develop.svn.wordpress.org/trunk@33989 602fd350-edb4-49c9-b593-d223f7449a82
2015-09-10 03:52:21 +00:00
Sergey Biryukov
416e5bcb96 Move ms-load.php and ms-default-constants.php inclusion back to ms-settings.php to avoid breaking WP-CLI.
Use require_once() to allow for ms-settings.php to be included multiple times while testing.

props jeremyfelt.
see #27884.

git-svn-id: https://develop.svn.wordpress.org/trunk@28934 602fd350-edb4-49c9-b593-d223f7449a82
2014-06-30 23:49:34 +00:00
Andrew Nacin
9e24832a0e Add initial unit tests for multisite's bootstrap.
props jeremyfelt.
fixes #27884.


git-svn-id: https://develop.svn.wordpress.org/trunk@28910 602fd350-edb4-49c9-b593-d223f7449a82
2014-06-29 22:50:44 +00:00
Andrew Nacin
7839dd671c Multisite: Fix case sensitivity regressions in 3.9.
props jeremyfelt.
fixes #27866.


git-svn-id: https://develop.svn.wordpress.org/trunk@28276 602fd350-edb4-49c9-b593-d223f7449a82
2014-05-06 05:23:56 +00:00
Andrew Nacin
51847e0c73 Multisite: Lowercase REQUEST_URI when matching paths.
props markjaquith, jeremyfelt.
fixes #26403.


git-svn-id: https://develop.svn.wordpress.org/trunk@27724 602fd350-edb4-49c9-b593-d223f7449a82
2014-03-25 21:04:23 +00:00
Andrew Nacin
06a02bc455 Use wp_cache_add() instead of wp_cache_set() when we don't want an unconditional set.
props jeremyfelt.
see #27003.


git-svn-id: https://develop.svn.wordpress.org/trunk@27665 602fd350-edb4-49c9-b593-d223f7449a82
2014-03-24 01:02:06 +00:00
Andrew Nacin
9c520a5412 Multisite load: Cache the main site lookup query.
props jeremyfelt.
see #27003.


git-svn-id: https://develop.svn.wordpress.org/trunk@27664 602fd350-edb4-49c9-b593-d223f7449a82
2014-03-24 01:00:17 +00:00
Andrew Nacin
903c86d927 Introduce a ms_site_not_found filter to replace NOBLOGREDIRECT.
Move some processing down below the point where we bail if there's no site. Add more documentation.

props jeremyfelt.
fixes #21143, see #27003.


git-svn-id: https://develop.svn.wordpress.org/trunk@27663 602fd350-edb4-49c9-b593-d223f7449a82
2014-03-24 00:13:48 +00:00
Andrew Nacin
99e617f006 Multisite load: Properly call wp_cache_set().
props gradyetc.
see #27003.


git-svn-id: https://develop.svn.wordpress.org/trunk@27406 602fd350-edb4-49c9-b593-d223f7449a82
2014-03-05 06:26:30 +00:00
Andrew Nacin
6869d203d0 Introduce get_site_by_path() and further rewrite the site detection process for multisite.
This is the first big step to supporting arbitrary domains and paths. In this new approach, sites are detected first where possible, then the network is inferred. Allows filtering for arbitrary path segments, smooths out some weirdness, and removes various restrictions. A sunrise plugin could do much of its work by adding filters, if those are even needed.

see #27003.


git-svn-id: https://develop.svn.wordpress.org/trunk@27359 602fd350-edb4-49c9-b593-d223f7449a82
2014-03-02 22:24:50 +00:00
Andrew Nacin
31d3af406c Multisite: Add get_network_by_path() and wp_get_network() to begin cleanup of multisite load.
Tries to get network detection under control by simplifying wpmu_current_site(). It now also pops off each subdomain to find a more general match. Adds unit tests for get_network_by_path() and a new network factory for unit tests.

Much of this is likely to change in 3.9 as more of ms-load.php and ms-settings.php gets hacked to bits.

props jeremyfelt.
see #27003.


git-svn-id: https://develop.svn.wordpress.org/trunk@27178 602fd350-edb4-49c9-b593-d223f7449a82
2014-02-13 23:06:12 +00:00
Andrew Nacin
b43712e0f7 New develop.svn.wordpress.org repository based on the old core.svn repository.
* All WordPress files move to a src/ directory.
 * New task runner (Grunt), configured to copy a built WordPress to build/.
 * svn:ignore and .gitignore for Gruntfile.js, wp-config.php, and node.js.
 * Remove Akismet external from develop.svn. Still exists in core.svn.
 * Drop minified files from src/. The build process will now generate these.

props koop.
see #24976.

and see http://wp.me/p2AvED-1AI.



git-svn-id: https://develop.svn.wordpress.org/trunk@25001 602fd350-edb4-49c9-b593-d223f7449a82
2013-08-07 05:25:25 +00:00