Ejemplo n.º 1
0
 /**
  * @param mixed $id
  * @return WeLearn_DTO_IDTO
  */
 public function remover($id)
 {
     if (!$id instanceof UUID) {
         $id = CassandraUtil::import($id);
     }
     $configuracaoRemovida = $this->recuperar($id);
     $this->_cf->remove($id->bytes);
     $configuracaoRemovida->setPersistido(false);
     return $configuracaoRemovida;
 }
Ejemplo n.º 2
0
 public function alterar($id)
 {
     try {
         $UUID = CassandraUtil::import($id);
         $categoriaDao = WeLearn_DAO_DAOFactory::create('CategoriaForumDAO');
         $categoria = $categoriaDao->recuperar($UUID);
         $this->_expulsarNaoAutorizados($categoria->getCurso());
         $dadosFormAlterar = array('nomeAtual' => $categoria->getNome(), 'descricaoAtual' => $categoria->getDescricao());
         $dadosViewAlterar = array('idCurso' => $categoria->getCurso()->getId(), 'formAction' => 'forum/categoria/salvar', 'extraOpenForm' => 'id="form-alterar-categoria-forum"', 'hiddenFormData' => array('categoriaId' => $categoria->getId(), 'acao' => 'alterar'), 'formAlterar' => $this->template->loadPartial('form', $dadosFormAlterar, 'curso/forum/categoria'), 'textoBotaoSubmit' => 'Salvar!');
         $this->_renderTemplateCurso($categoria->getCurso(), 'curso/forum/categoria/alterar', $dadosViewAlterar);
     } catch (Exception $e) {
         log_message('error', 'Erro ao exibir formulário de alteração de categoria de fórum:' . create_exception_description($e));
         show_404();
     }
 }
Ejemplo n.º 3
0
 public function actionUpdate()
 {
     $formModel = new ProfileForm();
     if (isset($_POST['ProfileForm'])) {
         $allFieldTypes = $formModel->getAllFieldTypes();
         foreach ($allFieldTypes as $fieldName => $fieldType) {
             $formModel->{$fieldName} = $_POST['ProfileForm'][$fieldName];
         }
         if ($formModel->validate()) {
             $model = new Profile();
             $data = array();
             foreach ($allFieldTypes as $fieldName => $fieldType) {
                 $data[$fieldName] = array('value' => $formModel->{$fieldName});
             }
             $model->setProfileFields(CassandraUtil::import(Yii::app()->user->getId())->__toString(), User::PREFIX, $data);
         }
     }
     $this->render('update', array('model' => $formModel));
 }
Ejemplo n.º 4
0
 /**
  * Returns the static model of the specified AR class.
  * @param string $objectId The ID of the target object
  * @param string $objectType The type of the target object plus the underscore (_), for example, user_
  * @param string $className active record class name
  * @return User the static model class
  */
 public static function model($objectId, $objectType, $className = __CLASS__)
 {
     if (empty($objectId)) {
         $userId = Yii::app()->user->getId();
         if (!empty($userId)) {
             $objectId = CassandraUtil::import($userId)->__toString();
         } else {
             throw new InvalidArgumentException('Object ID is empty');
         }
     } else {
         $objectId = CassandraUtil::import($objectId)->__toString();
     }
     if (empty($objectType)) {
         $objectType = User::PREFIX;
     }
     // If there is an instance of this object, return it.
     if (isset(self::$_instances[$objectType . $objectId])) {
         return self::$_instances[$objectType . $objectId];
     } else {
         $newInstance = new Profile($objectId, $objectType);
         self::$_instances[$objectType . $objectId] = $newInstance;
         return $newInstance;
     }
 }
Ejemplo n.º 5
0
 public function removerTodosPorAvaliacao(WeLearn_Cursos_Avaliacoes_Avaliacao $avaliacao)
 {
     try {
         $questoesRemovidas = $this->recuperarTodosPorAvaliacao($avaliacao);
     } catch (cassandra_NotFoundException $e) {
         return array();
     }
     foreach ($questoesRemovidas as $questao) {
         $questaoUUID = UUID::import($questao->getId());
         $alternativasRemovidas = $this->_alternativaDAO->removerTodosPorQuestao($questao);
         $this->_cf->remove($questaoUUID->bytes);
         $alternativaCorreta = null;
         for ($i = 0; $i < count($alternativasRemovidas); $i++) {
             if ($alternativasRemovidas[$i]->isCorreta()) {
                 $questao->setAlternativaCorreta($alternativasRemovidas[$i]);
                 unset($alternativasRemovidas[$i]);
                 break;
             }
         }
         $questao->setAlternativasIncorretas($alternativasRemovidas);
         $questao->setPersistido(false);
     }
     $avaliacaoUUID = CassandraUtil::import($avaliacao->getId());
     $this->_questaoPorAvaliacaoCF->remove($avaliacaoUUID->bytes);
     return $questoesRemovidas;
 }
Ejemplo n.º 6
0
 /**
  * @param mixed $id
  * @return WeLearn_DTO_IDTO
  */
 public function remover($idConvite)
 {
     $convite = $this->recuperar($idConvite);
     $idConvite = CassandraUtil::import($idConvite)->bytes;
     $this->_cf->remove($idConvite);
     $this->_convitePorDestinatarioPorData->remove($convite->getDestinatario()->getId(), array($idConvite));
     $this->_convitePorRemetentePorData->remove($convite->getRemetente()->getId(), array($idConvite));
     $this->_convitePorRemetente->remove($convite->getRemetente()->getId(), array($convite->getDestinatario()->getId()));
     $this->_convitePorDestinatario->remove($convite->getDestinatario()->getId(), array($convite->getRemetente()->getId()));
     $convite->setPersistido(false);
     return $convite;
 }
Ejemplo n.º 7
0
 /**
  * @param WeLearn_DTO_IDTO $dto
  * @return boolean
  */
 protected function _adicionar(WeLearn_DTO_IDTO &$dto)
 {
     $UUID = UUID::mint();
     $paginaUUID = CassandraUtil::import($dto->getPagina()->getId());
     $dto->setId($UUID->string);
     $dto->setDataEnvio(time());
     $this->_cf->insert($UUID->bytes, $dto->toCassandra());
     $this->_comentarioPorPaginaCF->insert($paginaUUID->bytes, array($UUID->bytes => ''));
     $dto->setPersistido(true);
 }
Ejemplo n.º 8
0
 /**
  * @param mixed $id
  * @return WeLearn_DTO_IDTO
  */
 public function remover($id)
 {
     $UUID = CassandraUtil::import($id);
     $recursoRemovido = $this->recuperar($id);
     $this->_cf->remove($UUID->bytes);
     if ($recursoRemovido instanceof WeLearn_Cursos_Recursos_RecursoRestrito) {
         $aulaUUID = CassandraUtil::import($recursoRemovido->getAula()->getId());
         $this->_recursosRestritosCF->remove($aulaUUID->bytes, array($UUID->bytes));
     } elseif ($recursoRemovido instanceof WeLearn_Cursos_Recursos_RecursoGeral) {
         $cursoUUID = CassandraUtil::import($recursoRemovido->getCurso()->getId());
         $this->_recursosGeraisCF->remove($cursoUUID->bytes, array($UUID->bytes));
     } else {
         throw new WeLearn_Base_Exception('A classe removida tem que derivar
                                          de WeLearn_Cursos_Recursos_Recurso.');
     }
     $recursoRemovido->setPersistido(false);
     return $recursoRemovido;
 }
Ejemplo n.º 9
0
 public function test_uuid1_generation()
 {
     $micros = 1293769171436849.0;
     $uuid = CassandraUtil::import(CassandraUtil::uuid1(null, $micros));
     $t = (int) ($uuid->time * 1000000);
     self::assertWithinMargin($micros, $t, 100);
 }
Ejemplo n.º 10
0
 /**
  * @param WeLearn_Usuarios_Usuario $usuario
  * @param WeLearn_Cursos_Enquetes_Enquete $enquete
  * @return bool
  */
 public function usuarioJaVotouEnquete(WeLearn_Usuarios_Usuario $usuario, WeLearn_Cursos_Enquetes_Enquete $enquete)
 {
     try {
         $enqueteUUID = CassandraUtil::import($enquete->getId());
         $this->_cf->get($enqueteUUID->bytes, array($usuario->getId()));
         return true;
     } catch (cassandra_NotFoundException $e) {
         return false;
     }
 }
Ejemplo n.º 11
0
 /**
  * @param WeLearn_DTO_IDTO $dto
  * @return boolean
  */
 protected function _adicionar(WeLearn_DTO_IDTO &$dto)
 {
     $UUID = UUID::mint();
     $moduloUUID = CassandraUtil::import($dto->getModulo()->getId());
     $dto->setId($UUID->string);
     $dto->setNroOrdem($this->recuperarQtdTotalPorModulo($dto->getModulo()) + 1);
     $this->_cf->insert($UUID->bytes, $dto->toCassandra());
     $this->_aulaPorModuloCF->insert($moduloUUID->bytes, array($dto->getNroOrdem() => $UUID->bytes));
     $dto->setPersistido(true);
 }
Ejemplo n.º 12
0
 /**
  * @param WeLearn_DTO_IDTO $dto
  * @return boolean
  */
 public function _atualizar(WeLearn_DTO_IDTO $dto)
 {
     $UUID = CassandraUtil::import($dto->getId());
     $this->_cf->insert($UUID->bytes, $dto->toCassandra());
 }
Ejemplo n.º 13
0
 /**
  * @param string $forumId
  * @return void
  */
 public function removerTodosPorForum($forumId)
 {
     $forumUUID = CassandraUtil::import($forumId);
     try {
         $idsPosts = array_keys($this->_postsPorForumCF->get($forumUUID->bytes, null, '', '', true, 1000000));
         foreach ($idsPosts as $id) {
             $this->_cf->remove($id);
         }
         $this->_postsPorForumCF->remove($forumUUID->bytes);
     } catch (cassandra_NotFoundException $e) {
         return;
     }
 }
Ejemplo n.º 14
0
 /**
  * @param mixed $id
  * @return WeLearn_DTO_IDTO
  */
 public function remover($idFeed)
 {
     $this->_cf->remove(CassandraUtil::import($idFeed)->bytes);
 }
Ejemplo n.º 15
0
 /**
  * @param WeLearn_DTO_IDTO $dto
  * @return boolean
  */
 protected function _atualizar(WeLearn_DTO_IDTO $dto)
 {
     $UUID = CassandraUtil::import($dto->getId());
     //Verifica se houve alteração no segmento e reconstroi os indexes.
     $segmentoAtual = $this->_cf->get($UUID->bytes, array('segmento'));
     if ($segmentoAtual['segmento'] != $dto->getSegmento()->getId()) {
         $segmentoAtual = $this->_segmentoDAO->recuperar($segmentoAtual['segmento']);
         $this->_cursosPorAreaCF->remove($segmentoAtual->getArea()->getId(), array($UUID->bytes));
         $this->_cursosPorSegmentoCF->remove($segmentoAtual->getId(), array($UUID->bytes));
         $this->_cursosPorAreaCF->insert($dto->getSegmento()->getArea()->getId(), array($UUID->bytes => ''));
         $this->_cursosPorSegmentoCF->insert($dto->getSegmento()->getId(), array($UUID->bytes => ''));
     }
     $this->_cf->insert($UUID->bytes, $dto->toCassandra());
     if (!is_null($dto->getImagem())) {
         $this->_imagemDAO->salvar($dto->getImagem());
     }
     if (!is_null($dto->getConfiguracao())) {
         $this->_configuracaoDAO->salvar($dto->getConfiguracao());
     }
     get_instance()->db->where('id', $dto->getId())->update($this->_mysql_tbl_name, $dto->toMySQL());
 }
Ejemplo n.º 16
0
 /**
  * @param mixed $id
  * @return WeLearn_DTO_IDTO
  */
 public function remover($id)
 {
     $UUID = CassandraUtil::import($id);
     $paginaRemovida = $this->recuperar($id);
     $aulaUUID = CassandraUtil::import($paginaRemovida->getAula()->getId());
     $this->_cf->remove($UUID->bytes);
     $this->_paginaPorAulaCF->remove($aulaUUID->bytes, array($paginaRemovida->getNroOrdem()));
     $curso = $paginaRemovida->getAula()->getModulo()->getCurso();
     $cursoUUID = CassandraUtil::import($curso->getId());
     $this->_contadorCF->add($this->_keyContador, $cursoUUID->bytes, -1);
     $controlePaginaDao = WeLearn_DAO_DAOFactory::create('ControlePaginaDAO', null, false);
     $idsAlunos = WeLearn_DAO_DAOFactory::create('AlunoDAO')->recuperarTodasIdsPorCurso($curso);
     for ($i = 0; $i < count($idsAlunos); $i++) {
         $cfKey = $idsAlunos[$i] . '::' . $curso->getId();
         $controlePaginaDao->decrementarPaginasVistas($cfKey);
     }
     $paginaRemovida->setPersistido(false);
     return $paginaRemovida;
 }
Ejemplo n.º 17
0
 /**
  * @param WeLearn_DTO_IDTO $dto
  * @return boolean
  */
 protected function _adicionar(WeLearn_DTO_IDTO &$dto)
 {
     $dto->setId($dto->getModulo()->getId());
     $UUID = CassandraUtil::import($dto->getId());
     $this->_cf->insert($UUID->bytes, $dto->toCassandra());
     $dto->setPersistido(true);
 }
Ejemplo n.º 18
0
 /**
  * @param mixed $id
  * @return WeLearn_DTO_IDTO
  */
 public function remover($id)
 {
     $UUID = CassandraUtil::import($id);
     $sugestaoRemovida = $this->recuperar($UUID);
     $this->_removerIndexesAceitos($sugestaoRemovida);
     $this->_cf->remove($UUID->bytes);
     $sugestaoRemovida->setPersistido(false);
     return $sugestaoRemovida;
 }
Ejemplo n.º 19
0
 /**
  * @param WeLearn_DTO_IDTO $dto
  * @return boolean
  */
 protected function _adicionar(WeLearn_DTO_IDTO &$dto)
 {
     $UUID = UUID::mint();
     $dto->setId($UUID->string);
     $dto->setDataCriacao(time());
     $this->_cf->insert($UUID->bytes, $dto->toCassandra());
     $UUIDCurso = CassandraUtil::import($dto->getCurso()->getId());
     $this->_categoriasPorCursoCF->insert($UUIDCurso->bytes, array($UUID->bytes => ''));
     $dto->setPersistido(true);
 }
Ejemplo n.º 20
0
 /**
  * @param mixed $id
  * @return WeLearn_DTO_IDTO
  */
 public function remover($id)
 {
     $UUID = CassandraUtil::import($id);
     $moduloRemovido = $this->recuperar($id);
     $cursoUUID = CassandraUtil::import($moduloRemovido->getCurso()->getId());
     $this->_cf->remove($UUID->bytes);
     $this->_moduloPorCursoCF->remove($cursoUUID->bytes, array($moduloRemovido->getNroOrdem()));
     $moduloRemovido->setPersistido(false);
     return $moduloRemovido;
 }
Ejemplo n.º 21
0
 public function recuperarTodosTimeline($de = '', $ate = '', array $filtros = null)
 {
     if ($de != '') {
         $de = CassandraUtil::import($de)->bytes;
     }
     if ($ate != '') {
         $ate = CassandraUtil::import($ate)->bytes;
     }
     $idFeeds = $this->_TimelineCF->get($filtros['usuario']->getId(), null, $de, $ate, true, $filtros['count']);
     $resultado = $this->_cf->multiget(array_keys($idFeeds));
     return $this->_criarVariosFromCassandra($resultado);
 }
Ejemplo n.º 22
0
 /**
  * @param string $categoriaId
  * @return void
  */
 public function removerTodosPorCategoria($categoriaId)
 {
     $categoriaUUID = CassandraUtil::import($categoriaId);
     try {
         $idsForuns = array_keys($this->_forumPorCategoriaCF->get($categoriaUUID->bytes, null, '', '', true, 1000000));
         $postDao = WeLearn_DAO_DAOFactory::create('PostForumDAO');
         foreach ($idsForuns as $id) {
             $this->_cf->remove($id);
             $postDao->removerTodosPorForum($id);
         }
         $this->_forumPorCategoriaCF->remove($categoriaUUID->bytes);
         $this->_forumAtivosCF->remove($categoriaUUID->bytes);
         $this->_forumInativosCF->remove($categoriaUUID->bytes);
     } catch (cassandra_NotFoundException $e) {
         return;
     }
 }
Ejemplo n.º 23
0
 /**
  * @param WeLearn_DTO_IDTO $dto
  * @return boolean
  */
 protected function _atualizar(WeLearn_DTO_IDTO $dto)
 {
     $UUID = CassandraUtil::import($dto->getId());
     $cursoUUID = CassandraUtil::import($dto->getCurso()->getId());
     $dadosAntigos = $this->_cf->get($UUID->bytes, array('status', 'situacao'));
     $statusAntigo = (int) $dadosAntigos['status'];
     $situacaoAntiga = (int) $dadosAntigos['situacao'];
     $this->_cf->insert($UUID->bytes, $dto->toCassandra());
     if ($statusAntigo != $dto->getStatus()) {
         if ($dto->getStatus() == WeLearn_Cursos_Enquetes_StatusEnquete::ATIVA) {
             $this->_enquetePorStatusInativoCF->remove($cursoUUID->bytes, array($UUID->bytes));
             $this->_enquetePorStatusAtivoCF->insert($cursoUUID->bytes, array($UUID->bytes => ''));
         } else {
             $this->_enquetePorStatusAtivoCF->remove($cursoUUID->bytes, array($UUID->bytes));
             $this->_enquetePorStatusInativoCF->insert($cursoUUID->bytes, array($UUID->bytes => ''));
         }
     }
     if ($situacaoAntiga != $dto->getSituacao()) {
         if ($dto->getSituacao() == WeLearn_Cursos_Enquetes_SituacaoEnquete::ABERTA) {
             $this->_enquetePorSituacaoFechadoCF->remove($cursoUUID->bytes, array($UUID->bytes));
             $this->_enquetePorSituacaoAbertoCF->insert($cursoUUID->bytes, array($UUID->bytes => ''));
         } else {
             $this->_enquetePorSituacaoAbertoCF->remove($cursoUUID->bytes, array($UUID->bytes));
             $this->_enquetePorSituacaoFechadoCF->insert($cursoUUID->bytes, array($UUID->bytes => ''));
         }
     }
 }
Ejemplo n.º 24
0
 /**
  * @param mixed $id
  * @return WeLearn_DTO_IDTO
  */
 public function remover($id)
 {
     $UUID = CassandraUtil::import($id)->bytes;
     $mensagem = $this->_cf->get($UUID);
     $validador = $this->verificarSeHaMensagens($mensagem['remetente'], $mensagem['destinatario']);
     if ($validador == 1) {
         $this->_MPListaAmigosCF->remove($mensagem['remetente'], array($mensagem['destinatario']));
         $this->_MPListaAmigosCF->remove($mensagem['destinatario'], array($mensagem['remetente']));
     }
     $array_sort = array($mensagem['remetente'], $mensagem['destinatario']);
     sort($array_sort);
     $chave_amizade = implode('::', $array_sort);
     $this->_cf->remove($UUID);
     $this->_MPPorAmigosCF->remove($chave_amizade, array($UUID));
 }
Ejemplo n.º 25
0
 /**
  * Processes the uploaded image.
  * @param CUploadedFile $uploadedImg The uploaded image
  * @param string $title The title (or caption) of this image (optional)
  * @param string $description The detailed description of this image (optional)
  * @param string $albumName The name of the album to put the image in (optional)
  * @return string The ID of new uploaded image | false
  */
 private function saveImg($uploadedImg, $title = '', $description = '', $albumName = '')
 {
     // Key
     $userId = CassandraUtil::import(Yii::app()->user->getId())->__toString();
     $key = $userId . '_' . CassandraUtil::uuid1();
     // Path
     $path = realpath(Yii::app()->params['storagePath']) . DIRECTORY_SEPARATOR . 'images' . DIRECTORY_SEPARATOR . $userId;
     if (!is_dir($path)) {
         mkdir($path, 0775);
     }
     if (!empty($albumName)) {
         $path .= DIRECTORY_SEPARATOR . $albumName;
     }
     if (!is_dir($path)) {
         mkdir($path, 0775);
     }
     // Save the image information before processing the image
     $data = array('storage_path' => $uploadedImg->getTempName(), 'mime_type' => $uploadedImg->getType(), 'extension' => $uploadedImg->getExtensionName(), 'user_id' => Yii::app()->user->getId());
     if (!empty($title)) {
         $data['title'] = $title;
     }
     if (!empty($description)) {
         $data['description'] = $description;
     }
     if ($this->insert($key, $data) === false) {
         $uploadedImg->clean();
         return false;
     }
     // Render this image into different versions
     $photoTypes = Setting::model()->photo_types;
     // Get list of image types in JSON format. Decode it.
     $photoTypes = json_decode($photoTypes['value'], true);
     $img = Yii::app()->imagemod->load($data['storage_path']);
     $convertedImgs = array();
     foreach ($photoTypes as $type => $config) {
         $img->image_convert = 'jpg';
         $img->image_resize = true;
         $img->image_ratio = true;
         $img->image_x = $config['width'];
         $img->image_y = $config['height'];
         if (isset($config['suffix'])) {
             $img->file_safe_name = $key . $config['suffix'] . '.jpg';
         } else {
             $img->file_safe_name = $key . '.jpg';
         }
         $img->process($path);
         if (!$img->processed) {
             // Delete the original image
             $uploadedImg->clean();
             // Delete the record in db
             $this->delete($key);
             // Log the error
             Yii::log('Cannot resize the image ' . $data['storage_path'] . ' to ' . $path . '/' . $img->file_safe_name, 'error', 'application.modules.storage.Storage');
             // Delete all converted images
             foreach ($convertedImgs as $imgType => $imgPath) {
                 unlink($imgPath);
             }
             // Return false
             return false;
         } else {
             // Remember the path of converted image
             $convertedImgs[$type] = $img->file_dst_path;
         }
         // Update the database
         $data = array('storage_path' => $convertedImgs['original'], 'mime_type' => 'image/jpeg', 'extension' => 'jpg');
         unset($convertedImgs['original']);
         $data = array_merge($data, $convertedImgs);
         if ($this->insert($key, $data) === false) {
             // Delete the original image
             $uploadedImg->clean();
             // Delete the record in db
             $this->delete($key);
             // Log the error
             Yii::log('Cannot resize the image ' . $data['storage_path'] . ' to ' . $path . '/' . $img->file_safe_name, 'error', 'application.modules.storage.Storage');
             // Delete all converted images
             unlink($data['storage_path']);
             foreach ($convertedImgs as $imgType => $imgPath) {
                 unlink($imgPath);
             }
             // Return false
             return false;
         }
     }
     // Delete the temporary image
     $uploadedImg->clean();
     return $key;
 }
Ejemplo n.º 26
0
 /**
  * @param WeLearn_DTO_IDTO $dto
  * @return boolean
  */
 protected function _adicionar(WeLearn_DTO_IDTO &$dto)
 {
     $amizadeColumns = $dto->toCassandra();
     $this->_cf->insert($amizadeColumns['id'], $amizadeColumns);
     $timeUUID = CassandraUtil::import($amizadeColumns['timeUUID'])->bytes;
     $this->_amizadeRequisicoesCF->insert($dto->getUsuario()->getId(), array($dto->getAmigo()->getId() => ''));
     $this->_amizadeRequisicoesPorDataCF->insert($dto->getUsuario()->getId(), array($timeUUID => $dto->getAmigo()->getId()));
     $dto->setPersistido(true);
 }