public function index(Application $app, Request $request, $class_name_id, $id = null)
 {
     //
     $ClassName = $app['eccube.repository.class_name']->find($class_name_id);
     if (!$ClassName) {
         throw new NotFoundHttpException();
     }
     if ($id) {
         $TargetClassCategory = $app['eccube.repository.class_category']->find($id);
         if (!$TargetClassCategory || $TargetClassCategory->getClassName() != $ClassName) {
             throw new NotFoundHttpException();
         }
     } else {
         $TargetClassCategory = new \Eccube\Entity\ClassCategory();
         $TargetClassCategory->setClassName($ClassName);
     }
     //
     $form = $app['form.factory']->createBuilder('admin_class_category', $TargetClassCategory)->getForm();
     if ($request->getMethod() === 'POST') {
         $form->handleRequest($request);
         if ($form->isValid()) {
             $status = $app['eccube.repository.class_category']->save($TargetClassCategory);
             if ($status) {
                 $app->addSuccess('admin.class_category.save.complete', 'admin');
                 return $app->redirect($app->url('admin_product_class_category', array('class_name_id' => $ClassName->getId())));
             } else {
                 $app->addError('admin.class_category.save.error', 'admin');
             }
         }
     }
     $ClassCategories = $app['eccube.repository.class_category']->getList($ClassName);
     return $app->render('Product/class_category.twig', array('form' => $form->createView(), 'ClassName' => $ClassName, 'ClassCategories' => $ClassCategories, 'TargetClassCategory' => $TargetClassCategory));
 }
 public function index(Application $app, Request $request, $class_name_id, $id = null)
 {
     //
     $ClassName = $app['eccube.repository.class_name']->find($class_name_id);
     if (!$ClassName) {
         throw new NotFoundHttpException('商品規格が存在しません');
     }
     if ($id) {
         $TargetClassCategory = $app['eccube.repository.class_category']->find($id);
         if (!$TargetClassCategory || $TargetClassCategory->getClassName() != $ClassName) {
             throw new NotFoundHttpException('商品規格が存在しません');
         }
     } else {
         $TargetClassCategory = new \Eccube\Entity\ClassCategory();
         $TargetClassCategory->setClassName($ClassName);
     }
     //
     $builder = $app['form.factory']->createBuilder('admin_class_category', $TargetClassCategory);
     $event = new EventArgs(array('builder' => $builder, 'ClassName' => $ClassName, 'TargetClassCategory' => $TargetClassCategory), $request);
     $app['eccube.event.dispatcher']->dispatch(EccubeEvents::ADMIN_PRODUCT_CLASS_CATEGORY_INDEX_INITIALIZE, $event);
     $form = $builder->getForm();
     if ($request->getMethod() === 'POST') {
         $form->handleRequest($request);
         if ($form->isValid()) {
             log_info('規格分類登録開始', array($id));
             $status = $app['eccube.repository.class_category']->save($TargetClassCategory);
             if ($status) {
                 log_info('規格分類登録完了', array($id));
                 $event = new EventArgs(array('form' => $form, 'ClassName' => $ClassName, 'TargetClassCategory' => $TargetClassCategory), $request);
                 $app['eccube.event.dispatcher']->dispatch(EccubeEvents::ADMIN_PRODUCT_CLASS_CATEGORY_INDEX_COMPLETE, $event);
                 $app->addSuccess('admin.class_category.save.complete', 'admin');
                 return $app->redirect($app->url('admin_product_class_category', array('class_name_id' => $ClassName->getId())));
             } else {
                 log_info('規格分類登録エラー', array($id));
                 $app->addError('admin.class_category.save.error', 'admin');
             }
         }
     }
     $ClassCategories = $app['eccube.repository.class_category']->getList($ClassName);
     return $app->render('Product/class_category.twig', array('form' => $form->createView(), 'ClassName' => $ClassName, 'ClassCategories' => $ClassCategories, 'TargetClassCategory' => $TargetClassCategory));
 }
 private function newTestClassCategory($TestCreator, $TestClassName)
 {
     $TestClassCategory = new \Eccube\Entity\ClassCategory();
     $TestClassCategory->setName('立方体')->setRank(100)->setClassName($TestClassName)->setDelFlg(false)->setCreator($TestCreator);
     return $TestClassCategory;
 }
 /**
  * 規格分類を生成する.
  *
  * @param $classcategory_name string 規格分類名
  * @param $class_name \Eccube\Entity\ClassName 規格名
  * @param $rank string 規格分類のランク
  * @return void
  */
 function createClassCategory($classcategory_name, $class_name, $rank)
 {
     $ClassCategory = new \Eccube\Entity\ClassCategory();
     $ClassCategory->setCreator($this->app['eccube.repository.member']->find(2))->setDelFlg((string) '0')->setName($classcategory_name)->setRank($rank)->setClassName($class_name)->setRank($rank);
     $this->saveEntity($ClassCategory);
     switch ($class_name->getName()) {
         case 'Size':
             $this->arrClassCategory1[] = $ClassCategory;
             break;
         case 'Color':
             $this->arrClassCategory2[] = $ClassCategory;
             break;
         default:
     }
     print "+";
 }