Sajnálatos módon nagyon ronda a phpBB alfórum megjelenítése az index oldalon. Most egy új fórumomnál fontos volt, hogy az alfórumok 2 oszlopban látszanak, és ne vesszővel elválasztva, egymás után több sorban. Ugyanakkor azt sem szerettem volna, hogy ezen “apróság” miatt több szkriptet át kelljen írnom a phpBB-ben, a html-ben, és a css-ben.
A Netet böngészve rátaláltam a megoldásra, amit kicsit átalakítva, és letisztázva be is építettem a fórumba.
Mire is van tehát szükség?
Az index oldal felületének ezen részéért a function_display.php a felelős. Gyorsan rá is lehet találni benne arra a részre, mely az alfórumokat jeleníti meg. Ha ezt lecseréljük, akkor tetszés szerint játszadozhatunk a kinézettel.
Az alábbi szkriptet a phpBB 3.0.4 verzióhoz igazítottam az előbb említett Neten fellelt megoldásból, és nagyszerűen működik, éppen úgy, ahogy azt szerettem volna.
Nyissuk meg az includes/function_display.php-t.
Keressük meg ezt a részt:
$s_subforums_list = array(); foreach ($subforums_list as $subforum) { $s_subforums_list[] = '<a href="' . $subforum['link'] . '" class="subforum ' . (($subforum['unread']) ? 'unread' : 'read') . '" title="' . (($subforum['unread']) ? $user->lang['NEW_POSTS'] : $user->lang['NO_NEW_POSTS']) . '">' . $subforum['name'] . '</a>'; } $s_subforums_list = (string) implode(', ', $s_subforums_list); $catless = ($row['parent_id'] == $root_data['forum_id']) ? true : false;
Cseréljük le erre:
//ettől $subSetBegin=($subforums_list==null ? '' : '<div style="margin-left:32px"><dl>'); $subSetEnd=($subforums_list==null ? '' : '</dl></div>'); $say = 0; $s_subforums_list = $subSetBegin; foreach ($subforums_list as $subforum) { $s_subforums_list .= '<dd style="width:49%;padding:0;border:none"><a href="' . $subforum['link'] . '" class="subforum ' . (($subforum['unread']) ? 'unread' : 'read') . '">' . $subforum['name'] . '</a></dd>'; $say++; if($say % 2 == 0) { $s_subforums_list .= '<dl>'; } } $s_subforums_list .= $subSetEnd; $catless = ($row['parent_id'] == $root_data['forum_id']) ? true : false; // eddig</dl>
Ha pedig mindent jól csináltunk, akkor valahogyan így fog kinézni a végeredmény:
