Exemplo n.º 1
0
 public static function object_to_form($object, midgardmvc_helper_forms_group $form)
 {
     // Go through object properties
     $props = get_object_vars($object);
     $reflectionproperty = new midgard_reflection_property(get_class($object));
     foreach ($props as $property => $value) {
         if ($property == 'action' || $property == 'guid' || $property == 'id') {
             // TODO: Make the list of properties to not render configurable
             continue;
         }
         if ($property == 'metadata') {
             // Metadata is to be handled as a group
             $metadata = $form->add_group('metadata');
             $metadata->set_label('metadata');
             midgardmvc_helper_forms_mgdschema::object_to_form($value, $metadata);
         }
         $type = $reflectionproperty->get_midgard_type($property);
         switch ($type) {
             case MGD_TYPE_STRING:
                 $field = $form->add_field($property, 'text');
                 $field->set_value($value);
                 $widget = $field->set_widget('text');
                 $widget->set_label($property);
                 $widget->set_placeholder($reflectionproperty->description($property));
                 // TODO: maxlength to 255
                 break;
             case MGD_TYPE_LONGTEXT:
                 if ($reflectionproperty->get_user_value($property, 'contenttype') == 'html') {
                     $field = $form->add_field($property, 'html');
                     $widget = $field->set_widget('html');
                 } else {
                     $field = $form->add_field($property, 'text');
                     $widget = $field->set_widget('textarea');
                 }
                 $field->set_value($value);
                 $widget->set_label($property);
                 $widget->set_placeholder($reflectionproperty->description($property));
                 break;
             case MGD_TYPE_INT:
                 $field = $form->add_field($property, 'integer');
                 $field->set_value($value);
                 $widget = $field->set_widget('number');
                 $widget->set_label($property);
                 $widget->set_placeholder($reflectionproperty->description($property));
                 break;
             case MGD_TYPE_UINT:
                 $field = $form->add_field($property, 'integer');
                 $field->set_value($value);
                 // TODO: Set minimum value to 0
                 $widget = $field->set_widget('number');
                 $widget->set_label($property);
                 $widget->set_placeholder($reflectionproperty->description($property));
                 break;
             case MGD_TYPE_BOOLEAN:
                 $field = $form->add_field($property, 'boolean');
                 $field->set_value($value);
                 break;
             case MGD_TYPE_FLOAT:
             case MGD_TYPE_TIMESTAMP:
             case MGD_TYPE_GUID:
                 break;
         }
     }
 }
Exemplo n.º 2
0
 public function process_post()
 {
     parent::process_post();
     $this->post_processed = true;
 }