Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP][ZEND] Modułowość, pluginowość
Forum PHP.pl > Forum > Przedszkole
Piotrwusek
Witam

Mam plugin który wybiera mi z bazy danych moduły ("dodatkowe treści"), Wszystko działa poprawnie jednak nie mogę użyć takich poleceń jak

$this->baseUrl;
$ths->render("plik.phtml");
$this->view->a = 'a';

w dokumentacji nie mogę się doczytać

  1. class Zend_View_Helper_Module extends Zend_Controller_Plugin_Abstract
  2. {
  3. public $module;
  4.  
  5. public function __construct()
  6. {
  7. Zend_Loader::loadClass('Module');
  8. }
  9. public function Module($position){
  10. $html = NULL;
  11. $modul = new Module;
  12. $modules = $modul->fetchAll("published='1' AND position='".$position."'", "ordering ASC");
  13. foreach($modules as $mod){
  14.  
  15. Zend_Loader::loadFile("../application/modules/".$mod->module."/".$mod->module.".php", Null, True);
  16.  
  17. $class = $mod->module;
  18. $module = new $class;
  19. include("../application/modules/".$mod->module."/phtml/index.phtml");
  20.  
  21. }
  22. }
  23. }
darko
dodaj pole:

protected $view = null;

oraz metodę:

  1. public function setView(Zend_View_Interface $view) {
  2. $this->view = $view;
  3. }
Piotrwusek
ok thx.

A jak kontrolować wczytywanie szablonu?
Jaki lepszy sposób jest na incudowanie szablonu w ZEND?
darko
Rozwiń myśl, o jakie szablony chodzi?

$view->render("xyz.phtml");

helper i kontroler są dobrymi miejscami na takie operacje, poczytaj
Piotrwusek
ok

  1. $view = new Zend_View();
  2. $this->view->baseUrl = $view->baseUrl();
  3.  
  4. $view->setScriptPath("../application/modules/".$mod->module."/phtml/");
  5. $view->render("index.phtml");


i jak teraz $this->view->baseUrl przekazać żeby odczytać w pliku index.phtml


w dokumentacji jest napisane coś takiego

$view->baseUrl = $view->baseUrl();

Dalej nie wiem jak odczytać to w szablonie (pliku index.phtml który pożniej wczytuje)
darko
Jeśli masz helper widoku w pliku BaseUrl.php:
  1. class Zend_View_Helper_BaseUrl {
  2. public function baseUrl() {
  3. return Zend_Controller_Front::getInstance()->getBaseUrl();
  4. }
  5. }


To w szablonie phtml dajesz:
  1. $this->baseUrl();


w kontrolerze:
  1. $this->view->baseUrl();


i powinno śmigać

// edit
ps tylko czym innym jest moduł, a czym innym helper widoku.
Piotrwusek
moja wina dawałem to w zahaszowanym miejscu :/

thx za pomoc
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.