Exemplo n.º 1
0
 public function loadFilesFromPathAction()
 {
     $this->_disableRender();
     $path = "C:\\tmp_arquivos";
     $idCategoriaDownloads = "24";
     $onlyUpdate = $this->getRequest()->getParam('only_update');
     $db = $this->getModel()->getAdapter();
     $_categoria = new Cms_Model_Categoria_Mapper();
     $_conteudo = new Cms_DataView_Conteudo_MapperView();
     $sql = 'SELECT * FROM upload_arquivo WHERE aprovado = :aprovado';
     $bind = array('aprovado' => 'S');
     $dataArquivos = $db->fetchAll($sql, $bind);
     foreach ($dataArquivos as $fileData) {
         $fileDir = glob($path . "\\" . $fileData['id'] . ".*");
         if (count($fileDir)) {
             $fileDir = $fileDir['0'];
             $fileContent = file_get_contents($fileDir);
             $fileName = end(explode("\\", $fileDir));
             $_file = new ZendT_File($fileName, $fileContent);
             if ($onlyUpdate) {
                 $_conteudo->newRow()->setArquivo(array('file' => $_file->toFilenameCrypt()))->findAll(null, '*');
                 while ($_conteudo->fetch()) {
                     $_conteudo->setIdUsuarioInc($fileData['id_usuario_inc']);
                     $_conteudo->update();
                 }
                 echo ">>> Arquivo {$fileData['id']} atualizado com sucesso!<br/>";
             } else {
                 $sql = 'SELECT * FROM upload_assunto WHERE id = :id_upload_assunto';
                 $bind = array('id_upload_assunto' => $fileData['id_upload_assunto']);
                 $dataAssunto = $db->fetchRow($sql, $bind);
                 $_categoria->newRow()->setDescricao($dataAssunto['descricao'])->retrieve();
                 $idCategoria = $_categoria->getId();
                 if (!$idCategoria) {
                     $_categoria->newRow()->setIdCategoriaPai($idCategoriaDownloads)->setDescricao($dataAssunto['descricao'])->setTipo('A')->insert();
                     $idCategoria = $_categoria->getId()->toPhp();
                 }
                 $subtitulo = substr(trim($fileData['observacao']), 0, 100);
                 $_conteudo->newRow()->setIdCategoria($idCategoria)->setTitulo($fileData['nome']);
                 if (!$_conteudo->exists()) {
                     $_conteudo->setSubTitulo($subtitulo)->setIdUsuarioInc($fileData['id_usuario_inc'])->setArquivo(array('file' => $_file->toFilenameCrypt()))->insert();
                     echo "+++ Arquivo {$fileData['id']} inserido com sucesso!<br/>";
                 } else {
                     echo ">>> Arquivo {$fileData['id']} já existe na base de dados!<br/>";
                 }
             }
         } else {
             echo "--- Arquivo {$fileData['name']} não encontrado!<br/>";
         }
     }
 }
Exemplo n.º 2
0
 /**
  * Retorna um registro no modelo de dados
  *
  * @param ZendT_Service_Param $param
  * @return ZendT_Service_Result_Data
  */
 public function retrieve($param)
 {
     $result = new ZendT_Service_Result_Data();
     $result->service = __METHOD__;
     try {
         #$this->isAllowed($token,'insert');
         /**
          * @var ZendT_Db_Mapper 
          */
         if ($param->mapperView == '') {
             throw new ZendT_Exception('MapperView não informada.');
         } else {
             $this->_loadTranslate($param->mapperView);
         }
         $_mapper = new $param->mapperView();
         $where = $this->_getWhere($_mapper, $param->id, $param->filter, $param->filters, $param->filterOp);
         $postData['noPage'] = true;
         $dataGrid = $_mapper->getDataGrid($where, $postData);
         $columns = $_mapper->getColumns()->getColumnsGrid(true);
         $row = $dataGrid->getRow();
         $result->data = array();
         $retrieve = $this->_getTypeRetrieve($param);
         if ($row) {
             foreach ($columns as $column) {
                 $key = strtolower($column->getName());
                 $_data = new ZendT_Service_Data();
                 $_data->field = $key;
                 if ($row[$key] instanceof ZendT_Type_Blob) {
                     if (isset($row[$key . '_name'])) {
                         $name = $row[$key . '_name'];
                     } else {
                         $name = 'Arquivo-' . date('dmyhis') . '.txt';
                     }
                     if (isset($row[$key . '_type'])) {
                         $type = $row[$key . '_type'];
                     } else {
                         $type = 'application/txt';
                     }
                     $_file = new ZendT_File($name, $row[$key]->get(), $type);
                     $row[$key . '_name'] = $name;
                     $row[$key . '_type'] = $type;
                     $_data->value = $_file->toFilenameCrypt(true);
                 } else {
                     $_data->value = $row[$key]->{$retrieve}();
                 }
                 $result->data[] = $_data;
             }
         }
         $result->success = 1;
     } catch (ZendT_Exception $Ex) {
         $result->success = 0;
         $result->message->code = $Ex->getCode();
         $result->message->message = $Ex->getMessage();
         $result->message->show = $Ex->getShow();
         $result->message->notification = $Ex->getNotification();
     } catch (Exception $Ex) {
         $result->success = 0;
         $result->message->code = $Ex->getCode();
         $result->message->message = $Ex->getMessage();
         $result->message->show = 1;
         $result->message->notification = 'Error';
     }
     return $result;
 }
Exemplo n.º 3
0
 protected function _retrieve()
 {
     $param = $this->getRequest()->getParams();
     if (isset($param['id']) && strpos($param['id'], ',') !== false) {
         $multi = true;
         /**
          * @todo analisar uma forma de popular o Mapper para identificação da coluna
          */
         $tableName = $this->getMapper()->getModel()->getName();
         $columnId = $this->getMapper()->getModel()->getPrimary();
         $columnId = $columnId[0];
         $where = new ZendT_Db_Where();
         $where->addFilter($tableName . '.' . $columnId, explode(',', $param['id']), 'in', $this->getMapper()->getModel()->getMapperName());
     } else {
         $multi = false;
         $where = $this->getMapper()->getWhere($param);
     }
     $wData = array('noPage' => true, 'returnType' => true);
     if ($param['findAll']) {
         $multi = true;
         $wData['count'] = false;
     }
     if ($this->_mapper instanceof ZendT_Db_View) {
         $dataGrid = $this->getMapper()->getDataGrid($where, $wData, true);
     } else {
         $dataGrid = $this->getModel()->getDataGrid($where, $wData);
     }
     $result = array();
     while ($row = $dataGrid->getRow()) {
         if ($row && count($row) > 0) {
             foreach ($row as $key => &$value) {
                 if ($value instanceof ZendT_Type_Blob) {
                     if (isset($row[$key . '_name'])) {
                         $name = $row[$key . '_name'];
                     } else {
                         $name = 'Arquivo-' . date('dmyhis') . '.txt';
                     }
                     if (isset($row[$key . '_type'])) {
                         $type = $row[$key . '_type'];
                     } else {
                         $type = 'application/txt';
                     }
                     $_file = new ZendT_File($name, $value->get(), $type);
                     $value = $_file->toFilenameCrypt();
                     $row[$key . '_id'] = $_file->getId();
                     $row[$key . '_name'] = $name;
                     $row[$key . '_type'] = $type;
                     $row[$key . '_file'] = $value;
                 } elseif ($value instanceof ZendT_Type_FileSystem) {
                     $_file = $value->getFile();
                     if ($_file) {
                         $row[$key . '_name'] = $_file->getName();
                         $row[$key . '_type'] = $_file->getType();
                         $row[$key . '_id'] = $_file->getId();
                         $row[$key . '_file'] = $_file->toFilenameCrypt();
                         $value = $_file->getName();
                     } else {
                         unset($row[$key]);
                     }
                 } elseif ($value instanceof ZendT_Type) {
                     $value = $value->get();
                 }
             }
             $listOptions = $this->getModel()->getListOptions();
             foreach ($this->getColumns() as $column) {
                 if (!$dataGrid->isRowFormated()) {
                     if (isset($listOptions[$column->getName()])) {
                         $chave = array_search($row[$column->getName()], $listOptions[$column->getName()]);
                         if ($chave !== false) {
                             $row[$column->getName()] = $column->format($chave);
                         }
                     }
                     $row[$column->getName()] = $column->format($row[$column->getName()]);
                 } else {
                     if (isset($listOptions[$column->getName()])) {
                         $chave = array_search($row[$column->getName()], $listOptions[$column->getName()]);
                         if ($chave !== false) {
                             $row[$column->getName()] = $chave;
                         }
                     }
                 }
             }
         }
         // $referenceMap = $this->getMapper()->getReferenceMap();
         // if (count($referenceMap) > 0) {
         // foreach ($referenceMap as $column => $prop) {
         // $column = strtolower($column);
         // if (isset($row[$column]) && $row[$column]) {
         // $id = $row[$column];
         // $_mapper = new $prop['mapper'];
         // $action = 'set' . $this->getMapper()->fieldToMethod($prop['column']);
         // unset($row[$column]);
         // $row[$column] = $_mapper->$action($id)->retrieveRow();
         // }
         // }
         // }
         $this->_prepareRetrieveRow($row);
         if ($multi == false) {
             $result = $row;
             break;
         } else {
             $result[] = $row;
         }
     }
     return $result;
 }