Voor de index van een forum gebruik ik yapter als template parser.
een gedeelte van de template ziet er zo uit:
en de phpcode:
ik wil dus niet dat hij voor elk forum de categorie neerzet en daarom parse ik die apart. Probleem was dat hij eerst 1 lege rij parste en daarom heb ik er if($i != -1) bij gezet. Dat werkt bijna goed, alleen is me resultaat nu een beetje verkeerd.
ik krijg 1 forum te min en de categorien kloppen niet.
Dit zou het moeten zijn:
--Van Alles Wat
Onzinforum
bug report
--forum
Blaatcorner
Test forum
test2
--Tech Hoek
Tech forum 1
tech forum 2
--Testcorner
Stuffis Generalis
Ik krijg:
--Van Alles Wat
Onzinforum
--forum
bug report
--Tech Hoek
Blaatcorner
Test forum
test2
-Testcorner
Tech forum 1
tech forum 2
Dus 1 forum te min en de verkeerde categorie indeling. Ik heb al geprobeerd om ook row1 met een if te doen maar dat werkt ook niet. Iemand een idee?
een gedeelte van de template ziet er zo uit:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
| [BLOCK table1] <tr> <td width="23" bgcolor="{Color1}"></td> <td width="387" bgcolor="{Color2}">{Forum}</td> <td width="19" bgcolor="{Color1}">{Posts}</td> <td width="18" bgcolor="{Color2}">{Topics}</td> <td width="114" bgcolor="{Color1}"></td> </tr> [BLOCK cat1] <tr> <td colspan="5" width="750" bgcolor="{Color1}">{cat_name}</td> </tr> [BLOCK row1] <tr> <td width="23" bgcolor="{Color1}"></td> <td width="387" bgcolor="{Color2}"><b>{Name}</b><br>{Omschrijving}</td> <td width="19" bgcolor="{Color1}">{total_posts}</td> <td width="18" bgcolor="{Color2}">{total_topics}</td> <td width="114" bgcolor="{Color1}"></td> </tr> [END row1] [END cat1] [END table1] |
en de phpcode:
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
| <?php require("parser.php"); require("config.php"); $tp = new Template("index.tpl"); $tp->set("page_title", "Forum Index"); $result = mysql_query(" SELECT count(DISTINCT p.post_id) as total_posts, count( DISTINCT t.topic_id) as total_topics, c.volgorde, c.id, c.cat_naam, f.forum_id, f.omschrijving, f.naam, f.view_access, f.last_post FROM forums f INNER JOIN cat c ON f.cat_id = c.id LEFT JOIN topics t ON f.forum_id = t.forum_id LEFT JOIN posts p ON t.topic_id = p.topic_id GROUP BY c.id, f.forum_id ORDER BY c.volgorde, f.volgorde ASC"); $tp->set("Forum", "Forum:"); $tp->set("Posts", "Posts:"); $tp->set("Topics", "Topics:"); $tp->set("Color1", "$color1"); $tp->set("Color2", "$color2"); $tp->set("Tablebgcolor", "$tablebgcolor"); $i = -1; while ($row = mysql_fetch_object($result)) { if($i != -1) { if($row->cat_naam != $last_cat) { $tp->set("cat_name", $row->cat_naam); $tp->parse("cat1"); $tp->spit("cat1"); $tp->clear("row1"); $last_cat = $row->cat_naam; } } else { $i++; } $tp->set("Name", $row->naam); $tp->set("Omschrijving", $row->omschrijving); $tp->set("total_posts", round($row->total_posts)); $tp->set("total_topics", round($row->total_topics)); $tp->parse("row1"); } $tp->parse("table1"); $tp->parse(); $tp->spit(); ?> |
ik wil dus niet dat hij voor elk forum de categorie neerzet en daarom parse ik die apart. Probleem was dat hij eerst 1 lege rij parste en daarom heb ik er if($i != -1) bij gezet. Dat werkt bijna goed, alleen is me resultaat nu een beetje verkeerd.
ik krijg 1 forum te min en de categorien kloppen niet.
Dit zou het moeten zijn:
--Van Alles Wat
Onzinforum
bug report
--forum
Blaatcorner
Test forum
test2
--Tech Hoek
Tech forum 1
tech forum 2
--Testcorner
Stuffis Generalis
Ik krijg:
--Van Alles Wat
Onzinforum
--forum
bug report
--Tech Hoek
Blaatcorner
Test forum
test2
-Testcorner
Tech forum 1
tech forum 2
Dus 1 forum te min en de verkeerde categorie indeling. Ik heb al geprobeerd om ook row1 met een if te doen maar dat werkt ook niet. Iemand een idee?