/** * @param FormEvent $event */ public function preSet(FormEvent $event) { $entity = $event->getForm()->getParent()->getData(); if (!$this->taggableHelper->isTaggable($entity)) { return; } $this->tagManager->loadTagging($entity); $tags = $this->tagManager->getPreparedArray($entity, null, $this->organization); $event->setData($tags); }
/** * {@inheritdoc} */ public function transform($value) { // transform to JSON if we have array of entities // needed to correct rendering form if validation not passed if (is_array($value)) { $result = array(); if ($this->entity) { $result = $this->manager->getPreparedArray($this->entity, new ArrayCollection($value), $this->organization); } $value = json_encode($result); } return $value; }
/** * Loads tagging and transform it to view data * * @param FormEvent $event */ public function preSet(FormEvent $event) { $entity = $event->getForm()->getParent()->getData(); if (!$entity instanceof Taggable) { // do nothing if new entity or some error return; } $tags = $this->manager->getPreparedArray($entity); $ownTags = array_filter($tags, function ($item) { return isset($item['owner']) && $item['owner']; }); // pass entity to transformer $this->transformer->setEntity($entity); $event->setData(array('autocomplete' => null, 'all' => json_encode($tags), 'owner' => json_encode($ownTags))); }
public function testGetPreparedArrayFromArray() { $resource = new Taggable(array('id' => 1)); $this->user->expects($this->exactly(2))->method('getId')->will($this->returnValue(self::TEST_USER_ID)); $this->router->expects($this->once())->method('generate'); $repo = $this->getMockBuilder('Oro\\Bundle\\TagBundle\\Entity\\Repository\\TagRepository')->disableOriginalConstructor()->getMock(); $repo->expects($this->never())->method('getTagging'); $this->manager->getPreparedArray($resource, $this->tagForPreparing()); }
/** * Return array of tags * * @param Taggable $entity * @return array */ public function get(Taggable $entity) { return $this->manager->getPreparedArray($entity); }
/** * Return array of tags * * @param object $entity * * @return array */ public function getList($entity) { return $this->tagManager->getPreparedArray($entity); }