Ver Mensaje Individual
  #4 (permalink)  
Antiguo 13/01/2011, 17:38
Avatar de NUCKLEAR
NUCKLEAR
Moderador radioactivo
 
Fecha de Ingreso: octubre-2005
Ubicación: Cordoba-Argentina
Mensajes: 5.688
Antigüedad: 18 años, 5 meses
Puntos: 890
Respuesta: MVC, pagina con modulos estilo Joomla

Hay varias maneras de poder implementer un menu o un widget:

Tal como lo dice Destor(que obviamente tendrias que repetirlo en cada controller y eso no es bueno), la otra crear un sistema modular: menu, comentarios, user.
Y llamar desde tu template por ejemplo con file_get_contents(aunque tampoco es buena idea) - recuerda que toda la vista al final se unifica y puede recibir cualquier variable desde el controller asi por ejemplo tienes tu modulo menu

menu
---controller
---models
---views

Se lo envias desde el controller o lo puedes llamar desde tu vista un ejemplo de como lo implementa Codeigniter y el sistema HMVC es llamadolo de esta manera

module::run('menu', $foo, $var....)

Tu esto lo puedes llamar de cualquier parte de tu vista o controller, las variables que le pasas la toma el controlador.

Ejemplo :

module::run('menu', $idioma, $rol);

Obviamente tu modulo menu tiene que estar preparado para recibir/trabajar con esas variables e imprimir el resultado.

Partiendo de esa idea puedes crear tu sistema. Con mas orden y mas facil de mantener. Y tus modulos reutilizables.

Otro ejemplo seria con los comentarios

module comentarios

comentarios
--views
--controllers
--models

module::run('comentarios', $post_id, $rol, $visible);


Un practico ejemplo usando este mismo metodo seria:

Por ejemplo el sistema de comentarios(Es solo de ejemplo):

Código PHP:
Ver original
  1. class PostsController extends controller{
  2.  
  3. function mostrartodos(){
  4.  
  5. /* muestras todos los post */
  6.  
  7. }
  8.  
  9. /*mostrar un post*/
  10. function mostrarpost($post_id){
  11.  
  12. ///////  dependiendo de como lo hagas puedes agregarlo al constructor para evitar ponerlo en todos los actions///////
  13. $vars['post_id'] = $post_id;
  14. $vars['role'] = "1;"
  15. $vars['visible'] = TRUE;
  16. //////
  17.  
  18. $vars['posts'] = (array de los post obtenidos del model);
  19. $this->load->view('layout_principal', $vars);
  20.  
  21.  
  22. }
  23.  
  24. }


En tu vista:

layout_principal.phtml

<html>
<single post>
........
</single post>

<comentarios>
<?php module::run('comentarios', $post_id, $role, $visible); ?>
<comentarios>

</html>

Se que es bastante abstracto pero alli entra la habilidad del quien lo vea/haga/entienda

TODO ESTE EJEMPLO ESTA BASADO EN LA ESTRUCTURA MVC DE CODEIGNITER.
__________________
Drupal Argentina

Última edición por NUCKLEAR; 13/01/2011 a las 17:45