コード例 #1
0
ファイル: PageTest.php プロジェクト: gobjila/BackBee
 /**
  * @covers BackBee\NestedNode\Page::setMetaData
  */
 public function testSetMetaData()
 {
     $meta = new MetaDataBag();
     $this->assertEquals($this->page, $this->page->setMetaData($meta));
     $this->assertEquals($meta, $this->page->getMetaData());
     $this->assertEquals($this->page, $this->page->setMetaData(null));
     $this->assertNull($this->page->getMetaData());
 }
コード例 #2
0
ファイル: PageController.php プロジェクト: Bensid/BackBee
 /**
  * Update page's metadatas.
  *
  * @param Page    $page    the page we want to update its metadatas
  * @param Request $request
  *
  * @return Symfony\Component\HttpFoundation\Response
  *
  * @Rest\ParamConverter(name="page", class="BackBee\NestedNode\Page")
  */
 public function putMetadataAction(Page $page, Request $request)
 {
     $metadatas = $page->getMetaData();
     foreach ($request->request->all() as $name => $attributes) {
         if ($metadatas->has($name)) {
             foreach ($attributes as $attr_name => $attr_value) {
                 if ($attr_value !== $metadatas->get($name)->getAttribute($attr_name)) {
                     $metadatas->get($name)->setAttribute($attr_name, $attr_value);
                 }
             }
         }
     }
     $page->setMetaData($metadatas->compute($page));
     $this->getApplication()->getEntityManager()->flush($page);
     return $this->createJsonResponse(null, 204);
 }