/** * Listado de fotos existentes. * @param int $pagina Número de página a mostrar. * @param int $tipo Tipo de fotos a mostrar. */ public function action_fotos($pagina, $tipo) { // Formato de la página. $pagina = (int) $pagina > 0 ? (int) $pagina : 1; // Verifico el tipo de fotos a mostrar. switch ($tipo) { case 0: // Activa. $tipo = array('activa', 0); break; case 1: // Oculta. $tipo = array('oculta', 1); break; case 2: // Papelera. $tipo = array('papelera', 2); break; case 3: // Borrada. $tipo = array('borrada', 3); break; case 4: // Todas. // Todas. default: // Todas. $tipo = array('total', NULL); } // 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/contenido/fotos'); $vista->assign('tipo', $tipo[1] === NULL ? 4 : $tipo[1]); // Modelo de fotos. $model_fotos = new Model_Foto(); // Cargamos el listado de fotos. $lst = $model_fotos->listado($pagina, $cantidad_por_pagina, $tipo[1]); // Si no hay elementos y no estamos en la inicial redireccionamos (Puso página incorrecta). if (count($lst) == 0 && $pagina != 1) { Request::redirect('/admin/contenido/fotos'); } // Calculo las cantidades. $cantidades = Model_Foto::cantidad_agrupados(); // Paso datos para barra. $vista->assign('cantidades', $cantidades); $vista->assign('actual', $pagina); // Paginación. $paginador = new Paginator($cantidades[$tipo[0]], $cantidad_por_pagina); $vista->assign('paginacion', $paginador->get_view($pagina, '/admin/contenido/fotos/%s/' . $tipo[0])); // Obtenemos datos de las fotos. 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('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_fotos')); // Asignamos la vista a la plantilla base. $this->template->assign('contenido', $admin_template->parse()); }