Einzelnen Beitrag anzeigen
  #1 (permalink)  
Alt 27-09-2015, 20:14
Crowdy
 Registrierter Benutzer
Links : Onlinestatus : Crowdy ist offline
Registriert seit: Oct 2014
Beiträge: 9
Crowdy befindet sich auf einem aufstrebenden Ast
Standard MVC: Template innerhalb Template

Sehr geehrte Damen und Herren,

bei dem Versuch , standesgemäß nach mvc pattern zu arbeiten , stoße ich auf folgendes Problem, welches ich auch durch intensives googeln bisher nicht lösen konnte:

meine view class setzt mir meine verschiedenen Templates zusammen:

PHP-Code:
  public function display($tpl) {
    
extract($this->_vars);
    
ob_start();
    include 
'views/header.tpl.php';
    include 
'views/'.$tpl;
    include 
'views/footer.tpl.php';
    return 
ob_get_clean();
  }

  public function 
getTemplate($tpl) {
      
extract($this->_vars);
      
ob_start();
      include 
'views/'.$tpl;
      return 
ob_get_clean();
  } 
Nun habe ich einen Controller, innerhalb dessen für eine bestimmte "Action" das passende Template zugewiesen wird.

Controller.php

PHP-Code:
    public function imageViewAction() {
        
$site $_GET ['site'];
        
$imagearray $model->HolMirInfos $_GET ['dir'] );
 
$soli $this->showVoteAction(v,w,x,y,z);
 
$this->_view->soli $soli;
        
$this->_view->name $imagearray [x] [y];
        
$this->_view->src $imagearray [x] [y];
        
$this->_view->display 'example/template1.tpl.php' );

    } 
Innerhalb dieser Methode, möchte ich nun gerne ein weiteres template laden, was bereits mit Daten befüllt worden ist.

PHP-Code:
 $soli $this->showVoteAction(v,w,x,y,z); 
showvoteaction

PHP-Code:
public function showvoteAction(v,w,x,y,z) {
       
        ....
berechnungen
...
...
...
..


        
$this->_view->song $querystring;
        
$complete $this->_view->setTemplate('example/template2.tpl.php' );
        
        
//return $complete;
    

Doch leider wird bei dieser Konstellation das Template nicht an der gewünschten Stelle implementiert, sondern irgendwo.

Was habe ich hier falsch angestellt?

Vielleicht weiß jemand eine Antwort auf meine Frage?

Beste Grüße,

euer Crowdy
Mit Zitat antworten