Example #1
0
 /**
  * savePluginWrapper Save a plugin wrapper
  *
  * @param array $pluginData
  * @param SiteEntity $site
  * @param null $oldWrapper
  *
  * @return null|PluginWrapperEntity
  */
 public function savePluginWrapper($pluginData, SiteEntity $site, $oldWrapper = null)
 {
     if (!empty($oldWrapper) && !is_a($oldWrapper, '\\Rcm\\Entity\\PluginWrapper')) {
         throw new RuntimeException('Wrapper passed in is not a valid plugin wrapper.');
     }
     /** @var \Rcm\Repository\PluginInstance $pluginInstanceRepo */
     $pluginInstanceRepo = $this->_em->getRepository('\\Rcm\\Entity\\PluginInstance');
     $pluginData = $this->prepareData($pluginData);
     $pluginInstance = $pluginInstanceRepo->updatePlugin($pluginData, $site);
     if (!empty($oldWrapper) && ($pluginData['siteWide'] || $oldWrapper->getInstance()->isSiteWide()) && $pluginInstance->getInstanceId() != $oldWrapper->getInstance()->getInstanceId()) {
         $queryBuilder = $this->_em->createQueryBuilder();
         $queryBuilder->update('\\Rcm\\Entity\\PluginWrapper', 'wrapper')->set('wrapper.instance', $pluginInstance->getInstanceId())->where('wrapper.instance = :oldInstance')->setParameter('oldInstance', $oldWrapper->getInstance());
         $queryBuilder->getQuery()->execute();
     }
     if (!empty($oldWrapper) && $oldWrapper->getRenderOrderNumber() == $pluginData['rank'] && $oldWrapper->getRowNumber() == $pluginData['rowNumber'] && $oldWrapper->getColumnClass() == $pluginData['columnClass'] && $oldWrapper->getLayoutContainer() == $pluginData['containerName'] && ($oldWrapper->getInstance()->getInstanceId() == $pluginInstance->getInstanceId() || $pluginData['siteWide'])) {
         return $oldWrapper;
     }
     $pluginWrapper = new PluginWrapperEntity();
     $pluginWrapper->populate($pluginData);
     $pluginWrapper->setInstance($pluginInstance);
     $this->_em->persist($pluginWrapper);
     $this->_em->flush($pluginWrapper);
     return $pluginWrapper;
 }
Example #2
0
 public function testUtilities()
 {
     $data = [];
     $data['layoutContainer'] = 'TESTCONT';
     $data['renderOrder'] = 3;
     $data['height'] = 123;
     $data['width'] = 321;
     $data['divFloat'] = 'left';
     $data['instance'] = new PluginInstance();
     $obj1 = new PluginWrapper();
     $obj1->populate($data);
     $this->assertEquals($data['layoutContainer'], $obj1->getLayoutContainer());
     $this->assertEquals($data['renderOrder'], $obj1->getRenderOrderNumber());
     // Why does this return an altered data format?
     //        $this->assertEquals($data['height'] . 'px', $obj1->getHeight());
     //        $this->assertEquals($data['width'] . 'px', $obj1->getWidth());
     //
     //        $this->assertEquals($data['divFloat'], $obj1->getDivFloat());
     $this->assertEquals($data['instance'], $obj1->getInstance());
     $json = json_encode($obj1);
     $this->assertJson($json);
     $iterator = $obj1->getIterator();
     $this->assertInstanceOf('\\ArrayIterator', $iterator);
     $array = $obj1->toArray();
     $this->assertEquals($data['layoutContainer'], $array['layoutContainer']);
     $this->assertEquals($data['renderOrder'], $array['renderOrder']);
     //        $this->assertEquals($data['height'], $array['height']);
     //        $this->assertEquals($data['width'], $array['width']);
     //        $this->assertEquals($data['divFloat'], $array['divFloat']);
     $this->assertEquals($data['instance'], $array['instance']);
 }