ilch Forum » Ilch Clan 1.1 » Allgemein » $tpl Systemproblem

Geschlossen
  1. #1
    User Pic
    legalsauger Mitglied
    Registriert seit
    14.08.2009
    Beiträge
    492
    Beitragswertungen
    43 Beitragspunkte
    Hey,
    Ich schreibe gerade an einem Modul für ilch, ich werde das Modul auch hier bereit stellen wenn es fertig ist.

    Worum es sich dabei handelt ist erst mal unwichtig, dazu werde ich was sagen wenn es fertig ist.

    Das ganze droht aber daran zu scheitern, dass ich mit dem Templatesystem nicht zurecht komme und dabei benötige ich eure Hilfe.

    Ausschnitt aus der .php Datei (im admin-Ordner)
    for ($i = 2000; $i <= 2050; $i++) {
        $year .= "<option value=$i>$i</option>";
    }
    
    for ($i = 1; $i <= 12; $i++) {
        $month .= "<option value=$i>$i</option>";
    }
    
    for ($i = 1; $i <= 31; $i++) {
        $day .= "<option value=$i>$i</option>";
    }
    
    $clas = '';
    $tpl = new tpl ( 'change', 1);
    $tpl->set_ar_out($row,0);
    $erg = db_query('SELECT * FROM `prefix_...)` ORDER BY date DESC');
    while ($row = db_fetch_assoc($erg) ) {
      $clas = ($clas == 'Cmite' ? 'Cnorm' : 'Cmite' ); 
    	$row['class'] = $clas;
    	$tpl->set_ar_out($row,1);
    }
    
    $tpl->set('year', $year);
    $tpl->set('month', $month);
    $tpl->set('day', $day);
    
    $tpl->out([b]???[/b]);
    
    $design->footer();


    Ausschnitt aus der entsprechenden .htm Datei
    	    <td class="Cmite">Datum</td>
    		  <td class="Cnorm">
                          <select name="year" size="1">
                            {year}
                          </select>
                          <select name="month" size="1">
                            {month}
                          </select>
                          <select name="day" size="1">
                            {day}
                          </select>
                        </td>
    	  </tr>
    
             [...] //usw usw, Am Ende werden die beiden Arrays mit {EXPLODE} ausgegben.


    Die Arrays funktionieren einwandfrei, aber die Optionsfelder fehlen -.-
    Ich hab jetzt so ziemlich alles probiert, habe sogar die Optionsfelder in Arrays gespeichert und versucht diese mit {EXPLODE} auszugeben...vergebens. -.-
    Der Code für die Erstellung der einzelnen Optionen funktioniert, wenn man den mit echo sofort ausgibt funktionierts...
    Wisst ihr wo mein Fehler liegt?
    Danke

    Ps. Wenn das hier läuft ist der Mod fertig. zwinker


    verwendete ilchClan Version: 1.1 N
    0 Mitglieder finden den Beitrag gut.
  2. #2
    User Pic
    SFX Mitglied
    Registriert seit
    31.07.2009
    Beiträge
    52
    Beitragswertungen
    0 Beitragspunkte
    {EXPLODE} hat nix mit ausgeben zu tun.. zwinker

    explode ist sinnvoll wenn du eine Liste hast und deswegen einen teil immer wieder wiederholen willst..

    Weißt du was ich meine.. ?

    Ich schreibe eine
    {EXPLODE}
    sehr 
    {EXPLODE}
    lange Geschichte


    wenn du jetzt alle 3 Teile "outest"

    $tpl->out(0);
    $tpl->out(1);
    $tpl->out(2);

    kommt raus:

    Ich schreibe eine sehr lange Geschichte


    Wenn du jetzt aber
    dashier machst:

    $tpl->out(0);
    $tpl->out(1);
    $tpl->out(1);
    $tpl->out(1);
    $tpl->out(2);

    kommt raus:

    Ich schreibe eine sehr sehr sehr lange Geschichte


    zwinker

    Explode ist also nur bei solchen Dingen sinnvoll...

    Wenn dein Template nur aus einem Teil besteht kannst du auch einfach ohne explode arbeiten und mit

    $tpl->out(0);

    alles auf einmal ausgeben.. zwinker
    0 Mitglieder finden den Beitrag gut.
  3. #3
    User Pic
    legalsauger Mitglied
    Registriert seit
    14.08.2009
    Beiträge
    492
    Beitragswertungen
    43 Beitragspunkte
    Achso, das mit EXPLODE ist jetzt klar...brauche ich im Fall von den Options ja nicht, da die ja komplett in der Variable gespeichert und ans Template übergeben werden sollten.

    Mit $tpl->out(); werden die Werte aber doch sofort ausgegeben, mit $tpl->set($key, $value); kann ich die doch über den $key an einer bestimmten stelle im html-Formular ausgeben, oder habe ich da grundlegend was übersehen weil es einfach nicht funktionieren will... :/
    0 Mitglieder finden den Beitrag gut.
  4. #4
    User Pic
    SFX Mitglied
    Registriert seit
    31.07.2009
    Beiträge
    52
    Beitragswertungen
    0 Beitragspunkte
    mit

    $tpl->set(key, wert);

    kannst du eine variable einsetzen

    bei

    $tpl->out();

    gibst du an welcher Teil des templates angezeigt wird.. zwinker

    Wenn du kein {EXPLODE} hast gibst du da einfach 0 an damit alles angezeigt wird..
    0 Mitglieder finden den Beitrag gut.
  5. #5
    User Pic
    legalsauger Mitglied
    Registriert seit
    14.08.2009
    Beiträge
    492
    Beitragswertungen
    43 Beitragspunkte
    Ich hab die Variablen ja gesetzt:

    $tpl->set('year', $year);
    $tpl->set('month', $month);
    $tpl->set('day', $day);


    Die müsste ich dann doch wie im Startpost mit "{year}" aufrufen können, oder?

    Ich hab ja 2 {EXPLODES}, deshalb geht das mit tpl->out(0); schonmal nicht.

    $tpl = new tpl ( '...', 1);
    $tpl->set_ar_out($row,0);
    $erg = db_query('SELECT * FROM `prefix_...` ORDER BY date DESC');
    while ($row = db_fetch_assoc($erg) ) {
      $clas = ($clas == 'Cmite' ? 'Cnorm' : 'Cmite' ); 
    	$row['class'] = $clas;
    	$tpl->set_ar_out($row,1);
    }
    
    $tpl->set('year', $year);
    $tpl->set('month', $month);
    $tpl->set('day', $day);
    
    $tpl->out(2);


    Welche Zahl muss ich denn bei tpl->out(?); einsetzen, damit alles übergeben wird?
    Wenn die 2 eingeben wird, werden die Arrays korrekt ausgegeben , aber das Datum nicht.
    Wenn ich die Arrays zum Test auskommentiere und statt der 2 ne 0 einsetze klappt das mit dem Datum...aber wie gebe ich alles auf einmal aus? lächeln


    Zuletzt modifiziert von legalsauger am 01.03.2010 - 13:36:11
    0 Mitglieder finden den Beitrag gut.
  6. #6
    User Pic
    SFX Mitglied
    Registriert seit
    31.07.2009
    Beiträge
    52
    Beitragswertungen
    0 Beitragspunkte
    Wenn du 2 mal {EXPLODE} drin hast musst du

    $tpl->out(0);
    $tpl->out(1);
    $tpl->out(2);

    in deiner php Datei drin haben.. zwinker

    was ich vielleicht noch sagen sollte..

    {EXPLODE} kann man im Template nicht auskommentieren.. zwinker


    evt solltest mal mit einer kleineren Datei anfangen und dich dann langsam hocharbeiten..

    weißt du was ich meine.. ?

    dass du mit

    $tpl = new tpl ( '...', 1);
    
    $year = 2010;
    
    $tpl->set('year', $year);
     
    $tpl->out(0);


    anfängst und dann in deiner template datei erstmal nur
    Wir haben das Jahr {year}.


    und da drauf dann aufbaust..

    Wenn du ein Template von einem anderen Modul als Basis benutzt kann es sein dass sich dadurch Fehler einschleichen.. zwinker
    0 Mitglieder finden den Beitrag gut.
  7. #7
    User Pic
    legalsauger Mitglied
    Registriert seit
    14.08.2009
    Beiträge
    492
    Beitragswertungen
    43 Beitragspunkte
    Ja ich habs nicht auskommentiert sondern zum test rauskopiert zwinker

    puh...kompliziert ^^

    Also

    Ich habe jetzt das tpl->out(); rauskopiert und die beiden arrays:

    $tpl->set_ar_out($row,0);
    $tpl->set_ar_out($row,1);

    werden korrekt angegeben.

    Welchen Wert muss ich bei tpl->out(); angeben damit $tpl->set(); noch ausgeben/gepseichert wird, ohne die arrays nochmal auszugeben?

    Danke schonmal für deine schnelle Hilfe zwinker
    0 Mitglieder finden den Beitrag gut.
  8. #8
    User Pic
    SFX Mitglied
    Registriert seit
    31.07.2009
    Beiträge
    52
    Beitragswertungen
    0 Beitragspunkte
    Sry, war jetzt ne Zeit lang nicht da, hab GeoCity in ilch eingearbeitet.. ^^

    Also, wenn du kein {EXPLODE} drin besteht dein Design aus einem Stück

    Wenn du ein {EXPLODE} drin besteht dein Design aus zwei Stücken


    Du hast zwei mal {EXPLODE} drin, also hast du 3 Stücke..

    Wenn du da jetzt das Letzte haben willst du bei 0 anfängst zu zählen..

    dann kommst du auf die Zahl 2..


    das heißt mit:

    $tpl->out(2);

    gibst du den letzen Teil deines Templates aus..

    Wenn davor noch die variablen eingesetzt werden sollen..

    $tpl->set( "irgendwas","blubb" );
    $tpl->out(2);


    Zuletzt modifiziert von SFX am 01.03.2010 - 15:46:07
    0 Mitglieder finden den Beitrag gut.
Geschlossen

Zurück zu Allgemein

Optionen: Bei einer Antwort zu diesem Thema eine eMail erhalten