00001 <?php
00002 if(!defined('__PRAGYAN_CMS'))
00003 {
00004 header($_SERVER['SERVER_PROTOCOL'].' 403 Forbidden');
00005 echo "<h1>403 Forbidden<h1><h4>You are not authorized to access the page.</h4>";
00006 echo '<hr/>'.$_SERVER['SERVER_SIGNATURE'];
00007 exit(1);
00008 }
00016
00017
00018
00019
00020 function generateFormDescBody($moduleCompId, $action = 'editform') {
00021 global $cmsFolder,$sourceFolder;
00022 global $templateFolder;global $moduleFolder;
00023 global $urlRequestRoot;
00024 $imagePath = "$urlRequestRoot/$cmsFolder/$templateFolder";$calpath="$urlRequestRoot/$cmsFolder/$moduleFolder";
00025
00026 require_once("$sourceFolder/group.lib.php");
00027 $associatedGroupId = getGroupAssociatedWithForm($moduleCompId);
00028
00030 if(isset($_POST['submittedform_desc'])) {
00031 $updates = array();
00032
00033 if(isset($_POST['txtFormHeading'])) {
00034 $updates[] = "`form_heading` = '".escape($_POST['txtFormHeading'])."'";
00035 }
00036 if(isset($_POST['optLoginRequired'])) {
00037 if($associatedGroupId > 0) {
00038 $updates[] = '`form_loginrequired` = 1';
00039 if($_POST['optLoginRequired'] != 'yes') {
00040 displayerror('Error. You cannot allow anonymous users to register to this form because it is associated with a group.');
00041 }
00042 }
00043 else {
00044 $updates[] = '`form_loginrequired` = ' . ($_POST['optLoginRequired'] == 'yes' ? 1 : 0);
00045 }
00046 }
00047 if(isset($_POST['txtHeaderText'])) {
00048 $updates[] = "`form_headertext` = '".escape($_POST['txtHeaderText'])."'";
00049 }
00050 if(isset($_POST['txtFormExpiry'])) {
00051 $updates[] = "`form_expirydatetime` = '".escape($_POST['txtFormExpiry'])."'";
00052 }
00053 if(isset($_POST['optSendConfirmation'])) {
00054 $updates[] = '`form_sendconfirmation` = ' . ($_POST['optSendConfirmation'] == 'yes' ? 1 : 0);
00055 }
00056 if(isset($_POST['optUseCaptcha'])) {
00057 $updates[] = '`form_usecaptcha` = ' . ($_POST['optUseCaptcha'] == 'yes' ? 1 : 0);
00058 }
00059 if(isset($_POST['optUserEdit'])) {
00060 $updates[] = '`form_allowuseredit` = ' . ($_POST['optUserEdit'] == 'yes' ? 1 : 0);
00061 }
00062 if(isset($_POST['optUserUnregister'])) {
00063 if($associatedGroupId > 0) {
00064 $updates[] = '`form_allowuserunregister` = 1';
00065 if($_POST['optUserUnregister'] != 'yes') {
00066 displayerror('Error. You cannot prevent a user from unregistering from this form because it is associated with a group.');
00067 }
00068 }
00069 else {
00070 $updates[] = '`form_allowuserunregister` = ' . ($_POST['optUserUnregister'] == 'yes' ? 1 : 0);
00071 }
00072 }
00073 if(isset($_POST['optUserEmail'])) {
00074 $updates[] = '`form_showuseremail` = ' . ($_POST['optUserEmail'] == 'yes' ? 1 : 0);
00075 }
00076 if(isset($_POST['optUserFullname'])) {
00077 $updates[] = '`form_showuserfullname` = ' . ($_POST['optUserFullname'] == 'yes' ? 1 : 0);
00078 }
00079 if(isset($_POST['optUserProfiledata'])) {
00080 $updates[] = '`form_showuserprofiledata` = ' . ($_POST['optUserProfiledata'] == 'yes' ? 1 : 0);
00081 }
00082 if(isset($_POST['optRegDate'])) {
00083 $updates[] = '`form_showregistrationdate` = ' . ($_POST['optRegDate'] == 'yes' ? 1 : 0);
00084 }
00085 if(isset($_POST['optLastUpdate'])) {
00086 $updates[] = '`form_showlastupdatedate` = ' . ($_POST['optLastUpdate'] == 'yes' ? 1 : 0);
00087 }
00088 if(isset($_POST['txtFooterText'])) {
00089 $updates[] = "`form_footertext` = '".escape($_POST['txtFooterText'])."'";
00090 }
00091 if(count($updates) > 0) {
00092 $updateQuery = 'UPDATE `form_desc` SET ' . join($updates, ', ') .
00093 ' WHERE `page_modulecomponentid` = ' . $moduleCompId;
00094 if(mysql_query($updateQuery)) {
00095 displayinfo("All changes in the form have been successfully saved!");
00096
00097 }
00098 else {
00099 displayerror('Some errors were encountered while trying to save changes.<br />' .
00100 'The changes may not have been completely saved.');
00101
00102 }
00103 }
00104 }
00105
00107 $formQuery = 'SELECT page_modulecomponentid, form_heading, form_loginrequired, form_headertext, form_footertext, ' .
00108 'form_expirydatetime, form_sendconfirmation, form_usecaptcha, form_allowuseredit, form_allowuserunregister, ' .
00109 'form_showuseremail, form_showuserfullname, form_showuserprofiledata, form_showregistrationdate, form_showlastupdatedate ' .
00110 'FROM `form_desc` WHERE `page_modulecomponentid` = ' . $moduleCompId;
00111 $formResult = mysql_query($formQuery);
00112
00113 $userEdit = $formHeading = $headerText = $expiryDate = $requireLogin =
00114 $sendConfirmation = $useCaptcha = $userProfiledata = $userEmail = $userUnregister =
00115 $userFullname = $regDate = $lastUpdate = $footerText = '';
00116
00117 if($formResult) {
00118 if($formResultRow = mysql_fetch_assoc($formResult)) {
00119 $formHeading = $formResultRow['form_heading'];
00120 $requireLogin = $formResultRow['form_loginrequired'] ? 'checked="checked"' : '';
00121 $headerText = $formResultRow['form_headertext'];
00122 $expiryDate = $formResultRow['form_expirydatetime'];
00123 $sendConfirmation = $formResultRow['form_sendconfirmation'] ? 'checked="checked"' : '';
00124 $useCaptcha = $formResultRow['form_usecaptcha'] ? 'checked="checked"' : '';
00125 $userEdit = $formResultRow['form_allowuseredit'] ? 'checked="checked"' : '';
00126 $userUnregister = $formResultRow['form_allowuserunregister'] ? 'checked="checked"' : '';
00127 $userEmail = $formResultRow['form_showuseremail'] ? 'checked="checked"' : '';
00128 $userFullname = $formResultRow['form_showuserfullname'] ? 'checked="checked"' : '';
00129 $userProfiledata = $formResultRow['form_showuserprofiledata'] ? 'checked="checked"' : '';
00130 $regDate = $formResultRow['form_showregistrationdate'] ? 'checked="checked"' : '';
00131 $lastUpdate = $formResultRow['form_showlastupdatedate'] ? 'checked="checked"' : '';
00132 $footerText = $formResultRow['form_footertext'];
00133 }
00134 }
00135
00136 $requireLoginN = $requireLogin == '' ? 'checked="checked"' : '';
00137 $sendConfirmationN = $sendConfirmation == '' ? 'checked="checked"' : '';
00138 $useCaptchaN = $useCaptcha == '' ? 'checked="checked"' : '';
00139 $userEditN = $userEdit == '' ? 'checked="checked"' : '';
00140 $userUnregisterN = $userUnregister == '' ? 'checked="checked"' : '';
00141 $userEmailN = $userEmail == '' ? 'checked="checked"' : '';
00142 $userFullnameN = $userFullname == '' ? 'checked="checked"' : '';
00143 $userProfiledataN = $userProfiledata == '' ? 'checked="checked"' : '';
00144 $regDateN = $regDate == '' ? 'checked="checked"' : '';
00145 $lastUpdateN = $lastUpdate == '' ? 'checked="checked"' : '';
00146
00147 $disableBecauseAssociated = '';
00148 if($associatedGroupId > 0) {
00149 $requireLogin = $userUnregister = 'checked="checked"';
00150 $requireLoginN = $userUnregisterN = '';
00151 $disableBecauseAssociated = 'disabled="disabled"';
00152 }
00153
00155 $formDescBody =<<<BODY
00156
00157 <link rel="stylesheet" type="text/css" media="all" href="$calpath/form/calendar/calendar.css" title="Aqua" />
00158 <script type="text/javascript" src="$calpath/form/calendar/calendar.js"></script>
00159
00160 <form id="formdetails" action="./+$action" method="post">
00161 <table width="100%" cellpadding="1" cellspacing="1" border="1">
00162 <tr>
00163 <td width="20%">Form Heading:</td><td><input type="text" name="txtFormHeading" value="$formHeading" /></td>
00164 </tr>
00165 <tr>
00166 <td>Require Login?</td>
00167 <td>
00168 <label><input type="radio" name="optLoginRequired" value="yes" $requireLogin $disableBecauseAssociated />Yes</label>
00169 <label><input type="radio" name="optLoginRequired" value="no" $requireLoginN $disableBecauseAssociated />No</label>
00170 </td>
00171 </tr>
00172 <tr>
00173 <td>Form Header:</td>
00174 <td>
00175 <textarea style="width:98%" name="txtHeaderText" rows="10" cols="60">$headerText</textarea>
00176 </td>
00177 </tr>
00178
00179 <tr>
00180 <td>Expiry Date (YYYY-MM-DD 24Hrs clock): (blank to disable)</td><td> <input type="text" name="txtFormExpiry" id="sel1" size="25" value="$expiryDate" /><input type="reset" value=" ... " onclick="return showCalendar('sel1', '%Y-%m-%d %H:%M', '24', true);" /></td>
00181 </tr>
00182
00183 <tr>
00184 <td>Send Confirmation?</td>
00185 <td>
00186 <label><input type="radio" name="optSendConfirmation" value="yes" $sendConfirmation />Yes</label>
00187 <label><input type="radio" name="optSendConfirmation" value="no" $sendConfirmationN />No</label>
00188 </td>
00189 </tr>
00190 <tr>
00191 <td>Use CAPTCHA Validation?</td>
00192 <td>
00193 <label><input type="radio" name="optUseCaptcha" value="yes" $useCaptcha />Yes</label>
00194 <label><input type="radio" name="optUseCaptcha" value="no" $useCaptchaN />No</label>
00195 </td>
00196 </tr>
00197 <tr>
00198 <td>Allow user to edit his entries again once registered?</td>
00199 <td>
00200 <label><input type="radio" name="optUserEdit" value="yes" $userEdit />Yes</label>
00201 <label><input type="radio" name="optUserEdit" value="no" $userEditN />No</label>
00202 </td>
00203 </tr>
00204 <tr>
00205 <td>Give the user the option to unregister?</td>
00206 <td>
00207 <label><input type="radio" name="optUserUnregister" value="yes" $userUnregister $disableBecauseAssociated />Yes</label>
00208 <label><input type="radio" name="optUserUnregister" value="no" $userUnregisterN $disableBecauseAssociated />No</label>
00209 </td>
00210 </tr>
00211
00212 <tr>
00213 <td>Form Footer:</td>
00214 <td>
00215 <textarea style="width:98%" name="txtFooterText" rows="8" cols="60">$footerText</textarea>
00216 </td>
00217 </tr>
00218 <tr ><td colspan="2"><b>Settings for viewing registrants :</b> </td></tr>
00219 <tr>
00220 <td>Show user e-mail?</td>
00221 <td>
00222 <label><input type="radio" name="optUserEmail" value="yes" $userEmail />Yes</label>
00223 <label><input type="radio" name="optUserEmail" value="no" $userEmailN />No</label>
00224 </td>
00225 </tr>
00226 <tr>
00227 <td>Show user fullname?</td>
00228 <td>
00229 <label><input type="radio" name="optUserFullname" value="yes" $userFullname />Yes</label>
00230 <label><input type="radio" name="optUserFullname" value="no" $userFullnameN />No</label>
00231 </td>
00232 </tr>
00233 <tr>
00234 <td>Show user profile information?</td>
00235 <td>
00236 <label><input type="radio" name="optUserProfiledata" value="yes" $userProfiledata />Yes</label>
00237 <label><input type="radio" name="optUserProfiledata" value="no" $userProfiledataN />No</label>
00238 </td>
00239 </tr>
00240 <tr>
00241 <td>Show Registration Date?</td>
00242 <td>
00243 <label><input type="radio" name="optRegDate" value="yes" $regDate />Yes</label>
00244 <label><input type="radio" name="optRegDate" value="no" $regDateN />No</label>
00245 </td>
00246 </tr>
00247 <tr>
00248 <td>Show Last Update Date?</td>
00249 <td>
00250 <label><input type="radio" name="optLastUpdate" value="yes" $lastUpdate />Yes</label>
00251 <label><input type="radio" name="optLastUpdate" value="no" $lastUpdateN />No</label>
00252 </td>
00253 </tr>
00254 </table>
00255 <input type="submit" name="submittedform_desc" value="Update Form" />
00256 </form><br/>
00257 BODY;
00258 return $formDescBody;
00259 }
00260
00261
00262
00263 function generateFormElementDescBody($moduleCompId, $action = 'editform') {
00264 global $sourceFolder,$cmsFolder;
00265 global $templateFolder;global $moduleFolder;
00266 global $urlRequestRoot;
00267 $imagePath = "$urlRequestRoot/$cmsFolder/$templateFolder";$calpath="$urlRequestRoot/$cmsFolder/$moduleFolder";
00268
00269 $elementsQuery = "SELECT * FROM `form_elementdesc` WHERE `page_modulecomponentid` = $moduleCompId ORDER BY `form_elementrank` ASC";
00270 $elementsResult = mysql_query($elementsQuery) or die(mysql_error());
00271 $elementData = '';
00272 while($elementsRow = mysql_fetch_assoc($elementsResult)) {
00273 $tmpElement = new FormElement();
00274 $tmpElement->fromMysqlTableRow($elementsRow);
00275
00276 $elementData .= $tmpElement->toHtmlTableRow($imagePath, $action) . "\n";
00277 }
00278 $formElementDescBody =<<<BODY
00279 <h2>Fields:</h2>
00280 <form id="formentries" action="./+$action" method="POST">
00281 <table cellpadding="1" cellspacing="1" border="1">
00282 <tr>
00283 <th>Actions</th>
00284
00285 <th>Name</th>
00286 <th>Description</th>
00287 <th>Type</th>
00288 <th>Tooltip</th>
00289 <th>Other Information</th>
00290 <th title="Only in the case of radio, check or select element type">Extra options*</th>
00291
00292 </tr>
00293 $elementData
00294 </tr>
00295 </table>
00296
00297 <input type="submit" name="addformelement_descsubmit" value="Add Element">
00298
00299 </form>
00300 BODY;
00301 return $formElementDescBody;
00302 }
00303
00304
00305 function moveFormElement($moduleCompId,$subaction,$elementId) {
00306 if ($subaction=='moveDown') {
00307 $compare = ">=";
00308 $order = "ASC";
00309 }
00310 else if($subaction=='moveUp') {
00311 $compare = "<=";
00312 $order = "DESC";
00313 }
00314
00315
00316
00317 $query = "SELECT * FROM `form_elementdesc` WHERE `form_elementrank` $compare(SELECT `form_elementrank` FROM `form_elementdesc` WHERE `page_modulecomponentid`=$moduleCompId AND `form_elementid`=$elementId) AND `page_modulecomponentid`=$moduleCompId AND `form_elementid`!='$elementId' ORDER BY `form_elementrank` $order LIMIT 0,1";
00318 $result = mysql_query($query) or die(mysql_query());
00319 if (mysql_num_rows($result) == 0) {
00320 displayerror("You cannot move up/down the first/last element in form");
00321
00322 } else {
00323 $tempTarg = mysql_fetch_assoc($result);
00324 $query = "SELECT `form_elementrank` FROM `form_elementdesc` WHERE `page_modulecomponentid`=$moduleCompId AND `form_elementid`=$elementId";
00325 $result = mysql_query($query) or die(mysql_query());
00326 $tempSrc = mysql_fetch_assoc($result);
00327
00328 if ($tempTarg['form_elementrank'] == $tempSrc['form_elementrank']) {
00329 $query = "UPDATE `form_elementdesc` SET `form_elementrank` = `form_elementid` WHERE `page_modulecomponentid`='$tempTarg[page_modulecomponentid]'";
00330 $result = mysql_query($query) or die(mysql_error());
00331 if (mysql_affected_rows() > 0)
00332 displayinfo("Error in form element rank corrected. Please reorder them");
00333 else
00334 displayerror("Failed to correct error in form element ranks!");
00335 } else {
00336 $query = "UPDATE `form_elementdesc` SET `form_elementrank` = '$tempSrc[form_elementrank]' WHERE `page_modulecomponentid`='$tempTarg[page_modulecomponentid]' AND `form_elementid`=$tempTarg[form_elementid]";
00337 $result = mysql_query($query) or die(mysql_error());
00338 $query = "UPDATE `form_elementdesc` SET `form_elementrank` = '$tempTarg[form_elementrank]' WHERE `page_modulecomponentid`='$moduleCompId' AND `form_elementid`=$elementId";
00339 $result = mysql_query($query) or die(mysql_error());
00340 }
00341 }
00342
00343 }
00344
00345
00349 function deleteFormElement($moduleCompId,$elementId) {
00350 $query="DELETE FROM `form_elementdesc` WHERE `page_modulecomponentid` = $moduleCompId AND `form_elementid`=$elementId";
00351 $resultDel=mysql_query($query);
00352 if(mysql_affected_rows()>0)
00353 $query1=1;
00354 else $query1=0;
00355 $queryDelData="DELETE FROM `form_elementdata` WHERE `page_modulecomponentid` = $moduleCompId AND `form_elementid`=$elementId";
00356 $resultDelData=mysql_query($queryDelData);
00357 if(!$resultDelData) { displayerror('Invalid query: ' . mysql_error()); return false; }
00358 $queryAffectedRows=mysql_affected_rows();
00359 if($queryAffectedRows>0)
00360 $query2=1;
00361 else $query2=0;
00362 if($query1&&$query2)
00363 return true;
00364 else return false;
00365 }
00366
00367
00369 function addDefaultFormElement($moduleCompId) {
00370 $query="SELECT MAX(`form_elementid`) FROM `form_elementdesc` WHERE `page_modulecomponentid`=$moduleCompId";
00371 $result=mysql_query($query);
00372 $row = mysql_fetch_row($result);
00373
00374 $elementId = 0;
00375 if(!is_null($row[0])) {
00376 $elementId = $row[0] + 1;
00377 }
00378
00379 $queryInsert="INSERT INTO `form_elementdesc` " .
00380 "(`page_modulecomponentid`, `form_elementid`, `form_elementname`, `form_elementdisplaytext`, " .
00381 "`form_elementtype`, `form_elementsize`, `form_elementtypeoptions`, `form_elementdefaultvalue`, " .
00382 "`form_elementmorethan`, `form_elementlessthan`, `form_elementcheckint`, `form_elementtooltiptext`," .
00383 "`form_elementisrequired` ,`form_elementrank`) VALUES " .
00384 "($moduleCompId, $elementId, 'username', 'Enter your name:', 'text', 100, NULL , NULL , NULL , NULL , 0, 'Enter your full name here', 0, $elementId)";
00385 $resultAdd=mysql_query($queryInsert);
00386
00387 if(mysql_affected_rows()>0)
00388 return true;
00389 else return false;
00390 }
00391