public function execute($request)
 {
     $this->isNew = false;
     //load config
     $this->config = ConfigPeer::retrieveByPK($this->configId = $this->getRequestParameter('id'));
     $this->forward404Unless($this->config);
     $this->configId = $this->config->getId();
     //load model
     $this->model = $this->config->getModel();
     //load other configuration for this model
     $this->configs = $this->model->getConfigs();
     //load series
     $this->series = $this->model->getSeries();
     //get brands
     $cBrand = new Criteria();
     $this->brands = BrandPeer::doSelect($cBrand);
     $this->selectedBrand = $this->series->getBrandId();
     $cFieldCat = new Criteria();
     $cFieldCat->addDescendingOrderByColumn(ConfigFieldCategoryPeer::WEIGHT);
     $this->configFieldCategories = ConfigFieldCategoryPeer::doselect($cFieldCat);
     $this->setTemplate('config');
 }
 public function execute($request)
 {
     //get params
     $this->brand = $this->getRequestParameter('brand');
     $this->series = $this->getRequestParameter('series');
     $this->model = $this->getRequestParameter('model');
     $this->configId = $this->getRequestParameter('config_id');
     //get image files
     $this->mainImage = $this->getRequest()->getFiles('main_image');
     $this->otherImages = $this->getRequest()->getFiles('other_images');
     //print_r($this->otherImages);
     //exit ();
     //load/create series and model
     if (SeriesPeer::isNew($this->series)) {
         //create new series
         $seriesObj = new Series();
         $seriesObj->setSeriesName($this->series);
         $seriesObj->setBrandId($this->brand);
         $seriesObj->save();
         //create new model
         $modelObj = new Model();
         $modelObj->setModelName($this->model);
         $modelObj->setSeries($seriesObj);
         $modelObj->save();
     } else {
         //load series object
         $seriesObj = SeriesPeer::getSeriesByName($this->series);
         if (ModelPeer::isNew($this->model)) {
             //create new model
             $modelObj = new Model();
             $modelObj->setModelName($this->model);
             $modelObj->setSeries($seriesObj);
             $modelObj->save();
         } else {
             $modelObj = ModelPeer::getModelByName($this->model);
         }
     }
     //////////////////////
     if (($this->isNew = $this->getRequestParameter('is_new')) == 'true') {
         //create new config
         $config = new Config();
         $config->setConfigName($this->getRequestParameter('name'));
         $config->setModel($modelObj);
         $config->save();
         //load config fields
         $configFields = ConfigFieldPeer::doSelect(new Criteria());
         foreach ($configFields as $configField) {
             //get param
             if ($this->hasRequestParameter("field_" . $configField->getId())) {
                 //if (strlen($this->getRequestParameter("field_".$configField->getId())) > 0 )
                 //{
                 $fieldValue = new FieldValue();
                 $fieldValue->setConfig($config);
                 $fieldValue->setFieldId($configField->getId());
                 $fieldValue->setValue($this->getRequestParameter("field_" . $configField->getId()));
                 $fieldValue->save();
                 //}
             }
         }
     } else {
         //load config
         $config = ConfigPeer::retrieveByPK($this->configId);
         //$config->setConfigName($this->getRequestParameter('name'));
         $config->setModel($modelObj);
         $config->save();
         //load config fields
         $configFields = ConfigFieldPeer::doSelect(new Criteria());
         foreach ($configFields as $configField) {
             //get param
             if ($this->hasRequestParameter("field_" . $configField->getId())) {
                 //if (strlen($this->getRequestParameter("field_".$configField->getId())) > 0 )
                 //{
                 $fieldValue = FieldValuePeer::getFieldValue($configField->getId(), $config->getId());
                 $fieldValue->setValue($this->getRequestParameter("field_" . $configField->getId()));
                 $fieldValue->save();
                 //}
             }
         }
     }
     //save main image
     MediaPeer::saveMedia($this->mainImage, $modelObj->getId(), MediaPeer::IMAGE, 'Model', true);
     //save other images
     foreach ($this->otherImages as $image) {
         MediaPeer::saveMedia($image, $modelObj->getId(), MediaPeer::IMAGE, 'Model', false);
     }
     if (($saveAndNew = $this->getRequestParameter('save_and_new')) == 'true') {
         $this->redirect('config/newconfig');
     } else {
         $this->redirect('config/editconfig?id=' . $config->getId());
     }
 }
示例#3
0
 public function executeProcessConfigForm(sfWebRequest $request)
 {
     $data = $request->getGetParameters();
     $config = new Config();
     if ($data['cid'] == '-1') {
         // New Config
         $config->setModelId($data['mid']);
         $config->save();
         foreach ($data as $field => $value) {
             if ($field != 'cid' && $field != 'mid') {
                 $fv = new FieldValue();
                 $fv->setConfigId($config->getId());
                 $fv->setFieldId(intval($field));
                 $fv->setValue($value);
                 //echo intval($field)."\n";
                 $fv->save();
             }
         }
     } else {
         $config = ConfigPeer::retrieveByPK($data['cid']);
         foreach ($data as $field => $value) {
             if ($field != 'cid' && $field != 'mid') {
                 $c = new Criteria();
                 $c->add(FieldValuePeer::FIELD_ID, intval($field));
                 $c->add(FieldValuePeer::CONFIG_ID, $config->getId());
                 $fv = FieldValuePeer::doSelectOne($c);
                 if (!is_object($fv)) {
                     $fv = new FieldValue();
                     $fv->setConfigId($config->getId());
                     $fv->setFieldId(intval($field));
                 }
                 $fv->setValue($value);
                 //echo intval($fv->getValue())."#";
                 //print_r($fv, FALSE);
                 $fv->save();
             }
         }
     }
     $this->res = $config->getId();
 }