function getFormElementsHtmlAsArray($moduleCompId, $userId, &$jsValidationFunctions, &$containsFileUploadFields) { /// Check if the user has already registered to this form, /// If yes, load default values for each field. /// We'll keep this as an associative array, relating element id to value $containsFileUploadFields = false; $formValues = array(); if (verifyUserRegistered($moduleCompId, $userId)) { $dataQuery = 'SELECT `form_elementid`, `form_elementdata` FROM `form_elementdata` WHERE ' . "`page_modulecomponentid` = '{$moduleCompId}' AND `user_id` = '{$userId}'"; $dataResult = mysql_query($dataQuery); if (!$dataResult) { displayerror('E35 : Invalid query: ' . mysql_error()); return false; } while ($dataRow = mysql_fetch_assoc($dataResult)) { $formValues[$dataRow['form_elementid']] = $dataRow['form_elementdata']; } } else { $dataQuery = 'SELECT `form_elementid`, `form_elementdefaultvalue` FROM `form_elementdesc` WHERE ' . "`page_modulecomponentid` = '{$moduleCompId}'"; $dataResult = mysql_query($dataQuery); if (!$dataResult) { displayerror('E132 : Invalid query: ' . mysql_error()); return false; } while ($dataRow = mysql_fetch_assoc($dataResult)) { $formValues[$dataRow['form_elementid']] = $dataRow['form_elementdefaultvalue']; } } $elementQuery = 'SELECT `form_elementid`, `form_elementtype` FROM `form_elementdesc` WHERE ' . "`page_modulecomponentid` ='{$moduleCompId}' ORDER BY `form_elementrank`"; $elementResult = mysql_query($elementQuery); $formElements = array(); $jsValidationFunctions = array(); while ($elementRow = mysql_fetch_row($elementResult)) { $jsOutput = ''; if ($elementRow[1] == 'file') { $containsFileUploadFields = true; } $formElements[] = getFormElementInputField($moduleCompId, $elementRow[0], isset($formValues[$elementRow[0]]) ? $formValues[$elementRow[0]] : '', $jsOutput); if ($jsOutput != '') { $jsValidationFunctions[] = $jsOutput; } } return $formElements; }
public function actionEditregistrants() { /** * After view registrants completes, generateFormDataRow() will be used here also * then manually prepend the "delete" button and "edit" button columns * * After generateFormDataTable() completes, move the code to generate the top header row (with the sort * by this column images) to a new function and call it here also and manually prepened two <th>s of * delete and edit * * The delete button should point to a subaction through get vars * * Clicking edit button, should do something like edit in 2nd form in "editform" does with a twist : * to generate the edit form simply call generateRegistrationForm($moduleCompId,$userId,$action=) * with action ./+editregistrants&subaction=editregistrant&useremail=<useremail> * * and when submitted call submitRegistrationForm() */ global $sourceFolder, $moduleFolder; if (isset($_GET['subaction']) && isset($_GET['useremail'])) { if ($_GET['subaction'] == 'edit') { if (isset($_POST['submitreg_form_' . $this->moduleComponentId])) { submitRegistrationForm($this->moduleComponentId, getUserIdFromEmail(escape($_GET['useremail'])), true, true); } return '<a href="./+editregistrants">« Back</a><br />' . generateRegistrationForm($this->moduleComponentId, $this->userId, './+editregistrants&subaction=edit&useremail=' . escape($_GET['useremail']), true) . '<br /><a href="./+editregistrants">« Back</a><br />'; } elseif ($_GET['subaction'] == 'delete') { if ($_GET['useremail'] == "Anonymous") { $userIdTemp = escape($_GET['registrantid']); } else { $userIdTemp = getUserIdFromEmail(escape($_GET['useremail'])); } if (!unregisterUser($this->moduleComponentId, $userIdTemp)) { displayerror('Error! User with the given e-mail ' . escape($_GET['useremail']) . ' was not found.'); } } } elseif (isset($_GET['subaction']) && $_GET['subaction'] == 'getsuggestions' && isset($_GET['forwhat'])) { echo $this->getUnregisteredUsersFromPattern(escape($_GET['forwhat'])); disconnect(); exit; } elseif (isset($_POST['btnAddUserToForm']) && isset($_POST['useremail'])) { $hyphenPos = strpos($_POST['useremail'], '-'); if ($hyphenPos >= 0) { $userEmail = escape(trim(substr($_POST['useremail'], 0, $hyphenPos - 1))); } else { $userEmail = escape($_POST['useremail']); } $targetUserId = getUserIdFromEmail($userEmail); if ($targetUserId > 0) { if (verifyUserRegistered($this->moduleComponentId, $targetUserId)) { displayerror('The given user is already registered to this form.'); } else { registerUser($this->moduleComponentId, $targetUserId); } } else { displayerror('A user registered with the e-mail ID you entered was not found.'); } } elseif (isset($_POST['btnEmptyRegistrants'])) { $registeredUsers = form::getRegisteredUserArray($this->moduleComponentId); $registeredUserCount = count($registeredUsers); for ($i = 0; $i < $registeredUserCount; $i++) { unregisterUser($this->moduleComponentId, $registeredUsers[$i], true); } displayinfo('All registrations to this form have been deleted.'); } $sortField = 'registrationdate'; /// Default Values $sortOrder = 'asc'; if (isset($_GET['sortfield'])) { $sortField = escape($_GET['sortfield']); } if (isset($_GET['sortorder']) && ($_GET['sortorder'] == 'asc' || $_GET['sortorder'] == 'desc')) { $sortOrder = escape($_GET['sortorder']); } global $ICONS; $html = generateFormDataTable($this->moduleComponentId, $sortField, $sortOrder, 'editregistrants'); return "<fieldset><legend>{$ICONS['Form Registrants']['small']}Edit Form Registrants</legend>{$html}</fieldset>"; }
/** Unegister a user in form_regdata table and remove his data from elementdata table*/ function unregisterUser($moduleCompId, $userId, $silentOnSuccess = false) { if (verifyUserRegistered($moduleCompId, $userId)) { $unregisteruser_query = "DELETE FROM `form_regdata` WHERE `user_id` = '{$userId}' AND `page_modulecomponentid` = '{$moduleCompId}'"; $unregisteruser_result = mysql_query($unregisteruser_query); /// Remove any files uploaded by the user $fileFieldQuery = 'SELECT `form_elementdata` FROM `form_elementdata`, `form_elementdesc` WHERE ' . "`form_elementdata`.`page_modulecomponentid` = '{$moduleCompId}' AND `form_elementtype` = 'file' AND " . "`form_elementdata`.`user_id` = '{$userId}' AND `form_elementdesc`.`page_modulecomponentid` = `form_elementdata`.`page_modulecomponentid` AND " . "`form_elementdata`.`form_elementid` = `form_elementdesc`.`form_elementid`"; $fileFieldResult = mysql_query($fileFieldQuery); global $sourceFolder; require_once "{$sourceFolder}/upload.lib.php"; while ($fileFieldRow = mysql_fetch_row($fileFieldResult)) { deleteFile($moduleCompId, 'form', $fileFieldRow[0]); } $deleteelementdata_query = "DELETE FROM `form_elementdata` WHERE `user_id` = '{$userId}' AND `page_modulecomponentid` = '{$moduleCompId}' "; $deleteelementdata_result = mysql_query($deleteelementdata_query); if ($deleteelementdata_result) { global $sourceFolder; require_once $sourceFolder . "/group.lib.php"; $groupId = getGroupIdFromFormId($moduleCompId); if ($groupId != false) { if (removeUserFromGroupId($groupId, $userId)) { if (!$silentOnSuccess) { displayinfo("User successfully unregistered"); } return true; } else { displayerror("Unable to unregister user from group."); return false; } } else { if (!$silentOnSuccess) { displayinfo("User successfully unregistered"); } return true; } } else { displayerror("Error in unregistering user."); return false; } } else { displaywarning("User not registered!"); return false; } }
/** * * @param $moduleCompId * @param $userId */ function getFormElementsHtmlAsArrayForView($moduleCompId, $userId) { /// Check if the user has already registered to this form, /// If yes, load default values for each field. /// We'll keep this as an associative array, relating element id to value $formValues = array(); if (verifyUserRegistered($moduleCompId, $userId)) { $dataQuery = 'SELECT `form_elementid`, `form_elementdata` FROM `form_elementdata` WHERE ' . "`page_modulecomponentid` = '{$moduleCompId}' AND `user_id` = '{$userId}'"; $dataResult = mysql_query($dataQuery); if (!$dataResult) { displayerror('E35 : Invalid query: ' . mysql_error()); return false; } while ($dataRow = mysql_fetch_assoc($dataResult)) { $formValues[$dataRow['form_elementid']] = $dataRow['form_elementdata']; } } else { $dataQuery = 'SELECT `form_elementid`, `form_elementdefaultvalue` FROM `form_elementdesc` WHERE ' . "`page_modulecomponentid` = '{$moduleCompId}'"; $dataResult = mysql_query($dataQuery); if (!$dataResult) { displayerror('E132 : Invalid query: ' . mysql_error()); return false; } while ($dataRow = mysql_fetch_assoc($dataResult)) { $formValues[$dataRow['form_elementid']] = $dataRow['form_elementdefaultvalue']; } } $elementQuery = 'SELECT `form_elementid`, `form_elementtype`, `form_elementdisplaytext` FROM `form_elementdesc` WHERE ' . "`page_modulecomponentid` ='{$moduleCompId}' ORDER BY `form_elementrank`"; $elementResult = mysql_query($elementQuery); $formElements = array(); while ($elementRow = mysql_fetch_assoc($elementResult)) { if ($elementRow['form_elementtype'] == 'file') { global $urlRequestRoot; $fileLink = $formValues[$elementRow['form_elementid']]; if ($formValues[$elementRow['form_elementid']] != '') { if ($moduleCompId != '0') { $fileUrl = $urlRequestRoot . getPagePathFromModule('form', $moduleCompId) . '/' . $formValues[$elementRow['form_elementid']]; $fileLink = "<a href='" . $fileUrl . "'>" . $formValues[$elementRow['form_elementid']] . "</a>"; } } $htmlOutput = '<td>' . $elementRow['form_elementdisplaytext']; $htmlOutput .= '</td><td>' . $fileLink . '</td>'; $formElements[] = $htmlOutput; } elseif ($elementRow['form_elementtype'] != 'password') { $htmlOutput = '<td>' . $elementRow['form_elementdisplaytext']; $htmlOutput .= '</td><td>' . (isset($formValues[$elementRow['form_elementid']]) ? $formValues[$elementRow['form_elementid']] : '') . '</td>'; $formElements[] = $htmlOutput; } } return $formElements; }