Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MVC] fuzja Joomla + Smarty = MVC
Forum PHP.pl > Forum > PHP > Object-oriented programming
atomp3
Witam


Jest to dość dziwne połączenie. Pytałem na innych forach (joomla, smarty) ale nikt nie potrafi odpowiedzieć.

Jak połączyć model MVC z Joomla używając smarty? Udało mi się ogolnie odpalić Smarty w Joomla, ale wersja 1.5 używa MVC. Wiem że jest dużo przeciw ale mimo wszystko lubie uzywac smarty smile.gif Jest czytelny i przejrzysty.

Przykladowy controler z joomla:

  1. <?php
  2. // no direct access
  3. defined( '_JEXEC' ) or die( 'Restricted access' );
  4.  
  5. jimport('joomla.application.component.controller');
  6.  
  7. /**
  8.  * Greetings Component Controller
  9.  */
  10. class GreetingsController extends JController
  11. {
  12.  
  13.  /**
  14.  * Method to display the view
  15.  *
  16.  * @access public
  17.  */
  18. function display()
  19. {
  20.  $viewName= JRequest::getVar( 'view', 'list' ); //This sets the default view (second argument)
  21.  $viewLayout= JRequest::getVar( 'layout', 'listlayout' ); //This sets the default layout/template for the view
  22.  
  23.  $view = & $this->getView($viewName);
  24.  
  25. // Get/Create the model
  26.  if ($model = & $this->getModel(&#8216;greetings’)) {
  27. // Push the model into the view (as default)
  28.  $view->setModel($model, true);
  29.  }
  30.  
  31.  $view->setLayout($viewLayout);
  32.  $view->display();  
  33. }
  34. }
  35. ?>


tutaj jest tutorial http://www.joomladevuser.com/tutorials/com...-i-the-frontend



Dzieki za wszelka pomoc!
John
  1. <?php
  2. function display()
  3. {
  4.  $viewName= JRequest::getVar( 'view', 'list' ); //This sets the default view (second argument)
  5.  $viewLayout= JRequest::getVar( 'layout', 'listlayout' ); //This sets the default layout/template for the view
  6.  
  7.  $view = & $this->getView($viewName);
  8.  
  9. // Get/Create the model
  10.  if ($model = & $this->getModel(&#8216;greetings’)) {
  11. // Push the model into the view (as default)
  12.  $view->setModel($model, true);
  13.  }
  14.  
  15.  $view->setLayout($viewLayout);
  16.  $view->display();  
  17. }
  18. ?>


jak na mój gust to na zadane przez Ciebie pytanie odpowiedziałeś sobie w przykładowym kodzie, angielskie komentarze wskazują na to, że klasa JRequest a konkretniej metoda getVar jest odpowiedzialna za przypisywanie szablonów. Na twoim miejscu grzebałbym właśnie w tej metodzie, i zmusił ją, aby zamiast swoich szablonów przypisywała szablony smartowe :-). Potem jeszcze chwila walczenia z display co by odwoływał się do smartowego display i powinno działać. Ponieważ nie słyszałem jeszcze o takim pomyśle to życzę powodzenia.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.