| @@ 465-592 (lines=128) @@ | ||
| 462 | /** |
|
| 463 | * Class SmallWorldDoSync |
|
| 464 | */ |
|
| 465 | class SmallWorldDoSync |
|
| 466 | { |
|
| 467 | /** |
|
| 468 | * check for orphans (xoops_users <-> smallworld_users) and remove from smallworld |
|
| 469 | * @return void |
|
| 470 | */ |
|
| 471 | public function checkOrphans() |
|
| 472 | { |
|
| 473 | global $xoopsDB; |
|
| 474 | $sql = 'SELECT userid FROM ' . $xoopsDB->prefix('smallworld_user') . ' WHERE userid NOT IN ( SELECT uid FROM ' . $xoopsDB->prefix('users') . ')'; |
|
| 475 | $result = $xoopsDB->queryF($sql); |
|
| 476 | if ($result) { |
|
| 477 | while ($r = $xoopsDB->fetchArray($result)) { |
|
| 478 | $this->deleteAccount($r['userid']); |
|
| 479 | } |
|
| 480 | } |
|
| 481 | } |
|
| 482 | ||
| 483 | /** |
|
| 484 | * deleteAccount function |
|
| 485 | * - Delete user account and associate rows across tables |
|
| 486 | * @param int $userid |
|
| 487 | * @return string |
|
| 488 | */ |
|
| 489 | public function deleteAccount($userid) |
|
| 490 | { |
|
| 491 | global $xoopsDB, $xoopsUser; |
|
| 492 | $user = new XoopsUser($userid); |
|
| 493 | $username = $user->uname(); |
|
| 494 | $sql01 = 'DELETE FROM ' . $xoopsDB->prefix('smallworld_admin') . " WHERE userid = '" . $userid . "'"; |
|
| 495 | $sql02 = 'DELETE FROM ' . $xoopsDB->prefix('smallworld_comments') . " WHERE uid_fk = '" . $userid . "'"; |
|
| 496 | $sql03 = 'DELETE FROM ' . $xoopsDB->prefix('smallworld_followers') . " WHERE me = '" . $userid . "' OR you = '" . $userid . "'"; |
|
| 497 | $sql04 = 'DELETE FROM ' . $xoopsDB->prefix('smallworld_friends') . " WHERE me = '" . $userid . "' OR you = '" . $userid . "'"; |
|
| 498 | $sql05 = 'DELETE FROM ' . $xoopsDB->prefix('smallworld_images') . " WHERE userid = '" . $userid . "'"; |
|
| 499 | $sql06 = 'DELETE FROM ' . $xoopsDB->prefix('smallworld_messages') . " WHERE uid_fk = '" . $userid . "'"; |
|
| 500 | $sql07 = 'DELETE FROM ' . $xoopsDB->prefix('smallworld_user') . " WHERE userid = '" . $userid . "'"; |
|
| 501 | $sql08 = 'DELETE FROM ' . $xoopsDB->prefix('smallworld_vote') . " WHERE user_id = '" . $userid . "'"; |
|
| 502 | $sql09 = 'DELETE FROM ' . $xoopsDB->prefix('smallworld_complaints') . " WHERE owner = '" . $userid . "' OR byuser_id = '" . $userid . "'"; |
|
| 503 | $sql10 = 'DELETE FROM ' . $xoopsDB->prefix('smallworld_settings') . " WHERE userid = '" . $userid . "'"; |
|
| 504 | ||
| 505 | $result01 = $xoopsDB->queryF($sql01); |
|
| 506 | $result02 = $xoopsDB->queryF($sql02); |
|
| 507 | $result03 = $xoopsDB->queryF($sql03); |
|
| 508 | $result04 = $xoopsDB->queryF($sql04); |
|
| 509 | $result05 = $xoopsDB->queryF($sql05); |
|
| 510 | $result06 = $xoopsDB->queryF($sql06); |
|
| 511 | $result07 = $xoopsDB->queryF($sql07); |
|
| 512 | $result08 = $xoopsDB->queryF($sql08); |
|
| 513 | $result08 = $xoopsDB->queryF($sql09); |
|
| 514 | $result08 = $xoopsDB->queryF($sql10); |
|
| 515 | // Remove picture dir |
|
| 516 | $dirname = XOOPS_ROOT_PATH . '/uploads/albums_smallworld' . '/' . $userid . '/'; |
|
| 517 | $this->smallworld_remDir($userid, $dirname, $empty = false); |
|
| 518 | } |
|
| 519 | ||
| 520 | /** |
|
| 521 | * smallworld_remDir function |
|
| 522 | * - Remove user image dir in uploads. |
|
| 523 | * @param int $userid |
|
| 524 | * @param string $directory |
|
| 525 | * @param bool|int $empty |
|
| 526 | * @return true |
|
| 527 | */ |
|
| 528 | public function smallworld_remDir($userid, $directory, $empty = false) |
|
| 529 | { |
|
| 530 | if ('' != $userid) { |
|
| 531 | if ('/' === substr($directory, -1)) { |
|
| 532 | $directory = substr($directory, 0, -1); |
|
| 533 | } |
|
| 534 | ||
| 535 | if (!file_exists($directory) || !is_dir($directory)) { |
|
| 536 | return false; |
|
| 537 | } elseif (!is_readable($directory)) { |
|
| 538 | return false; |
|
| 539 | } else { |
|
| 540 | $directoryHandle = opendir($directory); |
|
| 541 | while ($contents = readdir($directoryHandle)) { |
|
| 542 | if ('.' !== $contents && '..' !== $contents) { |
|
| 543 | $path = $directory . '/' . $contents; |
|
| 544 | if (is_dir($path)) { |
|
| 545 | $this->smallworld_remDir($userid, $path); |
|
| 546 | } else { |
|
| 547 | unlink($path); |
|
| 548 | } |
|
| 549 | } |
|
| 550 | } |
|
| 551 | closedir($directoryHandle); |
|
| 552 | if (false === $empty) { |
|
| 553 | if (!rmdir($directory)) { |
|
| 554 | return false; |
|
| 555 | } |
|
| 556 | } |
|
| 557 | ||
| 558 | return true; |
|
| 559 | } |
|
| 560 | } |
|
| 561 | } |
|
| 562 | ||
| 563 | /** |
|
| 564 | * SmallworldDeleteDirectory function |
|
| 565 | * - Delete images from users on delete |
|
| 566 | * @param int $userid |
|
| 567 | * @return true |
|
| 568 | */ |
|
| 569 | public function SmallworldDeleteDirectory($userid) |
|
| 570 | { |
|
| 571 | $dirname = XOOPS_ROOT_PATH . '/uploads/albums_smallworld' . '/' . $userid . '/'; |
|
| 572 | if (is_dir($dirname)) { |
|
| 573 | $dir_handle = opendir($dirname); |
|
| 574 | } |
|
| 575 | if (!$dir_handle) { |
|
| 576 | return false; |
|
| 577 | } |
|
| 578 | while ($file = readdir($dir_handle)) { |
|
| 579 | if ('.' != $file && '..' != $file) { |
|
| 580 | if (!is_dir($dirname . '/' . $file)) { |
|
| 581 | unlink($dirname . '/' . $file); |
|
| 582 | } else { |
|
| 583 | $this->SmallworldDeleteDirectory($dirname . '/' . $file); |
|
| 584 | } |
|
| 585 | } |
|
| 586 | } |
|
| 587 | closedir($dir_handle); |
|
| 588 | rmdir($dirname); |
|
| 589 | ||
| 590 | return true; |
|
| 591 | } |
|
| 592 | } |
|
| 593 | ||
| @@ 465-592 (lines=128) @@ | ||
| 462 | /** |
|
| 463 | * Class SmallWorldDoSync |
|
| 464 | */ |
|
| 465 | class SmallWorldDoSync |
|
| 466 | { |
|
| 467 | /** |
|
| 468 | * check for orphans (xoops_users <-> smallworld_users) and remove from smallworld |
|
| 469 | * @return void |
|
| 470 | */ |
|
| 471 | public function checkOrphans() |
|
| 472 | { |
|
| 473 | global $xoopsDB; |
|
| 474 | $sql = 'SELECT userid FROM ' . $xoopsDB->prefix('smallworld_user') . ' WHERE userid NOT IN ( SELECT uid FROM ' . $xoopsDB->prefix('users') . ')'; |
|
| 475 | $result = $xoopsDB->queryF($sql); |
|
| 476 | if ($result) { |
|
| 477 | while ($r = $xoopsDB->fetchArray($result)) { |
|
| 478 | $this->deleteAccount($r['userid']); |
|
| 479 | } |
|
| 480 | } |
|
| 481 | } |
|
| 482 | ||
| 483 | /** |
|
| 484 | * deleteAccount function |
|
| 485 | * - Delete user account and associate rows across tables |
|
| 486 | * @param int $userid |
|
| 487 | * @return string |
|
| 488 | */ |
|
| 489 | public function deleteAccount($userid) |
|
| 490 | { |
|
| 491 | global $xoopsDB, $xoopsUser; |
|
| 492 | $user = new \XoopsUser($userid); |
|
| 493 | $username = $user->uname(); |
|
| 494 | $sql01 = 'DELETE FROM ' . $xoopsDB->prefix('smallworld_admin') . " WHERE userid = '" . $userid . "'"; |
|
| 495 | $sql02 = 'DELETE FROM ' . $xoopsDB->prefix('smallworld_comments') . " WHERE uid_fk = '" . $userid . "'"; |
|
| 496 | $sql03 = 'DELETE FROM ' . $xoopsDB->prefix('smallworld_followers') . " WHERE me = '" . $userid . "' OR you = '" . $userid . "'"; |
|
| 497 | $sql04 = 'DELETE FROM ' . $xoopsDB->prefix('smallworld_friends') . " WHERE me = '" . $userid . "' OR you = '" . $userid . "'"; |
|
| 498 | $sql05 = 'DELETE FROM ' . $xoopsDB->prefix('smallworld_images') . " WHERE userid = '" . $userid . "'"; |
|
| 499 | $sql06 = 'DELETE FROM ' . $xoopsDB->prefix('smallworld_messages') . " WHERE uid_fk = '" . $userid . "'"; |
|
| 500 | $sql07 = 'DELETE FROM ' . $xoopsDB->prefix('smallworld_user') . " WHERE userid = '" . $userid . "'"; |
|
| 501 | $sql08 = 'DELETE FROM ' . $xoopsDB->prefix('smallworld_vote') . " WHERE user_id = '" . $userid . "'"; |
|
| 502 | $sql09 = 'DELETE FROM ' . $xoopsDB->prefix('smallworld_complaints') . " WHERE owner = '" . $userid . "' OR byuser_id = '" . $userid . "'"; |
|
| 503 | $sql10 = 'DELETE FROM ' . $xoopsDB->prefix('smallworld_settings') . " WHERE userid = '" . $userid . "'"; |
|
| 504 | ||
| 505 | $result01 = $xoopsDB->queryF($sql01); |
|
| 506 | $result02 = $xoopsDB->queryF($sql02); |
|
| 507 | $result03 = $xoopsDB->queryF($sql03); |
|
| 508 | $result04 = $xoopsDB->queryF($sql04); |
|
| 509 | $result05 = $xoopsDB->queryF($sql05); |
|
| 510 | $result06 = $xoopsDB->queryF($sql06); |
|
| 511 | $result07 = $xoopsDB->queryF($sql07); |
|
| 512 | $result08 = $xoopsDB->queryF($sql08); |
|
| 513 | $result09 = $xoopsDB->queryF($sql09); |
|
| 514 | $result10 = $xoopsDB->queryF($sql10); |
|
| 515 | // Remove picture dir |
|
| 516 | $dirname = XOOPS_ROOT_PATH . '/uploads/albums_smallworld' . '/' . $userid . '/'; |
|
| 517 | $this->smallworld_remDir($userid, $dirname, $empty = false); |
|
| 518 | } |
|
| 519 | ||
| 520 | /** |
|
| 521 | * smallworld_remDir function |
|
| 522 | * - Remove user image dir in uploads. |
|
| 523 | * @param int $userid |
|
| 524 | * @param string|bool $directory |
|
| 525 | * @param bool|int $empty |
|
| 526 | * @return true |
|
| 527 | */ |
|
| 528 | public function smallworld_remDir($userid, $directory, $empty = false) |
|
| 529 | { |
|
| 530 | if ('' != $userid) { |
|
| 531 | if ('/' === substr($directory, -1)) { |
|
| 532 | $directory = substr($directory, 0, -1); |
|
| 533 | } |
|
| 534 | ||
| 535 | if (!file_exists($directory) || !is_dir($directory)) { |
|
| 536 | return false; |
|
| 537 | } elseif (!is_readable($directory)) { |
|
| 538 | return false; |
|
| 539 | } else { |
|
| 540 | $directoryHandle = opendir($directory); |
|
| 541 | while ($contents = readdir($directoryHandle)) { |
|
| 542 | if ('.' !== $contents && '..' !== $contents) { |
|
| 543 | $path = $directory . '/' . $contents; |
|
| 544 | if (is_dir($path)) { |
|
| 545 | $this->smallworld_remDir($userid, $path); |
|
| 546 | } else { |
|
| 547 | unlink($path); |
|
| 548 | } |
|
| 549 | } |
|
| 550 | } |
|
| 551 | closedir($directoryHandle); |
|
| 552 | if (false === $empty) { |
|
| 553 | if (!rmdir($directory)) { |
|
| 554 | return false; |
|
| 555 | } |
|
| 556 | } |
|
| 557 | ||
| 558 | return true; |
|
| 559 | } |
|
| 560 | } |
|
| 561 | } |
|
| 562 | ||
| 563 | /** |
|
| 564 | * SmallworldDeleteDirectory function |
|
| 565 | * - Delete images from users on delete |
|
| 566 | * @param int $userid |
|
| 567 | * @return true |
|
| 568 | */ |
|
| 569 | public function SmallworldDeleteDirectory($userid) |
|
| 570 | { |
|
| 571 | $dirname = XOOPS_ROOT_PATH . '/uploads/albums_smallworld' . '/' . $userid . '/'; |
|
| 572 | if (is_dir($dirname)) { |
|
| 573 | $dir_handle = opendir($dirname); |
|
| 574 | } |
|
| 575 | if (!$dir_handle) { |
|
| 576 | return false; |
|
| 577 | } |
|
| 578 | while ($file = readdir($dir_handle)) { |
|
| 579 | if ('.' != $file && '..' != $file) { |
|
| 580 | if (!is_dir($dirname . '/' . $file)) { |
|
| 581 | unlink($dirname . '/' . $file); |
|
| 582 | } else { |
|
| 583 | $this->SmallworldDeleteDirectory($dirname . '/' . $file); |
|
| 584 | } |
|
| 585 | } |
|
| 586 | } |
|
| 587 | closedir($dir_handle); |
|
| 588 | rmdir($dirname); |
|
| 589 | ||
| 590 | return true; |
|
| 591 | } |
|
| 592 | } |
|
| 593 | ||