/**
  * Admin action.
  * Create or edit selected subproduct
  *
  * @var int $id Product
  */
 public function subeditAction()
 {
     if (!Zend_Auth::getInstance()->hasIdentity()) {
         throw new Zend_Exception("Access Forbidden", 403);
     }
     $parent_id = $this->getRequest()->getParam("parent_id");
     $subid = $this->getRequest()->getParam("subid");
     $productsModel = new Model_DbTable_Products();
     $subproductsModel = new Model_DbTable_Subproducts();
     // признаки вида операции
     $newRecord = $subid == null;
     $this->view->newRecord = $newRecord;
     if ($subid) {
         $product = $subproductsModel->find($subid)->current();
     } else {
         $product = $subproductsModel->createRow();
         $product->parent_id = $parent_id;
     }
     $editForm = Model_Static_Loader::loadForm("subproduct");
     if ($this->getRequest()->isPost()) {
         // отправка формы
         if ($editForm->isValid($_POST)) {
             // product first
             $values = $editForm->getValues();
             foreach ($values as $name => $value) {
                 if (isset($product->{$name})) {
                     $product->{$name} = $value;
                 }
             }
             $product->mod_date = date("Y-m-d H:i:s");
             if (!$product->add_date) {
                 $product->add_date = $product->mod_date;
             }
             $product->save();
         }
         // save productParams
         $newParams = $this->getRequest()->getParam("productparams");
         if ($newParams) {
             $newParams = array_values($newParams);
         } else {
             $newParams = array();
         }
         $product->saveNewParams($newParams);
         $this->redirect("/catalog/products/edit/category/" . $this->getRequest()->getParam("category") . "/id/" . $parent_id);
         return;
     }
     $editForm->setDefaults($product->toArray());
     $this->view->newproduct = $editForm;
     if (!$newRecord) {
         // редактируем подпродукт
         $this->view->row = $product;
         $this->view->productParams = $product->getParamsValues();
     } else {
         // новый подпродукт
         $this->view->row = $subproductsModel->createRow();
         $this->view->row->parent_id = $parent_id;
         $parentProduct = $productsModel->find($parent_id)->current();
         if ($parentProduct) {
             $this->view->productParams = $parentProduct->getSubParams();
         } else {
             $this->view->productParams = array();
         }
     }
 }