/** * Listado de suspensiones a usuarios. * @param int $pagina Número de página a mostrar. */ public function action_usuarios($pagina) { if (!Usuario::permiso(Model_Usuario_Rango::PERMISO_USUARIO_SUSPENDER)) { $_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; // Cantidad de elementos por pagina. $model_configuracion = new Model_Configuracion(); $cantidad_por_pagina = $model_configuracion->get('elementos_pagina', 20); // Cargamos la vista. $vista = View::factory('moderar/gestion/usuarios'); // Modelo de suspensiones. $model_suspension = new Model_Usuario_Suspension(); // Limpio antiguos. Model_Usuario_Suspension::clean(); // Cargamos el listado de posts. $lst = $model_suspension->listado($pagina, $cantidad_por_pagina); if (count($lst) == 0 && $pagina != 1) { Request::redirect('/moderar/gestion/usuarios'); } // Paginación. $total = Model_Usuario_Suspension::cantidad(); $vista->assign('cantidad_pendientes', $total); $paginador = new Paginator($total, $cantidad_por_pagina); $vista->assign('paginacion', $paginador->get_view($pagina, '/moderar/gestion/usuarios/%s/')); unset($total); // Obtenemos datos de las denuncias. foreach ($lst as $k => $v) { $a = $v->as_array(); $a['motivo'] = Decoda::procesar($a['motivo']); $a['usuario'] = $v->usuario()->as_array(); $a['moderador'] = $v->moderador()->as_array(); $lst[$k] = $a; } // Seteamos listado de suspensiones. $vista->assign('suspensiones', $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('gestion_usuarios')); // Asignamos la vista a la plantilla base. $this->template->assign('contenido', $admin_template->parse()); }
/** * Listado de usuarios. * @param int $pagina Número de página. * @param int $tipo Tipo de usuarios a mostrar. */ public function action_index($pagina, $tipo) { // Formato de la página. $pagina = $pagina > 0 ? (int) $pagina : 1; // TIPO, 0->todos, 1->activos, 2->suspendidos, 3->baneados $tipo = (int) $tipo; if ($tipo !== 0 && $tipo !== 1 && $tipo !== 2 && $tipo !== 3 && $tipo !== 4) { Request::redirect('/admin/usuario/'); } // Cantidad de elementos por pagina. $model_configuracion = new Model_Configuracion(); $cantidad_por_pagina = $model_configuracion->get('elementos_pagina', 20); // Cargamos la vista. $vista = View::factory('admin/usuario/index'); // Asigno el tipo. $vista->assign('tipo', $tipo); // Limpio antiguos. Model_Usuario_Suspension::clean(); // Modelo de usuarios. $model_usuarios = Usuario::usuario(); // Cargo las cantidades. $cantidad_activas = $model_usuarios->cantidad(Model_Usuario::ESTADO_ACTIVA); $cantidad_suspendidas = $model_usuarios->cantidad(Model_Usuario::ESTADO_SUSPENDIDA); $cantidad_baneadas = $model_usuarios->cantidad(Model_Usuario::ESTADO_BANEADA); $cantidad_pendientes = $model_usuarios->cantidad(Model_Usuario::ESTADO_PENDIENTE); $cantidad_total = $cantidad_activas + $cantidad_suspendidas + $cantidad_baneadas; // Seteo las cantidad. $vista->assign('cantidad_activas', $cantidad_activas); $vista->assign('cantidad_suspendidas', $cantidad_suspendidas); $vista->assign('cantidad_baneadas', $cantidad_baneadas); $vista->assign('cantidad_pendientes', $cantidad_pendientes); $vista->assign('cantidad_total', $cantidad_total); $vista->assign('actual', $pagina); // Cargamos el listado de usuarios. switch ($tipo) { case 0: $lst = $model_usuarios->listado($pagina, $cantidad_por_pagina); $total = $cantidad_total; break; case 1: $lst = $model_usuarios->listado($pagina, $cantidad_por_pagina, Model_Usuario::ESTADO_ACTIVA); $total = $cantidad_activas; break; case 2: $lst = $model_usuarios->listado($pagina, $cantidad_por_pagina, Model_Usuario::ESTADO_SUSPENDIDA); $total = $cantidad_suspendidas; break; case 3: $lst = $model_usuarios->listado($pagina, $cantidad_por_pagina, Model_Usuario::ESTADO_BANEADA); $total = $cantidad_baneadas; break; case 4: $lst = $model_usuarios->listado($pagina, $cantidad_por_pagina, Model_Usuario::ESTADO_PENDIENTE); $total = $cantidad_pendientes; break; } // Paginación. $paginador = new Paginator($total, $cantidad_por_pagina); $vista->assign('paginacion', $paginador->get_view($pagina, '/admin/usuario/index/%s/' . $tipo)); // Obtenemos datos de las noticias. foreach ($lst as $k => $v) { $a = $v->as_array(); $a['rango_id'] = $v->rango; $a['rango'] = $v->rango()->nombre; $lst[$k] = $a; } // Seteamos listado de usuarios. $vista->assign('usuarios', $lst); unset($lst); // Cargamos listado de rangos que podemos asignar. $lst = Usuario::usuario()->rango()->listado(Usuario::usuario()->rango()->orden); foreach ($lst as $k => $v) { $lst[$k] = $v->as_array(); } $vista->assign('rangos', $lst); // Seteamos el menu. $this->template->assign('master_bar', parent::base_menu('admin')); // Cargamos plantilla administracion. $admin_template = View::factory('admin/template'); $admin_template->assign('contenido', $vista->parse()); unset($portada); $admin_template->assign('top_bar', Controller_Admin_Home::submenu('usuario')); // Asignamos la vista a la plantilla base. $this->template->assign('contenido', $admin_template->parse()); }