php-resource



Zurück   PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr > Entwicklung > PHP Developer Forum
 

Login

 
eingeloggt bleiben
star Jetzt registrieren   star Passwort vergessen
 

 

 


PHP Developer Forum Hier habt ihr die Möglichkeit, eure Skriptprobleme mit anderen Anwendern zu diskutieren. Seid so fair und beantwortet auch Fragen von anderen Anwendern. Dieses Forum ist sowohl für ANFÄNGER als auch für PHP-Profis! Fragen zu Laravel, YII oder anderen PHP-Frameworks.

Antwort
 
LinkBack Themen-Optionen Thema bewerten
  #1 (permalink)  
Alt 27-09-2015, 21: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
  #2 (permalink)  
Alt 28-09-2015, 01:34
Benutzerbild von mermshaus mermshaus
 Registrierter Benutzer
Links : Onlinestatus : mermshaus ist offline
Registriert seit: Jun 2009
Beiträge: 451
mermshaus wird schon bald berühmt werden
Standard

Wie sieht denn setTemplate aus? Ist das insgesamt ein bekanntes Framework oder Eigenentwicklung?

Mit diesem Satz…

Zitat:
Doch leider wird bei dieser Konstellation das Template nicht an der gewünschten Stelle implementiert, sondern irgendwo.
…kann ich ansonsten ehrlich gesagt wenig anfangen, weil ich zum Beispiel nicht weiß, was die „gewünschte Stelle“ ist.

Das ist alles nicht ersichtlich.

Der Code, den du zeigst, ist insgesamt mehr oder weniger Pseudocode, oder?
Mit Zitat antworten
  #3 (permalink)  
Alt 28-09-2015, 13:06
Crowdy
 Registrierter Benutzer
Links : Onlinestatus : Crowdy ist offline
Registriert seit: Oct 2014
Beiträge: 9
Crowdy befindet sich auf einem aufstrebenden Ast
Standard

Hallo mermshaus,

die gewüschte Stelle wäre in diesem Fall, dass das Template innerhalb des ersten templates erscheint. Derzeit ist es allerdings so, dass es oberhalb allen Inhalts steht, und quasi beim aufruf des entsprechenden Controllers als erstes geladen wird.

Es handelt sich um eine Eigenentwicklung.Die setTemplate Methode ist getTemplate.

Insgesamt handelt es sich dabei auch nicht um einen pseudo code, sondern verwende Ihn tatsächlich so, oder so in der Art, da ich Ihn für das Forum ein wenig "anonymisiert" habe.
Mit Zitat antworten
  #4 (permalink)  
Alt 28-09-2015, 14:27
Crowdy
 Registrierter Benutzer
Links : Onlinestatus : Crowdy ist offline
Registriert seit: Oct 2014
Beiträge: 9
Crowdy befindet sich auf einem aufstrebenden Ast
Standard Problem gelöst !

Hallo ,

nach einigem rumprobieren konnte ich mein Problem lösen.

Über setTempalte rief ich gettemplate auf

settemplate
PHP-Code:
  public function setTemplate($tpl)
  {
      echo 
$this->getTemplate($tpl);
  } 
getemplate
PHP-Code:
public function getTemplate($tpl) {
      
extract($this->_vars);
      
ob_start();
      include 
'views/'.$tpl;
      return 
ob_get_clean();
  } 
Nachdem ich nun auf diesen Umweg verzichte, und mich direkt gettemplate bediene, wird auch allles an der richtigen Stelle ausgegeben.
Mit Zitat antworten
  #5 (permalink)  
Alt 28-09-2015, 19:20
Benutzerbild von mermshaus mermshaus
 Registrierter Benutzer
Links : Onlinestatus : mermshaus ist offline
Registriert seit: Jun 2009
Beiträge: 451
mermshaus wird schon bald berühmt werden
Standard

Zitat:
Insgesamt handelt es sich dabei auch nicht um einen pseudo code, sondern verwende Ihn tatsächlich so, oder so in der Art
Jedenfalls gehören in PHP zumindest mal Dollarzeichen vor Variablennamen.

Ich erwähne das, weil es für Helfer leider ziemlich unmöglich ist, zu entscheiden, was eine absichtliche Verkürzung ist (im Sinne von Pseudocode) und was gegebenenfalls ein Fehler. Deshalb im Zweifel besser darauf achten, gültigen Code zu schreiben, der auch halbwegs Sinn ergibt.

Geändert von mermshaus (28-09-2015 um 20:05 Uhr)
Mit Zitat antworten
Antwort

Lesezeichen

Stichworte
mvc, template, view


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
MVC statt Template Engine .elementrio BRAINSTORMING PHP/SQL/HTML/JS/CSS 17 21-11-2008 01:51
Template in einem template jUnk2k4 PHP Developer Forum 9 10-10-2005 16:08
template PeterMo HTML, JavaScript, AJAX, jQuery, CSS, Bootstrap, LESS 3 30-12-2003 00:35
Template BenBay PHP Developer Forum 4 22-08-2003 03:30
Template Heiner PHP Developer Forum 3 23-06-2002 02:52

Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an


PHP News

ebiz-trader 7.5.0 mit PHP7 Unterstützung veröffentlicht
ebiz-trader 7.5.0 mit PHP7 Unterstützung veröffentlichtDie bekannte Marktplatzsoftware ebiz-trader ist in der Version 7.5.0 veröffentlicht worden.

28.05.2018 | Berni

Wissensbestand in Unternehmen
Wissensbestand in UnternehmenLebenslanges Lernen und Weiterbilden sichert Wissensbestand in Unternehmen

25.05.2018 | Berni


 

Aktuelle PHP Scripte

ADSMAN V3 - Werbe-Manager ansehen ADSMAN V3 - Werbe-Manager

ADSMAN V3 - mehr als nur ein Bannermanager! Banner, Textanzeigen und PagePeel Manager! Mit ADSMAN PRO haben Sie die Marketinglösung für eine effektive und effiziente Werbeschaltung mit messbaren Ergebnissen. Unterstützt werden Bannerformate in beliebi

25.10.2018 virtualsystem | Kategorie: PHP/ Bannerverwaltung
PHP News und Artikel Script V2

News schreiben, verwalten, veröffentlichen. Dies ist jetzt mit dem neuen PHP News & Artikel System von virtualsystem.de noch einfacher. Die integrierte Multi-User-Funktion und der WYSIWYG-Editor (MS-Office ähnliche Bedienung) ermöglichen...

25.10.2018 virtualsystem | Kategorie: PHP/ News
Top-Side Guestbook

Gästebuch auf Textbasis (kein MySQL nötig) mit Smilies, Ip Sperre (Zeit selbst einstellbar), Spamschutz, Captcha (Code-Eingabe), BB-Code, Hitcounter, Löschfunktion, Editierfunktion, Kommentarfunktion, Kürzung langer Wörter, Seiten- bzw. Blätterfunktion, V

22.10.2018 webmaster10 | Kategorie: PHP/ Gaestebuch
 Alle PHP Scripte anzeigen

Alle Zeitangaben in WEZ +2. Es ist jetzt 01:48 Uhr.