[ Index ] |
PHP Cross Reference of BBPress |
[Summary view] [Print] [Text view]
1 <?php 2 3 /** 4 * bbPress Vanilla Converter 5 * 6 * @package bbPress 7 * @subpackage Converters 8 */ 9 10 /** 11 * Implementation of Vanilla 2.0.18.1 Converter 12 * 13 * @since 2.3.0 bbPress (r4717) 14 * 15 * @link Codex Docs https://codex.bbpress.org/import-forums/vanilla 16 */ 17 class Vanilla extends BBP_Converter_Base { 18 19 /** 20 * Main Constructor 21 * 22 */ 23 public function __construct() { 24 parent::__construct(); 25 } 26 27 /** 28 * Sets up the field mappings 29 */ 30 public function setup_globals() { 31 32 // Setup smiley URL & path 33 $this->bbcode_parser_properties = array( 34 'smiley_url' => false, 35 'smiley_dir' => false 36 ); 37 38 /** Forum Section *****************************************************/ 39 40 // Old forum id (Stored in postmeta) 41 $this->field_map[] = array( 42 'from_tablename' => 'Category', 43 'from_fieldname' => 'CategoryID', 44 'from_expression' => 'WHERE Category.CategoryID > 0', 45 'to_type' => 'forum', 46 'to_fieldname' => '_bbp_old_forum_id' 47 ); 48 49 // Forum parent id (If no parent, then 0. Stored in postmeta) 50 $this->field_map[] = array( 51 'from_tablename' => 'Category', 52 'from_fieldname' => 'ParentCategoryID', 53 'to_type' => 'forum', 54 'to_fieldname' => '_bbp_old_forum_parent_id', 55 'callback_method' => 'callback_forum_parent' 56 ); 57 58 // Forum topic count (Stored in postmeta) 59 $this->field_map[] = array( 60 'from_tablename' => 'Category', 61 'from_fieldname' => 'CountDiscussions', 62 'to_type' => 'forum', 63 'to_fieldname' => '_bbp_topic_count' 64 ); 65 66 // Forum reply count (Stored in postmeta) 67 $this->field_map[] = array( 68 'from_tablename' => 'Category', 69 'from_fieldname' => 'CountComments', 70 'to_type' => 'forum', 71 'to_fieldname' => '_bbp_reply_count' 72 ); 73 74 // Forum total topic count (Stored in postmeta) 75 $this->field_map[] = array( 76 'from_tablename' => 'Category', 77 'from_fieldname' => 'CountDiscussions', 78 'to_type' => 'forum', 79 'to_fieldname' => '_bbp_total_topic_count' 80 ); 81 82 // Forum total reply count (Stored in postmeta) 83 $this->field_map[] = array( 84 'from_tablename' => 'Category', 85 'from_fieldname' => 'CountComments', 86 'to_type' => 'forum', 87 'to_fieldname' => '_bbp_total_reply_count' 88 ); 89 90 // Forum title. 91 $this->field_map[] = array( 92 'from_tablename' => 'Category', 93 'from_fieldname' => 'Name', 94 'to_type' => 'forum', 95 'to_fieldname' => 'post_title' 96 ); 97 98 // Forum slug (Clean name to avoid conflicts) 99 $this->field_map[] = array( 100 'from_tablename' => 'Category', 101 'from_fieldname' => 'Name', 102 'to_type' => 'forum', 103 'to_fieldname' => 'post_name', 104 'callback_method' => 'callback_slug' 105 ); 106 107 // Forum description. 108 $this->field_map[] = array( 109 'from_tablename' => 'Category', 110 'from_fieldname' => 'Description', 111 'to_type' => 'forum', 112 'to_fieldname' => 'post_content', 113 'callback_method' => 'callback_null' 114 ); 115 116 // Forum display order (Starts from 1) 117 $this->field_map[] = array( 118 'from_tablename' => 'Category', 119 'from_fieldname' => 'Sort', 120 'to_type' => 'forum', 121 'to_fieldname' => 'menu_order' 122 ); 123 124 // Forum type (Set a default value 'forum', Stored in postmeta) 125 $this->field_map[] = array( 126 'to_type' => 'forum', 127 'to_fieldname' => '_bbp_forum_type', 128 'default' => 'forum' 129 ); 130 131 // Forum status (Set a default value 'open', Stored in postmeta) 132 $this->field_map[] = array( 133 'to_type' => 'forum', 134 'to_fieldname' => '_bbp_status', 135 'default' => 'open' 136 ); 137 138 // Forum dates. 139 $this->field_map[] = array( 140 'from_tablename' => 'Category', 141 'from_fieldname' => 'DateInserted', 142 'to_type' => 'forum', 143 'to_fieldname' => 'post_date', 144 ); 145 $this->field_map[] = array( 146 'from_tablename' => 'Category', 147 'from_fieldname' => 'DateInserted', 148 'to_type' => 'forum', 149 'to_fieldname' => 'post_date_gmt', 150 ); 151 $this->field_map[] = array( 152 'from_tablename' => 'Category', 153 'from_fieldname' => 'DateUpdated', 154 'to_type' => 'forum', 155 'to_fieldname' => 'post_modified', 156 ); 157 $this->field_map[] = array( 158 'from_tablename' => 'Category', 159 'from_fieldname' => 'DateUpdated', 160 'to_type' => 'forum', 161 'to_fieldname' => 'post_modified_gmt', 162 ); 163 164 /** Topic Section *****************************************************/ 165 166 // Old topic id (Stored in postmeta) 167 // Don't import Vanilla 2's deleted topics 168 $this->field_map[] = array( 169 'from_tablename' => 'Discussion', 170 'from_fieldname' => 'DiscussionID', 171 'from_expression' => 'WHERE Format != "Deleted"', 172 'to_type' => 'topic', 173 'to_fieldname' => '_bbp_old_topic_id' 174 ); 175 176 // Topic reply count (Stored in postmeta) 177 $this->field_map[] = array( 178 'from_tablename' => 'Discussion', 179 'from_fieldname' => 'CountComments', 180 'to_type' => 'topic', 181 'to_fieldname' => '_bbp_reply_count', 182 'callback_method' => 'callback_topic_reply_count' 183 ); 184 185 // Topic total reply count (Includes unpublished replies, Stored in postmeta) 186 $this->field_map[] = array( 187 'from_tablename' => 'Discussion', 188 'from_fieldname' => 'CountComments', 189 'to_type' => 'topic', 190 'to_fieldname' => '_bbp_total_reply_count', 191 'callback_method' => 'callback_topic_reply_count' 192 ); 193 194 // Topic parent forum id (If no parent, then 0. Stored in postmeta) 195 $this->field_map[] = array( 196 'from_tablename' => 'Discussion', 197 'from_fieldname' => 'CategoryID', 198 'to_type' => 'topic', 199 'to_fieldname' => '_bbp_forum_id', 200 'callback_method' => 'callback_forumid' 201 ); 202 203 // Topic author. 204 $this->field_map[] = array( 205 'from_tablename' => 'Discussion', 206 'from_fieldname' => 'InsertUserID', 207 'to_type' => 'topic', 208 'to_fieldname' => 'post_author', 209 'callback_method' => 'callback_userid' 210 ); 211 212 // Topic author name (Stored in postmeta as _bbp_anonymous_name) 213 $this->field_map[] = array( 214 'to_type' => 'topic', 215 'to_fieldname' => '_bbp_old_topic_author_name_id', 216 'default' => 'Anonymous' 217 ); 218 219 // Is the topic anonymous (Stored in postmeta) 220 $this->field_map[] = array( 221 'from_tablename' => 'Discussion', 222 'from_fieldname' => 'InsertUserID', 223 'to_type' => 'topic', 224 'to_fieldname' => '_bbp_old_is_topic_anonymous_id', 225 'callback_method' => 'callback_check_anonymous' 226 ); 227 228 // Topic title. 229 $this->field_map[] = array( 230 'from_tablename' => 'Discussion', 231 'from_fieldname' => 'Name', 232 'to_type' => 'topic', 233 'to_fieldname' => 'post_title' 234 ); 235 236 // Topic slug (Clean name to avoid conflicts) 237 $this->field_map[] = array( 238 'from_tablename' => 'Discussion', 239 'from_fieldname' => 'Name', 240 'to_type' => 'topic', 241 'to_fieldname' => 'post_name', 242 'callback_method' => 'callback_slug' 243 ); 244 245 // Topic content. 246 $this->field_map[] = array( 247 'from_tablename' => 'Discussion', 248 'from_fieldname' => 'Body', 249 'to_type' => 'topic', 250 'to_fieldname' => 'post_content', 251 'callback_method' => 'callback_html' 252 ); 253 254 // Topic status (Open or Closed) 255 $this->field_map[] = array( 256 'from_tablename' => 'Discussion', 257 'from_fieldname' => 'closed', 258 'to_type' => 'topic', 259 'to_fieldname' => '_bbp_old_closed_status_id', 260 'callback_method' => 'callback_topic_status' 261 ); 262 263 // Topic author ip (Stored in postmeta) 264 $this->field_map[] = array( 265 'from_tablename' => 'Discussion', 266 'from_fieldname' => 'InsertIPAddress', 267 'to_type' => 'topic', 268 'to_fieldname' => '_bbp_author_ip' 269 ); 270 271 // Topic parent forum id (If no parent, then 0) 272 $this->field_map[] = array( 273 'from_tablename' => 'Discussion', 274 'from_fieldname' => 'CategoryID', 275 'to_type' => 'topic', 276 'to_fieldname' => 'post_parent', 277 'callback_method' => 'callback_forumid' 278 ); 279 280 // Sticky status (Stored in postmeta) 281 $this->field_map[] = array( 282 'from_tablename' => 'Discussion', 283 'from_fieldname' => 'Announce', 284 'to_type' => 'topic', 285 'to_fieldname' => '_bbp_old_sticky_status_id', 286 'callback_method' => 'callback_sticky_status' 287 ); 288 289 // Topic dates. 290 $this->field_map[] = array( 291 'from_tablename' => 'Discussion', 292 'from_fieldname' => 'DateInserted', 293 'to_type' => 'topic', 294 'to_fieldname' => 'post_date' 295 ); 296 $this->field_map[] = array( 297 'from_tablename' => 'Discussion', 298 'from_fieldname' => 'DateInserted', 299 'to_type' => 'topic', 300 'to_fieldname' => 'post_date_gmt' 301 ); 302 $this->field_map[] = array( 303 'from_tablename' => 'Discussion', 304 'from_fieldname' => 'DateUpdated', 305 'to_type' => 'topic', 306 'to_fieldname' => 'post_modified' 307 ); 308 $this->field_map[] = array( 309 'from_tablename' => 'Discussion', 310 'from_fieldname' => 'DateUpdated', 311 'to_type' => 'topic', 312 'to_fieldname' => 'post_modified_gmt' 313 ); 314 $this->field_map[] = array( 315 'from_tablename' => 'Discussion', 316 'from_fieldname' => 'DateLastComment', 317 'to_type' => 'topic', 318 'to_fieldname' => '_bbp_last_active_time' 319 ); 320 321 /** Tags Section ******************************************************/ 322 323 // Topic id. 324 $this->field_map[] = array( 325 'from_tablename' => 'TagDiscussion', 326 'from_fieldname' => 'DiscussionID', 327 'to_type' => 'tags', 328 'to_fieldname' => 'objectid', 329 'callback_method' => 'callback_topicid' 330 ); 331 332 // Taxonomy ID. 333 $this->field_map[] = array( 334 'from_tablename' => 'TagDiscussion', 335 'from_fieldname' => 'TagID', 336 'to_type' => 'tags', 337 'to_fieldname' => 'taxonomy' 338 ); 339 340 // Term text. 341 $this->field_map[] = array( 342 'from_tablename' => 'Tag', 343 'from_fieldname' => 'Name', 344 'join_tablename' => 'TagDiscussion', 345 'join_type' => 'INNER', 346 'join_expression' => 'USING (tagid)', 347 'to_type' => 'tags', 348 'to_fieldname' => 'name' 349 ); 350 351 /** Reply Section *****************************************************/ 352 353 // Old reply id (Stored in postmeta) 354 // Don't import Vanilla 2's deleted replies 355 $this->field_map[] = array( 356 'from_tablename' => 'Comment', 357 'from_fieldname' => 'CommentID', 358 'from_expression' => 'WHERE Format != "Deleted"', 359 'to_type' => 'reply', 360 'to_fieldname' => '_bbp_old_reply_id' 361 ); 362 363 // Reply parent topic id (If no parent, then 0. Stored in postmeta) 364 $this->field_map[] = array( 365 'from_tablename' => 'Comment', 366 'from_fieldname' => 'DiscussionID', 367 'to_type' => 'reply', 368 'to_fieldname' => '_bbp_topic_id', 369 'callback_method' => 'callback_topicid' 370 ); 371 372 // Reply parent forum id (If no parent, then 0. Stored in postmeta) 373 $this->field_map[] = array( 374 'from_tablename' => 'Comment', 375 'from_fieldname' => 'DiscussionID', 376 'to_type' => 'reply', 377 'to_fieldname' => '_bbp_forum_id', 378 'callback_method' => 'callback_topicid_to_forumid' 379 ); 380 381 // Reply author ip (Stored in postmeta) 382 $this->field_map[] = array( 383 'from_tablename' => 'Comment', 384 'from_fieldname' => 'InsertIPAddress', 385 'to_type' => 'reply', 386 'to_fieldname' => '_bbp_author_ip' 387 ); 388 389 // Reply author. 390 $this->field_map[] = array( 391 'from_tablename' => 'Comment', 392 'from_fieldname' => 'InsertUserID', 393 'to_type' => 'reply', 394 'to_fieldname' => 'post_author', 395 'callback_method' => 'callback_userid' 396 ); 397 398 // Reply author name (Stored in postmeta as _bbp_anonymous_name) 399 $this->field_map[] = array( 400 'to_type' => 'reply', 401 'to_fieldname' => '_bbp_old_reply_author_name_id', 402 'default' => 'Anonymous' 403 ); 404 405 // Is the reply anonymous (Stored in postmeta) 406 $this->field_map[] = array( 407 'from_tablename' => 'Comment', 408 'from_fieldname' => 'InsertUserID', 409 'to_type' => 'reply', 410 'to_fieldname' => '_bbp_old_is_reply_anonymous_id', 411 'callback_method' => 'callback_check_anonymous' 412 ); 413 414 // Reply content. 415 $this->field_map[] = array( 416 'from_tablename' => 'Comment', 417 'from_fieldname' => 'Body', 418 'to_type' => 'reply', 419 'to_fieldname' => 'post_content', 420 'callback_method' => 'callback_html' 421 ); 422 423 // Reply parent topic id (If no parent, then 0) 424 $this->field_map[] = array( 425 'from_tablename' => 'Comment', 426 'from_fieldname' => 'DiscussionID', 427 'to_type' => 'reply', 428 'to_fieldname' => 'post_parent', 429 'callback_method' => 'callback_topicid' 430 ); 431 432 // Reply dates. 433 $this->field_map[] = array( 434 'from_tablename' => 'Comment', 435 'from_fieldname' => 'DateInserted', 436 'to_type' => 'reply', 437 'to_fieldname' => 'post_date' 438 ); 439 $this->field_map[] = array( 440 'from_tablename' => 'Comment', 441 'from_fieldname' => 'DateInserted', 442 'to_type' => 'reply', 443 'to_fieldname' => 'post_date_gmt' 444 ); 445 $this->field_map[] = array( 446 'from_tablename' => 'Comment', 447 'from_fieldname' => 'DateUpdated', 448 'to_type' => 'reply', 449 'to_fieldname' => 'post_modified' 450 ); 451 $this->field_map[] = array( 452 'from_tablename' => 'Comment', 453 'from_fieldname' => 'DateUpdated', 454 'to_type' => 'reply', 455 'to_fieldname' => 'post_modified_gmt' 456 ); 457 458 /** User Section ******************************************************/ 459 460 // Store old user id (Stored in usermeta) 461 // Don't import user Vanilla's deleted users 462 $this->field_map[] = array( 463 'from_tablename' => 'User', 464 'from_fieldname' => 'UserID', 465 'from_expression' => 'WHERE Deleted !=1', 466 'to_type' => 'user', 467 'to_fieldname' => '_bbp_old_user_id' 468 ); 469 470 // Store old user password (Stored in usermeta) 471 $this->field_map[] = array( 472 'from_tablename' => 'User', 473 'from_fieldname' => 'Password', 474 'to_type' => 'user', 475 'to_fieldname' => '_bbp_password' 476 ); 477 478 // User name. 479 $this->field_map[] = array( 480 'from_tablename' => 'User', 481 'from_fieldname' => 'Name', 482 'to_type' => 'user', 483 'to_fieldname' => 'user_login' 484 ); 485 486 // User nice name. 487 $this->field_map[] = array( 488 'from_tablename' => 'User', 489 'from_fieldname' => 'Name', 490 'to_type' => 'user', 491 'to_fieldname' => 'user_nicename' 492 ); 493 494 // User email. 495 $this->field_map[] = array( 496 'from_tablename' => 'User', 497 'from_fieldname' => 'Email', 498 'to_type' => 'user', 499 'to_fieldname' => 'user_email' 500 ); 501 502 // User registered. 503 $this->field_map[] = array( 504 'from_tablename' => 'User', 505 'from_fieldname' => 'DateInserted', 506 'to_type' => 'user', 507 'to_fieldname' => 'user_registered' 508 ); 509 510 // Display Name 511 $this->field_map[] = array( 512 'from_tablename' => 'User', 513 'from_fieldname' => 'Name', 514 'to_type' => 'user', 515 'to_fieldname' => 'display_name' 516 ); 517 } 518 519 /** 520 * This method allows us to indicates what is or is not converted for each 521 * converter. 522 */ 523 public function info() { 524 return ''; 525 } 526 527 /** 528 * Translate the topic status from Vanilla v2.x numerics to WordPress's strings. 529 * 530 * @param int $status Vanilla v2.x numeric topic status 531 * @return string WordPress safe 532 */ 533 public function callback_topic_status( $status = 0 ) { 534 switch ( $status ) { 535 case 1 : 536 $status = 'closed'; 537 break; 538 539 case 0 : 540 default : 541 $status = 'publish'; 542 break; 543 } 544 return $status; 545 } 546 547 /** 548 * Translate the topic sticky status type from Vanilla v2.x numerics to WordPress's strings. 549 * 550 * @param int $status Vanilla v2.x numeric forum type 551 * @return string WordPress safe 552 */ 553 public function callback_sticky_status( $status = 0 ) { 554 switch ( $status ) { 555 case 1 : 556 $status = 'sticky'; // Vanilla Sticky 'Announce = 1' 557 break; 558 559 case 0 : 560 default : 561 $status = 'normal'; // Vanilla normal topic 'Announce = 0' 562 break; 563 } 564 return $status; 565 } 566 567 /** 568 * Clean Root Parent ID -1 to 0 569 * 570 * @param int $parent Vanilla v2.x Parent ID 571 * @return int 572 */ 573 public function callback_forum_parent( $parent = 0 ) { 574 if ( $parent == -1 ) { 575 return 0; 576 } else { 577 return $parent; 578 } 579 } 580 581 /** 582 * Verify the topic reply count. 583 * 584 * @param int $count Vanilla v2.x reply count 585 * @return string WordPress safe 586 */ 587 public function callback_topic_reply_count( $count = 1 ) { 588 $count = absint( (int) $count - 1 ); 589 return $count; 590 } 591 592 /** 593 * This method is to save the salt and password together. That 594 * way when we authenticate it we can get it out of the database 595 * as one value. Array values are auto sanitized by WordPress. 596 */ 597 public function callback_savepass( $field, $row ) { 598 return false; 599 } 600 601 /** 602 * This method is to take the pass out of the database and compare 603 * to a pass the user has typed in. 604 */ 605 public function authenticate_pass( $password, $serialized_pass ) { 606 return false; 607 } 608 }
title
Description
Body
title
Description
Body
title
Description
Body
title
Body
Generated: Fri Oct 4 01:00:52 2024 | Cross-referenced by PHPXref 0.7.1 |