예제 #1
0
 /**
  * {@inheritDoc}
  */
 public function createProperty($name)
 {
     $property = new BlockProperty($name);
     $property->setEditableClass(get_class($this->editable));
     // @TODO: value conversion
     // @TODO: localized values
     $property->setValue($this->editable->getDefaultValue());
     return $property;
 }
예제 #2
0
 /**
  * @TODO: this should be moved to editable configuration.
  *
  * @param Editable\Editable $editable
  * @param BlockProperty $property
  */
 protected function configureValueTransformers(Editable\Editable $editable, BlockProperty $property)
 {
     $transformers = array();
     if ($editable instanceof Editable\Html) {
         $transformers[] = new Transformer\HtmlEditorValueTransformer();
     } elseif ($editable instanceof Editable\Link) {
         $transformers[] = new Transformer\LinkEditorValueTransformer();
     } else {
         if ($editable instanceof Editable\Image) {
             $transformers[] = new Transformer\ImageEditorValueTransformer();
         } else {
             if ($editable instanceof Editable\Gallery) {
                 $transformers[] = new Transformer\GalleryEditorValueTransformer();
             } else {
                 if ($editable instanceof Editable\InlineMap) {
                     $transformers[] = new Transformer\ArrayValueTransformer();
                 } elseif ($editable instanceof Editable\Video) {
                     $transformers[] = new Transformer\VideoEditorValueTransformer();
                 } elseif ($editable instanceof Editable\InlineMedia) {
                     $transformers[] = new Transformer\InlineMediaEditorValueTransformer();
                 }
             }
         }
     }
     foreach ($transformers as $transformer) {
         if ($transformer instanceof ContainerAware) {
             $transformer->setContainer($this->container);
         }
         if ($transformer instanceof BlockPropertyAware) {
             $transformer->setBlockProperty($property);
         }
         $editable->addEditorValueTransformer($transformer);
     }
 }
예제 #3
0
 /**
  * @param string $name
  * @param array $options
  * @return Editable
  */
 private function createEditable($name, array $options)
 {
     $editable = Editable::getEditable($name);
     $editable->setOptions($options);
     return $editable;
 }