Esempio n. 1
0
 /**
  * Property select controller, starting from a given root class
  *
  * @param $parameters Parameters
  * - first : the root reference class name (ie a business object)
  * - second : if set, the selected property path into the root reference class name
  * @param $form array  not used
  * @param $files array not used
  * @return mixed
  */
 public function run(Parameters $parameters, $form, $files)
 {
     $class_name = Set::elementClassNameOf($parameters->shiftUnnamed());
     $property_path = $parameters->shiftUnnamed();
     if (empty($property_path)) {
         $top_property = new Property();
         $top_property->class = $class_name;
         $properties = $this->getProperties(new Reflection_Class($class_name));
         foreach ($properties as $property) {
             $property->path = $property->name;
         }
     } else {
         $top_property = new Reflection_Property($class_name, $property_path);
         $properties = $this->getProperties(new Reflection_Class($top_property->getType()->getElementTypeAsString()), $top_property->final_class);
         foreach ($properties as $property) {
             $property->path = $property_path . DOT . $property->name;
         }
         if (!$parameters->getRawParameter(Parameter::CONTAINER)) {
             $parameters->set(Parameter::CONTAINER, 'subtree');
         }
     }
     $objects = $parameters->getObjects();
     array_unshift($objects, $top_property);
     $objects['properties'] = $properties;
     $objects['class_name'] = $class_name;
     $objects['display_full_path'] = false;
     /**
      * Objects for the view :
      * first        Property the property object (with selected property name, or not)
      * 'properties' Reflection_Property[] all properties from the reference class
      */
     return View::run($objects, $form, $files, Property::class, 'select');
 }
 /**
  * @param $parameters Parameters
  * @param $form       array
  * @param $files      array
  * @param $class_name string
  * @return mixed
  */
 public function run(Parameters $parameters, $form, $files, $class_name)
 {
     $element_class_name = Set::elementClassNameOf($class_name);
     $parameters = $parameters->getObjects();
     $list_controller = new Data_List_Controller();
     $data_list_settings = Data_List_Settings::current($element_class_name);
     $list_controller->applyParametersToListSettings($data_list_settings, $parameters, $form);
     return View::run($parameters, $form, $files, $class_name, 'dataListSetting');
 }
Esempio n. 3
0
 /**
  * @param $parameters mixed[]
  * @return mixed
  */
 private function parseAndRun($parameters)
 {
     $first_parameter = array_shift($parameters);
     if (is_object($first_parameter)) {
         $context_class_name = get_class($first_parameter);
     } else {
         $context_class_name = Set::elementClassNameOf($first_parameter);
     }
     $context_feature = array_shift($parameters);
     $third_parameter = reset($parameters);
     if (is_object($third_parameter)) {
         return $this->deleteObject($parameters);
     } else {
         $class_name = array_shift($parameters);
         return $this->removeElement($class_name, $context_class_name, $context_feature, $parameters);
     }
 }