Пример #1
0
 /**
  * Render html of the product detail.
  *
  * @param Response     $response
  * @param ProductMaker $ProductMaker
  *
  * @return mixed|string
  */
 private function renderProductDetail(Response $response, ProductMaker $ProductMaker)
 {
     $parts = $this->app->renderView('Maker/Resource/template/default/maker.twig', array('maker_name' => $ProductMaker->getMaker()->getName(), 'maker_url' => $ProductMaker->getMakerUrl()));
     $html = $response->getContent();
     $html = $this->renderPosition($html, $parts, $this->makerTag);
     return $html;
 }
Пример #2
0
 /**
  * Create maker
  *
  * @param Maker   $Maker
  * @param Product $Product
  *
  * @return ProductMaker
  */
 protected function createProductMaker(Maker $Maker, $Product = null)
 {
     /**
      * @var Generator $faker
      */
     $faker = $this->getFaker();
     if (!$Product) {
         // New product
         /**
          * @var Generator $faker
          */
         $faker = $this->getFaker();
         $formData = $this->createFormData();
         $formData['plg_maker'] = '';
         $formData['plg_maker_url'] = '';
         /**
          * @var Client $client
          */
         $client = $this->client;
         $client->request('POST', $this->app->url('admin_product_product_new'), array('admin_product' => $formData));
         $this->assertTrue($client->getResponse()->isRedirection());
         $arrTmp = explode('/', $client->getResponse()->getTargetUrl());
         $productId = $arrTmp[count($arrTmp) - 2];
         $client->followRedirect();
         $Product = $this->app['eccube.repository.product']->find($productId);
     }
     $ProductMaker = new ProductMaker();
     $ProductMaker->setMaker($Maker);
     $ProductMaker->setMakerUrl($faker->url);
     $ProductMaker->setDelFlg(Constant::DISABLED);
     $ProductMaker->setId($Product->getId());
     $this->app['orm.em']->persist($ProductMaker);
     $this->app['orm.em']->flush($ProductMaker);
     return $ProductMaker;
 }
Пример #3
0
 /**
  * New Event:function on version >= 3.0.9 (new hook point)
  * Save event.
  *
  * @param EventArgs $eventArgs
  */
 public function onAdminProductEditComplete(EventArgs $eventArgs)
 {
     log_info('Event: product maker hook into the product management complete start.');
     /**
      * @var Form $form
      */
     $form = $eventArgs->getArgument('form');
     /**
      * @var Product $Product
      */
     $Product = $eventArgs->getArgument('Product');
     /**
      * @var ProductMakerRepository $repository
      */
     $repository = $this->app['eccube.plugin.maker.repository.product_maker'];
     /**
      * @var ProductMaker $ProductMaker
      */
     $ProductMaker = $repository->find($Product);
     if (!$ProductMaker) {
         $ProductMaker = new ProductMaker();
     }
     $maker = $form->get('plg_maker')->getData();
     if (!$maker) {
         if ($ProductMaker->getId()) {
             log_info('Event: product maker removed', array('Product maker id' => $ProductMaker->getId()));
             $this->app['orm.em']->remove($ProductMaker);
             $this->app['orm.em']->flush($ProductMaker);
         }
         return;
     }
     $makerUrl = $form->get('plg_maker_url')->getData();
     $ProductMaker->setId($Product->getId())->setMakerUrl($makerUrl)->setDelFlg(Constant::DISABLED)->setMaker($maker);
     /**
      * @var EntityRepository $this->app['orm.em']
      */
     $this->app['orm.em']->persist($ProductMaker);
     $this->app['orm.em']->flush($ProductMaker);
     log_info('Event: product maker save success!', array('Product id' => $ProductMaker->getId()));
     log_info('Event: product maker hook into the product management complete end.');
 }