-
Notifications
You must be signed in to change notification settings - Fork 2
/
cmb2-group-map.php
172 lines (153 loc) · 4.69 KB
/
cmb2-group-map.php
1
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
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
<?php
/**
* Plugin Name: CMB2 Group Map
* Plugin URI: https://github.com/zao-web/cmb2-group-map
* Description: CMB2 addon which allows you to use CMB2 group fields to manage custom post type entries.
* Author: Zao
* Author URI: http://zao.is
* Version: 0.1.0
* License: GPLv2
*/
/**
* CMB2_Group_Map loader
*
* Handles checking for and smartly loading the newest version of this library.
*
* @category WordPressLibrary
* @package CMB2_Group_Map
* @author Zao <[email protected]>
* @copyright 2016 Zao <[email protected]>
* @license GPL-2.0+
* @version 0.1.0
* @link https://github.com/zao-web/cmb2-group-map
* @since 0.1.0
*/
/**
* Copyright (c) 2016 Zao (email : [email protected])
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License, version 2 or, at
* your discretion, any later version, as published by the Free
* Software Foundation.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
*/
/**
* Loader versioning: http://jtsternberg.github.io/wp-lib-loader/
*/
if ( ! class_exists( 'CMB2_Group_Map_010', false ) ) {
/**
* Versioned loader class-name
*
* This ensures each version is loaded/checked.
*
* @category WordPressLibrary
* @package CMB2_Group_Map
* @author Zao <[email protected]>
* @license GPL-2.0+
* @version 0.1.0
* @link https://github.com/zao-web/cmb2-group-map
* @since 0.1.0
*/
class CMB2_Group_Map_010 {
/**
* CMB2_Group_Map version number
* @var string
* @since 0.1.0
*/
const VERSION = '0.1.0';
/**
* Current version hook priority.
* Will decrement with each release
*
* @var int
* @since 0.1.0
*/
const PRIORITY = 9999;
/**
* Starts the version checking process.
* Creates CMB2_GROUP_POST_MAP_LOADED definition for early detection by
* other scripts.
*
* Hooks CMB2_Group_Map inclusion to the cmb2_group_map_load hook
* on a high priority which decrements (increasing the priority) with
* each version release.
*
* @since 0.1.0
*/
public function __construct() {
if ( ! defined( 'CMB2_GROUP_POST_MAP_LOADED' ) ) {
/**
* A constant you can use to check if CMB2_Group_Map is loaded
* for your plugins/themes with CMB2_Group_Map dependency.
*
* Can also be used to determine the priority of the hook
* in use for the currently loaded version.
*/
define( 'CMB2_GROUP_POST_MAP_LOADED', self::PRIORITY );
}
// Use the hook system to ensure only the newest version is loaded.
add_action( 'cmb2_group_map_load', array( $this, 'include_lib' ), self::PRIORITY );
/*
* Hook in to the first hook we have available and
* fire our `cmb2_group_map_load' hook.
*/
add_action( 'muplugins_loaded', array( __CLASS__, 'fire_hook' ), 9 );
add_action( 'plugins_loaded', array( __CLASS__, 'fire_hook' ), 9 );
add_action( 'after_setup_theme', array( __CLASS__, 'fire_hook' ), 9 );
}
/**
* Fires the cmb2_group_map_load action hook.
*
* @since 0.1.0
*/
public static function fire_hook() {
if ( ! did_action( 'cmb2_group_map_load' ) ) {
// Then fire our hook.
do_action( 'cmb2_group_map_load' );
}
}
/**
* A final check if CMB2_Group_Map exists before kicking off
* our CMB2_Group_Map loading.
*
* CMB2_GROUP_POST_MAP_VERSION and CMB2_GROUP_POST_MAP_DIR constants are
* set at this point.
*
* @since 0.1.0
*/
public function include_lib() {
if ( class_exists( 'CMB2_Group_Map', false ) ) {
return;
}
if ( ! defined( 'CMB2_GROUP_POST_MAP_VERSION' ) ) {
/**
* Defines the currently loaded version of CMB2_Group_Map.
*/
define( 'CMB2_GROUP_POST_MAP_VERSION', self::VERSION );
}
if ( ! defined( 'CMB2_GROUP_POST_MAP_DIR' ) ) {
/**
* Defines the directory of the currently loaded version of CMB2_Group_Map.
*/
define( 'CMB2_GROUP_POST_MAP_DIR', dirname( __FILE__ ) . '/' );
}
// Include and initiate CMB2_Group_Map.
require_once CMB2_GROUP_POST_MAP_DIR . 'lib/init.php';
$file = CMB2_GROUP_POST_MAP_DIR . 'vendor/webdevstudios/cmb2-post-search-field/cmb2_post_search_field.php';
// If using composer, the post_search_field lib may be included elsewhere.
if ( file_exists( $file ) ) {
require_once $file;
}
}
}
// Kick it off.
new CMB2_Group_Map_010;
}