Main Page | Directories | Namespace List | Class Hierarchy | Alphabetical List | Class List | File List | Class Members | File Members | Related Pages | Examples

wizard_forms.php File Reference

Go to the source code of this file.

Namespaces

namespace  TYPO3

Classes

class  SC_wizard_forms

Functions

 changeFunc ()
 Detects if a control button (up/down/around/delete) has been pressed for an item and accordingly it will manipulate the internal FORMCFG array.
 cfgArray2CfgString ($cfgArr)
 Converts the input array to a configuration code string.
 cfgString2CfgArray ($cfgStr)
 Converts the input configuration code string into an array.
 cleanT ($tArr)
 Removes any "trailing elements" in the array which consists of whitespace (little like trim() does for strings, so this does for arrays).
 formatCells ($fArr)
 Wraps items in $fArr in table cells/rows, displaying them vertically.

Variables

 $BACK_PATH = ''
 [CLASS/FUNCTION INDEX of SCRIPT]
 $content = '<input type="image" class="c-inputButton" name="_refresh"'.t3lib_iconWorks::skinImg('','gfx/refresh_n.gif','').' title="'.$LANG->getLL('forms_refresh',1).'" />'
 $SOBE = t3lib_div::makeInstance('SC_wizard_forms')


Function Documentation

cfgArray2CfgString cfgArr  ) 
 

Converts the input array to a configuration code string.

Parameters:
array Array of form configuration (follows the input structure from the form wizard POST form)
Returns:
string The array converted into a string with line-based configuration.
See also:
cfgString2CfgArray()

Definition at line 719 of file wizard_forms.php.

References cleanT().

00719                                           {
00720 
00721          // Initialize:
00722       $inLines=array();
00723 
00724          // Traverse the elements of the form wizard and transform the settings into configuration code.
00725       foreach($cfgArr as $vv) {
00726          if ($vv['comment'])  {  // If "content" is found, then just pass it over.
00727             $inLines[]=trim($vv['comment']);
00728          } else { // Begin to put together the single-line configuration code of this field:
00729 
00730                // Reset:
00731             $thisLine=array();
00732 
00733                // Set Label:
00734             $thisLine[0]=str_replace('|','',$vv['label']);
00735 
00736                // Set Type:
00737             if ($vv['type'])  {
00738                $thisLine[1]=($vv['required']?'*':'').str_replace(',','',($vv['fieldname']?$vv['fieldname'].'=':'').$vv['type']);
00739 
00740                   // Default:
00741                $tArr=array('','','','','','');
00742                switch((string)$vv['type'])   {
00743                   case 'textarea':
00744                      if (intval($vv['cols']))   $tArr[0]=intval($vv['cols']);
00745                      if (intval($vv['rows']))   $tArr[1]=intval($vv['rows']);
00746                      if (trim($vv['extra']))    $tArr[2]=trim($vv['extra']);
00747                      if (strlen($vv['specialEval']))  {
00748                         $thisLine[2] = '';   // Preset blank default value so position 3 can get a value...
00749                         $thisLine[3] = $vv['specialEval'];
00750                      }
00751                   break;
00752                   case 'input':
00753                   case 'password':
00754                      if (intval($vv['size']))   $tArr[0]=intval($vv['size']);
00755                      if (intval($vv['max']))    $tArr[1]=intval($vv['max']);
00756                      if (strlen($vv['specialEval']))  {
00757                         $thisLine[2] = '';   // Preset blank default value so position 3 can get a value...
00758                         $thisLine[3] = $vv['specialEval'];
00759                      }
00760                   break;
00761                   case 'file':
00762                      if (intval($vv['size']))   $tArr[0]=intval($vv['size']);
00763                   break;
00764                   case 'select':
00765                      if (intval($vv['size']))   $tArr[0]=intval($vv['size']);
00766                      if ($vv['autosize']) $tArr[0]='auto';
00767                      if ($vv['multiple']) $tArr[1]='m';
00768                   break;
00769                }
00770                $tArr = $this->cleanT($tArr);
00771                if (count($tArr)) $thisLine[1].=','.implode(',',$tArr);
00772 
00773                $thisLine[1]=str_replace('|','',$thisLine[1]);
00774 
00775                   // Default:
00776                if ($vv['type']=='select' || $vv['type']=='radio') {
00777                   $thisLine[2]=str_replace(chr(10),', ',str_replace(',','',$vv['options']));
00778                } elseif ($vv['type']=='check')  {
00779                   if ($vv['default'])  $thisLine[2]=1;
00780                } elseif (strcmp(trim($vv['default']),'')) {
00781                   $thisLine[2]=$vv['default'];
00782                }
00783                if (isset($thisLine[2]))      $thisLine[2]=str_replace('|','',$thisLine[2]);
00784             }
00785 
00786                // Compile the final line:
00787             $inLines[]=ereg_replace("[\n\r]*",'',implode(' | ',$thisLine));
00788          }
00789       }
00790          // Finally, implode the lines into a string, and return it:
00791       return implode(chr(10),$inLines);
00792    }

cfgString2CfgArray cfgStr  ) 
 

Converts the input configuration code string into an array.

Parameters:
string Configuration code
Returns:
array Configuration array
See also:
cfgArray2CfgString()

Definition at line 801 of file wizard_forms.php.

References $val.

00801                                           {
00802 
00803          // Traverse the number of form elements:
00804       $tLines=explode(chr(10),$cfgStr);
00805       foreach($tLines as $k => $v)  {
00806 
00807             // Initialize:
00808          $confData=array();
00809          $val=trim($v);
00810 
00811             // Accept a line as configuration if a) it is blank(! - because blank lines indicates new, unconfigured fields) or b) it is NOT a comment.
00812          if (!$val || strcspn($val,'#/')) {
00813 
00814                // Split:
00815             $parts = t3lib_div::trimExplode('|',$val);
00816 
00817                // Label:
00818             $confData['label'] = trim($parts[0]);
00819 
00820                // Field:
00821             $fParts = t3lib_div::trimExplode(',',$parts[1]);
00822             $fParts[0]=trim($fParts[0]);
00823             if (substr($fParts[0],0,1)=='*') {
00824                $confData['required'] = 1;
00825                $fParts[0] = substr($fParts[0],1);
00826             }
00827 
00828             $typeParts = t3lib_div::trimExplode('=',$fParts[0]);
00829             $confData['type'] = trim(strtolower(end($typeParts)));
00830 
00831             if ($confData['type'])  {
00832                if (count($typeParts)==1)  {
00833                   $confData['fieldname'] = substr(ereg_replace('[^a-zA-Z0-9_]','',str_replace(' ','_',trim($parts[0]))),0,30);
00834 
00835                      // Attachment names...
00836                   if ($confData['type']=='file')   {
00837                      $confData['fieldname']='attachment'.$attachmentCounter;
00838                      $attachmentCounter=intval($attachmentCounter)+1;
00839                   }
00840                } else {
00841                   $confData['fieldname'] = str_replace(' ','_',trim($typeParts[0]));
00842                }
00843 
00844                switch((string)$confData['type'])   {
00845                   case 'select':
00846                   case 'radio':
00847                      $confData['default'] = implode(chr(10),t3lib_div::trimExplode(',',$parts[2]));
00848                   break;
00849                   default:
00850                      $confData['default'] = trim($parts[2]);
00851                   break;
00852                }
00853 
00854                   // Field configuration depending on the fields type:
00855                switch((string)$confData['type'])   {
00856                   case 'textarea':
00857                      $confData['cols'] = $fParts[1];
00858                      $confData['rows'] = $fParts[2];
00859                      $confData['extra'] = strtoupper($fParts[3])=='OFF' ? 'OFF' : '';
00860                      $confData['specialEval'] = trim($parts[3]);
00861                   break;
00862                   case 'input':
00863                   case 'password':
00864                      $confData['size'] = $fParts[1];
00865                      $confData['max'] = $fParts[2];
00866                      $confData['specialEval'] = trim($parts[3]);
00867                   break;
00868                   case 'file':
00869                      $confData['size'] = $fParts[1];
00870                   break;
00871                   case 'select':
00872                      $confData['size'] = intval($fParts[1])?$fParts[1]:'';
00873                      $confData['autosize'] = strtolower(trim($fParts[1]))=='auto' ? 1 : 0;
00874                      $confData['multiple'] = strtolower(trim($fParts[2]))=='m' ? 1 : 0;
00875                   break;
00876                }
00877             }
00878          } else {
00879                // No configuration, only a comment:
00880             $confData=array(
00881                'comment' => $val
00882             );
00883          }
00884 
00885             // Adding config array:
00886          $cfgArr[]=$confData;
00887       }
00888 
00889          // Return cfgArr
00890       return $cfgArr;
00891    }

changeFunc  ) 
 

Detects if a control button (up/down/around/delete) has been pressed for an item and accordingly it will manipulate the internal FORMCFG array.

Returns:
void private

Definition at line 660 of file wizard_forms.php.

Referenced by SC_wizard_table::getConfigCode(), and SC_wizard_forms::getConfigCode().

00660                            {
00661       if ($this->FORMCFG['row_remove'])   {
00662          $kk = key($this->FORMCFG['row_remove']);
00663          $cmd='row_remove';
00664       } elseif ($this->FORMCFG['row_add'])   {
00665          $kk = key($this->FORMCFG['row_add']);
00666          $cmd='row_add';
00667       } elseif ($this->FORMCFG['row_top'])   {
00668          $kk = key($this->FORMCFG['row_top']);
00669          $cmd='row_top';
00670       } elseif ($this->FORMCFG['row_bottom'])   {
00671          $kk = key($this->FORMCFG['row_bottom']);
00672          $cmd='row_bottom';
00673       } elseif ($this->FORMCFG['row_up']) {
00674          $kk = key($this->FORMCFG['row_up']);
00675          $cmd='row_up';
00676       } elseif ($this->FORMCFG['row_down'])  {
00677          $kk = key($this->FORMCFG['row_down']);
00678          $cmd='row_down';
00679       }
00680 
00681       if ($cmd && t3lib_div::testInt($kk)) {
00682          if (substr($cmd,0,4)=='row_') {
00683             switch($cmd)   {
00684                case 'row_remove':
00685                   unset($this->FORMCFG['c'][$kk]);
00686                break;
00687                case 'row_add':
00688                   $this->FORMCFG['c'][$kk+1]=array();
00689                break;
00690                case 'row_top':
00691                   $this->FORMCFG['c'][1]=$this->FORMCFG['c'][$kk];
00692                   unset($this->FORMCFG['c'][$kk]);
00693                break;
00694                case 'row_bottom':
00695                   $this->FORMCFG['c'][1000000]=$this->FORMCFG['c'][$kk];
00696                   unset($this->FORMCFG['c'][$kk]);
00697                break;
00698                case 'row_up':
00699                   $this->FORMCFG['c'][$kk-3]=$this->FORMCFG['c'][$kk];
00700                   unset($this->FORMCFG['c'][$kk]);
00701                break;
00702                case 'row_down':
00703                   $this->FORMCFG['c'][$kk+3]=$this->FORMCFG['c'][$kk];
00704                   unset($this->FORMCFG['c'][$kk]);
00705                break;
00706             }
00707             ksort($this->FORMCFG['c']);
00708          }
00709       }
00710    }

cleanT tArr  ) 
 

Removes any "trailing elements" in the array which consists of whitespace (little like trim() does for strings, so this does for arrays).

Parameters:
array Single dim array
Returns:
array Processed array private

Definition at line 900 of file wizard_forms.php.

References $a.

Referenced by cfgArray2CfgString().

00900                            {
00901       for($a=count($tArr);$a>0;$a--)   {
00902          if (strcmp($tArr[$a-1],''))   {
00903             break;
00904          } else {
00905             unset($tArr[$a-1]);
00906          }
00907       }
00908       return $tArr;
00909    }

formatCells fArr  ) 
 

Wraps items in $fArr in table cells/rows, displaying them vertically.

Parameters:
array Array of label/HTML pairs.
Returns:
string HTML table private

Definition at line 918 of file wizard_forms.php.

References table().

Referenced by SC_wizard_forms::getFormHTML().

00918                                  {
00919 
00920          // Traverse the elements in $fArr and wrap them in table cells:
00921       $lines=array();
00922       foreach($fArr as $l => $c) {
00923          $lines[]='
00924             <tr>
00925                <td nowrap="nowrap">'.htmlspecialchars($l.':').'&nbsp;</td>
00926                <td>'.$c.'</td>
00927             </tr>';
00928       }
00929 
00930          // Add a cell which will set a minimum width:
00931       $lines[]='
00932          <tr>
00933             <td nowrap="nowrap"><img src="clear.gif" width="70" height="1" alt="" /></td>
00934             <td></td>
00935          </tr>';
00936 
00937          // Wrap in table and return:
00938       return '
00939          <table border="0" cellpadding="0" cellspacing="0">
00940             '.implode('',$lines).'
00941          </table>';
00942    }


Variable Documentation

$BACK_PATH = ''
 

[CLASS/FUNCTION INDEX of SCRIPT]

175: class SC_wizard_forms 203: function init() 242: function main() 258: function printContent() 267: function formsWizard()

SECTION: Helper functions 310: function getConfigCode(&$row) 381: function getFormHTML($formCfgArray,$row) 660: function changeFunc() 719: function cfgArray2CfgString($cfgArr) 801: function cfgString2CfgArray($cfgStr) 900: function cleanT($tArr) 918: function formatCells($fArr)

TOTAL FUNCTIONS: 11 (This index is automatically created/updated by the extension "extdeveval")

Definition at line 63 of file wizard_forms.php.

return $content = '<input type="image" class="c-inputButton" name="_refresh"'.t3lib_iconWorks::skinImg('','gfx/refresh_n.gif','').' title="'.$LANG->getLL('forms_refresh',1).'" />'
 

Definition at line 651 of file wizard_forms.php.

$SOBE = t3lib_div::makeInstance('SC_wizard_forms')
 

Definition at line 962 of file wizard_forms.php.


Generated on Sun Oct 3 01:06:22 2004 for TYPO3core 3.7.0 dev by  doxygen 1.3.8-20040913