Beispiel #1
0
 public function editarAction()
 {
     $form = new Application_Form_Produto();
     $form->setAction($this->_helper->url('editar'));
     $request = $this->getRequest();
     $dados = $this->getRequest()->getParams();
     $id = $this->getRequest()->getParam('id');
     $dados = $this->getRequest()->getParams();
     $form->setAction($this->_helper->url('editar/id/' . $id));
     /* Obtem um unico usuário através do id passado */
     $produto = $this->_produto->find($id)->current();
     $imagens = $this->_imagens->fetchAll("pro_id_fk='{$id}'", "ima_id DESC");
     $produto->pro_tamanhos = json_decode($produto->pro_tamanhos);
     $this->view->categoria = $produto->cat_id_fk;
     $this->view->imagens = $imagens;
     $produto->pro_valor = number_format($produto->pro_valor, 2, ',', '.');
     $form->populate($produto->toArray());
     if ($request->isPost() && $form->isValid($request->getPost())) {
         try {
             $numeros = $dados["pro_tamanhos"];
             foreach ($numeros as $key => $value) {
                 $numeracao[] = $value;
             }
             $json = json_encode($numeracao);
             $valor = str_replace('.', '', $dados["pro_valor"]);
             $valor = str_replace(',', '.', $valor);
             $produto->pro_nome = $dados["pro_nome"];
             $produto->pro_identificador = $dados["pro_identificador"];
             $produto->pro_descricao = $dados["pro_descricao"];
             $produto->pro_valor = $valor;
             $produto->cat_id_fk = $dados["select_categoria"];
             $produto->pro_tamanhos = $json;
             $produto->pro_pontos = $dados["pro_pontos"];
             $produto->save();
             /** 
                          Faz o upload das imagens
                          **/
             $dir = "./uploads/produtos/";
             $adapter = new Zend_File_Transfer_Adapter_Http();
             try {
                 $this->_imagens = new Application_Model_ImagensProdutos();
                 $form->getElement('imagens')->setDestination("{$dir}");
                 foreach ($adapter->getFileInfo() as $file => $info) {
                     if ($adapter->isUploaded($file)) {
                         $name = $adapter->getFileName($file);
                         require_once APPLICATION_PATH . '/../library/Tokem/Functions/functions.php';
                         $fileName = removeAcentos($info['name']);
                         $newFileName = strtolower(str_replace(' ', '', $fileName));
                         $img_nome = md5(microtime()) . '_' . $newFileName;
                         $fname = $dir . "/" . $img_nome;
                         $caminho = ltrim($dir, ".");
                         $image = array("ima_nome" => "{$img_nome}", "pro_id_fk" => $id);
                         $imagem = $this->_imagens->fetchRow("pro_id_fk='{$id}'");
                         if (!empty($imagem)) {
                             unlink("../public/uploads/produtos/" . $imagem->ima_nome);
                             $imagem->ima_nome = $img_nome;
                             $imagem->save();
                         } else {
                             $this->_imagens->insert($image);
                         }
                         /**
                          *  Let's inject the renaming filter
                          */
                         $adapter->addFilter(new Zend_Filter_File_Rename(array('target' => $fname, 'overwrite' => true)), null, $file);
                         /**
                          * And then we call receive manually
                          */
                         $adapter->receive($file);
                     }
                 }
                 $flashMessenger = $this->_helper->FlashMessenger;
                 $flashMessenger->addMessage('
                 <div class="alert alert-success alert-dismissible" role="alert">
                 <button type="button" class="close" data-dismiss="alert" aria-label="Close"><span aria-hidden="true">&times;</span></button>
                 <strong>Sucesso</strong> - Tudo ocorreu bem!
                 </div>
             ');
                 $this->_helper->redirector('index');
                 exit;
             } catch (Exception $e) {
                 echo $e->getMessage();
                 exit;
                 $flashMessenger = $this->_helper->FlashMessenger;
                 $flashMessenger->addMessage('<div class="alert alert-danger alert-dismissible" role="alert">
                 <button type="button" class="close" data-dismiss="alert" aria-label="Close"><span aria-hidden="true">&times;</span></button>
                 <strong>ERRO</strong> - Ocorreu um erro inesperado! se persistir entre em contato com o suporte!
             </div>');
                 $this->_helper->redirector('index');
                 exit;
             }
             /**
                         fim do upload de imagens
                         **/
             $flashMessenger = $this->_helper->FlashMessenger;
             $flashMessenger->addMessage('
                 <div class="alert alert-success alert-dismissible" role="alert">
                 <button type="button" class="close" data-dismiss="alert" aria-label="Close"><span aria-hidden="true">&times;</span></button>
                 <strong>Sucesso</strong> - Tudo ocorreu bem!
                 </div>
             ');
         } catch (Zend_Db_Exception $e) {
             echo $e->getMessage();
             exit;
             $flashMessenger = $this->_helper->FlashMessenger;
             $flashMessenger->addMessage('<div class="alert alert-danger alert-dismissible" role="alert">
                 <button type="button" class="close" data-dismiss="alert" aria-label="Close"><span aria-hidden="true">&times;</span></button>
                 <strong>ERRO</strong> - Ocorreu um erro inesperado! se persistir entre em contato com o suporte!
                 </div>');
         }
         $this->_helper->redirector('index');
         exit;
     }
     $this->view->form = $form;
 }