| 1 | <?php |
|---|
| 2 | class RCCWP_Application |
|---|
| 3 | { |
|---|
| 4 | function GetCustomWritePanels($writePanelId = null) |
|---|
| 5 | { |
|---|
| 6 | global $wpdb; |
|---|
| 7 | |
|---|
| 8 | $sql = "SELECT id, name, description, display_order, capability_name, type FROM " . RC_CWP_TABLE_WRITE_PANELS; |
|---|
| 9 | |
|---|
| 10 | if (isset($writePanelId)) |
|---|
| 11 | { |
|---|
| 12 | $sql .= " WHERE id = " . (int)$writePanelId; |
|---|
| 13 | $results = $wpdb->get_row($sql); |
|---|
| 14 | } |
|---|
| 15 | else |
|---|
| 16 | { |
|---|
| 17 | $sql .= " ORDER BY display_order ASC"; |
|---|
| 18 | $results = $wpdb->get_results($sql); |
|---|
| 19 | if (!isset($results)) |
|---|
| 20 | $results = array(); |
|---|
| 21 | } |
|---|
| 22 | |
|---|
| 23 | return $results; |
|---|
| 24 | } |
|---|
| 25 | |
|---|
| 26 | function GetWpCategories() |
|---|
| 27 | { |
|---|
| 28 | global $wpdb; |
|---|
| 29 | //$sql = "SELECT cat_ID, cat_name FROM $wpdb->categories ORDER BY cat_name"; |
|---|
| 30 | |
|---|
| 31 | if( $wpdb->terms != '' ) |
|---|
| 32 | { |
|---|
| 33 | $sql = "SELECT t.term_id AS cat_ID, t.name AS cat_name FROM $wpdb->terms AS t INNER JOIN $wpdb->term_taxonomy AS tt ON tt.term_id = t.term_id WHERE tt.taxonomy = 'category' ORDER BY t.name"; |
|---|
| 34 | } |
|---|
| 35 | else |
|---|
| 36 | { |
|---|
| 37 | $sql = "SELECT cat_ID, cat_name FROM $wpdb->categories ORDER BY cat_name"; |
|---|
| 38 | } |
|---|
| 39 | |
|---|
| 40 | $results = $wpdb->get_results($sql); |
|---|
| 41 | if (!isset($results)) |
|---|
| 42 | $results = array(); |
|---|
| 43 | return $results; |
|---|
| 44 | } |
|---|
| 45 | |
|---|
| 46 | function GetWpDefaultCategory() |
|---|
| 47 | { |
|---|
| 48 | |
|---|
| 49 | } |
|---|
| 50 | |
|---|
| 51 | function GetWpStandardFields($standardFieldId = null) |
|---|
| 52 | { |
|---|
| 53 | global $wpdb; |
|---|
| 54 | |
|---|
| 55 | if (isset($standardFieldId)) |
|---|
| 56 | { |
|---|
| 57 | $sql = "SELECT id, name, css_id, default_inclusion FROM " . RC_CWP_TABLE_STANDARD_FIELDS . |
|---|
| 58 | " WHERE id = " . (int)$standardFieldId; |
|---|
| 59 | $results = $wpdb->get_row($sql); |
|---|
| 60 | } |
|---|
| 61 | else |
|---|
| 62 | { |
|---|
| 63 | $sql = "SELECT id, name, css_id, default_inclusion FROM " . RC_CWP_TABLE_STANDARD_FIELDS . " ORDER BY name"; |
|---|
| 64 | $results = $wpdb->get_results($sql); |
|---|
| 65 | if (!isset($results)) |
|---|
| 66 | $results = array(); |
|---|
| 67 | } |
|---|
| 68 | return $results; |
|---|
| 69 | } |
|---|
| 70 | |
|---|
| 71 | function GetWpStandardFieldCssIds() |
|---|
| 72 | { |
|---|
| 73 | $results = RCCWP_Application::GetWpStandardFields(); |
|---|
| 74 | $ids = array(); |
|---|
| 75 | foreach ($results as $r) |
|---|
| 76 | { |
|---|
| 77 | $ids[] = $r->css_id; |
|---|
| 78 | } |
|---|
| 79 | return $ids; |
|---|
| 80 | } |
|---|
| 81 | |
|---|
| 82 | function Install() |
|---|
| 83 | { |
|---|
| 84 | global $wpdb; |
|---|
| 85 | |
|---|
| 86 | // Giving full rights to "files" folder. |
|---|
| 87 | chmod("files", 777); |
|---|
| 88 | |
|---|
| 89 | include_once('RCCWP_Options.php'); |
|---|
| 90 | |
|---|
| 91 | if (get_option(RC_CWP_OPTION_KEY) === false) |
|---|
| 92 | RCCWP_Options::Update(0, 0, 0, 0, 0, 0); |
|---|
| 93 | |
|---|
| 94 | // include upgrade-functions for maybe_create_table; |
|---|
| 95 | if (!function_exists('maybe_create_table')) { |
|---|
| 96 | require_once(ABSPATH . '/wp-admin/upgrade-functions.php'); |
|---|
| 97 | } |
|---|
| 98 | |
|---|
| 99 | $sql1 = "CREATE TABLE " . RC_CWP_TABLE_WRITE_PANELS . " ( |
|---|
| 100 | id int(11) NOT NULL auto_increment, |
|---|
| 101 | name varchar(50) NOT NULL, |
|---|
| 102 | description varchar(255), |
|---|
| 103 | display_order tinyint, |
|---|
| 104 | capability_name varchar(50) NOT NULL, |
|---|
| 105 | type varchar(50) NOT NULL, |
|---|
| 106 | PRIMARY KEY (id) )"; |
|---|
| 107 | |
|---|
| 108 | $sql2 = "CREATE TABLE " . RC_CWP_TABLE_CUSTOM_FIELD_TYPES . " ( |
|---|
| 109 | id tinyint(11) NOT NULL auto_increment, |
|---|
| 110 | name varchar(50) NOT NULL, |
|---|
| 111 | description varchar(100), |
|---|
| 112 | has_options enum('true', 'false') NOT NULL, |
|---|
| 113 | has_properties enum('true', 'false') NOT NULL, |
|---|
| 114 | allow_multiple_values enum('true', 'false') NOT NULL, |
|---|
| 115 | PRIMARY KEY (id) )"; |
|---|
| 116 | |
|---|
| 117 | $sql3 = "CREATE TABLE " . RC_CWP_TABLE_PANEL_CUSTOM_FIELD . " ( |
|---|
| 118 | id int(11) NOT NULL auto_increment, |
|---|
| 119 | panel_id int(11) NOT NULL, |
|---|
| 120 | name varchar(50) NOT NULL, |
|---|
| 121 | description varchar(255), |
|---|
| 122 | display_order tinyint, |
|---|
| 123 | display_name enum('true', 'false') NOT NULL, |
|---|
| 124 | display_description enum('true', 'false') NOT NULL, |
|---|
| 125 | type tinyint NOT NULL, |
|---|
| 126 | CSS varchar(100), |
|---|
| 127 | PRIMARY KEY (id) )"; |
|---|
| 128 | |
|---|
| 129 | $sql4 = "CREATE TABLE " . RC_CWP_TABLE_CUSTOM_FIELD_OPTIONS . " ( |
|---|
| 130 | custom_field_id int(11) NOT NULL, |
|---|
| 131 | options text, |
|---|
| 132 | default_option text, |
|---|
| 133 | PRIMARY KEY (custom_field_id) )"; |
|---|
| 134 | |
|---|
| 135 | $sql5 = "CREATE TABLE " . RC_CWP_TABLE_PANEL_CATEGORY . "( |
|---|
| 136 | panel_id int(11) NOT NULL, |
|---|
| 137 | cat_id int(11) NOT NULL, |
|---|
| 138 | PRIMARY KEY (panel_id, cat_id) )"; |
|---|
| 139 | |
|---|
| 140 | $sql6 = "CREATE TABLE " . RC_CWP_TABLE_STANDARD_FIELDS . "( |
|---|
| 141 | id int(11) NOT NULL, |
|---|
| 142 | name varchar(50) NOT NULL, |
|---|
| 143 | css_id varchar(50) NOT NULL, |
|---|
| 144 | default_inclusion enum('true', 'false') NOT NULL, |
|---|
| 145 | PRIMARY KEY (id) )"; |
|---|
| 146 | |
|---|
| 147 | $sql7 = "CREATE TABLE " . RC_CWP_TABLE_PANEL_STANDARD_FIELD . " ( |
|---|
| 148 | panel_id int(11) NOT NULL, |
|---|
| 149 | standard_field_id int(11) NOT NULL, |
|---|
| 150 | PRIMARY KEY (panel_id, standard_field_id) )"; |
|---|
| 151 | |
|---|
| 152 | $sql8 = "CREATE TABLE " . RC_CWP_TABLE_CUSTOM_FIELD_PROPERTIES . " ( |
|---|
| 153 | custom_field_id int(11) NOT NULL, |
|---|
| 154 | properties text, |
|---|
| 155 | PRIMARY KEY (custom_field_id) )"; |
|---|
| 156 | |
|---|
| 157 | $sql9 = "CREATE TABLE " . RC_CWP_TABLE_PANEL_HIDDEN_EXTERNAL_FIELD . " ( |
|---|
| 158 | panel_id int(11) NOT NULL, |
|---|
| 159 | css_id varchar(50) NOT NULL, |
|---|
| 160 | PRIMARY KEY (panel_id, css_id) )"; |
|---|
| 161 | |
|---|
| 162 | // create the table, as needed |
|---|
| 163 | maybe_create_table(RC_CWP_TABLE_WRITE_PANELS, $sql1); |
|---|
| 164 | maybe_create_table(RC_CWP_TABLE_CUSTOM_FIELD_TYPES, $sql2); |
|---|
| 165 | maybe_create_table(RC_CWP_TABLE_PANEL_CUSTOM_FIELD, $sql3); |
|---|
| 166 | maybe_create_table(RC_CWP_TABLE_CUSTOM_FIELD_OPTIONS, $sql4); |
|---|
| 167 | maybe_create_table(RC_CWP_TABLE_PANEL_CATEGORY, $sql5); |
|---|
| 168 | maybe_create_table(RC_CWP_TABLE_STANDARD_FIELDS, $sql6); |
|---|
| 169 | maybe_create_table(RC_CWP_TABLE_PANEL_STANDARD_FIELD, $sql7); |
|---|
| 170 | maybe_create_table(RC_CWP_TABLE_CUSTOM_FIELD_PROPERTIES, $sql8); |
|---|
| 171 | maybe_create_table(RC_CWP_TABLE_PANEL_HIDDEN_EXTERNAL_FIELD, $sql9); |
|---|
| 172 | |
|---|
| 173 | $sql6 = "INSERT IGNORE INTO " . RC_CWP_TABLE_CUSTOM_FIELD_TYPES . " VALUES (1, 'Textbox', NULL, 'false', 'true', 'false')"; |
|---|
| 174 | $wpdb->query($sql6); |
|---|
| 175 | |
|---|
| 176 | $sql6 = "INSERT IGNORE INTO " . RC_CWP_TABLE_CUSTOM_FIELD_TYPES . " VALUES (2, 'Multiline Textbox', NULL, 'false', 'true', 'false')"; |
|---|
| 177 | $wpdb->query($sql6); |
|---|
| 178 | |
|---|
| 179 | $sql6 = "INSERT IGNORE INTO " . RC_CWP_TABLE_CUSTOM_FIELD_TYPES . " VALUES (3, 'Checkbox', NULL, 'false', 'false', 'false')"; |
|---|
| 180 | $wpdb->query($sql6); |
|---|
| 181 | |
|---|
| 182 | $sql6 = "INSERT IGNORE INTO " . RC_CWP_TABLE_CUSTOM_FIELD_TYPES . " VALUES (4, 'Checkbox List', NULL, 'true', 'false', 'true')"; |
|---|
| 183 | $wpdb->query($sql6); |
|---|
| 184 | |
|---|
| 185 | $sql6 = "INSERT IGNORE INTO " . RC_CWP_TABLE_CUSTOM_FIELD_TYPES . " VALUES (5, 'Radiobutton List', NULL, 'true', 'false', 'false')"; |
|---|
| 186 | $wpdb->query($sql6); |
|---|
| 187 | |
|---|
| 188 | $sql6 = "INSERT IGNORE INTO " . RC_CWP_TABLE_CUSTOM_FIELD_TYPES . " VALUES (6, 'Dropdown List', NULL, 'true', 'false', 'false')"; |
|---|
| 189 | $wpdb->query($sql6); |
|---|
| 190 | |
|---|
| 191 | $sql6 = "INSERT IGNORE INTO " . RC_CWP_TABLE_CUSTOM_FIELD_TYPES . " VALUES (7, 'Listbox', NULL, 'true', 'true', 'true')"; |
|---|
| 192 | $wpdb->query($sql6); |
|---|
| 193 | |
|---|
| 194 | $sql6 = "INSERT IGNORE INTO " . RC_CWP_TABLE_CUSTOM_FIELD_TYPES . " VALUES (8, 'File', NULL, 'false', 'false', 'false')"; |
|---|
| 195 | $wpdb->query($sql6); |
|---|
| 196 | |
|---|
| 197 | $sql6 = "INSERT IGNORE INTO " . RC_CWP_TABLE_CUSTOM_FIELD_TYPES . " VALUES (9, 'Image', NULL, 'false', 'true', 'false')"; |
|---|
| 198 | $wpdb->query($sql6); |
|---|
| 199 | |
|---|
| 200 | $sql6 = "INSERT IGNORE INTO " . RC_CWP_TABLE_CUSTOM_FIELD_TYPES . " VALUES (10, 'Date', NULL, 'false', 'true', 'false')"; |
|---|
| 201 | $wpdb->query($sql6); |
|---|
| 202 | |
|---|
| 203 | $sql6 = "INSERT IGNORE INTO " . RC_CWP_TABLE_CUSTOM_FIELD_TYPES . " VALUES (11, 'Audio', NULL, 'false', 'false', 'false')"; |
|---|
| 204 | $wpdb->query($sql6); |
|---|
| 205 | |
|---|
| 206 | $sql9 = "INSERT IGNORE INTO " . RC_CWP_TABLE_STANDARD_FIELDS . " VALUES (1, 'Title', 'titlediv', 'true')"; |
|---|
| 207 | $wpdb->query($sql9); |
|---|
| 208 | |
|---|
| 209 | $sql9 = "INSERT IGNORE INTO " . RC_CWP_TABLE_STANDARD_FIELDS . " VALUES (2, 'Categories', 'categorydiv', 'false')"; |
|---|
| 210 | $wpdb->query($sql9); |
|---|
| 211 | |
|---|
| 212 | $sql9 = "INSERT IGNORE INTO " . RC_CWP_TABLE_STANDARD_FIELDS . " VALUES (3, 'Discussion', 'commentstatusdiv', 'false')"; |
|---|
| 213 | $wpdb->query($sql9); |
|---|
| 214 | |
|---|
| 215 | $sql9 = "INSERT IGNORE INTO " . RC_CWP_TABLE_STANDARD_FIELDS . " VALUES (4, 'Post Password', 'passworddiv', 'false')"; |
|---|
| 216 | $wpdb->query($sql9); |
|---|
| 217 | |
|---|
| 218 | $sql9 = "INSERT IGNORE INTO " . RC_CWP_TABLE_STANDARD_FIELDS . " VALUES (5, 'Post Slug', 'slugdiv', 'false')"; |
|---|
| 219 | $wpdb->query($sql9); |
|---|
| 220 | |
|---|
| 221 | $sql9 = "INSERT IGNORE INTO " . RC_CWP_TABLE_STANDARD_FIELDS . " VALUES (6, 'Post Status', 'poststatusdiv', 'false')"; |
|---|
| 222 | $wpdb->query($sql9); |
|---|
| 223 | |
|---|
| 224 | $sql9 = "INSERT IGNORE INTO " . RC_CWP_TABLE_STANDARD_FIELDS . " VALUES (7, 'Post Timestamp', 'posttimestampdiv', 'false')"; |
|---|
| 225 | $wpdb->query($sql9); |
|---|
| 226 | |
|---|
| 227 | $sql9 = "INSERT IGNORE INTO " . RC_CWP_TABLE_STANDARD_FIELDS . " VALUES (8, 'Upload', 'uploading', 'false')"; |
|---|
| 228 | $wpdb->query($sql9); |
|---|
| 229 | |
|---|
| 230 | $sql9 = "INSERT IGNORE INTO " . RC_CWP_TABLE_STANDARD_FIELDS . " VALUES (9, 'Optional Excerpt', 'postexcerpt', 'false')"; |
|---|
| 231 | $wpdb->query($sql9); |
|---|
| 232 | |
|---|
| 233 | $sql9 = "INSERT IGNORE INTO " . RC_CWP_TABLE_STANDARD_FIELDS . " VALUES (10, 'Trackbacks', 'trackbacksdiv', 'false')"; |
|---|
| 234 | $wpdb->query($sql9); |
|---|
| 235 | |
|---|
| 236 | $sql9 = "INSERT IGNORE INTO " . RC_CWP_TABLE_STANDARD_FIELDS . " VALUES (11, 'Custom Fields', 'postcustom', 'false')"; |
|---|
| 237 | $wpdb->query($sql9); |
|---|
| 238 | |
|---|
| 239 | $sql9 = "INSERT IGNORE INTO " . RC_CWP_TABLE_STANDARD_FIELDS . " VALUES (12, 'Post', 'postdiv', 'false')"; |
|---|
| 240 | $wpdb->query($sql9); |
|---|
| 241 | |
|---|
| 242 | $sql9 = "INSERT IGNORE INTO " . RC_CWP_TABLE_STANDARD_FIELDS . " VALUES (13, 'Post Author', 'authordiv', 'false')"; |
|---|
| 243 | $wpdb->query($sql9); |
|---|
| 244 | |
|---|
| 245 | $options['hide-write-post'] = 0; |
|---|
| 246 | $options['hide-write-page'] = 0; |
|---|
| 247 | $options['prompt-editing-post'] = 0; |
|---|
| 248 | $options['assign-to-role'] = 0; |
|---|
| 249 | $options['use-snipshot'] = 1; |
|---|
| 250 | $options['default-custom-write-panel'] = ""; |
|---|
| 251 | |
|---|
| 252 | $options = serialize($options); |
|---|
| 253 | update_option(RC_CWP_OPTION_KEY, $options); |
|---|
| 254 | } |
|---|
| 255 | |
|---|
| 256 | function Uninstall() |
|---|
| 257 | { |
|---|
| 258 | global $wpdb; |
|---|
| 259 | $sql = "DELETE FROM $wpdb->postmeta WHERE meta_key = '" . RC_CWP_POST_WRITE_PANEL_ID_META_KEY . "'"; |
|---|
| 260 | $wpdb->query($sql); |
|---|
| 261 | |
|---|
| 262 | $sql = "DROP TABLE " . RC_CWP_TABLE_WRITE_PANELS; |
|---|
| 263 | $wpdb->query($sql); |
|---|
| 264 | |
|---|
| 265 | $sql = "DROP TABLE " . RC_CWP_TABLE_CUSTOM_FIELD_TYPES; |
|---|
| 266 | $wpdb->query($sql); |
|---|
| 267 | |
|---|
| 268 | $sql = "DROP TABLE " . RC_CWP_TABLE_PANEL_CUSTOM_FIELD; |
|---|
| 269 | $wpdb->query($sql); |
|---|
| 270 | |
|---|
| 271 | $sql = "DROP TABLE " . RC_CWP_TABLE_CUSTOM_FIELD_OPTIONS; |
|---|
| 272 | $wpdb->query($sql); |
|---|
| 273 | |
|---|
| 274 | $sql = "DROP TABLE " . RC_CWP_TABLE_PANEL_CATEGORY; |
|---|
| 275 | $wpdb->query($sql); |
|---|
| 276 | |
|---|
| 277 | $sql = "DROP TABLE " . RC_CWP_TABLE_STANDARD_FIELDS; |
|---|
| 278 | $wpdb->query($sql); |
|---|
| 279 | |
|---|
| 280 | $sql = "DROP TABLE " . RC_CWP_TABLE_PANEL_STANDARD_FIELD; |
|---|
| 281 | $wpdb->query($sql); |
|---|
| 282 | |
|---|
| 283 | $sql = "DROP TABLE " . RC_CWP_TABLE_CUSTOM_FIELD_PROPERTIES; |
|---|
| 284 | $wpdb->query($sql); |
|---|
| 285 | |
|---|
| 286 | delete_option(RC_CWP_OPTION_KEY); |
|---|
| 287 | } |
|---|
| 288 | |
|---|
| 289 | function InCustomWritePanel() |
|---|
| 290 | { |
|---|
| 291 | return RCCWP_Application::InWritePostPanel() && isset($_REQUEST['custom-write-panel-id']); |
|---|
| 292 | } |
|---|
| 293 | |
|---|
| 294 | function InWritePostPanel() |
|---|
| 295 | { |
|---|
| 296 | return (strstr($_SERVER['REQUEST_URI'], '/wp-admin/post-new.php') || |
|---|
| 297 | strstr($_SERVER['REQUEST_URI'], '/wp-admin/post.php') || |
|---|
| 298 | strstr($_SERVER['REQUEST_URI'], '/wp-admin/page-new.php') || |
|---|
| 299 | strstr($_SERVER['REQUEST_URI'], '/wp-admin/page.php')); |
|---|
| 300 | } |
|---|
| 301 | } |
|---|
| 302 | ?> |
|---|