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/>"; } } }
/** * 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; }
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; }