public function action_subir() { if ($_POST) { $envio_id = $_POST['envio_id']; $cmt = new Model_Comentario(); $cmt->subir($_POST); //echo kohana::debug($cmt); $this->errores = $cmt->errores; $this->formulario = $cmt->formulario; $this->request->redirect("noticia/ver/" . $envio_id . "#cmt" . $cmt->id); } }
public static function getInstance() { if (self::$_instance == null) { self::$_instance = new Model_Comentario(); } return self::$_instance; }
/** * Submenu de la moderación. * @param string $activo Sección actual. * @return array */ public static function submenu($activo) { $listado = array(); $listado['p_principal'] = array('caption' => 'Principal'); $listado['index'] = array('link' => '/moderar/', 'caption' => 'Inicio', 'active' => FALSE); if (Usuario::permiso(array(Model_Usuario_Rango::PERMISO_POST_VER_DENUNCIAS, Model_Usuario_Rango::PERMISO_FOTO_VER_DENUNCIAS, Model_Usuario_Rango::PERMISO_USUARIO_VER_DENUNCIAS))) { $listado['p_denuncias'] = array('caption' => 'Denuncias'); if (Usuario::permiso(Model_Usuario_Rango::PERMISO_POST_VER_DENUNCIAS)) { $listado['denuncias_posts'] = array('link' => '/moderar/denuncias/posts/', 'caption' => 'Posts', 'active' => FALSE, 'cantidad' => Model_Post_Denuncia::cantidad(Model_Post_Denuncia::ESTADO_PENDIENTE)); } if (Usuario::permiso(Model_Usuario_Rango::PERMISO_FOTO_VER_DENUNCIAS)) { $listado['denuncias_fotos'] = array('link' => '/moderar/denuncias/fotos/', 'caption' => 'Fotos', 'active' => FALSE, 'cantidad' => Model_Foto_Denuncia::cantidad(Model_Post_Denuncia::ESTADO_PENDIENTE)); } if (Usuario::permiso(Model_Usuario_Rango::PERMISO_USUARIO_VER_DENUNCIAS)) { $listado['denuncias_usuarios'] = array('link' => '/moderar/denuncias/usuarios/', 'caption' => 'Usuarios', 'active' => FALSE, 'cantidad' => Model_Usuario_Denuncia::cantidad(Model_Post_Denuncia::ESTADO_PENDIENTE)); } } $listado['p_gestion'] = array('caption' => 'Gestión'); if (Usuario::permiso(Model_Usuario_Rango::PERMISO_USUARIO_SUSPENDER)) { $listado['gestion_usuarios'] = array('link' => '/moderar/gestion/usuarios/', 'caption' => 'Usuarios', 'active' => FALSE, 'cantidad' => Model_Usuario_Suspension::cantidad()); } // $listado['gestion_buscador'] = array('link' => '/moderar/gestion/buscador/', 'caption' => 'Buscador contenido', 'active' => FALSE); if (Usuario::permiso(array(Model_Usuario_Rango::PERMISO_POST_VER_PAPELERA, Model_Usuario_Rango::PERMISO_FOTO_VER_PAPELERA))) { $listado['p_papelera'] = array('caption' => 'Papelera de reciclaje'); if (Usuario::permiso(Model_Usuario_Rango::PERMISO_POST_VER_PAPELERA)) { $listado['papelera_posts'] = array('link' => '/moderar/papelera/posts/', 'caption' => 'Posts eliminados', 'active' => FALSE, 'cantidad' => Model_Post::s_cantidad(Model_Post::ESTADO_PAPELERA)); } if (Usuario::permiso(Model_Usuario_Rango::PERMISO_FOTO_VER_PAPELERA)) { $listado['papelera_fotos'] = array('link' => '/moderar/papelera/fotos/', 'caption' => 'Fotos eleminadas', 'active' => FALSE, 'cantidad' => Model_Foto::s_cantidad(Model_Foto::ESTADO_PAPELERA)); } } if (Usuario::permiso(array(Model_Usuario_Rango::PERMISO_POST_VER_DESAPROBADO, Model_Usuario_Rango::PERMISO_COMENTARIO_VER_DESAPROBADO))) { $listado['p_desaprobado'] = array('caption' => 'Contenido desaprobado'); if (Usuario::permiso(Model_Usuario_Rango::PERMISO_POST_VER_DESAPROBADO)) { $listado['desaprobado_posts'] = array('link' => '/moderar/desaprobado/posts', 'caption' => 'Posts', 'active' => FALSE, 'cantidad' => Model_Post::s_cantidad(Model_Post::ESTADO_PENDIENTE) + Model_Post::s_cantidad(Model_Post::ESTADO_RECHAZADO)); } if (Usuario::permiso(Model_Usuario_Rango::PERMISO_COMENTARIO_VER_DESAPROBADO)) { $listado['desaprobado_comentarios'] = array('link' => '/moderar/desaprobado/comentarios/', 'caption' => 'Comentarios', 'active' => FALSE, 'cantidad' => Model_Comentario::cantidad(Model_Comentario::ESTADO_OCULTO)); } } // Seteamos el color. foreach ($listado as $k => $v) { if (isset($v['cantidad'])) { if ($listado[$k]['cantidad'] > 0) { $listado[$k]['tipo'] = 'important'; } else { $listado[$k]['tipo'] = 'success'; } } } if (isset($listado[$activo])) { $listado[$activo]['active'] = TRUE; } return $listado; }
public function getcomentarioAction() { self::requireIsPost(); General::permissaoAuth(false); $arComentario = current(Model_Comentario::getInstance()->get(array('nu_post' => $this->getRequest()->getParam('nu_post'), 'limit' => $this->getRequest()->getParam('limit')))); if (count($arComentario)) { foreach ($arComentario as $item) { $item['size'] = 32; echo General::compressHtml($this->view->partial('helpers/li_post.phtml', $item)); } } }
public function get($param) { $bind = array(); $bind['dt_fuso'] = $_SESSION['tw_auth']['dt_fuso']; $sql = "SELECT\n\t\t\tp.co_post,\n\t\t\tp.nu_post,\n u.co_usuario,\n\t\t\tu.nu_usuario,\n\t\t\tu.no_email,\n\t\t\tu.no_usuario,\n\t\t\tp.tx_post,\n\t\t\tCONVERT_TZ(p.dt_cadastro,'+00:00',:dt_fuso) dt_cadastro,\n\t\t\tp.dt_cadastro dt_cadastro_utc,\n\t\t\ttp.qt_comentario,\n\t\t\ti.nu_imagem\n\t\tFROM\n\t\ttb_post p\n\t\tJOIN\n\t\t( \n SELECT\n\t\t\t p.co_post,\n\t\t\t if(c.co_comentario is null,0,count(*)) qt_comentario\n\t\t FROM\n\t\t tb_post p\n\t\t JOIN tb_usuario u\n\t\t\t ON u.co_usuario = p.co_usuario "; if ($param['tipo'] == "amigo") { $sql .= " JOIN tb_seguidor s\n\t ON s.co_usuario_seguido = u.co_usuario "; } $sql .= " LEFT JOIN tb_comentario c\n\t ON c.co_post = p.co_post AND c.st_ativo = 1\n WHERE p.st_ativo = 1\n\t AND u.st_ativo = 1 "; if ($param['tipo'] == "rede") { $sql .= " AND u.co_pais = :co_pais "; $bind['co_pais'] = $_SESSION['tw_auth']['co_pais']; } if ($param['tipo'] == "amigo") { $sql .= " AND s.co_usuario_seguidor = :co_usuario_seguidor"; $bind['co_usuario_seguidor'] = $_SESSION['tw_auth']['co_usuario']; } if ($param['tipo'] == "usuario") { if ($param['nu_usuario']) { $sql .= " AND u.nu_usuario = :nu_usuario"; $bind['nu_usuario'] = $param['nu_usuario']; } else { $sql .= " AND u.co_usuario = :co_usuario"; $bind['co_usuario'] = $param['co_usuario']; } } if ($param['tipo'] == "id") { $sql .= " AND p.nu_post = :nu_post"; $bind['nu_post'] = $param['nu_post']; } if ($param['uptime']) { $sql .= " AND p.dt_cadastro < :dt_cadastro"; $bind['dt_cadastro'] = $param['uptime']; } $sql .= " GROUP BY p.co_post\n ORDER BY p.dt_cadastro desc\n LIMIT 10 ) tp ON tp.co_post = p.co_post\n JOIN tb_usuario u ON u.co_usuario = p.co_usuario\n LEFT JOIN tb_imagem i ON i.co_imagem = u.co_imagem"; $cache_id = "pst_" . md5(serialize($param) . serialize($bind)); $cache = General::cache(10); General::setCacheID('pst', $cache_id); $rs = $cache->load($cache_id); if (!$rs) { $rs = $this->getAdapter()->fetchAll($sql, $bind); $cache->save($rs, $cache_id); } unset($cache); $arIDPost = array(); $arReturn = array(); if (count($rs)) { foreach ($rs as $item) { if ($item['qt_comentario'] > 0) { $arIDPost[] = $item['co_post']; } } $arComentario = array(); if (count($arIDPost)) { $arComentario = Model_Comentario::getInstance()->get(array("co_post" => $arIDPost, "limit" => $param['tipo'] == "id" ? 100 : 3)); } foreach ($rs as $item) { $arReturn[$item['co_post']] = $item; $arReturn[$item['co_post']]['comentario'] = $arComentario[$item['co_post']]; } unset($arComentario); unset($rs); unset($arIDPost); return $arReturn; } else { return array(); } }
/** * Listado de comentarios que se encuentran desaprobados. * @param int $pagina Número de página a mostrar. * @param int $tipo Tipo de comentarios a mostrar. */ public function action_comentarios($pagina, $tipo) { // Verifico permisos. if (!Usuario::permiso(Model_Usuario_Rango::PERMISO_COMENTARIO_VER_DESAPROBADO)) { $_SESSION['flash_error'] = 'No tienes permiso para acceder a esa sección.'; Request::redirect('/'); } // Formato de la página. $pagina = (int) $pagina > 0 ? (int) $pagina : 1; // 0: Posts y fotos // 1: Fotos. // 2: Posts. // Verifico el tipo de comentarios a mostrar. if ($tipo == 0 || $tipo == 1 || $tipo == 2) { $tipo = (int) $tipo; } else { $tipo = 0; } // Cantidad de elementos por pagina. $cantidad_por_pagina = 20; // Cargamos la vista. $vista = View::factory('/moderar/desaprobado/comentarios'); // Asignamos datos. $vista->assign('tipo', $tipo); // Cargo datos en función del tipo. if ($tipo === 0) { // Cargo el modelo. $model_comentario = new Model_Comentario(); // Cargo el listado de comentarios. $lst = $model_comentario->listado($pagina, $cantidad_por_pagina, Model_Comentario::ESTADO_OCULTO); if (count($lst) == 0 && $pagina != 1) { Request::redirect('/moderar/desaprobado/comentarios'); } } elseif ($tipo === 1) { // Cargo el modelo. $model_comentario = new Model_Foto_Comentario(); // Cargo el listado de comentarios. $lst = $model_comentario->listado($pagina, $cantidad_por_pagina, Model_Foto_Comentario::ESTADO_OCULTO); if (count($lst) == 0 && $pagina != 1) { Request::redirect('/moderar/desaprobado/comentarios/1/1'); } } else { // Cargo el modelo. $model_comentario = new Model_Post_Comentario(); // Cargo el listado de comentarios. $lst = $model_comentario->listado($pagina, $cantidad_por_pagina, Model_Post_Comentario::ESTADO_OCULTO); if (count($lst) == 0 && $pagina != 1) { Request::redirect('/moderar/desaprobado/comentarios/1/2'); } } // Calculo las cantidades. $c_foto = Model_Foto_Comentario::cantidad(Model_Foto_Comentario::ESTADO_OCULTO); $c_post = Model_Post_Comentario::cantidad(Model_Post_Comentario::ESTADO_OCULTO); $c_total = $c_foto + $c_post; // Paso datos para barra. $vista->assign('cantidad_fotos', $c_foto); $vista->assign('cantidad_posts', $c_post); $vista->assign('cantidad_total', $c_total); $vista->assign('actual', $pagina); // Paginación. $total = $tipo == 0 ? $c_total : ($tipo == 1 ? $c_foto : $c_post); $paginador = new Paginator($total, $cantidad_por_pagina); $vista->assign('paginacion', $paginador->get_view($pagina, '/moderar/desaprobado/comentario/%s/' . $tipo)); // Obtenemos datos de los comentarios. foreach ($lst as $k => $v) { $a = $v->as_array(); if ($v instanceof Model_Foto_Comentario) { $a['foto'] = $v->foto()->as_array(); } else { $a['post'] = $v->post()->as_array(); } $a['usuario'] = $v->usuario()->as_array(); $lst[$k] = $a; } // Seteamos listado de comentarios. $vista->assign('comentarios', $lst); unset($lst); // Seteamos el menu. $this->template->assign('master_bar', parent::base_menu('moderar')); // Cargamos plantilla administracion. $admin_template = View::factory('moderar/template'); $admin_template->assign('contenido', $vista->parse()); unset($portada); $admin_template->assign('top_bar', Controller_Moderar_Home::submenu('desaprobado_comentarios')); // Asignamos la vista a la plantilla base. $this->template->assign('contenido', $admin_template->parse()); }