Forum (ein Array in ein Template lesen)

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

  • Forum (ein Array in ein Template lesen)

    Hi,
    Ich will umbedingt mein eigenes Forum programmieren und nun habe ich geshen, dass PHPBB das mit templates macht. Wie allerdings schaffe ich es, dass ich z.B. {FORUMS} was ein Array ist in eine Tabelle auslese.
    Mein Code für die Index.php sieht so aus:

    PHP-Code:
    <?php
    ///////////////////////
    //    FLORUM         //
    //    index.php      //
    //    18.01.2005     //
    //    Florian S.     //
    ///////////////////////

    include("language/german.php");
    include(
    "includes/header.php");
    include(
    "includes/constants.php");

    // INIT TEMPLATE
    include('includes/class.FastTemplate.php');
    $tpl= new FastTemplate('.');
    $tpl->define(array('index'=>'styles/'.$STYLE['path'].'index.tpl'));

    //KATEGORIEN AUSLESEN
    $query="SELECT c.cat_id,c.cat_title
            FROM florum_categories c"
    ;
    if(!(
    $result=mysql_query($query))){
        die(
    $lang["errors"]["db_not_query"]);
    }else{
        while(
    $row=mysql_fetch_row($result)){
            
    $INDEX_CATS[]=$row;
        }
    }

    //FOREN,nr.POSTS,nr.TOPICS und LAST_POST AUSLESEN
    $query="SELECT f.forum_id,f.forum_title,f.forum_desc,f.forum_posts,f.forum_topics,f.category_id
            FROM florum_forums f ORDER BY f.category_id"
    ;
    if(!(
    $result=mysql_query($query))){
        die(
    $lang["errors"]["db_not_query"]);
    }else{
        while(
    $row=mysql_fetch_row($result)){
            
    $INDEX_FORUMS[]=$row;
        }
    }

    //LAST POST
    $query="SELECT p.post_posterid, u.user_name
            FROM florum_posts p,florum_users u WHERE u.user_id=p.post_posterid ORDER BY p.post_posterid DESC"
    ;
    if(!(
    $result=mysql_query($query))){
        die(
    $lang["errors"]["db_not_query"]);
    }else{
        while(
    $row=mysql_fetch_row($result)){
            
    $INDEX_LAST_POSTS[]=$row;
        }
    }

    //THEMES
    $index_forum_cell='<td bgcolor="'.$STYLE['index_forum_cell_bg'].'" background="styles/'.$STYLE['path'].$STYLE['index_forum_cell_bgimg'].'">';
    $index_forum_cell_close='</td>';
    $index_cat_cell='<td bgcolor="'.$STYLE['index_cat_cell_bg'].'" background="styles/'.$STYLE['path'].$STYLE['index_cat_cell_bgimg'].'" colspan="4">';
    $index_cat_cell2='<td bgcolor="'.$STYLE['index_cat_cell2_bg'].'" background="styles/'.$STYLE['path'].$STYLE['index_cat_cell2_bgimg'].'">';
    $index_cat_cell_close='</td>';
    $index_font_title='<span class="title">';
    $index_font_standard='<span class="standard">';
    $index_font_small='<span class="small">';
    $index_font_close='</span>';
    $index_forum_icon='<img src="styles/'.$STYLE['path'].'images/forum.gif" align="absmiddle">';

    $cur_cat=0;
    for(
    $c=0;$c<count($INDEX_FORUMS);$c++){
        if(
    $cur_cat==$INDEX_FORUMS[$c][5]-1){
            
    //BUILD CATEGORY ROW
            
    $INDEX_FORUM_ROWS[]=
            
    '<tr height="'.$STYLE['index_cat_row_height'].'">'.
                
    $index_cat_cell.
                    
    $index_font_title.'&nbsp;<a href="?'.URL_PARAM_CAT.'='.$INDEX_CATS[$cur_cat][0].'">'.$INDEX_CATS[$cur_cat][1].'</a>'.$index_font_close.
                
    $index_cat_cell_close.
                
    $index_cat_cell2.
                
    $index_cat_cell_close.
            
    '</tr>';
        }
        if(
    $_GET[URL_PARAM_CAT]==$INDEX_FORUMS[$c][5] || !isset($_GET[URL_PARAM_CAT])){ // BUILD FORUM ROW...
            // ...if current category should be shown
            
    $INDEX_FORUM_ROWS[]=
            
    '<tr height="'.$STYLE['index_forum_row_height'].'">'.
                
    $index_forum_cell.
                    
    '<center>'.$index_forum_icon.'</center>'.
                
    $index_forum_cell_close.
                
    $index_forum_cell.
                    
    $index_font_title.$INDEX_FORUMS[$c][1].$index_font_close.
                    
    '<br>'.
                    
    $index_font_small.$INDEX_FORUMS[$c][2].$index_font_close.
                
    $index_forum_cell_close.
                
    $index_forum_cell.
                    
    '<center>'.$index_font_standard.$INDEX_FORUMS[$c][3].$index_font_close.'</center>'.
                
    $index_forum_cell_close.
                
    $index_forum_cell.
                    
    '<center>'.$index_font_standard.$INDEX_FORUMS[$c][4].$index_font_close.'</center>'.
                
    $index_forum_cell_close.
                
    $index_forum_cell.
                    
    '<center>'.$index_font_small.$INDEX_LAST_POSTS[$c][1].$index_font_close.'</center>'.
                
    $index_forum_cell_close.
            
    '</tr>';
        }
        
    $cur_cat=$INDEX_FORUMS[$c][5];
    }
    //Hier lese ich den Forum-Array ins Template, wie allerdings lese ich den in der index.tpl wieder aus???
    $tpl->assign('FORUMS',$INDEX_FORUM_ROWS);
    $tpl->parse('RESULT','index');
    $tpl->FastPrint('RESULT');

    include(
    "includes/footer.php");
    ?>
    BITTE HILFE, WIE LIEST MAN ARRAYS WIEDER AUS??
    PHP-Code:
    echo 'PHP FREAK!!!' 

  • #2
    ein guter wunsch.

    jedoch:
    1. brich deinen code um
    2. versuche die begriffe richtig zu verwenden.
    {FORUMS} was ein Array ist in eine Tabelle auslese.
    und "arrays wieder auslesen" ist deswegen sehr unverständlich.

    Kommentar


    • #3
      BITTE HILFE, WIE LIEST MAN ARRAYS WIEDER AUS??
      Hier ist auch keiner Schwerhörig!

      Vielleicht zeigst du mal ein paar deiner Ansätze.

      Kommentar


      • #4
        Nochmal, aber diesmal richtig

        Also (ich hoffe ich bekomme das so verständlich wie möglich hin):

        PHP-Code:
        <?php
        include('includes/class.FastTemplate.php');
        $tpl= new FastTemplate('.');
        $tpl->define(array('index'=>'styles/'.$STYLE['path'].'index.tpl'));
        $ALLFORUMS[]="Forum1";
        $ALLFORUMS[]="Forum2";
        $ALLFORUMS[]="Forum3";
        $tpl->assign('FORUMS',$ALLFORUMS);
        $tpl->parse('RESULT','index');
        $tpl->FastPrint('RESULT');
        ?>
        Die Index.tpl die nicht funzt:
        PHP-Code:
        <html>
        <
        head>
        </
        head>
        <
        body>
        {
        ALLFORUMS}
        </
        body>
        </
        html
        Wie kann ich nun den Array ALLFORUMS in der index.tpl wieder auslesen? Wäre es eine gewöhnliche Variable würde ich diese so auslesen: {ALLFORUMS}
        Aber wie kann ich das Array auslesen?
        PHP-Code:
        echo 'PHP FREAK!!!' 

        Kommentar


        • #5
          @FloMX
          lesen!
          INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |


          Kommentar


          • #6
            immer noch falsch und daher - unklar.
            was in der tpl steht, ist kein array, sondern einfach eine zeile, von geschweiften klammern umgeben.
            die wird von der guten alten fasttemplate-enginge gefüllt. der code dafür befindet sich außerhalb von der tpl-datei (wo genau, hast du ja nicht angegeben). wenn du das array vorher verarbeiten willst, musst du es an der stelle machen, an der dein script damit arbeitet.

            ein forum zu programmieren ist nicht einfach, und die templates zu verwenden muss man einiges an grundlagen haben, die du anscheinend nicht hast. nimm's nicht persönlich, aber ich finde, lesen ist schon a priori. wenn du einen großteil der antworten eiskalt überliest, werde ich es so tun, wie der tobiaz es zu machen pflegt - nämlich deinen thread ignorieren.

            Kommentar


            • #7
              Jetz übertreibst du! Sich ein Wissen an templates anzulegen ist keine Angelegenheit von Jahren, man kann sich allein in 1-2 Wochen über ein Thema ausreichend informieren.

              So wie ich es sehe, gibt es nur eine Möglichkeit... und zwar eine .tpl Datei immer mit einem neuen Wert zu parsen. Damit meine Ich, dass ich wie du schon gesagt hast das Array in der index.php auslesen muss.

              Danke für deine Hilfe, allerdings weiß ich nicht was an meiner Frage so unklar war, denn du hast sie ja verstanden...
              PHP-Code:
              echo 'PHP FREAK!!!' 

              Kommentar

              Lädt...
              X