WordPress 3.8
[autoinstalls/wordpress.git] / wp-includes / ms-default-constants.php
1 <?php
2 /**
3  * Defines constants and global variables that can be overridden, generally in wp-config.php.
4  *
5  * @package WordPress
6  * @subpackage Multisite
7  * @since 3.0.0
8  */
9
10 /**
11  * Defines Multisite upload constants.
12  *
13  * Exists for backward compatibility with legacy file-serving through
14  * wp-includes/ms-files.php (wp-content/blogs.php in MU).
15  *
16  * @since 3.0.0
17  */
18 function ms_upload_constants() {
19         global $wpdb;
20
21         // This filter is attached in ms-default-filters.php but that file is not included during SHORTINIT.
22         add_filter( 'default_site_option_ms_files_rewriting', '__return_true' );
23
24         if ( ! get_site_option( 'ms_files_rewriting' ) )
25                 return;
26
27         // Base uploads dir relative to ABSPATH
28         if ( !defined( 'UPLOADBLOGSDIR' ) )
29                 define( 'UPLOADBLOGSDIR', 'wp-content/blogs.dir' );
30
31         // Note, the main site in a post-MU network uses wp-content/uploads.
32         // This is handled in wp_upload_dir() by ignoring UPLOADS for this case.
33         if ( ! defined( 'UPLOADS' ) ) {
34                 define( 'UPLOADS', UPLOADBLOGSDIR . "/{$wpdb->blogid}/files/" );
35
36                 // Uploads dir relative to ABSPATH
37                 if ( 'wp-content/blogs.dir' == UPLOADBLOGSDIR && ! defined( 'BLOGUPLOADDIR' ) )
38                         define( 'BLOGUPLOADDIR', WP_CONTENT_DIR . "/blogs.dir/{$wpdb->blogid}/files/" );
39         }
40 }
41
42 /**
43  * Defines Multisite cookie constants.
44  *
45  * @since 3.0.0
46  */
47 function ms_cookie_constants(  ) {
48         $current_site = get_current_site();
49
50         /**
51          * @since 1.2.0
52          */
53         if ( !defined( 'COOKIEPATH' ) )
54                 define( 'COOKIEPATH', $current_site->path );
55
56         /**
57          * @since 1.5.0
58          */
59         if ( !defined( 'SITECOOKIEPATH' ) )
60                 define( 'SITECOOKIEPATH', $current_site->path );
61
62         /**
63          * @since 2.6.0
64          */
65         if ( !defined( 'ADMIN_COOKIE_PATH' ) ) {
66                 if ( ! is_subdomain_install() || trim( parse_url( get_option( 'siteurl' ), PHP_URL_PATH ), '/' ) ) {
67                         define( 'ADMIN_COOKIE_PATH', SITECOOKIEPATH );
68                 } else {
69                         define( 'ADMIN_COOKIE_PATH', SITECOOKIEPATH . 'wp-admin' );
70                 }
71         }
72
73         /**
74          * @since 2.0.0
75          */
76         if ( !defined('COOKIE_DOMAIN') && is_subdomain_install() ) {
77                 if ( !empty( $current_site->cookie_domain ) )
78                         define('COOKIE_DOMAIN', '.' . $current_site->cookie_domain);
79                 else
80                         define('COOKIE_DOMAIN', '.' . $current_site->domain);
81         }
82 }
83
84 /**
85  * Defines Multisite file constants.
86  *
87  * Exists for backward compatibility with legacy file-serving through
88  * wp-includes/ms-files.php (wp-content/blogs.php in MU).
89  *
90  * @since 3.0.0
91  */
92 function ms_file_constants() {
93         /**
94          * Optional support for X-Sendfile header
95          * @since 3.0.0
96          */
97         if ( !defined( 'WPMU_SENDFILE' ) )
98                 define( 'WPMU_SENDFILE', false );
99
100         /**
101          * Optional support for X-Accel-Redirect header
102          * @since 3.0.0
103          */
104         if ( !defined( 'WPMU_ACCEL_REDIRECT' ) )
105                 define( 'WPMU_ACCEL_REDIRECT', false );
106 }
107
108 /**
109  * Defines Multisite subdomain constants and handles warnings and notices.
110  *
111  * VHOST is deprecated in favor of SUBDOMAIN_INSTALL, which is a bool.
112  *
113  * On first call, the constants are checked and defined. On second call,
114  * we will have translations loaded and can trigger warnings easily.
115  *
116  * @since 3.0.0
117  */
118 function ms_subdomain_constants() {
119         static $error = null;
120         static $error_warn = false;
121
122         if ( false === $error )
123                 return;
124
125         if ( $error ) {
126                 $vhost_deprecated = __( 'The constant <code>VHOST</code> <strong>is deprecated</strong>. Use the boolean constant <code>SUBDOMAIN_INSTALL</code> in wp-config.php to enable a subdomain configuration. Use is_subdomain_install() to check whether a subdomain configuration is enabled.' );
127                 if ( $error_warn ) {
128                         trigger_error( __( '<strong>Conflicting values for the constants VHOST and SUBDOMAIN_INSTALL.</strong> The value of SUBDOMAIN_INSTALL will be assumed to be your subdomain configuration setting.' ) . ' ' . $vhost_deprecated, E_USER_WARNING );
129                 } else {
130                         _deprecated_argument( 'define()', '3.0', $vhost_deprecated );
131                 }
132                 return;
133         }
134
135         if ( defined( 'SUBDOMAIN_INSTALL' ) && defined( 'VHOST' ) ) {
136                 if ( SUBDOMAIN_INSTALL == ( 'yes' == VHOST ) ) {
137                         $error = true;
138                 } else {
139                         $error = $error_warn = true;
140                 }
141         } elseif ( defined( 'SUBDOMAIN_INSTALL' ) ) {
142                 define( 'VHOST', SUBDOMAIN_INSTALL ? 'yes' : 'no' );
143         } elseif ( defined( 'VHOST' ) ) {
144                 $error = true;
145                 define( 'SUBDOMAIN_INSTALL', 'yes' == VHOST );
146         } else {
147                 define( 'SUBDOMAIN_INSTALL', false );
148                 define( 'VHOST', 'no' );
149         }
150 }
151 add_action( 'init', 'ms_subdomain_constants' );