/** * Obtenemos el bloque superior del perfil. * @param string $contenido Contenido de la plantilla. * @return string Bloque parseado. */ protected function header_block($contenido) { // Cargamos la vista base. $base_view = View::factory('perfil/base'); // Información general del usuario. $usuario = $this->usuario->as_array(); $usuario['puntos'] = $this->usuario->cantidad_puntos(); $usuario['seguidores'] = $this->usuario->cantidad_seguidores(); $usuario['posts'] = $this->usuario->cantidad_posts(); $usuario['fotos'] = $this->usuario->cantidad_fotos(); $usuario['comentarios'] = $this->usuario->cantidad_comentarios(); $usuario['rango'] = $this->usuario->rango()->nombre; // Cargamos campos del usuario. $this->usuario->perfil()->load_list(array('nombre', 'mensaje_personal')); // Nombre completo. $usuario['nombre'] = Utils::prop($this->usuario->perfil(), 'nombre'); $base_view->assign('usuario', $usuario); unset($usuario); // Si está bloqueado y/o lo sigo. if (!Usuario::is_login()) { $base_view->assign('bloqueado', TRUE); $base_view->assign('seguidor', TRUE); } elseif (Usuario::$usuario_id !== $this->usuario->id) { $base_view->assign('bloqueado', Usuario::usuario()->esta_bloqueado($this->usuario->id)); $base_view->assign('seguidor', $this->usuario->es_seguidor(Usuario::$usuario_id)); } // Mensaje personal. $base_view->assign('mensaje_personal', Utils::prop($this->usuario->perfil(), 'mensaje_personal')); // Listado de categorias. $base_view->assign('menu', $this->submenu_categorias()); // Agregamos el contenido. $base_view->assign('contenido', $contenido); return $base_view->parse(); }
/** * Cambiamos el rango de un usuario. * @param int $usuario ID del usuario al que se le cambia el rango. * @param int $rango ID del rango a setear. */ public function action_cambiar_rango($usuario, $rango) { $usuario = (int) $usuario; // Verificamos no sea actual. if ($usuario == Usuario::$usuario_id) { $_SESSION['flash_error'] = 'El usuario que deseas cambiarle el rango no se encuentra disponible.'; Request::redirect('/admin/usuario/'); } // Cargamos el modelo del usuario. $model_usuario = new Model_Usuario($usuario); if (!$model_usuario->existe()) { $_SESSION['flash_error'] = 'El usuario que deseas cambiarle el rango no se encuentra disponible.'; Request::redirect('/admin/usuario/'); } // Verifico su orden. if ($model_usuario->rango()->es_superior(Usuario::usuario()->rango)) { $_SESSION['flash_error'] = 'El usuario que deseas cambiarle el rango no se encuentra disponible.'; Request::redirect('/admin/usuario/'); } $rango = (int) $rango; // Verifico el rango. $model_rango = new Model_Usuario_Rango($rango); if ($model_rango->existe()) { // Verifico el nivel. if ($rango == Usuario::usuario()->rango || $model_rango->es_superior(Usuario::usuario()->rango)) { $_SESSION['flash_error'] = 'Rango que deseas asignar no se encuentra disponible.'; Request::redirect('/admin/usuario/'); } // Actualizo el rango. $model_usuario->actualizar_campo('rango', $rango); // Envio el suceso. $model_suceso = new Model_Suceso(); if (Usuario::$usuario_id != $model_usuario->id) { $model_suceso->crear($model_usuario->id, 'usuario_cambio_rango', TRUE, $model_usuario->id, $rango, Usuario::$usuario_id); $model_suceso->crear(Usuario::$usuario_id, 'usuario_cambio_rango', FALSE, $model_usuario->id, $rango, Usuario::$usuario_id); } else { $model_suceso->crear($model_usuario->id, 'usuario_cambio_rango', FALSE, $model_usuario->id, $rango, Usuario::$usuario_id); } // Informo el resultado. $_SESSION['flash_success'] = 'El rango fue cambiado correctamente correctamente.'; Request::redirect('/admin/usuario'); } // Cargo la vista. $vista = View::factory('admin/usuario/cambiar_rango'); // Seteo la información. $vista->assign('usuario', $model_usuario->as_array()); // Cargamos los rangos. $lst = $model_rango->listado(Usuario::usuario()->rango()->orden); foreach ($lst as $k => $v) { $lst[$k] = $v->as_array(); } $vista->assign('rangos', $lst); // 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()); }