Problem mit Klasse und Template

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

  • 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.
    Zuletzt geändert von 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")); 

    Kommentar


    • #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

      Kommentar


      • #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.

        Kommentar


        • #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

          Kommentar


          • #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]

            Kommentar


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

              Kommentar


              • #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.... ^^
                Zuletzt geändert von tontechniker; 12.03.2006, 18:48.
                Die Regeln | rtfm | register_globals | strings | SQL-Injections | [COLOR=silver][[/COLOR][COLOR=royalblue]–[/COLOR][COLOR=silver]][/COLOR]

                Kommentar


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

                  Kommentar


                  • #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]

                    Kommentar


                    • #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.

                      Kommentar


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

                        Kommentar

                        Lädt...
                        X