PageRenderTime 51ms CodeModel.GetById 20ms RepoModel.GetById 1ms app.codeStats 0ms

/admin/members.php

https://bitbucket.org/ryanhowdy/family-connections
PHP | 888 lines | 656 code | 126 blank | 106 comment | 48 complexity | 117ebc4797370caf0112b1267ca88d6f MD5 | raw file
Possible License(s): Apache-2.0, GPL-2.0
  1. <?php
  2. /**
  3. * Members
  4. *
  5. * PHP versions 4 and 5
  6. *
  7. * @category FCMS
  8. * @package FamilyConnections
  9. * @author Ryan Haudenschilt <r.haudenschilt@gmail.com>
  10. * @copyright 2010 Haudenschilt LLC
  11. * @license http://www.gnu.org/licenses/gpl-2.0.html GPLv2
  12. * @link http://www.familycms.com/wiki/
  13. */
  14. session_start();
  15. define('URL_PREFIX', '../');
  16. define('GALLERY_PREFIX', '../gallery/');
  17. require URL_PREFIX.'fcms.php';
  18. load('admin_members', 'database');
  19. init('admin/');
  20. // Globals
  21. $memberObj = new AdminMembers();
  22. $TMPL = array(
  23. 'sitename' => getSiteName(),
  24. 'nav-link' => getAdminNavLinks(),
  25. 'pagetitle' => T_('Administration: Members'),
  26. 'path' => URL_PREFIX,
  27. 'displayname' => $fcmsUser->displayName,
  28. 'version' => getCurrentVersion(),
  29. 'year' => date('Y')
  30. );
  31. control();
  32. exit();
  33. /**
  34. * control
  35. *
  36. * The controlling structure for this script.
  37. *
  38. * @return void
  39. */
  40. function control ()
  41. {
  42. global $fcmsUser, $memberObj;
  43. if (checkAccess($fcmsUser->id) > 1)
  44. {
  45. displayInvalidAccessLevel();
  46. return;
  47. }
  48. elseif (isset($_GET['create']))
  49. {
  50. displayHeader();
  51. $memberObj->displayCreateMemberForm();
  52. displayFooter();
  53. }
  54. elseif (isset($_POST['create']))
  55. {
  56. displayCreateSubmit();
  57. }
  58. elseif (isset($_GET['edit']))
  59. {
  60. displayHeader();
  61. $id = (int)$_GET['edit'];
  62. $memberObj->displayEditMemberForm($id);
  63. displayFooter();
  64. }
  65. elseif (isset($_GET['merge']))
  66. {
  67. displayHeader();
  68. $id = (int)$_GET['merge'];
  69. $memberObj->displayMergeMemberForm($id);
  70. displayFooter();
  71. }
  72. elseif (isset($_POST['merge-review']))
  73. {
  74. displayHeader();
  75. $id = (int)$_POST['id'];
  76. if ($_POST['merge-with'] < 1)
  77. {
  78. echo '
  79. <p class="error-alert">'.T_('You must choose a member to merge with.').'</p>';
  80. $memberObj->displayMergeMemberForm($id);
  81. }
  82. else
  83. {
  84. $merge = (int)$_POST['merge-with'];
  85. $memberObj->displayMergeMemberFormReview($id, $merge);
  86. }
  87. displayFooter();
  88. }
  89. elseif (isset($_POST['merge-submit']))
  90. {
  91. displayMergeSubmit();
  92. }
  93. elseif (isset($_POST['edit']))
  94. {
  95. displayEditSubmit();
  96. }
  97. elseif (isset($_POST['massupdate']))
  98. {
  99. if (isset($_POST['activateAll']))
  100. {
  101. displayActivateSubmit();
  102. }
  103. elseif (isset($_POST['inactivateAll']))
  104. {
  105. displayInactivateSubmit();
  106. }
  107. elseif (isset($_POST['deleteAll']) && !isset($_POST['confirmedall']))
  108. {
  109. displayDeleteAllConfirmForm();
  110. }
  111. elseif (isset($_POST['delconfirmall']) || isset($_POST['confirmedall']))
  112. {
  113. displayDeleteAllSubmit();
  114. }
  115. }
  116. elseif (isset($_POST['delete']) && !isset($_POST['confirmed']))
  117. {
  118. displayDeleteConfirmForm();
  119. }
  120. elseif (isset($_POST['delconfirm']) || isset($_POST['confirmed']))
  121. {
  122. displayDeleteSubmit();
  123. }
  124. elseif (isset($_POST['search']))
  125. {
  126. displayHeader();
  127. $memberObj->displayMemberList(1, $_POST['fname'], $_POST['lname'], $_POST['uname']);
  128. displayFooter();
  129. }
  130. else
  131. {
  132. displayHeader();
  133. $page = getPage();
  134. $memberObj->displayMemberList($page);
  135. displayFooter();
  136. }
  137. }
  138. /**
  139. * displayHeader
  140. *
  141. * @param string $js JavaScript to override default.
  142. *
  143. * @return void
  144. */
  145. function displayHeader ($js = '')
  146. {
  147. global $fcmsUser, $TMPL;
  148. $TMPL['javascript'] = $js;
  149. // Default js
  150. if ($js == '')
  151. {
  152. $TMPL['javascript'] = '
  153. <script type="text/javascript" src="'.$TMPL['path'].'ui/js/livevalidation.js"></script>
  154. <script type="text/javascript" src="'.$TMPL['path'].'ui/js/tablesort.js"></script>
  155. <link rel="stylesheet" type="text/css" href="'.$TMPL['path'].'ui/datechooser.css"/>
  156. <script type="text/javascript" src="'.$TMPL['path'].'ui/js/datechooser.js"></script>
  157. <script type="text/javascript">
  158. //<![CDATA[
  159. Event.observe(window, \'load\', function() {
  160. // Datechooser
  161. var bday = new DateChooser();
  162. bday.setUpdateField({\'bday\':\'j\', \'bmonth\':\'n\', \'byear\':\'Y\'});
  163. bday.setIcon(\''.$TMPL['path'].'ui/themes/default/images/datepicker.jpg\', \'byear\');
  164. var dday = new DateChooser();
  165. dday.setUpdateField({\'dday\':\'j\', \'dmonth\':\'n\', \'dyear\':\'Y\'});
  166. dday.setIcon(\''.$TMPL['path'].'ui/themes/default/images/datepicker.jpg\', \'dyear\');
  167. // Delete Confirmation All
  168. if ($(\'deleteAll\')) {
  169. var item = $(\'deleteAll\');
  170. item.onclick = function() { return confirm(\''.T_('Are you sure you want to DELETE this?').'\'); };
  171. var hid = document.createElement(\'input\');
  172. hid.setAttribute(\'type\', \'hidden\');
  173. hid.setAttribute(\'name\', \'confirmedall\');
  174. hid.setAttribute(\'value\', \'true\');
  175. item.insert({\'after\':hid});
  176. }
  177. // Delete Confirmation
  178. if ($(\'delete\')) {
  179. var item = $(\'delete\');
  180. item.onclick = function() { return confirm(\''.T_('Are you sure you want to DELETE this?').'\'); };
  181. var hid = document.createElement(\'input\');
  182. hid.setAttribute(\'type\', \'hidden\');
  183. hid.setAttribute(\'name\', \'confirmed\');
  184. hid.setAttribute(\'value\', \'true\');
  185. item.insert({\'after\':hid});
  186. }
  187. return true;
  188. });
  189. //]]>
  190. </script>';
  191. }
  192. include_once URL_PREFIX.'ui/admin/header.php';
  193. echo '
  194. <div id="admin-members">';
  195. }
  196. /**
  197. * displayFooter
  198. *
  199. * @return void
  200. */
  201. function displayFooter ()
  202. {
  203. global $fcmsUser, $TMPL;
  204. echo '
  205. </div><!-- /admin-members -->';
  206. include_once URL_PREFIX.'ui/admin/footer.php';
  207. }
  208. /**
  209. * displayInvalidAccessLevel
  210. *
  211. * Display an error message for users who do not have admin access.
  212. *
  213. * @return void
  214. */
  215. function displayInvalidAccessLevel ()
  216. {
  217. displayHeader();
  218. echo '
  219. <p class="error-alert">
  220. <b>'.T_('You do not have access to view this page.').'</b><br/>
  221. '.T_('This page requires an access level 1 (Admin).').'
  222. <a href="'.URL_PREFIX.'contact.php">'.T_('Please contact your website\'s administrator if you feel you should have access to this page.').'</a>
  223. </p>';
  224. displayFooter();
  225. }
  226. /**
  227. * displayMergeSubmit
  228. *
  229. * Merges two members together.
  230. *
  231. * @return void
  232. */
  233. function displayMergeSubmit ()
  234. {
  235. global $memberObj;
  236. displayHeader();
  237. $id = (int)$_POST['id'];
  238. $merge = (int)$_POST['merge'];
  239. $year = substr($_POST['birthday'], 0,4);
  240. $month = substr($_POST['birthday'], 5,2);
  241. $day = substr($_POST['birthday'], 8,2);
  242. // Update member
  243. $sql = "UPDATE `fcms_users`
  244. SET `fname` = '".escape_string($_POST['fname'])."',
  245. `mname` = '".escape_string($_POST['mname'])."',
  246. `lname` = '".escape_string($_POST['lname'])."',
  247. `maiden` = '".escape_string($_POST['maiden'])."',
  248. `bio` = '".escape_string($_POST['bio'])."',
  249. `email` = '".escape_string($_POST['email'])."',
  250. `dob_year` = '".escape_string($year)."',
  251. `dob_month` = '".escape_string($month)."',
  252. `dob_day` = '".escape_string($day)."'
  253. WHERE `id` = '$id'";
  254. if (!mysql_query($sql))
  255. {
  256. displaySqlError($sql, mysql_error());
  257. displayFooter();
  258. return;
  259. }
  260. echo sprintf(T_pgettext('%s is a name of a table that gets updated.', 'Update [%s] complete.'), 'fcms_users').'<br/>';
  261. // Update member address
  262. $sql = "UPDATE `fcms_address`
  263. SET `address` = '".escape_string($_POST['address'])."',
  264. `city` = '".escape_string($_POST['city'])."',
  265. `state` = '".escape_string($_POST['state'])."',
  266. `zip` = '".escape_string($_POST['zip'])."',
  267. `home` = '".escape_string($_POST['home'])."',
  268. `work` = '".escape_string($_POST['work'])."',
  269. `cell` = '".escape_string($_POST['cell'])."'
  270. WHERE `user` = '$id'";
  271. if (!mysql_query($sql))
  272. {
  273. displaySqlError($sql, mysql_error());
  274. displayFooter();
  275. return;
  276. }
  277. echo sprintf(T_pgettext('%s is a name of a table that gets updated.', 'Update [%s] complete.'), 'fcms_address').'<br/>';
  278. // Update all occurences of merge id with id
  279. $memberObj->mergeMember($id, $merge);
  280. // Delete merge id
  281. $sql = "DELETE FROM `fcms_users`
  282. WHERE `id` = '$merge'";
  283. if (!mysql_query($sql))
  284. {
  285. displaySqlError($sql, mysql_error());
  286. displayFooter();
  287. return;
  288. }
  289. echo sprintf(T_pgettext('%s is a name of a table that is deleted.', 'Delete [%s] complete.'), 'fcms_users').'<br/>';
  290. displayFooter();
  291. }
  292. /**
  293. * displayCreateSubmit
  294. *
  295. * @return void
  296. */
  297. function displayCreateSubmit ()
  298. {
  299. global $fcmsUser, $memberObj;
  300. displayHeader();
  301. // Check Required Fields
  302. $requiredFields = array('username', 'password', 'fname', 'lname', 'sex', 'email');
  303. $missingRequired = false;
  304. foreach ($requiredFields as $field)
  305. {
  306. if (!isset($_POST[$field]))
  307. {
  308. $missingRequired = true;
  309. }
  310. }
  311. if ($missingRequired)
  312. {
  313. $memberObj->displayCreateMemberForm(T_('Missing Required Field'));
  314. displayFooter();
  315. return;
  316. }
  317. // Check Email
  318. $sql = "SELECT `email` FROM `fcms_users`
  319. WHERE `email` = '".escape_string($_POST['email'])."'";
  320. $result = mysql_query($sql);
  321. if (!$result)
  322. {
  323. displaySqlError($sql, mysql_error());
  324. displayFooter();
  325. return;
  326. }
  327. $email_check = mysql_num_rows($result);
  328. if ($email_check > 0)
  329. {
  330. $memberObj->displayCreateMemberForm(
  331. sprintf(T_('The email address %s is already in use. Please choose a different email.'), $_POST['email'])
  332. );
  333. displayFooter();
  334. return;
  335. }
  336. // birthday
  337. $year = '';
  338. $month = '';
  339. $day = '';
  340. if (!empty($_POST['year']))
  341. {
  342. $year = (int)$_POST['year'];
  343. }
  344. if (!empty($_POST['month']))
  345. {
  346. $month = (int)$_POST['month'];
  347. $month = str_pad($month, 2, "0", STR_PAD_LEFT);
  348. }
  349. if (!empty($_POST['day']))
  350. {
  351. $day = (int)$_POST['day'];
  352. $day = str_pad($day, 2, "0", STR_PAD_LEFT);
  353. }
  354. $fname = strip_tags($_POST['fname']);
  355. $mname = strip_tags($_POST['mname']);
  356. $lname = strip_tags($_POST['lname']);
  357. $maiden = strip_tags($_POST['maiden']);
  358. $sex = strip_tags($_POST['sex']);
  359. $email = strip_tags($_POST['email']);
  360. $username = strip_tags($_POST['username']);
  361. $cleanFname = escape_string($_POST['fname']);
  362. $cleanMname = escape_string($_POST['mname']);
  363. $cleanLname = escape_string($_POST['lname']);
  364. $cleanMaiden = escape_string($_POST['maiden']);
  365. $cleanSex = escape_string($_POST['sex']);
  366. $cleanEmail = escape_string($_POST['email']);
  367. $cleanUsername = escape_string($_POST['username']);
  368. $md5pass = md5($_POST['password']);
  369. // Create new member
  370. $sql = "INSERT INTO `fcms_users`(
  371. `access`, `joindate`, `fname`, `mname`, `lname`, `maiden`, `sex`, `email`, `dob_year`, `dob_month`, `dob_day`,
  372. `username`, `password`, `activated`)
  373. VALUES (
  374. 3,
  375. NOW(),
  376. '$cleanFname',
  377. '$cleanMname',
  378. '$cleanLname',
  379. '$cleanMaiden',
  380. '$cleanSex',
  381. '$cleanEmail',
  382. '$year',
  383. '$month',
  384. '$day',
  385. '$cleanUsername',
  386. '$md5pass',
  387. 1
  388. )";
  389. if (!mysql_query($sql))
  390. {
  391. displaySqlError($sql, mysql_error());
  392. displayFooter();
  393. return;
  394. }
  395. $lastid = mysql_insert_id();
  396. // Create member's address
  397. $sql = "INSERT INTO `fcms_address`(`user`, `created_id`, `created`, `updated_id`, `updated`)
  398. VALUES ($lastid, '$fcmsUser->id', NOW(), '$fcmsUser->id', NOW())";
  399. if (!mysql_query($sql))
  400. {
  401. displaySqlError($sql, mysql_error());
  402. displayFooter();
  403. return;
  404. }
  405. // Create member's settings
  406. $sql = "INSERT INTO `fcms_user_settings`(`user`) VALUES ($lastid)";
  407. if (!mysql_query($sql))
  408. {
  409. displaySqlError($sql, mysql_error());
  410. displayFooter();
  411. return;
  412. }
  413. // Email member
  414. if (isset($_POST['invite']))
  415. {
  416. $from = getUserDisplayName($fcmsUser->id, 2);
  417. $sitename = getSiteName();
  418. $subject = sprintf(T_('Invitation to %s'), $sitename);
  419. $url = getDomainAndDir();
  420. $pos = strrpos($url, 'admin/');
  421. if ($pos !== false)
  422. {
  423. $url = substr($url, 0, $pos);
  424. }
  425. $message = $fname.' '.$lname.',
  426. '.sprintf(T_('You have been invited by %s to join %s.'), $from, $sitename).'
  427. '.T_('You can login using the following information').':
  428. '.T_('URL').': '.$url.'
  429. '.T_('Username').': '.$username.'
  430. '.T_('Password').': '.$_POST['password'].'
  431. '.T_('Thanks').',
  432. '.sprintf(T_('The %s Webmaster'), $sitename).'
  433. '.T_('This is an automated response, please do not reply.');
  434. mail($email, $subject, $message, getEmailHeaders());
  435. }
  436. $memberObj->displayMemberList(1);
  437. displayOkMessage();
  438. displayFooter();
  439. }
  440. /**
  441. * displayEditSubmit
  442. *
  443. * @return void
  444. */
  445. function displayEditSubmit ()
  446. {
  447. global $memberObj;
  448. displayHeader();
  449. // Check required fields
  450. $requiredFields = array('fname', 'lname', 'sex', 'email');
  451. $missingRequired = false;
  452. foreach ($requiredFields as $field)
  453. {
  454. if (!isset($_POST[$field]))
  455. {
  456. $missingRequired = true;
  457. }
  458. }
  459. if ($missingRequired)
  460. {
  461. $memberObj->displayEditMemberForm(
  462. $_POST['id'],
  463. '<p class="error">'.T_('Missing Required Field').'</p>'
  464. );
  465. }
  466. $id = (int)$_POST['id'];
  467. $emailstart = $memberObj->getUsersEmail($id);
  468. // birthday
  469. $bYear = '';
  470. $bMonth = '';
  471. $bDay = '';
  472. if (!empty($_POST['byear']))
  473. {
  474. $bYear = (int)$_POST['byear'];
  475. }
  476. if (!empty($_POST['bmonth']))
  477. {
  478. $bMonth = (int)$_POST['bmonth'];
  479. $bMonth = str_pad($bMonth, 2, "0", STR_PAD_LEFT);
  480. }
  481. if (!empty($_POST['bday']))
  482. {
  483. $bDay = (int)$_POST['bday'];
  484. $bDay = str_pad($bDay, 2, "0", STR_PAD_LEFT);
  485. }
  486. // deceased date
  487. $dYear = '';
  488. $dMonth = '';
  489. $dDay = '';
  490. if (!empty($_POST['dyear']))
  491. {
  492. $dYear = (int)$_POST['dyear'];
  493. }
  494. if (!empty($_POST['dmonth']))
  495. {
  496. $dMonth = (int)$_POST['dmonth'];
  497. $dMonth = str_pad($dMonth, 2, "0", STR_PAD_LEFT);
  498. }
  499. if (!empty($_POST['dday']))
  500. {
  501. $dDay = (int)$_POST['dday'];
  502. $dDay = str_pad($dDay, 2, "0", STR_PAD_LEFT);
  503. }
  504. $fname = strip_tags($_POST['fname']);
  505. $lname = strip_tags($_POST['lname']);
  506. $sex = strip_tags($_POST['sex']);
  507. $fname = escape_string($fname);
  508. $lname = escape_string($lname);
  509. $sex = escape_string($sex);
  510. // Update user info
  511. $sql = "UPDATE `fcms_users` SET
  512. `fname` = '$fname',
  513. `lname` = '$lname',
  514. `sex` = '$sex', ";
  515. if (isset($_POST['email']) && $_POST['email'] != $emailstart)
  516. {
  517. $email = strip_tags($_POST['email']);
  518. $cleanEmail = escape_string($email);
  519. $email_sql = "SELECT `email`
  520. FROM `fcms_users`
  521. WHERE `email` = '$email'";
  522. $result = mysql_query($email_sql);
  523. if (!$result)
  524. {
  525. displaySqlError($email_sql, mysql_error());
  526. displayFooter();
  527. return;
  528. }
  529. $email_check = mysql_num_rows($result);
  530. if ($email_check > 0)
  531. {
  532. $memberObj->displayEditMemberForm(
  533. $_POST['id'],
  534. '<p class="error-alert">'.sprintf(T_('The email address %s is already in use. Please choose a different email.'), $email).'</p>'
  535. );
  536. exit();
  537. }
  538. $sql .= "email = '$cleanEmail', ";
  539. }
  540. if ($_POST['password'])
  541. {
  542. $sql .= "`password` = '".md5($_POST['password'])."', ";
  543. $sitename = getSiteName();
  544. $subject = getSiteName().': '.T_('Password Change');
  545. $message = $_POST['fname'].' '.$_POST['lname'].',
  546. '.sprintf(T_('Your password at %s has been changed by the administrator.'), $sitename).'
  547. '.sprintf(T_('Your new password is %s'), $_POST['password']);
  548. mail($_POST['email'], $subject, $message, getEmailHeaders());
  549. }
  550. $sql.= "`dob_year` = '$bYear',
  551. `dob_month` = '$bMonth',
  552. `dob_day` = '$bDay',
  553. `dod_year` = '$dYear',
  554. `dod_month` = '$dMonth',
  555. `dod_day` = '$dDay',
  556. `joindate` = NOW(),
  557. `access` = '".(int)$_POST['access']."'
  558. WHERE id = '".(int)$_POST['id']."'";
  559. if (!mysql_query($sql))
  560. {
  561. displaySqlError($sql, mysql_error());
  562. displayFooter();
  563. return;
  564. }
  565. displayOkMessage();
  566. $memberObj->displayMemberList(1);
  567. displayFooter();
  568. }
  569. /**
  570. * displayActivateSubmit
  571. *
  572. * @return void
  573. */
  574. function displayActivateSubmit ()
  575. {
  576. global $memberObj;
  577. displayHeader();
  578. // Get list of new members -- members with no activity and not activated
  579. $sql = "SELECT `id`, `activity`, `fname`, `lname`, `email`
  580. FROM `fcms_users`
  581. WHERE `activity` = '0000-00-00 00:00:00'
  582. AND `activated` = 0";
  583. $result = mysql_query($sql);
  584. if (!$result)
  585. {
  586. displaySqlError($sql, mysql_error());
  587. displayFooter();
  588. return;
  589. }
  590. while ($r = mysql_fetch_array($result))
  591. {
  592. $new_members[$r['id']] = $r;
  593. }
  594. // Loop through selected members
  595. foreach ($_POST['massupdate'] AS $id)
  596. {
  597. $id = (int)$id;
  598. // Activate the member
  599. $sql = "UPDATE `fcms_users`
  600. SET `activated` = 1
  601. WHERE `id` = '$id'";
  602. if (!mysql_query($sql))
  603. {
  604. displaySqlError($sql, mysql_error());
  605. displayFooter();
  606. return;
  607. }
  608. if (isset($new_members))
  609. {
  610. // If they are a new member, then reset the joindate, and send email
  611. if (array_key_exists($id, $new_members))
  612. {
  613. $sql = "UPDATE `fcms_users`
  614. SET `joindate` = NOW()
  615. WHERE `id` = '$id'";
  616. if (!mysql_query($sql))
  617. {
  618. displaySqlError($sql, mysql_error());
  619. displayFooter();
  620. return;
  621. }
  622. $sitename = getSiteName();
  623. $subject = getSiteName().': '.T_('Account Activated');
  624. $message = $new_members[$id]['fname'].' '.$new_members[$id]['lname'].',
  625. '.sprintf(T_('Your account at %s has been activated by the administrator.'), $sitename);
  626. mail($new_members[$id]['email'], $subject, $message, getEmailHeaders());
  627. }
  628. }
  629. }
  630. displayOkMessage();
  631. $memberObj->displayMemberList(1);
  632. displayFooter();
  633. }
  634. /**
  635. * displayInactivateSubmit
  636. *
  637. * @return void
  638. */
  639. function displayInactivateSubmit ()
  640. {
  641. global $memberObj;
  642. displayHeader();
  643. foreach ($_POST['massupdate'] AS $id)
  644. {
  645. $sql = "UPDATE `fcms_users`
  646. SET `activated` = 0
  647. WHERE `id` = '".(int)$id."'";
  648. if (!mysql_query($sql))
  649. {
  650. displaySqlError($sql, mysql_error());
  651. displayFooter();
  652. return;
  653. }
  654. }
  655. displayOkMessage();
  656. $memberObj->displayMemberList(1);
  657. displayFooter();
  658. }
  659. /**
  660. * displayDeleteAllConfirmForm
  661. *
  662. * @return void
  663. */
  664. function displayDeleteAllConfirmForm ()
  665. {
  666. displayHeader();
  667. echo '
  668. <div class="alert-message block-message warning">
  669. <form action="members.php" method="post">
  670. <h2>'.T_('Are you sure you want to DELETE this?').'</h2>
  671. <p><b><i>'.T_('This can NOT be undone.').'</i></b></p>
  672. <div class="alert-actions">';
  673. foreach ($_POST['massupdate'] AS $id)
  674. {
  675. $id = (int)$id;
  676. echo '
  677. <input type="hidden" name="massupdate[]" value="'.$id.'"/>';
  678. }
  679. echo '
  680. <input class="btn danger" type="submit" id="delconfirmall" name="delconfirmall" value="'.T_('Yes, Delete').'"/>
  681. <a class="btn secondary" href="members.php">'.T_('No, Cancel').'</a>
  682. </div>
  683. </form>
  684. </div>';
  685. displayFooter();
  686. }
  687. /**
  688. * displayDeleteAllSubmit
  689. *
  690. * @return void
  691. */
  692. function displayDeleteAllSubmit ()
  693. {
  694. global $memberObj;
  695. displayHeader();
  696. foreach ($_POST['massupdate'] AS $id)
  697. {
  698. $sql = "DELETE FROM `fcms_users`
  699. WHERE `id` = '".(int)$id."'";
  700. if (!mysql_query($sql))
  701. {
  702. displaySqlError($sql, mysql_error());
  703. displayFooter();
  704. return;
  705. }
  706. }
  707. displayOkMessage();
  708. $memberObj->displayMemberList(1);
  709. displayFooter();
  710. }
  711. /**
  712. * displayDeleteConfirmForm
  713. *
  714. * @return void
  715. */
  716. function displayDeleteConfirmForm ()
  717. {
  718. displayHeader();
  719. echo '
  720. <div class="alert-message block-message warning">
  721. <form action="members.php" method="post">
  722. <h2>'.T_('Are you sure you want to DELETE this?').'</h2>
  723. <p><b><i>'.T_('This can NOT be undone.').'</i></b></p>
  724. <div class="alert-actions">
  725. <input type="hidden" name="id" value="'.(int)$_POST['id'].'"/>
  726. <input class="btn danger" type="submit" id="delconfirm" name="delconfirm" value="'.T_('Yes, Delete').'"/>
  727. <a class="btn secondary" href="members.php?edit='.(int)$_POST['id'].'">'.T_('No, Cancel').'</a>
  728. </div>
  729. </form>
  730. </div>';
  731. displayFooter();
  732. }
  733. /**
  734. * displayDeleteSubmit
  735. *
  736. * @return void
  737. */
  738. function displayDeleteSubmit ()
  739. {
  740. global $memberObj;
  741. displayHeader();
  742. $id = (int)$_POST['id'];
  743. $sql = "DELETE FROM `fcms_users`
  744. WHERE `id` = '$id'";
  745. if (!mysql_query($sql))
  746. {
  747. displaySqlError($sql, mysql_error());
  748. displayFooter();
  749. return;
  750. }
  751. displayOkMessage();
  752. $memberObj->displayMemberList(1);
  753. displayFooter();
  754. }