本文整理汇总了PHP中Controller::base_menu方法的典型用法代码示例。如果您正苦于以下问题:PHP Controller::base_menu方法的具体用法?PHP Controller::base_menu怎么用?PHP Controller::base_menu使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Controller
的用法示例。
在下文中一共展示了Controller::base_menu方法的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: action_index
/**
* Portada del sitio.
* @param int $pagina Número de página para lo últimos posts.
*/
public function action_index($pagina)
{
// Cargamos la portada.
$view = View::factory('notificaciones/index');
// Seteo el menu.
$this->template->assign('master_bar', parent::base_menu('inicio'));
// 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 notificaciones.
$sucesos = Suceso_Barra::obtener_listado_completo(Usuario::$usuario_id, $pagina, $cantidad_por_pagina);
// Verifivo validez de la pagina.
if (count($sucesos) == 0 && $pagina != 1) {
Request::redirect('/notificaciones/');
}
// Paginación.
$paginador = new Paginator(Suceso_Barra::cantidad_completa(Usuario::$usuario_id), $cantidad_por_pagina);
$view->assign('paginacion', $paginador->get_view($pagina, '/notificaciones/index/%d'));
unset($paginador);
// Proceso el listado de sucesos.
$eventos = array();
foreach ($sucesos as $v) {
// Obtengo información del suceso.
$s_data = Suceso_Perfil::procesar($v);
// Verifico su existencia.
if ($s_data === NULL) {
continue;
}
// Obtenemos el tipo de suceso.
$tipo = $v->tipo;
// Cargamos la vista.
$suceso_vista = View::factory('/suceso/notificaciones/' . $tipo);
// Asigno los datos del usuario actual.
$suceso_vista->assign('actual', Usuario::usuario()->as_array());
// Asigno información del suceso.
$suceso_vista->assign('suceso', $s_data);
// Datos del suceso.
$suceso_vista->assign('fecha', $v->fecha);
$suceso_vista->assign('visto', $v->visto);
// Agregamos el evento.
$eventos[] = $suceso_vista->parse();
}
$view->assign('sucesos', $eventos);
unset($sucesos);
// Asignamos la vista a la plantilla base.
$this->template->assign('contenido', $view->parse());
}
示例2: action_usuarios
/**
* Mostramos tops de usuarios.
* @param string $categoria Categoria para filtar los tops de usuario.
* @param int $periodo Período para filtar usuarios.
*/
public function action_usuarios($categoria, $periodo)
{
// Cargamos la portada.
$portada = View::factory('tops/usuarios');
// Seteo el menu.
$this->template->assign('master_bar', parent::base_menu('tops'));
$this->template->assign('top_bar', $this->submenu());
// Cargo las categorias.
$model_categorias = new Model_Categoria();
// Seteo el listado en la vista.
$portada->assign('categorias', $model_categorias->lista());
// Obtengo la categoria por POST.
//TODO: hacer una mejora con jQuery.
if (isset($_POST['categoria'])) {
$categoria = $_POST['categoria'];
}
// Verifico si existe la categoria.
$categoria = trim($categoria) == '' ? NULL : trim($categoria);
if ($categoria !== NULL && $categoria != 'todas') {
if (!$model_categorias->load_by_seo($categoria)) {
Request::redirect('/tops');
} else {
$categoria_id = $model_categorias->id;
$categoria = $model_categorias->seo;
}
} else {
$categoria = 'todas';
$categoria_id = NULL;
}
// Seteo la categoria actual.
$portada->assign('categoria', $categoria);
// Obtengo el período.
$periodo = (int) $periodo;
// Verifico por un válido.
if ($periodo != 0 && $periodo != 1 && $periodo != 2 && $periodo != 3 && $periodo != 4) {
Request::redirect('/tops');
}
$portada->assign('periodo', $periodo);
// Cargo modelo de usuarios.
$model_usuario = new Model_Usuario();
$portada->assign('puntos', $model_usuario->top_puntos($categoria_id, $periodo));
$portada->assign('seguidores', $model_usuario->top_seguidores($periodo));
// Asignamos la vista a la plantilla base.
$this->template->assign('contenido', $portada->parse());
}
示例3: action_nick
/**
* Administración de los nicks del usuario.
*/
public function action_nick()
{
// Asignamos el título.
$this->template->assign('title', 'Cuenta - Nick');
// Cargamos la vista.
$view = View::factory('cuenta/nick');
// Cargamos el usuario actual.
$model_usuario = Usuario::usuario();
$view->assign('email', $model_usuario->email);
// Valores por defecto.
$view->assign('nick_actual', $model_usuario->nick);
$view->assign('nick', '');
$view->assign('error_nick', NULL);
$view->assign('error_password', NULL);
// Listado de nick's reservados.
$nicks_reservados = $model_usuario->nicks();
//TODO: Mantener nick's para evitar borrar y poder cambiar.
//TODO: Mantener nicks por un tiempo limitado.
// Calculo cuanto hace que cambio su nick.
if (count($nicks_reservados) !== 0) {
$fecha_cambio = Usuario::usuario()->ultimo_cambio_nick()->format('U');
} else {
// Obtengo fecha de refgistro.
$fecha_cambio = Usuario::usuario()->registro->format('U');
}
// 5184000 === 2 meses.
$view->assign('tiempo_cambio', $fecha_cambio + 5184000 - date('U'));
if (Request::method() == 'POST') {
if (!isset($_POST['nick']) || empty($_POST['nick']) || (!isset($_POST['password']) || empty($_POST['password']))) {
// Verificamos los datos
if (!isset($_POST['nick']) || empty($_POST['nick'])) {
$view->assign('error_nick', 'Debe ingresar un nuevo nick.');
} else {
$view->assign('nick', $_POST['nick']);
}
if (!isset($_POST['password']) || empty($_POST['password'])) {
$view->assign('error_password', 'Debe ingresar su contraseña para validar el cambio.');
}
} else {
$nick = $_POST['nick'];
$password = $_POST['password'];
$view->assign('nick', $nick);
// Verifico longitud Nick.
if (!preg_match('/^[a-zA-Z0-9]{4,20}$/D', $nick)) {
$view->assign('error_nick', 'El nick debe tener entre 4 y 20 caracteres alphanuméricos.');
} else {
// Verifico la contraseña.
$enc = new Phpass(8, FALSE);
if (!$enc->check_password($password, $model_usuario->password)) {
$view->assign('error_password', 'La contraseña es incorrecta.');
} else {
// Verifico que no exista el nick.
if ($model_usuario->exists_nick($nick)) {
$view->assign('error_nick', 'El nick no está disponible.');
} else {
// Verifico la cantidad de nick's.
if (count($nicks_reservados) >= 3) {
$view->assign('error_nick', 'Has superado el máximo de nick\'s utilizados.');
} else {
// Verifico tiempo de cambio.
if ($fecha_cambio + 5184000 - date('U') <= 0) {
// Actualizamos.
$model_usuario->cambiar_nick($nick);
// Recargo los nick's reservados.
$nicks_reservados = $model_usuario->nicks();
// Envio el suceso.
$model_suceso = new Model_Suceso();
//TODO: Implementar campos alphanumericos.
$model_suceso->crear(Usuario::$usuario_id, 'usuario_cambio_nick', Usuario::$usuario_id);
// Informamos resultado.
$view->assign('success', 'El nick se ha actualizado correctamente.');
$view->assign('nick', '');
$view->assign('nick_actual', $nick);
} else {
$view->assign('error_nick', 'Solo puedes cambiar tu nick cada 2 meses.');
}
}
}
}
}
}
}
// Cargo listado de nicks.
$view->assign('nicks', $nicks_reservados);
// Menu.
$this->template->assign('master_bar', parent::base_menu('inicio'));
$this->template->assign('top_bar', $this->submenu('nick'));
// Asignamos la vista.
$this->template->assign('contenido', $view->parse());
}
示例4: __construct
/**
* Constructor de la clase. Seteamos el elemento del menu actual.
*/
public function __construct()
{
parent::__construct();
// Cargo el menu.
$this->template->assign('master_bar', parent::base_menu('inicio'));
}
示例5: action_index
/**
* Portada de la moderación.
* Mostramos elementos relevantes y un resumen de los que sucede.
*/
public function action_index()
{
// Cargamos la portada.
$portada = View::factory('moderar/home/index');
// Seteamos el menu.
$this->template->assign('master_bar', parent::base_menu('moderar'));
// Cargamos plantilla moderacion.
$admin_template = View::factory('moderar/template');
$admin_template->assign('contenido', $portada->parse());
unset($portada);
$admin_template->assign('top_bar', self::submenu('index'));
// Asignamos la vista a la plantilla base.
$this->template->assign('contenido', $admin_template->parse());
}
示例6: action_relacionados
/**
* Post con las mismas etiquetas que el selecionado.
* @param int $post ID del post a mostrar relacionados.
* @param int $pagina Número de página a mostrar.
*/
public function action_relacionados($post, $pagina)
{
// Transformamos a entero.
$post = (int) $post;
// Cargamos el post.
$model_post = new Model_Post($post);
// Verificamos existencia.
if (!$model_post->existe()) {
Request::redirect('/buscador/q/');
}
// Cargamos la vista.
$vista = View::factory('buscador/index');
// 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);
// Realizamos la busqueda.
list($listado, $cantidad) = $model_post->buscar_relacionados($pagina, $cantidad_por_pagina);
// Verifivo que la página seleccionada sea válida.
if (count($listado) == 0 && $pagina != 1) {
Request::redirect('/buscador/relacionados/' . $post);
}
// Paginación.
$paginador = new Paginator($cantidad, $cantidad_por_pagina);
$vista->assign('paginacion', $paginador->get_view($pagina, "/buscador/relacionados/{$post}/%s/"));
unset($paginador);
$vista->assign('total', $cantidad);
// Procesamos listado de post.
foreach ($listado as $k => $v) {
$a = $v->as_array();
$a['usuario'] = $v->usuario()->as_array();
$a['puntos'] = $v->puntos();
$a['comentarios'] = $v->cantidad_comentarios();
$a['categoria'] = $v->categoria()->as_array();
$listado[$k] = $a;
}
$vista->assign('resultados', $listado);
unset($listado);
$vista->assign('q', '');
// Vista de relacionado.
$view_relacionado = View::factory('buscador/relacionado');
$view_relacionado->assign('post', $model_post->as_array());
$vista->assign('relacionado', $view_relacionado->parse());
unset($view_relacionado);
// Listado de categorias.
$mc = new Model_Categoria();
$vista->assign('categorias', $mc->lista());
unset($mc);
$vista->assign('categoria', 'todos');
$vista->assign('usuario', '');
// Menu.
$this->template->assign('master_bar', parent::base_menu());
$this->template->assign('top_bar', Controller_Home::submenu('buscador'));
// Asignamos la vista.
$this->template->assign('contenido', $vista->parse());
}
示例7: action_sesiones
/**
* Listado de sessiones de usuarios activas.
* @param int $pagina Número de página a mostrar.
*/
public function action_sesiones($pagina)
{
// Formato de la página.
$pagina = (int) $pagina > 0 ? (int) $pagina : 1;
// Cantidad de elementos por pagina.
$cantidad_por_pagina = 20;
// Cargamos la vista.
$vista = View::factory('admin/usuario/sesiones');
// Modelo de sessiones.
$model_session = new Model_Session(session_id());
// Quitamos sessiones terminadas.
$model_session->limpiar();
// Cargamos el listado de usuarios.
$lst = $model_session->listado($pagina, $cantidad_por_pagina);
// Paginación.
$paginador = new Paginator($model_session->cantidad(), $cantidad_por_pagina);
$vista->assign('paginacion', $paginador->get_view($pagina, '/admin/usuario/sessiones/%s/'));
// Obtenemos datos de las noticias.
foreach ($lst as $k => $v) {
$a = $v->as_array();
$a['usuario'] = $v->usuario()->as_array();
$a['ip_raw'] = $a['ip'];
$a['ip'] = long2ip($a['ip']);
$lst[$k] = $a;
}
// Seteamos listado de noticias.
$vista->assign('sesiones', $lst);
unset($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_sesiones'));
// Asignamos la vista a la plantilla base.
$this->template->assign('contenido', $admin_template->parse());
}
示例8: action_fotos
/**
* Portada de los favoritos.
* @param int $pagina Número de página a mostrar.
*/
public function action_fotos($pagina)
{
// Cargamos la portada.
$vista = View::factory('favoritos/fotos');
// Cantidad de elementos por pagina.
$model_configuracion = new Model_Configuracion();
$cantidad_por_pagina = $model_configuracion->get('elementos_pagina', 20);
// Formato de la página.
$pagina = (int) $pagina > 0 ? (int) $pagina : 1;
// Cargamos el listado de favoritos.
$favoritos = Usuario::usuario()->listado_fotos_favoritos($pagina, $cantidad_por_pagina);
// Verifivo que la página seleccionada sea válida.
if (count($favoritos) == 0 && $pagina != 1) {
Request::redirect('/favoritos/fotos/');
}
// Paginación.
$paginador = new Paginator(Usuario::usuario()->cantidad_favoritos_fotos(), $cantidad_por_pagina);
$vista->assign('paginacion', $paginador->get_view($pagina, '/favoritos/fotos/%d'));
unset($paginador);
// Obtengo información de los favoritos.
foreach ($favoritos as $k => $v) {
$a = $v->as_array();
$a['usuario'] = $v->usuario()->as_array();
$a['categoria'] = $v->categoria()->as_array();
$favoritos[$k] = $a;
}
// Seteo parámetros a la vista.
$vista->assign('favoritos', $favoritos);
unset($favoritos);
// Seteo el menu.
$this->template->assign('master_bar', parent::base_menu('inicio'));
$this->template->assign('top_bar', self::submenu('fotos'));
// Asignamos la vista a la plantilla base.
$this->template->assign('contenido', $vista->parse());
}
示例9: action_editar
/**
* Editamos una foto.
* @param int $foto ID de la foto a editar.
*/
public function action_editar($foto)
{
// Verificamos usuario conectado.
if (!Usuario::is_login()) {
$_SESSION['flash_error'] = 'Debes iniciar sessión para editar fotos.';
Request::redirect('/usuario/login/', TRUE);
}
// Cargamos la foto.
$foto = (int) $foto;
$model_foto = new Model_Foto($foto);
// Verifico la existencia.
if (!$model_foto->existe()) {
$_SESSION['flash_error'] = 'La foto que quiere editar no se encuentra disponible.';
Request::redirect('/foto/');
}
// Verifico los permisos.
if ($model_foto->usuario_id !== Usuario::$usuario_id && !Usuario::permiso(Model_Usuario_Rango::PERMISO_FOTO_EDITAR)) {
$_SESSION['flash_error'] = 'La foto que deseas editar no se encuentra disponible.';
Request::redirect('/foto/ver/' . $foto);
}
// Asignamos el título.
$this->template->assign('title', 'Editar foto');
// Cargamos la vista.
$view = View::factory('foto/editar');
$view->assign('foto', $model_foto->id);
// Cargo valores actuales.
$view->assign('titulo', $model_foto->titulo);
$view->assign('descripcion', $model_foto->descripcion);
$view->assign('comentarios', $model_foto->comentar);
$view->assign('visitantes', $model_foto->visitas !== NULL);
// Inicializo los errores.
$view->assign('error_titulo', FALSE);
$view->assign('error_descripcion', FALSE);
// Menu.
$this->template->assign('master_bar', parent::base_menu('fotos'));
$this->template->assign('top_bar', $this->submenu('index'));
if (Request::method() == 'POST') {
$error = FALSE;
// Obtenemos los datos y seteamos valores.
foreach (array('titulo', 'descripcion') as $k) {
${$k} = isset($_POST[$k]) ? $_POST[$k] : '';
$view->assign($k, ${$k});
}
// Obtenemos los checkbox.
$visitantes = isset($_POST['visitantes']) ? $_POST['visitantes'] == 1 : FALSE;
$view->assign('visitantes', $visitantes);
$comentarios = isset($_POST['comentarios']) ? $_POST['comentarios'] == 1 : FALSE;
$view->assign('comentarios', $comentarios);
// Verificamos el titulo.
if (!preg_match('/^[a-zA-Z0-9áéíóú\\-,\\.:\\s]{6,60}$/D', $titulo)) {
$view->assign('error_titulo', 'El formato del título no es correcto.');
$error = TRUE;
}
// Verificamos quitando BBCODE.
$descripcion_clean = preg_replace('/\\[([^\\[\\]]+)\\]/', '', $descripcion);
// Verificamos la descripcion.
if (!isset($descripcion_clean[20]) || isset($descripcion[600])) {
$view->assign('error_descripcion', 'La descripción debe tener entre 20 y 600 caractéres.');
$error = TRUE;
}
unset($contenido_clean);
// Actualizamos los datos.
if (!$error) {
// Evitamos XSS.
$descripcion = htmlentities($descripcion, ENT_NOQUOTES, 'UTF-8');
// Formateamos los campos.
$titulo = trim(preg_replace('/\\s+/', ' ', $titulo));
// Listado de campos a actualizar.
$campos = array('titulo' => $titulo, 'descripcion' => $descripcion, 'comentar' => $comentarios, 'visitas' => $visitantes ? $model_foto->visitas !== NULL ? $model_foto->visitas : 0 : NULL);
// Actualizo los datos.
if ($model_foto->actualizar_campos($campos)) {
// Agregamos el suceso.
$model_suceso = new Model_Suceso();
if (Usuario::$usuario_id != $model_foto->usuario_id) {
$model_suceso->crear($model_foto->usuario_id, 'foto_editar', TRUE, $model_foto->id, Usuario::$usuario_id);
$model_suceso->crear(Usuario::$usuario_id, 'foto_editar', FALSE, $model_foto->id, Usuario::$usuario_id);
} else {
$model_suceso->crear($model_foto->usuario_id, 'foto_editar', FALSE, $model_foto->id, Usuario::$usuario_id);
}
$_SESSION['flash_success'] = 'La foto se ha actualizado correctamente.';
Request::redirect('/foto/ver/' . $model_foto->id);
}
}
}
// Asignamos la vista.
$this->template->assign('contenido', $view->parse());
}
示例10: action_editar_noticia
/**
* Editamos una noticia.
* @param int $id ID de la noticia a editar.
*/
public function action_editar_noticia($id)
{
// Cargamos el modelo de noticia.
$model_noticia = new Model_Noticia((int) $id);
if (!$model_noticia->existe()) {
$_SESSION['flash_error'] = 'Noticia incorrecta.';
Request::redirect('/admin/contenido/noticias');
}
// Cargamos la vista.
$vista = View::factory('admin/contenido/editar_noticia');
// Valores por defecto y errores.
$vista->assign('contenido', $model_noticia->contenido);
$vista->assign('error_contenido', FALSE);
if (Request::method() == 'POST') {
$error = FALSE;
// Obtenemos el contenido.
$contenido = isset($_POST['contenido']) ? $_POST['contenido'] : NULL;
// Quitamos BBCode para dimenciones.
$contenido_clean = preg_replace('/\\[([^\\[\\]]+)\\]/', '', $contenido);
if (!isset($contenido_clean[10]) || isset($contenido_clean[200])) {
$error = TRUE;
$vista->assign('error_contenido', 'El contenido debe tener entre 10 y 200 caractéres');
} else {
// Evitamos XSS.
$contenido = htmlentities($contenido, ENT_NOQUOTES, 'UTF-8');
// Actualizamos el contenido.
$model_noticia->actualizar_contenido($contenido);
$vista->assign('contenido', $model_noticia->contenido);
$vista->assign('success', 'Contenido actualizado correctamente');
}
unset($contenido_clean);
}
// 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('contenido_noticias'));
// Asignamos la vista a la plantilla base.
$this->template->assign('contenido', $admin_template->parse());
}
示例11: action_nuevo
/**
* Creamos un nuevo post.
*/
public function action_nuevo()
{
// Verificamos usuario logueado.
if (!Usuario::is_login()) {
$_SESSION['flash_error'] = 'Debes iniciar sessión para poder crear posts.';
Request::redirect('/usuario/login');
}
// Verifico los permisos.
if (!Usuario::permiso(Model_Usuario_Rango::PERMISO_POST_CREAR)) {
$_SESSION['flash_error'] = 'No tienes permisos para poder crear posts.';
Request::redirect('/');
}
// Asignamos el título.
$this->template->assign('title', 'Nuevo post');
// Cargamos la vista.
$view = View::factory('post/nuevo');
// Seteo permisos especiales.
$view->assign('permisos_especiales', Usuario::permiso(Model_Usuario_Rango::PERMISO_POST_FIJAR_PROMOVER));
// Elementos por defecto.
foreach (array('titulo', 'contenido', 'categoria', 'privado', 'patrocinado', 'sticky', 'comentar', 'tags', 'error_titulo', 'error_contenido', 'error_categoria', 'error_tags') as $k) {
$view->assign($k, '');
}
// Listado de categorias.
$model_categoria = new Model_Categoria();
$view->assign('categorias', $model_categoria->lista());
// Menu.
$this->template->assign('master_bar', parent::base_menu('posts'));
$this->template->assign('top_bar', Controller_Home::submenu('nuevo'));
// Asignamos la vista.
$this->template->assign('contenido', $view->parse());
if (Request::method() == 'POST') {
$error = FALSE;
// Obtenemos los datos y seteamos valores.
foreach (array('titulo', 'contenido', 'categoria', 'tags') as $k) {
${$k} = isset($_POST[$k]) ? $_POST[$k] : '';
$view->assign($k, ${$k});
}
// Obtenemos los checkbox.
foreach (array('privado', 'patrocinado', 'sticky', 'comentar') as $k) {
${$k} = isset($_POST[$k]) ? $_POST[$k] == 1 : FALSE;
$view->assign($k, ${$k});
}
// Verificamos el titulo.
if (!preg_match('/^[a-zA-Z0-9áéíóú\\-,\\.:\\s]{6,60}$/D', $titulo)) {
$view->assign('error_titulo', 'El formato del título no es correcto.');
$error = TRUE;
}
// Verificamos el contenido.
$contenido_clean = preg_replace('/\\[.*\\]/', '', $contenido);
if (!isset($contenido_clean[20]) || isset($contenido[5000])) {
$view->assign('error_contenido', 'El contenido debe tener entre 20 y 5000 caractéres.');
$error = TRUE;
}
unset($contenido_clean);
// Verificamos la categoria.
$model_categoria = new Model_Categoria();
if (!$model_categoria->existe_seo($categoria)) {
$view->assign('error_categoria', 'La categoría seleccionada es incorrecta.');
$error = TRUE;
} else {
$model_categoria->load_by_seo($categoria);
$categoria_id = $model_categoria->id;
}
unset($model_categoria);
// Quito espacios adicionales a las etiquetas.
$tags = preg_replace('/\\s+/', ' ', trim($tags));
// Verificamos las etiquetas.
if (!preg_match('/^[a-zA-Z0-9áéíóúñÑÁÉÍÓÚ, ]{0,}$/D', $tags)) {
$view->assign('error_tags', 'Las etiquetas ingresadas con son alphanuméricas.');
$error = TRUE;
}
if (!$error) {
// Obtengo el listado de etiquetas.
$tags = explode(',', $tags);
foreach ($tags as $k => $v) {
$tags[$k] = trim($v);
if ($tags[$k] == '') {
unset($tags[$k]);
}
}
// Verifico la cantidad.
if (count($tags) < 3) {
$view->assign('error_tags', 'Debes insertar un mínimo de 3 etiquetas.');
$error = TRUE;
}
}
// Procedemos a crear el post.
if (!$error) {
// Evitamos XSS.
$contenido = htmlentities($contenido, ENT_NOQUOTES, 'UTF-8');
// Formateamos los campos.
$titulo = trim(preg_replace('/\\s+/', ' ', $titulo));
// Verifico si es borrador.
$borrador = isset($_POST['submit']) ? $_POST['submit'] == 'borrador' : FALSE;
// Obtengo el estado a aplicar.
if ($borrador) {
$estado = Model_Post::ESTADO_BORRADOR;
//.........这里部分代码省略.........
示例12: action_usuarios
/**
* 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());
}
示例13: action_index
/**
* Portada de los borradores.
* @param int $pagina Número de página a mostrar.
*/
public function action_index($pagina)
{
// Cargamos la portada.
$vista = View::factory('borradores/index');
// Cantidad de elementos por pagina.
$model_configuracion = new Model_Configuracion();
$cantidad_por_pagina = $model_configuracion->get('elementos_pagina', 20);
// Cargamos datos de posts.
$model_post = new Model_Post();
// Formato de la página.
$pagina = (int) $pagina > 0 ? (int) $pagina : 1;
// Cargamos el listado de borradores.
list($borradores, $total) = $model_post->borradores(Usuario::$usuario_id, $pagina, $cantidad_por_pagina);
// Que sea un número de página válido.
if (count($borradores) == 0 && $pagina != 1) {
Request::redirect('/borradores');
}
// Paginación.
$paginador = new Paginator($total, $cantidad_por_pagina);
$vista->assign('paginacion', $paginador->get_view($pagina, '/borradores/index/%d'));
unset($paginador);
// Obtengo información de los borradores.
foreach ($borradores as $k => $v) {
if (is_array($v)) {
$a = $v['post']->as_array();
$a['categoria'] = $v['post']->categoria()->as_array();
// $a['moderado'] = $v['moderado']->as_array();
// $a['motivo'] = $v['moderado']->moderacion()->as_array();
} else {
$a = $v->as_array();
$a['categoria'] = $v->categoria()->as_array();
}
$borradores[$k] = $a;
}
// Seteo parámetros a la vista.
$vista->assign('borradores', $borradores);
unset($borradores);
// Seteo el menu.
$this->template->assign('master_bar', parent::base_menu('posts'));
// Asignamos la vista a la plantilla base.
$this->template->assign('contenido', $vista->parse());
}
示例14: action_comentarios
/**
* 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());
}
示例15: action_fotos
/**
* Listado de fotos que se encuentran en la papelera.
* @param int $pagina Número de página a mostrar.
*/
public function action_fotos($pagina)
{
// Verifico permisos.
if (!Usuario::permiso(Model_Usuario_Rango::PERMISO_FOTO_VER_PAPELERA)) {
$_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/papelera/fotos');
// Modelo de fotos.
$model_foto = new Model_Foto();
// Cargamos el listado de posts.
$lst = $model_foto->listado($pagina, $cantidad_por_pagina, Model_Foto::ESTADO_PAPELERA);
if (count($lst) == 0 && $pagina != 1) {
Request::redirect('/moderar/papelera/fotos');
}
// Paginación.
$paginador = new Paginator(Model_Foto::s_cantidad(Model_Foto::ESTADO_PAPELERA), $cantidad_por_pagina);
$vista->assign('paginacion', $paginador->get_view($pagina, '/moderar/papelera/fotos/%s/'));
// Obtenemos datos de los posts.
foreach ($lst as $k => $v) {
$a = $v->as_array();
$a['usuario'] = $v->usuario()->as_array();
$lst[$k] = $a;
}
// Seteamos listado de fotos.
$vista->assign('fotos', $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('papelera_fotos'));
// Asignamos la vista a la plantilla base.
$this->template->assign('contenido', $admin_template->parse());
}