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, '.
00109 'form_allowuserunregister,form_showuseremail, form_showuserfullname, form_showuserprofiledata, '.
00110 'form_showregistrationdate, form_showlastupdatedate ' .
00111 'FROM `form_desc` WHERE `page_modulecomponentid` = ' . $moduleCompId;
00112 $formResult = mysql_query($formQuery);
00113
00114 $userEdit = $formHeading = $headerText = $expiryDate = $requireLogin =
00115 $sendConfirmation = $useCaptcha = $userProfiledata = $userEmail = $userUnregister =
00116 $userFullname = $regDate = $lastUpdate = $footerText = '';
00117
00118 if($formResult) {
00119 if($formResultRow = mysql_fetch_assoc($formResult)) {
00120 $formHeading = $formResultRow['form_heading'];
00121 $requireLogin = $formResultRow['form_loginrequired'] ? 'checked="checked"' : '';
00122 $headerText = $formResultRow['form_headertext'];
00123 $expiryDate = $formResultRow['form_expirydatetime'];
00124 $sendConfirmation = $formResultRow['form_sendconfirmation'] ? 'checked="checked"' : '';
00125 $useCaptcha = $formResultRow['form_usecaptcha'] ? 'checked="checked"' : '';
00126 $userEdit = $formResultRow['form_allowuseredit'] ? 'checked="checked"' : '';
00127 $userUnregister = $formResultRow['form_allowuserunregister'] ? 'checked="checked"' : '';
00128 $userEmail = $formResultRow['form_showuseremail'] ? 'checked="checked"' : '';
00129 $userFullname = $formResultRow['form_showuserfullname'] ? 'checked="checked"' : '';
00130 $userProfiledata = $formResultRow['form_showuserprofiledata'] ? 'checked="checked"' : '';
00131 $regDate = $formResultRow['form_showregistrationdate'] ? 'checked="checked"' : '';
00132 $lastUpdate = $formResultRow['form_showlastupdatedate'] ? 'checked="checked"' : '';
00133 $footerText = $formResultRow['form_footertext'];
00134 }
00135 }
00136
00137 $requireLoginN = $requireLogin == '' ? 'checked="checked"' : '';
00138 $sendConfirmationN = $sendConfirmation == '' ? 'checked="checked"' : '';
00139 $useCaptchaN = $useCaptcha == '' ? 'checked="checked"' : '';
00140 $userEditN = $userEdit == '' ? 'checked="checked"' : '';
00141 $userUnregisterN = $userUnregister == '' ? 'checked="checked"' : '';
00142 $userEmailN = $userEmail == '' ? 'checked="checked"' : '';
00143 $userFullnameN = $userFullname == '' ? 'checked="checked"' : '';
00144 $userProfiledataN = $userProfiledata == '' ? 'checked="checked"' : '';
00145 $regDateN = $regDate == '' ? 'checked="checked"' : '';
00146 $lastUpdateN = $lastUpdate == '' ? 'checked="checked"' : '';
00147
00148 $disableBecauseAssociated = '';
00149 if($associatedGroupId > 0) {
00150 $requireLogin = $userUnregister = 'checked="checked"';
00151 $requireLoginN = $userUnregisterN = '';
00152 $disableBecauseAssociated = 'disabled="disabled"';
00153 }
00154
00156 $formDescBody =<<<BODY
00157
00158 <link rel="stylesheet" type="text/css" media="all" href="$calpath/form/calendar/calendar.css" title="Aqua" />
00159 <script type="text/javascript" src="$calpath/form/calendar/calendar.js"></script>
00160
00161 <form id="formdetails" action="./+$action" method="post">
00162 <table width="100%" cellpadding="1" cellspacing="1" border="1">
00163 <tr>
00164 <td width="20%">Form Heading:</td><td><input type="text" name="txtFormHeading" value="$formHeading" onblur=check(this); /></td>
00165
00166 <script type=text/javascript>
00167 function check(field) {
00168 val = field.value;
00169 if(field.value.length == 0) {
00170
00171 alert("Enter a Form name");
00172 field.focus();
00173
00174 }
00175 }
00176 </script>
00177 </tr>
00178 <tr>
00179 <td>Require Login?</td>
00180 <td>
00181 <label><input type="radio" name="optLoginRequired" value="yes" $requireLogin $disableBecauseAssociated />Yes</label>
00182 <label><input type="radio" name="optLoginRequired" value="no" $requireLoginN $disableBecauseAssociated />No</label>
00183 </td>
00184 </tr>
00185 <tr>
00186 <td>Form Header:</td>
00187 <td>
00188 <textarea style="width:98%" name="txtHeaderText" rows="10" cols="60">$headerText</textarea>
00189 </td>
00190 </tr>
00191
00192 <tr>
00193 <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>
00194 </tr>
00195
00196 <tr>
00197 <td>Send Confirmation?</td>
00198 <td>
00199 <label><input type="radio" name="optSendConfirmation" value="yes" $sendConfirmation />Yes</label>
00200 <label><input type="radio" name="optSendConfirmation" value="no" $sendConfirmationN />No</label>
00201 </td>
00202 </tr>
00203 <tr>
00204 <td>Use CAPTCHA Validation?</td>
00205 <td>
00206 <label><input type="radio" name="optUseCaptcha" value="yes" $useCaptcha />Yes</label>
00207 <label><input type="radio" name="optUseCaptcha" value="no" $useCaptchaN />No</label>
00208 </td>
00209 </tr>
00210 <tr>
00211 <td>Allow user to edit his entries again once registered?</td>
00212 <td>
00213 <label><input type="radio" name="optUserEdit" value="yes" $userEdit />Yes</label>
00214 <label><input type="radio" name="optUserEdit" value="no" $userEditN />No</label>
00215 </td>
00216 </tr>
00217 <tr>
00218 <td>Give the user the option to unregister?</td>
00219 <td>
00220 <label><input type="radio" name="optUserUnregister" value="yes" $userUnregister $disableBecauseAssociated />Yes</label>
00221 <label><input type="radio" name="optUserUnregister" value="no" $userUnregisterN $disableBecauseAssociated />No</label>
00222 </td>
00223 </tr>
00224
00225 <tr>
00226 <td>Form Footer:</td>
00227 <td>
00228 <textarea style="width:98%" name="txtFooterText" rows="8" cols="60">$footerText</textarea>
00229 </td>
00230 </tr>
00231 <tr ><td colspan="2"><b>Settings for viewing registrants :</b> </td></tr>
00232 <tr>
00233 <td>Show user e-mail?</td>
00234 <td>
00235 <label><input type="radio" name="optUserEmail" value="yes" $userEmail />Yes</label>
00236 <label><input type="radio" name="optUserEmail" value="no" $userEmailN />No</label>
00237 </td>
00238 </tr>
00239 <tr>
00240 <td>Show user fullname?</td>
00241 <td>
00242 <label><input type="radio" name="optUserFullname" value="yes" $userFullname />Yes</label>
00243 <label><input type="radio" name="optUserFullname" value="no" $userFullnameN />No</label>
00244 </td>
00245 </tr>
00246 <tr>
00247 <td>Show user profile information?</td>
00248 <td>
00249 <label><input type="radio" name="optUserProfiledata" value="yes" $userProfiledata />Yes</label>
00250 <label><input type="radio" name="optUserProfiledata" value="no" $userProfiledataN />No</label>
00251 </td>
00252 </tr>
00253 <tr>
00254 <td>Show Registration Date?</td>
00255 <td>
00256 <label><input type="radio" name="optRegDate" value="yes" $regDate />Yes</label>
00257 <label><input type="radio" name="optRegDate" value="no" $regDateN />No</label>
00258 </td>
00259 </tr>
00260 <tr>
00261 <td>Show Last Update Date?</td>
00262 <td>
00263 <label><input type="radio" name="optLastUpdate" value="yes" $lastUpdate />Yes</label>
00264 <label><input type="radio" name="optLastUpdate" value="no" $lastUpdateN />No</label>
00265 </td>
00266 </tr>
00267 </table>
00268 <input type="submit" name="submittedform_desc" value="Update Form" />
00269 </form><br/>
00270 BODY;
00271 return $formDescBody;
00272 }
00273
00274
00275
00276 function generateFormElementDescBody($moduleCompId, $action = 'editform') {
00277 global $sourceFolder,$cmsFolder;
00278 global $templateFolder;global $moduleFolder;
00279 global $urlRequestRoot;
00280 $imagePath = "$urlRequestRoot/$cmsFolder/$templateFolder";$calpath="$urlRequestRoot/$cmsFolder/$moduleFolder";
00281
00282 $elementsQuery = "SELECT * FROM `form_elementdesc` WHERE `page_modulecomponentid` = $moduleCompId ORDER BY `form_elementrank` ASC";
00283 $elementsResult = mysql_query($elementsQuery) or die(mysql_error());
00284 $elementData = '';
00285 while($elementsRow = mysql_fetch_assoc($elementsResult)) {
00286 $tmpElement = new FormElement();
00287 $tmpElement->fromMysqlTableRow($elementsRow);
00288
00289 $elementData .= $tmpElement->toHtmlTableRow($imagePath, $action) . "\n";
00290 }
00291 $formElementDescBody =<<<BODY
00292 <h2>Fields:</h2>
00293 <form id="formentries" action="./+$action" method="POST">
00294 <table cellpadding="1" cellspacing="1" border="1">
00295 <tr>
00296 <th>Actions</th>
00297
00298 <th>Name</th>
00299 <th>Description</th>
00300 <th>Type</th>
00301 <th>Tooltip</th>
00302 <th>Other Information</th>
00303 <th title="Only in the case of radio, check or select element type">Extra options*</th>
00304
00305 </tr>
00306 $elementData
00307 </tr>
00308 </table>
00309
00310 <input type="submit" name="addformelement_descsubmit" value="Add Element">
00311
00312 </form>
00313 BODY;
00314 return $formElementDescBody;
00315 }
00316
00317
00318 function moveFormElement($moduleCompId,$subaction,$elementId) {
00319 if ($subaction=='moveDown') {
00320 $compare = ">=";
00321 $order = "ASC";
00322 }
00323 else if($subaction=='moveUp') {
00324 $compare = "<=";
00325 $order = "DESC";
00326 }
00327
00328
00329
00330 $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";
00331 $result = mysql_query($query) or die(mysql_query());
00332 if (mysql_num_rows($result) == 0) {
00333 displayerror("You cannot move up/down the first/last element in form");
00334
00335 } else {
00336 $tempTarg = mysql_fetch_assoc($result);
00337 $query = "SELECT `form_elementrank` FROM `form_elementdesc` WHERE `page_modulecomponentid`=$moduleCompId AND `form_elementid`=$elementId";
00338 $result = mysql_query($query) or die(mysql_query());
00339 $tempSrc = mysql_fetch_assoc($result);
00340
00341 if ($tempTarg['form_elementrank'] == $tempSrc['form_elementrank']) {
00342 $query = "UPDATE `form_elementdesc` SET `form_elementrank` = `form_elementid` WHERE `page_modulecomponentid`='$tempTarg[page_modulecomponentid]'";
00343 $result = mysql_query($query) or die(mysql_error());
00344 if (mysql_affected_rows() > 0)
00345 displayinfo("Error in form element rank corrected. Please reorder them");
00346 else
00347 displayerror("Failed to correct error in form element ranks!");
00348 } else {
00349 $query = "UPDATE `form_elementdesc` SET `form_elementrank` = '$tempSrc[form_elementrank]' WHERE `page_modulecomponentid`='$tempTarg[page_modulecomponentid]' AND `form_elementid`=$tempTarg[form_elementid]";
00350 $result = mysql_query($query) or die(mysql_error());
00351 $query = "UPDATE `form_elementdesc` SET `form_elementrank` = '$tempTarg[form_elementrank]' WHERE `page_modulecomponentid`='$moduleCompId' AND `form_elementid`=$elementId";
00352 $result = mysql_query($query) or die(mysql_error());
00353 }
00354 }
00355
00356 }
00357
00358
00362 function deleteFormElement($moduleCompId,$elementId) {
00363 $query="DELETE FROM `form_elementdesc` WHERE `page_modulecomponentid` = $moduleCompId AND `form_elementid`=$elementId";
00364 $resultDel=mysql_query($query);
00365 if(mysql_affected_rows()>0)
00366 $query1=1;
00367 else $query1=0;
00368 $queryDelData="DELETE FROM `form_elementdata` WHERE `page_modulecomponentid` = $moduleCompId AND `form_elementid`=$elementId";
00369 $resultDelData=mysql_query($queryDelData);
00370 if(!$resultDelData) { displayerror('Invalid query: ' . mysql_error()); return false; }
00371 $queryAffectedRows=mysql_affected_rows();
00372 if($queryAffectedRows>0)
00373 $query2=1;
00374 else $query2=0;
00375 if($query1&&$query2)
00376 return true;
00377 else return false;
00378 }
00379
00380
00382 function addDefaultFormElement($moduleCompId) {
00383 $query="SELECT MAX(`form_elementid`) FROM `form_elementdesc` WHERE `page_modulecomponentid`=$moduleCompId";
00384 $result=mysql_query($query);
00385 $row = mysql_fetch_row($result);
00386
00387 $elementId = 0;
00388 if(!is_null($row[0])) {
00389 $elementId = $row[0] + 1;
00390 }
00391
00392 $queryInsert="INSERT INTO `form_elementdesc` " .
00393 "(`page_modulecomponentid`, `form_elementid`, `form_elementname`, `form_elementdisplaytext`, " .
00394 "`form_elementtype`, `form_elementsize`, `form_elementtypeoptions`, `form_elementdefaultvalue`, " .
00395 "`form_elementmorethan`, `form_elementlessthan`, `form_elementcheckint`, `form_elementtooltiptext`," .
00396 "`form_elementisrequired` ,`form_elementrank`) VALUES " .
00397 "($moduleCompId, $elementId, 'register', 'Are you sure you want to register ?', 'radio', 100, 'Yes|No' , NULL , NULL , NULL , 0, '', 0, $elementId)";
00398 $resultAdd=mysql_query($queryInsert);
00399
00400
00401
00402
00403
00404 if(mysql_affected_rows()>0)
00405 return true;
00406 else return false;
00407 }
00408