You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
					
					
						
							62 lines
						
					
					
						
							1.8 KiB
						
					
					
				
			
		
		
		
			
			
			
				
					
				
				
					
				
			
		
		
	
	
							62 lines
						
					
					
						
							1.8 KiB
						
					
					
				| <?php | |
| 
 | |
| /* | |
|  * Loads the initial data for dynamic forms into the system. This is | |
|  * preferred over providing the data inside the SQL scripts | |
|  */ | |
| 
 | |
| class DynamicFormLoader extends MigrationTask { | |
|     var $description = "Loading initial data for dynamic forms"; | |
| 
 | |
|     function run($max_time) { | |
|         $i18n = new Internationalization('en_US'); | |
|         $forms = $i18n->getTemplate('form.yaml')->getData(); | |
|         foreach ($forms as &$f) { | |
|             // Only import forms which exist at this stage. | |
|             if (!in_array($f['type'], array('U', 'T', 'C', 'O'))) | |
|                 continue; | |
| 
 | |
|             if ($f['fields'])  { | |
|                 foreach($f['fields'] as &$field) { | |
|                     $flags = $field['flags']; | |
|                     // Edit mask | |
|                     $field['edit_mask'] = $this->f2m($flags); | |
|                     // private | |
|                     if (!($flags & DynamicFormField::FLAG_CLIENT_VIEW)) | |
|                         $field['private'] = true; | |
|                     // required | |
|                     if (($flags & DynamicFormField::FLAG_CLIENT_REQUIRED) | |
|                             || ($flags & DynamicFormField::FLAG_AGENT_REQUIRED)) | |
|                         $field['required'] = true; | |
| 
 | |
|                     unset($field['flags']); | |
|                 } | |
|                 unset($field); | |
|             } | |
| 
 | |
|             DynamicForm::create($f); | |
|         } | |
|         unset($f); | |
|     } | |
| 
 | |
|     function f2m($flags) { | |
|         $masks = array( | |
|                 1 => DynamicFormField::FLAG_MASK_DELETE, | |
|                 2 => DynamicFormField::FLAG_MASK_NAME, | |
|                 4 => DynamicFormField::FLAG_MASK_VIEW, | |
|                 8 => DynamicFormField::FLAG_MASK_REQUIRE | |
|                ); | |
| 
 | |
|         $mask = 0; | |
|         foreach ($masks as $k => $v) | |
|             if (($flags & $v) != 0) | |
|                 $mask += $k; | |
| 
 | |
|         return $mask; | |
|    } | |
| 
 | |
| } | |
| 
 | |
| return 'DynamicFormLoader'; | |
| 
 | |
| ?>
 |