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