public static function get($idUsuario = '', $format = true) { if (!$idUsuario) { $idUsuario = Auth_Session_User::getInstance()->getId(); } $_notificacao = new Cms_DataView_Notificacao_MapperView(); $_notificacao->setIdUsuario($idUsuario)->findAll(null, '*'); if ($format) { $notificacoes = array(); $_conteudo = new Cms_Model_Conteudo_Mapper(); $_categoria = new Cms_Model_Categoria_Mapper(); $_categoriaPai = new Cms_Model_Categoria_Mapper(); while ($_notificacao->fetch()) { $_conteudo->setId($_notificacao->getIdConteudo())->retrieve(); $_categoria->setId($_conteudo->getIdCategoria())->retrieve(); $conteudo = $_conteudo->getTitulo()->get(); if (strlen($conteudo) > 10) { $conteudo = substr($conteudo, 1, 10) . "..."; } $titulo = $_categoria->getDescricao()->get() . " (" . $conteudo . ")"; if ($_categoria->getIdCategoriaPai()->get()) { $_categoriaPai->setId($_categoria->getIdCategoriaPai())->retrieve(); $titulo = $_categoriaPai->getDescricao()->get() . " - " . $titulo; } $url = Cms_Model_Conteudo_Mapper::getUrlView($_conteudo->getId()->get(), $_categoria->getIdByDescricao("Para você")); $notificacoes[] = array('id' => $_conteudo->getId()->get(), 'titulo' => $titulo, 'url' => $url); } return $_notificacao->_getLayout($notificacoes); } return $_notificacao; }
public function insert($idConteudo = '') { if ($idConteudo) { $_conteudo = new Cms_Model_Conteudo_Mapper(); $_conteudo->setId($idConteudo)->retrieve(); $_conteudoPai = new Cms_Model_Conteudo_Mapper(); $idCategoria = $_conteudo->getIdCategoria(true); $idCategoriaLike = $_conteudo->getIdCategoriaByDesc('like'); if ($idCategoria->get() != $idCategoriaLike->get()) { /* Se houver um conteúdo pai, considera o ID da categoria deste */ $idConteudoPai = $_conteudo->getIdConteudoPai(true)->get(); if ($idConteudoPai) { $_conteudoPai->setId($idConteudoPai)->retrieve(); if ($_conteudoPai->getId(true)->get()) { $idCategoria = $_conteudoPai->getIdCategoria(true)->get(); } } /* Busca a categoria pai, caso exista */ $_categoria = new Cms_Model_Categoria_Mapper(); $_categoria->setId($idCategoria)->retrieve(); $_categoriaPai = new Cms_Model_Categoria_Mapper(); if ($_categoria->getIdCategoriaPai(true)->get()) { $_categoriaPai->setId($_categoria->getIdCategoriaPai(true))->retrieve(); } $_usuario = new Auth_Model_Usuario_Mapper(); $usuarios = $this->_getPrivileges($idConteudo, $idConteudoPai); #var_dump($usuarios);die; /*$usuarios = array_merge($usuarios, array( array('id_usuario' => '16524', 'email_usuario' => '*****@*****.**', 'env_email' => 'S'), array('id_usuario' => '391', 'email_usuario' => '*****@*****.**', 'env_email' => 'S'), array('id_usuario' => '27705', 'email_usuario' => '*****@*****.**', 'env_email' => 'S'), array('id_usuario' => '6253', 'email_usuario' => '*****@*****.**', 'env_email' => 'S') ));*/ foreach ($usuarios as $usuario) { $idMailList = NULL; if ($usuario['env_email'] == 'S') { if (!$usuario['email_usuario']) { continue; } $mail = new ZendT_Mail(); $mail->addTo($usuario['email_usuario']); $_usuarioInc = new Auth_Model_Usuario_Mapper(); $_usuarioInc->setId($_conteudo->getIdUsuarioInc(true)->get())->retrieve(); if ($_usuarioInc->getId(true)->get() == 1) { $mail->addFrom('*****@*****.**', 'Transportadora Americana'); } else { $mail->addFrom($_usuarioInc->getEmail(true)->get(), $_usuarioInc->getNome(true)->get()); } $tituloEmail = ''; if ($_categoriaPai->getId(true)->get()) { $tituloEmail = $_categoriaPai->getDescricao()->get() . ' - '; } $tituloEmail .= $_categoria->getDescricao()->get(); $tituloEmail .= " ({$idConteudo})"; $mail->setTitle($tituloEmail)->setSubject($tituloEmail); $url = Cms_Model_Conteudo_Mapper::getUrlView($idConteudo, false, true); $titulo = ''; if (!$_conteudo->getIdConteudoPai(true)->get()) { $titulo = $_conteudo->getTitulo()->get(); } else { $titulo = $_conteudoPai->getTitulo(true)->get(); } if ($titulo) { $titulo .= '<br/><br/>'; } //$remetente = $_conteudo->getSubTitulo()->get(); $comment = $titulo . 'Para acessar esse conteúdo, clique <a href = "' . $url . '">aqui</a>'; $mail->setComment($comment); $body = $_conteudo->getCorpo()->get(); if ($_conteudoPai->getId(true)->get()) { $body .= "<br/><hr/>" . $_conteudoPai->getCorpo()->get(); } if ($body) { $body .= "<br/></hr>"; } else { $body = " "; } $mail->setBody($body); $idMailList = $mail->save(); } /* @todo: Remover - IF temporário */ if ($usuario['env_email'] == 'S') { $this->setIdConteudo($idConteudo); $this->setIdUsuario($usuario['id_usuario']); if ($this->exists() && $idMailList) { $this->delete(); } $this->setIdMaillist($idMailList); if (!$this->exists()) { $this->insert(); } $this->getModel()->getAdapter()->commit(); } } } } else { parent::insert(); } }