Wat fijn dat je weer de moeite hebt genomen om mijn probleem eens door te spitten. Hoewel probleem, het is meer een tekort aan kennis. En ik hoop dat jullie mij gaan helpen de juiste kennis te vergaren. Ik wil namelijk echt eens gaan duiken in de wereld van de phpbb templates en wat er allemaal mee kan.
Een paar dingen zijn me gelijk opgevallen. ( Ik ga in dit geval even uit van Smartors EzPortal). In Portal.php staan een aantal gedefinieerde variabelen:
Code: Selecteer alles
$template->assign_vars(array(
'WELCOME_TEXT' => $CFG['welcome_text'],
'TOTAL_POSTS' => sprintf($l_total_post_s, $total_posts),Code: Selecteer alles
{WELCOM_TEXT}Code: Selecteer alles
{TOTAL_POSTS}Nu zie ik ook dat in "loops"
Code: Selecteer alles
$template->assign_block_vars('recent_topic_row', array(
'U_TITLE' => append_sid("viewtopic.$phpEx?" . POST_POST_URL . '=' . $recent_topic_row[$i]['post_id']) . '#' .$recent_topic_row[$i]['post_id'],
'L_TITLE' => $recent_topic_row[$i]['topic_title'],In de template heeft dat als resultaat dat alles tussen:
Code: Selecteer alles
<!-- BEGIN 'recent_topic_row -->
<br />
<!-- END 'recent_topic_row -->Is mijn inzicht tot op heden correct? Ik hoop het wel.
Het is namelijk zo dat leden in hun profiel op mn site kunnen instellen welke blokken ze willen zien. Dat is heel leuk, maar ik heb het zo gedaan, dat het:
1. Niet netjes geprogrammeerd is
2. Volgens mij daarom dus langzaam
3. Niet >1 stylen vriendelijk.
Tijd om dat eens om te bouwen dus.
Voorbeeld met een "wie waren de laatste 24 online MOD":
portal.php:
Code: Selecteer alles
// Start add - Last visit MOD
$lastvisit = "";
if ( $showwieonline==1 ) {
$time_now=time();
$time1Hour=$time_now-3600;
$minutes = date('is', $time_now);
$hour_now = $time_now - (60*($minutes[0].$minutes[1])) - ($minutes[2].$minutes[3]);
$dato=create_date('H', $time_now,$board_config['board_timezone']);
$timetoday = $hour_now - (3600*$dato);
$sql = 'SELECT session_ip, MAX(session_time) as session_time FROM '.SESSIONS_TABLE.' WHERE session_user_id="'.ANONYMOUS.'" AND session_time >= '.$timetoday.' AND session_time< '.($timetoday+86399).' GROUP BY session_ip';
if (!$result = $db->sql_query($sql)) message_die(GENERAL_ERROR, "Couldn't retrieve guest user today data", "", __LINE__, __FILE__, $sql);
while( $guest_list = $db->sql_fetchrow($result))
{
if ($guest_list['session_time'] >$time1Hour) $users_lasthour++;
}
$guests_today = $db->sql_numrows($result);
$sql = 'SELECT user_id,username,user_allow_viewonline,user_level,user_lastlogon FROM ' . USERS_TABLE . ' WHERE user_id!="'.ANONYMOUS.'" AND user_session_time >= '.$timetoday.' AND user_session_time< '.($timetoday+86399).' ORDER BY username';
if (!$result = $db->sql_query($sql)) message_die(GENERAL_ERROR, "Couldn't retrieve user today data", "", __LINE__, __FILE__, $sql);
while( $todayrow = $db->sql_fetchrow($result))
{
$style_color = "";
if ($todayrow['user_lastlogon']>=$time1Hour)
{
$users_lasthour++;
}
switch ($todayrow['user_level'])
{
case ADMIN :
$todayrow['username'] = '<b>' . $todayrow['username'] . '</b>';
$style_color = 'style="color:#' . $theme['fontcolor3'] . '"';
break;
case MOD :
$todayrow['username'] = '<b>' . $todayrow['username'] . '</b>';
$style_color = 'style="color:#' . $theme['fontcolor2'] . '"';
break;
}
$users_today_list.=( $todayrow['user_allow_viewonline'])?' <a title="' . create_date($board_config['default_dateformat'], $todayrow['user_lastlogon'], $board_config['board_timezone']) . '" href="' . append_sid("profile.$phpEx?mode=viewprofile&" . POST_USERS_URL . "=" . $todayrow['user_id']) . '"' . $style_color .'>' . $todayrow['username'] . '</a>,' : (($userdata[user_level]==ADMIN) ? ' <a href="' . append_sid("profile.$phpEx?mode=viewprofile&" . POST_USERS_URL . "=" . $todayrow['user_id']) . '"' . $style_color .'><i>' . $todayrow['username'] . '</i></a>,' : '');
if (!$todayrow['user_allow_viewonline']) $logged_hidden_today++;
else $logged_visible_today++;
}
if ($users_today_list)
{
$users_today_list[ strlen( $users_today_list)-1] = ' ';
} else
{
$users_today_list = $lang['None'];
}
$total_users_today = $db->sql_numrows($result)+$guests_today;
$users_today_list = $lang['Registered_users'].' ' . $users_today_list;
$l_today_user_s = ($total_users_today) ? ( ( $total_users_today == 1 )? $lang['User_today_total'] : $lang['Users_today_total'] ) : $lang['Users_today_zero_total'];
$l_today_r_user_s = ($logged_visible_today) ? ( ( $logged_visible_today == 1 ) ? $lang['Reg_user_total'] : $lang['Reg_users_total'] ) : $lang['Reg_users_zero_total'];
$l_today_h_user_s = ($logged_hidden_today) ? (($logged_hidden_today == 1) ? $lang['Hidden_user_total'] : $lang['Hidden_users_total'] ) : $lang['Hidden_users_zero_total'];
$l_today_g_user_s = ($guests_today) ? (($guests_today == 1) ? $lang['Guest_user_total'] : $lang['Guest_users_total']) : $lang['Guest_users_zero_total'];
$l_today_users = sprintf($l_today_user_s, $total_users_today);
$l_today_users .= sprintf($l_today_r_user_s, $logged_visible_today);
$l_today_users .= sprintf($l_today_h_user_s, $logged_hidden_today);
$l_today_users .= sprintf($l_today_g_user_s, $guests_today);
$userl_last_hour = ($users_lasthour)?sprintf($lang['Users_lasthour_explain'],$users_lasthour):$lang['Users_lasthour_none_explain'];
$lastvisit = "<!-- Start add - Last visit MOD -->
<table width='100%' cellpadding='2' cellspacing='1' border='0' class='forumline'>
<tr>
<td class='catHead' height='25'><span class='genmed'><b>Wie waren online de afgelopen 24 uur</b></span></td>
</tr>
<tr>
<td class='row1' align='left'><span class='gensmall'>".$l_today_users." ".$user_last_hour."<br />".$users_today_list."</br></span></td>
</tr>
</table>
<!-- End add - Last visit MOD -->";
}
// End add - Last visit MOD
$template->assign_vars(array(
'LASTVISIT' => $lastvisit,Code: Selecteer alles
{LASTVISIT}Wie wil me helpen door een simpel voorbeeld te geven? Wie wil me helpen me meer inzicht te geven hierin?
Bedankt voor je aandacht en je eventuele inzet.
