Grundaufbau mit Templates

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • #16
    Wieso nicht? Du kannst doch webicq benutzen, oder?

    www.go.icq.com

    Kommentar


    • #17
      Ich hab ICQ hier in der Firma installiert. Nur bin ich hier um zu arbeiten und nicht um nen Plausch im ICQ zu halten

      Kommentar


      • #18
        Aber um im Forum zu Posten ist die Zeit?

        na gut, vielleicht bist du ja heute abend nochmal da....

        Kommentar


        • #19
          juhu vieleicht kann ich dir ja nen bissel helfen!!!

          Also ich hatte mal das gleiche problem mit smarty! aller anfang ist schwer.

          ich werde jetzt nicht grossartig auf dein problem eingehen, sondern eine kleine lösung vorstellen wie ich damit um gehen würde und es auch so anwende.

          also ich habe das ganze in 5 php datein aufgesplitet.

          1.) tsystem.class.php
          2.) view.class.php
          3.) smarty.class.php <--is nur ne wrapper klasse!!!
          4.) Smarty.class.php <-- die eigentliche Smarty klasse
          5.) command.class.php

          So jetzt mein ansatz:

          1.) es wird ja standard mässig die index.php aufgerufen, die die config.inc.php und diese wiederrum die tsytem.class.php includiert.



          PHP-Code:
          <?php
          //tsystem.class.php



          //command.class.php holt nur die action aus dem Request.
          include ("includes/command.class.php");

          //view.class.php ist für die standart darstellung der seite da.
          include ("includes/view.class.php");

          //wrapper klasse
          include ("includes/smarty.class.php");

          //die eigentliche smarty klasse die man sich aus dem inet lädt 
          include ("smarty/Smarty.class.php");


          class 
          tsystem{

           
          //konstruktor werden alle objekte instanziert die ich hinterher in meiner Session benötige 
           
          function tsystem(){
            
          //cmd holt sich nacher meine action aus dem request
            
          $this->cmd=new command();
           }

           
          //methode execute wird später aus der index.php aufgerufen
           
          function execute(){
            
          //die methode check ist eine standart methode in der klasse cmd
            
          $this->cmd->check();
           }

          }
          ?>
          als nächstes will ich die config.inc.php betrachten

          PHP-Code:
          <?php
          //config.inc.php



          include("includes/tsystem.class.php");
          ini_set("session.use_cookies");

          //startet eine sessison
          session_start();


          //falls das pbjekt SYS in der session schon existiert, nun ja da muss man dann keine neue Session starten
          if(!array_key_exists("SYS",$_SESSION)){
           
          $_SESSION["SYS"] = new tsystem();
          }

          //vereinfachung so muss man dann nur $SYS nehmen und nicht &$_SESSION['SYS'];
          $SYS = &$_SESSION["SYS"];
          ?>
          so bis jetzt haben wir ja schon ein wenig und kommen endlich zur index.php



          PHP-Code:
          <?php
          //index.php


          include("includes/config.inc.php");
           
           
          //hier starten wir die execute methode aus der tystem.class.php haben wir ja oben schon gesehen
           
          $SYS->execute();

           
          //erzeugen unser View Objekt kommt gleich auch noch
           
          $viewctrl = new tview();
           

           
          //starten die methode aus der viewklasse und übergegen ihr eine kopie der Session!!!!! sehr wichtig
           
          $viewctrl->execute(&$SYS);
          ?>


          wollen wir uns dem herzstück des kleinen konstrucktes die view.class.php anschauen

          PHP-Code:
          //view.class.php




          class tview {

          //action variablen unten wichtig für die auswahl des workerfiles
              
          var $page="";

          //wichtig für das workerfile dort kann dann aus dem workerfile eine bestimmte methode gewählt werden
              
          var $action="";


          //content variabeln werden später mit den HTML code der einzelnen bereiche gefüllt    
              
          var $content="";
              var 
          $left_col="";
              
              
          //konstruktor muss hier nichts machen
              
          function tview(){}
              

          //execute methode wird standart mässig von der index.php aufgerufen
              
          function execute(&$variable){
                  
          $this->SYSref = &$variable;
                  
          $this->view();
              }



              function 
          view(){

          //smarty-objekt zum anzeigen und fetchen der tpls
                  
          $sm             =    &tsmarty::newSmarty();
                  
                          
          $this->page        =     $this->SYSref->cmd->page;
                  
          $this->action    =    $this->SYSref->cmd->action;
          //WORKER includen durch die page z.b. (index.php?page=gbook) wird aus dem ordner worker die gbook.php includiert.
          //----------------------------------------------------------------------------------------------------------------            
                  
          if(file_exists("workers/".$this->page.".php")){
                      include(
          "workers/".$this->page.".php");
                  }else include(
          "workers/baustelle.php");
          //WORKER ENDE
          //----------------------------------------------------------------------------------------------------------------            
          //in den workerfiles befülle ich die dynamischen elemente meiner seite in die variablen, die dann hier in das main.tpl wiederrum geaddet werden
                  
          $sm->assign("navi"$this->navi);
                  
          $sm->assign("content",  $this->content);
                  
          $sm->display("main.tpl");
              }
          // function view
          }// class view
          ?> 


          die wrapper klasse smarty und die command klasse


          PHP-Code:
          ?php
          //command.class.php

          class command{
                          
          //festlegung der startpage
              
          var $page="home";
              var 
          $action="show";
              

              function 
          command() {
              }
              
              function 
          check(){
                  if(
          array_key_exists("page"$_REQUEST)){
                      
          $this->page=$_REQUEST['page'];    
                  }
                  if(
          array_key_exists("action"$_REQUEST)){
                                          
          $this->action=$_REQUEST['action'];
                  }
              }
          }
          ?> 
          PHP-Code:
          <?php
          //smarty.class.php

          //die klasse erzeugt nur ein smartyobjekt und gibt es wieder zurück!! nicht mehr und nicht weniger
          class smarty{
              function 
          smarty(){}

              function &
          newSmarty(){
                  
          $sm = new Smarty();
              return 
          $sm;
              }
          }
          ?>

          zum abschluss noch ein beispiel workerfile dieses würde mit folgender url auf gerufen werden index.php?page=home&action=show


          PHP-Code:
          <?php
           
          //hier im workerfile kann man sich jetzt richtig austoben was den dynamischen inhalt einer seite oder auch bereiche betrifft.


          if($this->action=="show"){

           
          //standart anzeige
           
          $sm->assign("titel""Home");
           
          $this->content=$sm->fetch("home.tpl");

          }

          ?>

          normarlerweise müsste man jetzt nur die einzelnen quelltexte hier heraus kopieren und auf den webserver schmeissen. Ich glaube das das ganze auch laufen würde!!!


          naja wenn noch fragen sein sollten kann man mich gern fragen.

          ich habe versucht mich jetzt hier so kurz wie möglich zuhalten. aber mit weniger komm ich leider nicht aus.

          ich habe das ganze auch als packet da welches ich gern zur verfügung stelle. das auch lauffähig ist und auch schon von mir mit wesentlich mehr featueres kommt.
          Zuletzt geändert von weissmuster; 18.05.2005, 18:19.

          Kommentar


          • #20
            Hallo weissmuster,

            ich werde das gleich mal alles ausprobieren, wenn du das Packet trotzdem dann noch zur Verfügung stellen würdest, würde ich mich sehr freuen.

            Kommentar


            • #21
              ja ich hab mich mal getraut das ding jetzt auf meinem ftp als open source
              zur verfügung zu stellen

              ftp://weissmuster.no-ip.com


              naja liegt nur ein file drin als blank_v0.1.zip

              leider sind die ganzen Klassen noch unkommentiert (sind aber auch nicht sehr kompliziert und auch nicht soviele) aber ich werde das so schnell als möglich nachholen.

              für erklärungen:

              ICQ: 147344522
              mail: weissmuster@q-dsl.de

              Kommentar

              Lädt...
              X