• Main Page
  • Related Pages
  • Namespaces
  • Data Structures
  • Files
  • Examples
  • File List
  • Globals

cms/modules/form/registrationformgenerate.php

Go to the documentation of this file.
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 }
00030         function generateRegistrationForm($moduleCompId,$userId,$action="", $disableCaptcha = false) {
00031                 if($action != '')
00032                         $userId = getUserIdFromEmail(escape($_GET['useremail']));
00033                 else
00034                         $action = './+view';
00035 
00036                 if(!isset($userId)) {
00037                         displayerror('Could not load information for user with e-mail address ' . safe_html(escape($_GET['useremail'])));
00038                         return '';
00039                 }
00040 
00042                 global $cmsFolder;
00043                 global $moduleFolder;
00044                 global $urlRequestRoot;
00045                 $jsPath2 = "$urlRequestRoot/$cmsFolder/$moduleFolder/form/validation.js";//validation.js
00046                 $jsPath = "$urlRequestRoot/$cmsFolder/templates/common/scripts/formValidator.js";//validation.js
00047                 $calpath = "$urlRequestRoot/$cmsFolder/$moduleFolder";
00048                 $jsPathMooTools = "$urlRequestRoot/$cmsFolder/templates/common/scripts/mootools-1.11-allCompressed.js";
00049                 $body = '<script language="javascript" type="text/javascript" src="'.$jsPath2.'"></script>';
00050 
00051 
00053                 $jsValidationFunctions = array();
00054                 $containsFileUploadFields = false;
00055                 $formElements = getFormElementsHtmlAsArray($moduleCompId, $userId, $jsValidationFunctions, $containsFileUploadFields);
00056 
00057                 $jsValidationFunctions = join($jsValidationFunctions, ' && ');
00058 
00059                 $body .= '<link rel="stylesheet" type="text/css" media="all" href="'.$calpath.'/form/calendar/calendar.css" title="Aqua" />' .
00060                                                  '<script type="text/javascript" src="'.$calpath.'/form/calendar/calendar.js"></script>';
00061                 $body .= '<br /><br /><div class="registrationform"><form class="fValidator-form" action="'.$action.'" method="post"';
00062                 if($containsFileUploadFields)
00063                         $body .= ' enctype="multipart/form-data"';
00064                 $body .= '>';
00065 
00067                 $formQuery = 'SELECT `form_heading`, `form_headertext`, `form_footertext`, `form_usecaptcha` FROM `form_desc` WHERE ' .
00068                                                                  "`page_modulecomponentid` = $moduleCompId";
00069                 $formResult = mysql_query($formQuery);
00070                 if(!$formResult)        { displayerror('E52 : Invalid query: ' . mysql_error());        return false; }
00071                 if($formRow = mysql_fetch_assoc($formResult)) {
00072                         $body .= '<fieldset><legend>' . $formRow['form_heading'] . '</legend><br />' . $formRow['form_headertext'] . '<br />';
00073                 }
00074                 else {
00075                         displayerror('Could not load form data.');
00076                         return '';
00077                 }
00078 
00079                 $body .= "\n<table cellspacing=\"8px\"><tr>";
00080                 $body .= join($formElements, "</tr>\n<tr>") . '</tr>';
00081 
00082                 if(!$disableCaptcha && $formRow['form_usecaptcha'] == 1)
00083                         $body .= getCaptchaHtml();
00084 
00085                 $body .= '<tr>'.
00086                                 '<td colspan="2">* - Required Fields&nbsp;</td>'.
00087                         '</tr></table></fieldset>' .
00088                                                         '<br /><input type="submit" name="submitreg_form_'.$moduleCompId.'" value="Submit" />' .
00089                                                         '<br /><br />' . $formRow['form_footertext'] .
00090                                                         '</form></div>';
00091 
00092                 $body .= <<<SCRIPT
00093                         <script language="javascript" type="text/javascript">
00094                         <!--
00095                                 function validate_form(thisform) {
00096                                         return ($jsValidationFunctions);
00097                                 }
00098                         -->
00099                         </script>
00100 SCRIPT;
00101 
00102                 return $body;
00103         }
00104 
00105         function getCaptchaHtml() {
00106                         global $uploadFolder, $sourceFolder, $moduleFolder, $cmsFolder, $urlRequestRoot;
00107                         $captcha_query = "SELECT * FROM `". MYSQL_DATABASE_PREFIX."global` WHERE `attribute` = 'recaptcha'";
00108                         $captcha_res = mysql_fetch_assoc(mysql_query($captcha_query));
00109                         $recaptcha =0;                  
00110                         if($captcha_res['value'])
00111                         {
00112                         if(!fsockopen("www.google.com",80))
00113                                 $recaptcha = 0;
00114                         else {
00115                         $recaptcha =1;
00116                         $query = "SELECT `value` FROM `". MYSQL_DATABASE_PREFIX ."global` WHERE `attribute`='recaptcha_public'";
00117                         $res = mysql_fetch_assoc(mysql_query($query));
00118                         $public_key = $res['value']; 
00119                         $query = "SELECT `value` FROM `". MYSQL_DATABASE_PREFIX ."global` WHERE `attribute`='recaptcha_private'";
00120                         $res = mysql_fetch_assoc(mysql_query($query));
00121                         $private_key = $res['value'];
00122                         if(($public_key==NULL)||($private_key==NULL))
00123                                 $recaptcha = 0;
00124                         }
00125                         }
00126                         if($recaptcha)
00127                         {
00128                         require_once("$sourceFolder/$moduleFolder/form/captcha/recaptcha/recaptchalib.php");
00129                         $body = "<tr><td colspan=2>".recaptcha_get_html($public_key)."</td></tr>";
00130                         $body .="<input type='hidden' name='captcha' value='1'>";
00131                         }
00132                         else
00133                         {
00134                         require_once("$sourceFolder/$moduleFolder/form/captcha/class/captcha.class.php");
00135                         $captcha = new captcha($sourceFolder, $moduleFolder, $uploadFolder, $urlRequestRoot,$cmsFolder,6);
00136                         $_SESSION['CAPTCHAString'] = $captcha->getCaptchaString();
00137 
00138                         $body = '<tr><td>Enter the text as shown in the image :</td><td>' .
00139                                         '<img style="border:1px solid;padding:0px" src="' . $captcha->getCaptchaUrl() . '" alt="CAPTCHA" border="1"/><br/>' .
00140                                         '<input type="text" class="required" name="txtCaptcha" /><td></tr>';
00141                         $body .="<input type='hidden' name='captcha' value='0'>";
00142                         }                       
00143                         return $body;
00144         }
00145 
00146         function getFormElementsHtmlAsArray($moduleCompId, $userId, &$jsValidationFunctions, &$containsFileUploadFields) {
00150                 $containsFileUploadFields = false;
00151                 $formValues = array();
00152                 if(verifyUserRegistered($moduleCompId,$userId)) {
00153                         $dataQuery = 'SELECT `form_elementid`, `form_elementdata` FROM `form_elementdata` WHERE ' .
00154                                                                          "`page_modulecomponentid` = $moduleCompId AND `user_id` = $userId";
00155                         $dataResult = mysql_query($dataQuery);
00156                         
00157                         if(!$dataResult)        { displayerror('E35 : Invalid query: ' . mysql_error());        return false; }
00158                         while($dataRow = mysql_fetch_assoc($dataResult)) {
00159                         
00160                                 $formValues[$dataRow['form_elementid']] = $dataRow['form_elementdata'];
00161                         }
00162                 }
00163                 else {
00164                         $dataQuery = 'SELECT `form_elementid`, `form_elementdefaultvalue` FROM `form_elementdesc` WHERE ' .
00165                                                                          "`page_modulecomponentid` = $moduleCompId";
00166                         $dataResult = mysql_query($dataQuery);
00167                         
00168                         if(!$dataResult)        { displayerror('E132 : Invalid query: ' . mysql_error());       return false; }
00169                         while($dataRow = mysql_fetch_assoc($dataResult)) {
00170                         
00171                                 $formValues[$dataRow['form_elementid']] = $dataRow['form_elementdefaultvalue'];
00172                         }
00173                 }
00174         
00175                 $elementQuery = 'SELECT `form_elementid`, `form_elementtype` FROM `form_elementdesc` WHERE ' .
00176                                                                                 "`page_modulecomponentid` = $moduleCompId ORDER BY `form_elementrank`";
00177                 $elementResult = mysql_query($elementQuery);
00178                 $formElements = array();
00179                 $jsValidationFunctions = array();
00180 
00181                 while($elementRow = mysql_fetch_row($elementResult)) {
00182                         $jsOutput = '';
00183                         if($elementRow[1] == 'file') {
00184                                 $containsFileUploadFields = true;
00185                         }
00186                         
00187                         $formElements[] =
00188                                                 getFormElementInputField
00189                                                 (
00190                                                         $moduleCompId, $elementRow[0],
00191                                                         isset($formValues[$elementRow[0]]) ? $formValues[$elementRow[0]] : '', $jsOutput
00192                                                 );
00193                         if($jsOutput != '') {
00194                                 $jsValidationFunctions[] = $jsOutput;
00195                         }
00196                 }
00197 
00198                 return $formElements;
00199         }
00200 
00201 function getFormElementInputField($moduleComponentId, $elementId, $value="", &$javascriptCheckFunctions) {
00202         $elementQuery = "SELECT * FROM `form_elementdesc` WHERE `page_modulecomponentid` = " .
00203                         "$moduleComponentId AND `form_elementid` = $elementId";
00204         $elementResult = mysql_query($elementQuery);
00205 
00206         if($elementResult && $elementRow = mysql_fetch_assoc($elementResult)) {
00207                 $htmlOutput = '<td>' . $elementRow['form_elementdisplaytext'];
00208                 $jsOutput = array();
00209 
00210                 $elementHelpName = $elementRow['form_elementname'];
00211                 $elementType = $elementRow['form_elementtype'];
00212                 $elementTooltip = htmlentities($elementRow['form_elementtooltiptext']);
00213                 $elementSize = $elementRow['form_elementsize'];
00214                 $elementTypeOptions = $elementRow['form_elementtypeoptions'];
00215                 $elementMoreThan = $elementRow['form_elementmorethan'];
00216                 $elementLessThan = $elementRow['form_elementlessthan'];
00217                 $isRequired = $elementRow['form_elementisrequired'];
00218                 $elementCheckInt = ($elementRow['form_elementcheckint'])==1?true:false;
00219 
00220                 $elementName = 'form_' . $moduleComponentId . '_element_' . $elementId;
00221 
00222                 if($elementRow['form_elementisrequired'] != 0 && ucfirst(strtolower($elementType)) != "Checkbox") {
00223                         $jsOutput[] = "isFilled('$elementName', '$elementHelpName')";
00224                 }
00225 
00226                 if($isRequired)
00227                         $htmlOutput .= '*';
00228                 $htmlOutput .='</td><td>';
00229                 $functionName = "getFormElement".ucfirst(strtolower($elementType));
00230                 if($functionName($elementName,$value,$isRequired,$elementHelpName,$elementTooltip,$elementSize,$elementTypeOptions,$elementMoreThan,$elementLessThan,$elementCheckInt,$jsOutput,$htmlOutput)==false)
00231                         displayerror("Unable to run function ".$functionName);
00232         }
00233 
00234         $jsOutput = join($jsOutput, ' && ');
00235         $javascriptCheckFunctions = $jsOutput;
00236 
00237         return $htmlOutput . "</td>\n";
00238 }
00239 
00240 
00242                 function getFormElementTextarea($elementName,$value,$isRequired,$elementHelpName,$elementTooltip,$elementSize,$elementTypeOptions,$elementMoreThan,$elementLessThan,$elementCheckInt,&$jsOutput,&$htmlOutput){
00243                         $validCheck='';
00244                         if($isRequired)
00245                                 $validCheck=" class=\"required\"";
00246 
00247                         if(is_numeric($elementSize) && $elementSize > 0) {
00248                                 $i = $elementSize/5;
00249                                 $cols = (($i>20)?($i<34?$i:30):20);
00250                                 $rows = (($cols==20)?5:($cols>27?7:6));
00251                                 $sizeText = 'rows="'.$rows.'" cols="'.$cols.'"';
00252                         }
00253                         else
00254                                 $sizeText = 'rows="5" cols="20"';
00255                         $htmlOutput .= '<textarea style="width:100%" '.$sizeText.' name="'.$elementName.'" id="'.$elementName.'" title="'.$elementTooltip."\"".$validCheck.'>' . $value . '</textarea>';
00256                         return true;
00257                 }
00259                 function getFormElementPassword($elementName,$value,$isRequired,$elementHelpName,$elementTooltip,$elementSize,$elementTypeOptions,$elementMoreThan,$elementLessThan,$elementCheckInt,&$jsOutput,&$htmlOutput){
00260 
00261                         $htmlOutput .= '<input type="password" id="'.$elementName.'" title="'.$elementTooltip.'" />' . $value ;
00262                         return true;
00263                 }
00265                 function getFormElementSelect($elementName,$value,$isRequired,$elementHelpName,$elementTooltip,$elementSize,$elementTypeOptions,$elementMoreThan,$elementLessThan,$elementCheckInt,&$jsOutput,&$htmlOutput)
00266                 {
00267                         if($isRequired)
00268                         $validCheck=" class=\"required\"";
00269                         else $validCheck="";
00270 
00271                         $options = split('\|', $elementTypeOptions);
00272                         $optionsHtml = '';
00273         
00274                         for($i = 0; $i < count($options); $i++) {
00275                                 if($options[$i] == $value) {
00276                                         $optionsHtml .= '<option value="'.$i.'" selected="selected" >' . $options[$i] . "</option>\n";
00277                                 }
00278                                 else {
00279                                         $optionsHtml .= '<option value="'.$i.'" >' . $options[$i] . "</option>\n";
00280                                 }
00281                         }
00282 
00283                         $htmlOutput .= '<select name="'.$elementName.'" id="'.$elementName.'" title="'.$elementTooltip."\"".$validCheck.'>' . $optionsHtml . '</select>';
00284                         return true;
00285                 }
00286 
00288                 function getFormElementRadio($elementName,$value,$isRequired,$elementHelpName,$elementTooltip,$elementSize,$elementTypeOptions,$elementMoreThan,$elementLessThan,$elementCheckInt,&$jsOutput,&$htmlOutput)
00289                 {
00290                         if($isRequired)
00291                         $validCheck=" class=\"required\"";
00292                         else $validCheck="";
00293                         $options = split('\|', $elementTypeOptions);
00294                         $optionsHtml = '';
00295 
00296                         for($i = 0; $i < count($options); $i++) {
00297                                 $optionsHtml .= '<label><input type="radio" id="'.$elementName.'" name="'.$elementName.'" value="'.
00298                                                                                                 $i.'"';
00299 
00300                                 if($options[$i] == $value) {
00301                                         $optionsHtml .= ' checked="checked"';
00302                                 }
00303 
00304                                 $optionsHtml .= $validCheck.'/>'.$options[$i].'</label>&nbsp;&nbsp;';
00305                         }
00306 
00307                         $htmlOutput .= $optionsHtml;
00308                         return true;
00309                 }
00310 
00312                 function getFormElementCheckbox($elementName,$value,$isRequired,$elementHelpName,$elementTooltip,$elementSize,$elementTypeOptions,$elementMoreThan,$elementLessThan,$elementCheckInt,&$jsOutput,&$htmlOutput)
00313                  {
00314                         $options = split('\|', $elementTypeOptions);
00315 
00316                         $validCheck = "";
00317                         if($isRequired)
00318                                 $jsOutput[] = "isChecked('$elementName','$elementHelpName',".count($options).")";
00319 
00320 
00321                         $optionsHtml = '';
00322                         $values=explode("|",$value);
00323                         for($i = 0; $i < count($options); $i++) {
00324                                 $optionsHtml .= '<label><input type="checkbox" id="'.$elementName.'_'.$i.'" name="'.$elementName.'_'.$i.'" value="'.
00325                                                                                                 htmlentities($options[$i]).'"';
00326 
00327                                 if(array_search($options[$i],$values)!==FALSE) {
00328                                         $optionsHtml .= ' checked="checked"';
00329                                 }
00330 
00331                                 $optionsHtml .= $validCheck.' />'.$options[$i].'</label>&nbsp;&nbsp;';
00332                         }
00333 
00334                         $htmlOutput .= $optionsHtml;
00335                         return true;
00336                 }
00337 
00339                 function getFormElementFile($elementName,$value,$isRequired,$elementHelpName,$elementTooltip,$elementSize,$elementTypeOptions,$elementMoreThan,$elementLessThan,$elementCheckInt,&$jsOutput,&$htmlOutput)
00340                  {
00341                         if($isRequired && $value == '') 
00342                                 $validCheck=" class=\"required\"";
00343                         else
00344                                 $validCheck="";
00345 
00346                         global $sourceFolder;
00347                         require_once("$sourceFolder/upload.lib.php");
00348                         $htmlOutput .= getFileUploadField($elementName,"form", 2*1024*1024, $validCheck);
00349 
00350                         global $uploadFolder;
00351                         if($value != '') {
00352                                 $htmlOutput .= '<br />(Leave blank to keep current file : <a href="./' . $value . '">'.$value.'</a>)';
00353                         }
00354 
00355                         return true;
00356                 }
00357 
00359                 function getFormElementText($elementName,$value,$isRequired,$elementHelpName,$elementTooltip,$elementSize,$elementTypeOptions,$elementMoreThan,$elementLessThan,$elementCheckInt,&$jsOutput,&$htmlOutput)
00360                  {
00361                         if($isRequired)
00362                         $validCheck=" class=\"required\"";
00363                         else $validCheck="";
00364                         if($elementCheckInt)
00365                         {
00366                                 if($validCheck!="")
00367                                 $validCheck=" class=\"required numeric\"";
00368                                 else
00369                                 $validCheck=" class=\"numeric\"";
00370 
00371                                 if(!is_null($elementMoreThan) && $elementMoreThan!="")
00372                                         $validCheck .= ' min="' . ($elementMoreThan + 1) . '"';
00373                                 if(!is_null($elementLessThan) && $elementLessThan!="")
00374                                         $validCheck .= ' max="' . ($elementLessThan - 1) . '"';
00375                         }
00376                         if(is_numeric($elementSize) && $elementSize > 0) {
00377                                 $maxlength = $elementSize;
00378                                 if($elementSize > 30)
00379                                         $elementSize = 30;
00380                                 $sizeText = 'maxlength="'.$maxlength.'" size="'.$elementSize.'"';
00381                         }
00382                         else
00383                                 $sizeText = "";
00384                         $htmlOutput .= '<input type="text" '.$sizeText.' name="'.$elementName.'" id="'.$elementName.'" value="'.$value.'" ' .
00385                                                                                  'title="'.$elementTooltip."\"".$validCheck.' />';
00386                                                                                  return true;
00387                 }
00388 
00390                 function getFormElementDate($elementName,$value,$isRequired,$elementHelpName,$elementTooltip,$elementSize,$elementTypeOptions,$elementMoreThan,$elementLessThan,$elementCheckInt,&$jsOutput,&$htmlOutput)
00391                 {
00392                         return getFormElementDatetime($elementName,$value,$isRequired,$elementHelpName,$elementTooltip,$elementSize,$elementTypeOptions,$elementMoreThan,$elementLessThan,$elementCheckInt,$jsOutput,$htmlOutput,"date");
00393                 }
00394                 function getFormElementDatetime($elementName,$value,$isRequired,$elementHelpName,$elementTooltip,$elementSize,$elementTypeOptions,$elementMoreThan,$elementLessThan,$elementCheckInt,&$jsOutput,&$htmlOutput,$type="datetime")
00395                 {
00396                         $datetimeFormat = ($type == 'date' ? "'%Y-%m-%d'" : "'%Y-%m-%d %H:%M'");
00397 
00398                         if($isRequired)
00399                                 $validCheck=' class="required"';
00400                         else
00401                                 $validCheck="";
00402 
00403                         $validCheck .= ' dateformat="' . ($type == 'date' ? 'YY-MM-DD' : 'YY-MM-DD hh:mm') . '"';
00404 
00405                         if(!is_null($elementMoreThan) && $elementMoreThan != '') {
00406                                 $jsOutput[] = "checkLBDate('$elementName', '$elementMoreThan', $datetimeFormat, '$elementHelpName')";
00407                         }
00408                         if(!is_null($elementLessThan) && $elementLessThan != '') {
00409                                 $jsOutput[] = "checkUBDate('$elementName', '$elementLessThan', $datetimeFormat, '$elementHelpName')";
00410                         }
00411 
00412                         $htmlOutput .= '<input type="text" '. $validCheck . ' name="'.$elementName.'" value="' . $value . '" id="'.$elementName.'" /><input name="cal'.$elementName.'" type="reset" value=" ... " onclick="return showCalendar(\'' . $elementName . '\', '.$datetimeFormat.', \'24\', true);" />';
00413                         return true;
00414                 }

Generated on Sun Jan 2 2011 04:55:32 for Pragyan CMS by  doxygen 1.7.1