1: <?php
2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26:
27: define( 'SIDECAR_FILE', __FILE__ );
28: define( 'SIDECAR_DIR', dirname( __FILE__ ) );
29: define( 'SIDECAR_PATH', plugin_dir_path( __FILE__ ) );
30:
31: define( 'SIDECAR_VER', '0.5.0' );
32: define( 'SIDECAR_MIN_PHP', '5.2.4' );
33: define( 'SIDECAR_MIN_WP', '3.2' );
34:
35: 36: 37:
38:
39: require(SIDECAR_DIR . '/classes/class-singleton-base.php');
40: require(SIDECAR_DIR . '/classes/class-plugin-base.php');
41: require(SIDECAR_DIR . '/classes/class-admin-page.php');
42: require(SIDECAR_DIR . '/classes/class-admin-tab.php');
43: require(SIDECAR_DIR . '/classes/class-form.php');
44: require(SIDECAR_DIR . '/classes/class-field.php');
45: require(SIDECAR_DIR . '/classes/class-shortcode.php');
46:
47: 48: 49:
50: final class Sidecar {
51: 52: 53:
54: private static $_installed_dir = false;
55:
56: 57: 58:
59: private static $_this_url = false;
60:
61: 62: 63:
64: private static $_this_domain = false;
65:
66:
67: 68: 69: 70:
71: static function show_error( $message, $args ) {
72: $args = func_get_args();
73: echo '<div class="error"><p><strong>ERROR</strong>[Sidecar]: ' . call_user_func_array( 'sprintf', $args ) . '</p></div>';
74: }
75:
76: 77: 78: 79: 80: 81: 82: 83: 84:
85: static function element_is( $array, $element, $value = true, $exactly = false ) {
86: return isset( $array[$element] ) && ( $exactly ? $value === $array[$element] : $value == $array[$element] );
87: }
88:
89: 90: 91: 92: 93:
94: static function this_domain() {
95: if ( ! self::$_this_domain ) {
96: $parts = explode( '/', site_url() );
97: self::$_this_domain = $parts[2];
98: }
99: return self::$_this_domain;
100: }
101:
102: 103: 104: 105: 106: 107: 108:
109: static function installed_dir() {
110: if ( ! self::$_installed_dir ) {
111: $site_url = site_url();
112: if ( 2 == substr_count( $site_url, '/' ) ) {
113: self::$_installed_dir = '/';
114: } else {
115: $regex = '^https?://' . preg_quote( self::this_domain() ) . '(/.*)/?$';
116: self::$_installed_dir = preg_replace( "#{$regex}#", '$1', site_url() );
117: }
118: }
119: return self::$_installed_dir;
120: }
121:
122: 123: 124: 125: 126:
127: static function this_url() {
128: if ( ! self::$_this_url ) {
129: $installed_dir = self::installed_dir();
130: $requested_path = substr( $_SERVER['REQUEST_URI'], strlen( $installed_dir ) );
131: self::$_this_url = site_url( $requested_path );
132: }
133: return self::$_this_url;
134: }
135: }
136:
137: