Problem mit Klasse und Template

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • Problem mit Klasse und Template

    hallo zusammen,

    ich habe eine function in einer klasse und möchte diese in einem template ausgeben.

    aufgerufen wird die function so
    PHP Code:
    include("tourneytypes/".$TourneyType.".inc.php");
    $TourneyObj = new $TourneyType;
    $TourneyObj->NewTourney($Stage$Name$Game$TourneyType$MaxPlayers$rules$mapiddraw); 
    die function selber sieht so aus
    PHP Code:
    function NewTourney($Stage$Name$Game$TourneyType$MaxPlayers$rules$mapiddraw){
        global 
    $db$n$tpl;
        if (
    $Stage == 1){
          
    $GetGameSQL $db->query("SELECT * FROM bb".$n."_tm_game WHERE gameid = '".$Game."'");
          
    $GetGameRow $db->fetch_array($GetGameSQL);
          
    $GetType $this->GetType();
          
    $Gamename $GetGameRow["name"];
          
    $MapSQL $db->query("SELECT * FROM bb".$n."_tm_maps ORDER BY mapname");
          while (
    $MapRow $db->fetch_array($MapSQL)){
            
    $Map_Options .= makeoption($MapRow["mapid"], $MapRow["mapname"]);
          }
          eval(
    "\$Tournament_Content = \"".$tpl->get("tms_newtourney")."\";");
          eval(
    "\$tpl->output(\"".$tpl->get("tms")."\");");
        }elseif (
    $Stage == 2){
          if (
    $MaxPlayers 16){
            
    $Error "Dies ist nicht die richtige Grösse für diese League. Bitte wähle AAO Pro 
    Tournament für Anzahl Teams < 16!"
    ;
            eval(
    "\$Tournament_Content = \"".$tpl->get("tms_error")."\";");
            eval(
    "\$tpl->output(\"".$tpl->get("tms")."\");");
            exit;
          } 
          
    // Standard TeamsPerGame do not change!!!!
          
    $TeamsPerGame 2;
          
    $db->query("INSERT INTO bb".$n."_tm_tournament (name, gameid, maxplayers, status, tourneytype, 
    rules, teamspergame, mapiddraw) VALUES 
    ('"
    .$Name."', ".$Game.", ".$MaxPlayers.", '1', 'aao_pro_series',
     '"
    .$rules."', '".$TeamsPerGame."', '".$mapiddraw."')");
          
    header ("Location: tms_admin.php?action=leagues");
        } 
      } 
    meine frage ist, wie kann ich die ausgabe über ein tamplate erreichen?
    in der function wird mit eval das template "tms_newtourney_proseries" in $Tournament_Content geladen und dieses wiederum im template"tms" ausgegeben.

    leider bekomme ich so keinerlei ausgabe.
    mit eval("\$tpl->output(\"".$tpl->get("tms_newtourney")."\");"); direkt in der function bekomme ich eine ausgabe aber
    natürlich ohne das entsprechende haupt template.

    grundlegend ist natürlich die frage, wie ich die abfragen aus der function in einem template ausgeben kann.

    hoffe, dass ich hier hilfe bekomme. bin schon seit 2 tagen am probieren, langsam bin ich am verzweifeln.
    Last edited by ByteRipper; 12-03-2006, 08:33.
    Byte BR Ripper

  • #2
    Bitte brich den Code so um, dass man nicht mehr nach rechts scrollen muß. Danke.

    Wenn ich die Funktion sehe, wird mir ganz eval. Stammt das aus deiner Feder? Warum nicht einfach so?
    PHP Code:
    $Tournament_Content $tpl->get("tms_newtourney");
    $tpl->output($tpl->get("tms")); 

    Comment


    • #3
      der code stammt von mir. das script läuft unterm wbb board, da wird das template so aufgerufen.
      aber so wie die function jetzt ist, bekomme ich ja keine ausgabe, lediglich eine weisse seite.
      Byte BR Ripper

      Comment


      • #4
        Tja sorry, aber so kann dir keiner helfen. Du möchtest die Ausgabe über ein Template erreiche, aber die Funktion gibt schon alles über das $tpl-Objekt, von dem man leider nicht weiß, wie es gestrickt ist.

        Comment


        • #5
          es dürfte doch eigentlich egal sein, wie das template aufgerufen wird.

          es geht denke ich mal um das grundlegende. kann ich überhaupt ein template so in einer funktion aufrufen, oder muss ich es in der aufrufenden datei ausgeben.
          oder muss ich die funktion einer variablen zuweisen.
          PHP Code:
          $TourneyContent $TourneyObj->NewTourney($Stage$Name$Game$TourneyType$MaxPlayers$rules$mapiddraw); 
          vieleicht hat ja hier im forum jemand erfahrung mit dem wbb board und kann mir da weiterhelfen, oder mir mal jemand einge links posten, damit ich mich mal schlau lesen kann. habe selber schon einige stunden google heislaufen lassen, aber nicht wirklich was nützliches gefunden.
          Byte BR Ripper

          Comment


          • #6
            vielleicht wäre es der übersicht halber schon mal ganz gut wenn du die arme funktion von den ganzen eval's befreien würdest? dann könnte man das auch lesen und versuchen es zu versthen :P
            Die Regeln | rtfm | register_globals | strings | SQL-Injections | [COLOR=silver][[/COLOR][COLOR=royalblue]–[/COLOR][COLOR=silver]][/COLOR]

            Comment


            • #7
              wenn ich die evals rausnehme, wo bekomme ich dann die ausgabe der in der funktion erstellten daten her???
              Byte BR Ripper

              Comment


              • #8
                na das sollte doch kein problem sein:
                aus:
                PHP Code:
                 eval("\$Tournament_Content = \"".$tpl->get("tms_newtourney")."\";"); 
                wird
                PHP Code:
                $Tournament_Content $tpl->get("tms_newtourney"); 
                ich nehme an deine funktion macht sowas wie
                PHP Code:
                return (string) $blubb
                dann ist das doch kein problem
                EDIT:
                Ich schreibe grad ein komplett objektorientiertes community-system und habe noch nicht einmal eval benutzt.... ^^
                Last edited by tontechniker; 12-03-2006, 18:48.
                Die Regeln | rtfm | register_globals | strings | SQL-Injections | [COLOR=silver][[/COLOR][COLOR=royalblue]–[/COLOR][COLOR=silver]][/COLOR]

                Comment


                • #9
                  Original geschrieben von tontechniker
                  na das sollte doch kein problem sein:
                  aus: ...
                  wird ...
                  Genau das habe ich gestern schon gesagt. PEBKAC!

                  Comment


                  • #10
                    PEBKAC!
                    was???
                    Genau das habe ich gestern schon gesagt.
                    vielleicht wars zu unverständlich :P
                    OffTopic:
                    ByteRipper sollte sich mal gedanken über seinen stil machen ....
                    Die Regeln | rtfm | register_globals | strings | SQL-Injections | [COLOR=silver][[/COLOR][COLOR=royalblue]–[/COLOR][COLOR=silver]][/COLOR]

                    Comment


                    • #11
                      Original geschrieben von tontechniker
                      PEBKAC!
                      was???
                      Oder PICNIC, wenn dir das besser gefällt ...
                      I don't believe in rebirth. Actually, I never did in my whole lives.

                      Comment


                      • #12
                        ja ich verstehe - danke
                        ein dau ^^
                        Die Regeln | rtfm | register_globals | strings | SQL-Injections | [COLOR=silver][[/COLOR][COLOR=royalblue]–[/COLOR][COLOR=silver]][/COLOR]

                        Comment

                        Working...
                        X