Example #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');
 }
Example #2
0
 /**
  * @param $value string
  * @param $class Reflection_Class
  */
 public function __construct($value, Reflection_Class $class)
 {
     parent::__construct($value);
     if (!$this->value) {
         $class_name = $class->getName();
         $this->value = Set::defaultSetClassNameOf($class_name);
     }
 }
 /**
  * @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');
 }
Example #4
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);
     }
 }
Example #5
0
 /**
  * @param $row     List_Row a row element
  * @param $element null The element should always be null, we only need the row
  */
 public function add($row, $element = null)
 {
     parent::add($row, null);
 }
Example #6
0
 /**
  * Gets the main object from the parameters
  *
  * If no main object is set (eq first parameter is not an object), create it using class name.
  * Beware : the created object will then automatically be added to the beginning
  * of the parameters list.
  *
  * @param $class_name           string|object
  * @param $search_by_properties string[]
  * @return object
  */
 public function getMainObject($class_name = null, $search_by_properties = [])
 {
     if (is_object($class_name)) {
         $default_object = $class_name;
         $class_name = get_class($class_name);
     }
     reset($this->parameters);
     $object = $this->getObject(key($this->parameters));
     if (!$object || !is_object($object)) {
         if ($search_by_properties) {
             $object = $this->searchMainObject($class_name, $search_by_properties);
         }
         if ((!$object || !is_object($object)) && !$class_name) {
             $class_name = $this->uri->controller_name;
         }
     }
     if (!$object || !is_object($object) || isset($class_name) && !is_a($object, $class_name)) {
         $object = isset($default_object) ? $default_object : (isset($class_name) && @class_exists($class_name) ? Builder::create($class_name) : Set::instantiate($class_name));
         $this->parameters = array_merge([get_class($object) => $object], $this->parameters);
     }
     return $object;
 }
Example #7
0
 /**
  * @return string
  */
 public function getSetClassName()
 {
     $expr = '%' . '\\n\\s+\\*\\s+' . '@set' . '\\s+([\\\\\\w]+)' . '%';
     preg_match($expr, $this->getDocComment(), $match);
     return $match ? Namespaces::defaultFullClassName($match[1], $this->name) : Set::defaultSetClassNameOf($this->name);
 }
Example #8
0
 /**
  * @param string $code
  * @return Setting
  */
 public function get($code)
 {
     return parent::get($code);
 }