Added basic version of calendar block including the ability to add events;

Fixed a few small bugs;
This commit is contained in:
Marc Alexander
2010-10-07 15:11:36 +00:00
parent e1fedf8b62
commit 1350827f0e
22 changed files with 560 additions and 14 deletions

View File

@@ -0,0 +1,89 @@
<?php
/**
* @package Portal - Clock
* @version $Id$
* @copyright (c) 2009, 2010 Board3 Portal Team
* @license http://opensource.org/licenses/gpl-license.php GNU Public License
*/
/**
* DO NOT CHANGE
*/
if (!defined('IN_PHPBB'))
{
exit;
}
if (empty($lang) || !is_array($lang))
{
$lang = array();
}
// DEVELOPERS PLEASE NOTE
//
// All language files should use UTF-8 as their encoding and the files must not contain a BOM.
//
// Placeholders can now contain order information, e.g. instead of
// 'Page %s of %s' you can (and should) write 'Page %1$s of %2$s', this allows
// translators to re-order the output of data while ensuring it remains correct
//
// You do not need this where single placeholders are used, e.g. 'Message %d' is fine
// equally where a string contains only two placeholders which are used to wrap text
// in a url you again do not need to specify an order e.g., 'Click %sHERE%s' is fine
$lang = array_merge($lang, array(
'PORTAL_CALENDAR' => 'Calendar',
'VIEW_NEXT_MONTH' => 'next month',
'VIEW_PREVIOUS_MONTH' => 'Previous month',
'EVENT_START' => 'From',
'EVENT_END' => 'To',
'EVENT_TIME' => 'Time',
'EVENT_ALL_DAY' => 'All Day Event',
'CURRENT_EVENTS' => 'Current Events',
'NO_CUR_EVENTS' => 'No current events',
'UPCOMING_EVENTS' => 'Upcoming Events',
'NO_UPCOMING_EVENTS' => 'No upcoming events',
'mini_cal' => array(
'day' => array(
'1' => 'Su',
'2' => 'Mo',
'3' => 'Tu',
'4' => 'We',
'5' => 'Th',
'6' => 'Fr',
'7' => 'Sa',
),
'month' => array(
'1' => 'Jan.',
'2' => 'Feb.',
'3' => 'Mar.',
'4' => 'Apr.',
'5' => 'May',
'6' => 'Jun.',
'7' => 'Jul.',
'8' => 'Aug.',
'9' => 'Sep.',
'10'=> 'Oct.',
'11'=> 'Nov.',
'12'=> 'Dec.',
),
'long_month'=> array(
'1' => 'January',
'2' => 'February',
'3' => 'March',
'4' => 'April',
'5' => 'May',
'6' => 'June',
'7' => 'July',
'8' => 'August',
'9' => 'September',
'10'=> 'October',
'11'=> 'November',
'12'=> 'December',
),
),
));
?>

View File

@@ -0,0 +1,378 @@
<?php
/**
* @package Portal - Calendar
* @version $Id$
* @copyright (c) 2009, 2010 Board3 Portal Team
* @license http://opensource.org/licenses/gpl-license.php GNU Public License
*/
/**
* @ignore
*/
if (!defined('IN_PHPBB'))
{
exit;
}
/**
* @package Calendar
*/
class portal_calendar_module
{
/**
* Allowed columns: Just sum up your options (Exp: left + right = 10)
* top 1
* left 2
* center 4
* right 8
* bottom 16
*/
var $columns = 10;
/**
* Default modulename
*/
var $name = 'PORTAL_CALENDAR';
/**
* Default module-image:
* file must be in "{T_THEME_PATH}/images/portal/"
*/
var $image_src = 'portal_calendar.png';
/**
* module-language file
* file must be in "language/{$user->lang}/mods/portal/"
*/
var $language = 'portal_calendar_module';
/**
* custom acp template
* file must be in "adm/style/portal/"
*/
//var $custom_acp_tpl = '';
function get_template_center($module_id)
{
global $config, $template;
$template->assign_vars(array(
'EXAMPLE' => $config['portal_' . $module_id . '_configname'],
));
return 'modulename_center.html';
}
function get_template_side($module_id)
{
global $config, $template, $user, $phpbb_root_path, $phpEx;
$portal_config = obtain_portal_config();
// 0 = Sunday first - 1 = Monday first. ;-)
if ($config['board3_sunday_first_' . $module_id])
{
define('MINI_CAL_FDOW', 0);
}
else
{
define('MINI_CAL_FDOW', 1);
}
// get the calendar month
$mini_cal_month = 0;
if(isset($_GET['m']) || isset($_POST['m']))
{
$mini_cal_month = request_var('m', 0);
}
// initialise some variables
$today_timestamp = time() + $user->timezone + $user->dst;
$mini_cal_today = date('Ymd', time() + $user->timezone + $user->dst - date('Z'));
$s_cal_month = ($mini_cal_month != 0) ? $mini_cal_month . ' month' : $mini_cal_today;
$this->getMonth($s_cal_month);
$mini_cal_count = MINI_CAL_FDOW;
$mini_cal_this_year = $this->dateYYYY;
$mini_cal_this_month = $this->dateMM;
$mini_cal_this_day = $this->dateDD;
$mini_cal_month_days = $this->daysMonth;
// output the days for the current month
for($i=0; $i < $mini_cal_month_days;)
{
// is this the first day of the week?
if($mini_cal_count == MINI_CAL_FDOW)
{
$template->assign_block_vars('mini_cal_row', array());
}
// is this a valid weekday?
if($mini_cal_count == ($this->day[$i][3]))
{
$mini_cal_this_day = $this->day[$i][0];
$d_mini_cal_today = $mini_cal_this_year . (($mini_cal_this_month <= 9) ? '0' . $mini_cal_this_month : $mini_cal_this_month) . (($mini_cal_this_day <= 9) ? '0' . $mini_cal_this_day : $mini_cal_this_day);
$mini_cal_day = ($mini_cal_today == $d_mini_cal_today) ? '<span style="font-weight: bold; color: ' . $config['board3_calendar_today_color_' . $module_id] . ';">' . $mini_cal_this_day . '</span>' : $mini_cal_this_day;
$template->assign_block_vars('mini_cal_row.mini_cal_days', array(
'MINI_CAL_DAY' => ($mini_cal_count == 0) ? '<span style="color: ' . $config['board3_calendar_sunday_color_' . $module_id] . ';">' . $mini_cal_day . '</span>' : $mini_cal_day)
);
$i++;
}
// no day
else
{
$template->assign_block_vars('mini_cal_row.mini_cal_days', array(
'MINI_CAL_DAY' => ' ')
);
}
// is this the last day of the week?
if ($mini_cal_count == 6)
{
// if so then reset the count
$mini_cal_count = 0;
}
else
{
// otherwise increment the count
$mini_cal_count++;
}
}
// output our general calendar bits
$down = $mini_cal_month - 1;
$up = $mini_cal_month + 1;
$prev_month = '<a href="' . append_sid("{$phpbb_root_path}portal.$phpEx", "m=$down#minical") . '"><img src="' . $phpbb_root_path . 'styles/' . $user->theme['theme_path'] . '/theme/images/portal/cal_icon_left_arrow.png' . '" title="' . $user->lang['VIEW_PREVIOUS_MONTH'] . '" height="16" width="16" alt="&lt;&lt;" /></a>';
$next_month = '<a href="' . append_sid("{$phpbb_root_path}portal.$phpEx", "m=$up#minical") . '"><img src="' . $phpbb_root_path . 'styles/' . $user->theme['theme_path'] . '/theme/images/portal/cal_icon_right_arrow.png' . '" title="' . $user->lang['VIEW_NEXT_MONTH'] . '" height="16" width="16" alt="&gt;&gt;" /></a>';
$template->assign_vars(array(
'S_DISPLAY_MINICAL' => true,
'S_SUNDAY_FIRST' => ($config['board3_sunday_first_' . $module_id]) ? true : false,
'L_MINI_CAL_MONTH' => (($config['board3_long_month_' . $module_id]) ? $user->lang['mini_cal']['long_month'][$this->day[0][1]] : $user->lang['mini_cal']['month'][$this->day[0][1]]) . " " . $this->day[0][2],
'L_MINI_CAL_SUN' => '<span style="color: ' . $config['board3_calendar_sunday_color_' . $module_id] . ';">' . $user->lang['mini_cal']['day'][1] . '</span>',
'L_MINI_CAL_MON' => $user->lang['mini_cal']['day'][2],
'L_MINI_CAL_TUE' => $user->lang['mini_cal']['day'][3],
'L_MINI_CAL_WED' => $user->lang['mini_cal']['day'][4],
'L_MINI_CAL_THU' => $user->lang['mini_cal']['day'][5],
'L_MINI_CAL_FRI' => $user->lang['mini_cal']['day'][6],
'L_MINI_CAL_SAT' => $user->lang['mini_cal']['day'][7],
'U_PREV_MONTH' => $prev_month,
'U_NEXT_MONTH' => $next_month)
);
/*
* Let's start displaying the events
* make sure we only display events in the future
*/
$events = $this->utf_unserialize($portal_config['board3_calendar_events_' . $module_id]);
/*
* this is what the events array should look like
$events[0] = array(
'title' => '',
'desc' => '',
'start_time' => '',
'end_time' => '',
'url' => '',
);*/
if(!empty($events))
{
// we sort the $events array by the start time
foreach($events as $key => $cur_event)
{
$time_ary[$key] = $cur_event['start_time'];
}
array_multisort($time_ary, SORT_NUMERIC, $events);
foreach($events as $key => $cur_event)
{
if($cur_event['start_time'] >= $today_timestamp || $cur_event['end_time'] >= $today_timestamp)
{
// current events
if(($cur_event['start_time'] <= $today_timestamp && $cur_event['end_time'] <= $cur_event['start_time']) || ($cur_event['start_time'] <= $today_timestamp && $cur_event['end_time'] >= $today_timestamp))
{
$template->assign_block_vars('cur_events', array(
'EVENT_URL' => (isset($cur_event['url']) && $cur_event['url'] != '') ? $this->validate_url($cur_event['url']) : '',
'EVENT_TITLE' => $cur_event['title'],
'START_TIME' => $user->format_date($cur_event['start_time'], 'y-m-d'),
'END_TIME' => $user->format_date($cur_event['end_time'], 'y-m-d'),
'EVENT_DESC' => (isset($cur_event['desc']) && $cur_event['desc'] != '') ? $cur_event['desc'] : '',
));
}
else
{
$template->assign_block_vars('upcoming_events', array(
'EVENT_URL' => (isset($cur_event['url']) && $cur_event['url'] != '') ? $this->validate_url($cur_event['url']) : '',
'EVENT_TITLE' => $cur_event['title'],
'CUR_EVENT' => ($cur_event['start_time'] <= $today_timestamp && $cur_event['end_time'] >= $today_timestamp) ? true : false,
'START_TIME' => $user->format_date($cur_event['start_time'], 'y-m-d'),
'END_TIME' => $user->format_date($cur_event['end_time'], 'y-m-d'),
'EVENT_DESC' => (isset($cur_event['desc']) && $cur_event['desc'] != '') ? $cur_event['desc'] : '',
));
}
}
else
{
// mark the events that should be deleted
$delete_id_ary[] = $key;
}
}
// now delete old events
if(isset($delete_id_ary) && !empty($delete_id_ary))
{
foreach($delete_id_ary as $cur_id)
{
array_splice($events, $cur_id, 1);
}
// afterwards reset the array numbering and insert the data into the database
$events = array_merge($events);
$events = serialize($events);
set_portal_config('board3_calendar_events_' . $module_id, $events);
}
}
//print_r($events); // no output needed, seems to work correctly
/*
if (!isset($template->filename['mini_cal_block']))
{
$template->set_filenames(array(
'mini_cal_block' => 'portal/block/mini_calendar.html')
);
}
*/
return 'calendar_side.html';
}
function get_template_acp($module_id)
{
return array(
'title' => 'ACP_CONFIG_MODULENAME',
'vars' => array(
'legend1' => 'ACP_MODULENAME_CONFIGLEGEND',
'portal_' . $module_id . '_configname' => array('lang' => 'MODULENAME_CONFIGNAME', 'validate' => 'string', 'type' => 'text:10:200', 'explain' => false),
'portal_' . $module_id . '_configname2' => array('lang' => 'MODULENAME_CONFIGNAME2', 'validate' => 'int', 'type' => 'text:3:3', 'explain' => true),
),
);
return array();
}
/**
* API functions
*/
function install($module_id)
{
set_config('board3_sunday_first_' . $module_id, 1);
set_config('board3_calendar_today_color_' . $module_id, '#000000');
set_config('board3_calendar_sunday_color_' . $module_id, '#FF0000');
set_config('board3_long_month_' . $module_id, 0);
set_portal_config('board3_calendar_events_' . $module_id, '');
return true;
}
function uninstall($module_id)
{
global $db;
$del_config = array(
'board3_calendar_events_' . $module_id,
);
$sql = 'DELETE FROM ' . PORTAL_CONFIG_TABLE . '
WHERE ' . $db->sql_in_set('config_name', $del_config);
$db->sql_query($sql);
$del_config = array(
'board3_sunday_first_' . $module_id,
'board3_calendar_today_color_' . $module_id,
'board3_calendar_sunday_color_' . $module_id,
'board3_long_month_' . $module_id,
);
$sql = 'DELETE FROM ' . CONFIG_TABLE . '
WHERE ' . $db->sql_in_set('config_name', $del_config);
return $db->sql_query($sql);
}
var $dateYYY; // year in numeric format (YYYY)
var $dateMM; // month in numeric format (MM)
var $dateDD; // day in numeric format (DD)
var $ext_dateMM; // extended month (e.g. February)
var $daysMonth; // count of days in month
var $stamp; // timestamp
var $day; // return array s.a.
/**
* convert date->timestamp
**/
function makeTimestamp($date)
{
$this->stamp = strtotime($date);
return ($this->stamp);
}
/**
* get date listed in array
**/
function getMonth($callDate)
{
$this->makeTimestamp($callDate);
$this->dateYYYY = date("Y", $this->stamp);
$this->dateMM = date("n", $this->stamp);
$this->ext_dateMM = date("F", $this->stamp);
$this->dateDD = date("d", $this->stamp);
$this->daysMonth = date("t", $this->stamp);
for($i=1; $i < $this->daysMonth+1; $i++)
{
$this->makeTimestamp("$i $this->ext_dateMM $this->dateYYYY");
$this->day[] = array(
"0" => "$i",
"1" => $this->dateMM,
"2" => $this->dateYYYY,
"3" => (date('w', $this->stamp))
);
}
}
// Unserialize links array
function utf_unserialize($serial_str)
{
$out = preg_replace('!s:(\d+):"(.*?)";!se', "'s:'.strlen('$2').':\"$2\";'", $serial_str );
return unserialize($out);
}
/**
* validate URLs and execute apppend_sid if necessary
*/
function validate_url($url)
{
global $config;
$url = str_replace("\r\n", "\n", str_replace('\"', '"', trim($url)));
$url = str_replace(' ', '%20', $url);
// if there is no scheme, then add http schema
if (!preg_match('#^[a-z][a-z\d+\-.]*:/{2}#i', $url))
{
$url = 'http://' . $url;
}
// Is this a link to somewhere inside this board? If so then remove the session id from the url
if (strpos($url, generate_board_url()) !== false && strpos($url, 'sid=') !== false)
{
$url = reapply_sid($url);
}
return $url;
}
}
?>

View File

@@ -169,6 +169,8 @@ class portal_links_module
$sql = 'DELETE FROM ' . PORTAL_CONFIG_TABLE . '
WHERE ' . $db->sql_in_set('config_name', $del_config);
$db->sql_query($sql);
$del_config = array(
'board3_links_' . $module_id,
);

View File

@@ -224,6 +224,8 @@ class portal_main_menu_module
$sql = 'DELETE FROM ' . PORTAL_CONFIG_TABLE . '
WHERE ' . $db->sql_in_set('config_name', $del_config);
$db->sql_query($sql);
$del_config = array(
'board3_menu_' . $module_id,
);

View File

@@ -1,5 +1,5 @@
<!--version $Id$ //-->
{$LR_BLOCK_H_L}<!-- IF $S_BLOCK_ICON --><img src="{T_THEME_PATH}/images/portal/portal_attach.png" width="16" height="16" alt="" />&nbsp;<!-- ENDIF -->{L_ATTACHMENTS}{$LR_BLOCK_H_R}
{$LR_BLOCK_H_L}<!-- IF $S_BLOCK_ICON --><img src="{$IMAGE_SRC}" width="16" height="16" alt="" />&nbsp;<!-- ENDIF -->{L_ATTACHMENTS}{$LR_BLOCK_H_R}
<!-- IF .attach -->
<span style="float:left;"><strong>{L_FILENAME}</strong></span><br />
<!-- BEGIN attach -->

View File

@@ -1,5 +1,5 @@
<!--version $Id$ //-->
{$LR_BLOCK_H_L}<!-- IF $S_BLOCK_ICON --><img src="{T_THEME_PATH}/images/portal/portal_birthday.png" width="16" height="16" alt="" />&nbsp;<!-- ENDIF -->{L_BIRTHDAYS}{$LR_BLOCK_H_R}
{$LR_BLOCK_H_L}<!-- IF $S_BLOCK_ICON --><img src="{$IMAGE_SRC}" width="16" height="16" alt="" />&nbsp;<!-- ENDIF -->{L_BIRTHDAYS}{$LR_BLOCK_H_R}
<!-- IF BIRTHDAY_LIST -->
<strong>{L_CONGRATULATIONS}:</strong><br /> {BIRTHDAY_LIST}
<!-- ELSE -->

View File

@@ -0,0 +1,75 @@
<!--version $Id$ //-->
<a name="minical"></a>
{$LR_BLOCK_H_L}<!-- IF $S_BLOCK_ICON --><img src="{$IMAGE_SRC}" width="16" height="16" alt="" />&nbsp;<!-- ENDIF -->{L_PORTAL_CALENDAR}{$LR_BLOCK_H_R}
<table width="100%" cellspacing="1">
<tr>
<td align="left" colspan="2">{U_PREV_MONTH}</td>
<td colspan="3" align="center"><span class="genmed">{L_MINI_CAL_MONTH}</span></td>
<td align="right" colspan="2">{U_NEXT_MONTH}</td>
</tr>
<tr>
<!-- IF S_SUNDAY_FIRST -->
<td style="width: 14%;"><span class="gensmall" style="font-weight: bold">{L_MINI_CAL_SUN}</span></td>
<!-- ENDIF -->
<td style="width: 14%;"><span class="gensmall" style="font-weight: bold">{L_MINI_CAL_MON}</span></td>
<td style="width: 14%;"><span class="gensmall" style="font-weight: bold">{L_MINI_CAL_TUE}</span></td>
<td style="width: 14%;"><span class="gensmall" style="font-weight: bold">{L_MINI_CAL_WED}</span></td>
<td style="width: 14%;"><span class="gensmall" style="font-weight: bold">{L_MINI_CAL_THU}</span></td>
<td style="width: 14%;"><span class="gensmall" style="font-weight: bold">{L_MINI_CAL_FRI}</span></td>
<td style="width: 14%;"><span class="gensmall" style="font-weight: bold">{L_MINI_CAL_SAT}</span></td>
<!-- IF not S_SUNDAY_FIRST -->
<td style="width: 14%;"><span class="gensmall" style="font-weight: bold">{L_MINI_CAL_SUN}</span></td>
<!-- ENDIF -->
</tr>
<!-- BEGIN mini_cal_row -->
<tr>
<!-- BEGIN mini_cal_days -->
<td class="row1" align="center"><span class="gensmall">{mini_cal_row.mini_cal_days.MINI_CAL_DAY}</span></td>
<!-- END mini_cal_days -->
</tr>
<!-- END mini_cal_row -->
</table>
<hr class="dashed" />
<div class="menutitle" style="font: bold 12px 'Trebuchet MS','Lucida Grande',Arial,sans-serif; text-decoration: underline;">{L_CURRENT_EVENTS}:</div>
<ul>
<!-- BEGIN cur_events -->
<li class="row" style="border-top: 0px;">
<dl class="icon">
<dt style="width: 100%; padding-left: 0px; padding-bottom: 5px;">
<!-- IF cur_events.EVENT_URL --><a href="{cur_events.EVENT_URL}" title="{cur_events.EVENT_TITLE}"><!-- ENDIF -->
<span style="font-weight: bold;">{cur_events.EVENT_TITLE}:</span><br />
<!-- IF not cur_events.ALL_DAY and not cur_events.END_TIME -->{L_EVENT_TIME}:&nbsp;{cur_events.START_TIME}<br />
<!-- ELSEIF not cur_events.ALL_DAY and cur_events.END_TIME -->{L_EVENT_START}:&nbsp;{cur_events.START_TIME}<br />{L_EVENT_END}:&nbsp;{cur_events.END_TIME}<br />
<!-- ELSE -->{L_EVENT_ALL_DAY}<br />
<!-- ENDIF -->
<!-- IF cur_events.EVENT_DESC --><span style="font-style: italic;">{cur_events.EVENT_DESC}</span><!-- ENDIF -->
<!-- IF cur_events.EVENT_URL --></a><!-- ENDIF -->
</dt>
</dl>
</li>
<!-- BEGINELSE -->
<li><span style="float:left;" class="gensmall"><strong>{L_NO_CUR_EVENTS}</strong></span><br /></li>
<!-- END cur_events -->
</ul>
<div class="menutitle" style="font: bold 12px 'Trebuchet MS','Lucida Grande',Arial,sans-serif; text-decoration: underline;">{L_UPCOMING_EVENTS}:</div>
<ul>
<!-- BEGIN upcoming_events -->
<li class="row" style="border-top: 0px;">
<dl class="icon">
<dt style="width: 100%; padding-left: 0px; padding-bottom: 5px;">
<!-- IF upcoming_events.EVENT_URL --><a href="{upcoming_events.EVENT_URL}" title="{upcoming_events.EVENT_TITLE}"><!-- ENDIF -->
<span style="font-weight: bold;">{upcoming_events.EVENT_TITLE}:</span><br />
<!-- IF not upcoming_events.ALL_DAY and not upcoming_events.END_TIME -->{L_EVENT_TIME}:&nbsp;{upcoming_events.START_TIME}<br />
<!-- ELSEIF not upcoming_events.ALL_DAY and upcoming_events.END_TIME -->{L_EVENT_START}:&nbsp;{upcoming_events.START_TIME}<br />{L_EVENT_END}:&nbsp;{upcoming_events.END_TIME}<br />
<!-- ELSE -->{L_EVENT_ALL_DAY}<br />
<!-- ENDIF -->
<!-- IF upcoming_events.EVENT_DESC --><span style="font-style: italic;">{upcoming_events.EVENT_DESC}</span><!-- ENDIF -->
<!-- IF upcoming_events.EVENT_URL --></a><!-- ENDIF -->
</dt>
</dl>
</li>
<!-- BEGINELSE -->
<li><span style="float:left;" class="gensmall"><strong>{L_NO_UPCOMING_EVENTS}</strong></span><br /></li>
<!-- END upcoming_events -->
</ul>
{$LR_BLOCK_F_L}{$LR_BLOCK_F_R}

View File

@@ -1,5 +1,5 @@
<!--version $Id$ //-->
{$LR_BLOCK_H_L}<!-- IF $S_BLOCK_ICON --><img src="{T_THEME_PATH}/images/portal/portal_clock.png" width="16" height="16" alt="" />&nbsp;<!-- ENDIF -->{L_CLOCK}{$LR_BLOCK_H_R}
{$LR_BLOCK_H_L}<!-- IF $S_BLOCK_ICON --><img src="{$IMAGE_SRC}" width="16" height="16" alt="" />&nbsp;<!-- ENDIF -->{L_CLOCK}{$LR_BLOCK_H_R}
<div style="text-align: center;">
<br />
<object type="application/x-shockwave-flash" data="{T_THEME_PATH}/images/portal/{CLOCK_SRC}" width="140" height="140">

View File

@@ -1,5 +1,5 @@
<!--version $Id$ //-->
{$LR_BLOCK_H_L}<!-- IF $S_BLOCK_ICON --><img src="{T_THEME_PATH}/images/portal/portal_donation.png" width="16" height="16" alt="" />&nbsp;<!-- ENDIF -->{L_DONATION}{$LR_BLOCK_H_R}
{$LR_BLOCK_H_L}<!-- IF $S_BLOCK_ICON --><img src="{$IMAGE_SRC}" width="16" height="16" alt="" />&nbsp;<!-- ENDIF -->{L_DONATION}{$LR_BLOCK_H_R}
<div style="text-align: center;">
<form action="https://www.paypal.com/cgi-bin/webscr" method="post">
<div>

View File

@@ -1,5 +1,5 @@
<!--version $Id$ //-->
{$LR_BLOCK_H_L}<!-- IF $S_BLOCK_ICON --><img src="{T_THEME_PATH}/images/portal/portal_friends.png" width="17" height="17" alt="" />&nbsp;<!-- ENDIF -->{L_FRIENDS}{$LR_BLOCK_H_R}
{$LR_BLOCK_H_L}<!-- IF $S_BLOCK_ICON --><img src="{$IMAGE_SRC}" width="17" height="17" alt="" />&nbsp;<!-- ENDIF -->{L_FRIENDS}{$LR_BLOCK_H_R}
<strong style="color:green">{L_FRIENDS_ONLINE}</strong><br />
<!-- BEGIN b3p_friends_online -->
<span style="float:left;"><img src="{T_THEME_PATH}/images/portal/portal_user.png" width="16" height="16" alt="" /></span><span style="float:left; padding-left:5px; padding-top:2px;">{b3p_friends_online.USERNAME_FULL}</span><br style="clear:both" />

View File

@@ -1,5 +1,5 @@
<!--version $Id$ //-->
{$LR_BLOCK_H_L}<!-- IF $S_BLOCK_ICON --><img src="{T_THEME_PATH}/images/portal/portal_bots.png" width="16" height="16" alt="" />&nbsp;<!-- ENDIF -->{LAST_VISITED_BOTS}{$LR_BLOCK_H_R}
{$LR_BLOCK_H_L}<!-- IF $S_BLOCK_ICON --><img src="{$IMAGE_SRC}" width="16" height="16" alt="" />&nbsp;<!-- ENDIF -->{LAST_VISITED_BOTS}{$LR_BLOCK_H_R}
<!-- BEGIN last_visited_bots -->
<span class="genmed">{last_visited_bots.BOT_NAME}</span> <br /> <span class="gensmall">{last_visited_bots.LAST_VISIT_DATE}</span>
<!-- IF not last_visited_bots.S_LAST_ROW --><hr /><!-- ENDIF -->

View File

@@ -1,5 +1,5 @@
<!--version $Id$ //-->
{$LR_BLOCK_H_L}<!-- IF $S_BLOCK_ICON --><img src="{T_THEME_PATH}/images/portal/portal_members.png" width="16" height="16" alt="" />&nbsp;<!-- ENDIF -->{L_LATEST_MEMBERS}{$LR_BLOCK_H_R}
{$LR_BLOCK_H_L}<!-- IF $S_BLOCK_ICON --><img src="{$IMAGE_SRC}" width="16" height="16" alt="" />&nbsp;<!-- ENDIF -->{L_LATEST_MEMBERS}{$LR_BLOCK_H_R}
<span style="float:left;"><strong>{L_USERNAME}</strong></span>
<span style="float:right;padding-right:10px;"><strong>{L_JOINED}</strong></span><br style="clear:both" />
<!-- BEGIN latest_members -->

View File

@@ -1,5 +1,5 @@
<!--version $Id$ //-->
{$LR_BLOCK_H_L}<!-- IF $S_BLOCK_ICON --><img src="{T_THEME_PATH}/images/portal/portal_team.png" width="16" height="16" alt="" />&nbsp;<!-- ENDIF -->{L_THE_TEAM}{$LR_BLOCK_H_R}
{$LR_BLOCK_H_L}<!-- IF $S_BLOCK_ICON --><img src="{$IMAGE_SRC}" width="16" height="16" alt="" />&nbsp;<!-- ENDIF -->{L_THE_TEAM}{$LR_BLOCK_H_R}
<!-- BEGIN group -->
<strong><a href="{group.U_GROUP}" style="color: #{group.GROUP_COLOUR};" class="username-coloured">{group.GROUP_NAME}</a></strong><br />
<!-- BEGIN member -->

View File

@@ -1,5 +1,5 @@
<!--version $Id$ //-->
{$LR_BLOCK_H_L}<!-- IF $S_BLOCK_ICON --><img src="{T_THEME_PATH}/images/portal/portal_team.png" width="16" height="16" alt="" />&nbsp;<!-- ENDIF -->{L_THE_TEAM}{$LR_BLOCK_H_R}
{$LR_BLOCK_H_L}<!-- IF $S_BLOCK_ICON --><img src="{$IMAGE_SRC}" width="16" height="16" alt="" />&nbsp;<!-- ENDIF -->{L_THE_TEAM}{$LR_BLOCK_H_R}
<strong>{L_ADMINISTRATORS}</strong><br />
<!-- BEGIN admin -->
<span style="float:left;"><img src="{T_THEME_PATH}/images/portal/portal_user.png" width="16" height="16" alt="" /></span><span style="float:left; padding-left:5px; padding-top:2px;"><strong>{admin.USERNAME_FULL}</strong></span><br style="clear:both" />

View File

@@ -1,5 +1,5 @@
<!--version $Id$ //-->
{$LR_BLOCK_H_L}<!-- IF $S_BLOCK_ICON --><img src="{T_THEME_PATH}/images/portal/portal_link_us.png" width="16" height="16" alt="" />&nbsp;<!-- ENDIF -->{L_LINK_US}{$LR_BLOCK_H_R}
{$LR_BLOCK_H_L}<!-- IF $S_BLOCK_ICON --><img src="{$IMAGE_SRC}" width="16" height="16" alt="" />&nbsp;<!-- ENDIF -->{L_LINK_US}{$LR_BLOCK_H_R}
{LINK_US_TXT}<br /><br />
<input type="text" tabindex="9" size="28" value="{U_LINK_US}" class="inputbox autowidth" onclick="this.focus();this.select();" /><br />
{$LR_BLOCK_F_L}{$LR_BLOCK_F_R}

View File

@@ -1,5 +1,5 @@
<!--version $Id: main_menu_new.html 697 2010-09-13 23:11:16Z marc1706 $ //-->
{$LR_BLOCK_H_L}<!-- IF $S_BLOCK_ICON --><img src="{T_THEME_PATH}/images/portal/portal_menu.png" width="16" height="16" alt="" />&nbsp;<!-- ENDIF -->{L_PORTAL_LINKS}{$LR_BLOCK_H_R}
{$LR_BLOCK_H_L}<!-- IF $S_BLOCK_ICON --><img src="{$IMAGE_SRC}" width="16" height="16" alt="" />&nbsp;<!-- ENDIF -->{L_PORTAL_LINKS}{$LR_BLOCK_H_R}
<div class="portal-navigation">
<ul>
<!-- BEGIN portallinks -->

View File

@@ -1,7 +1,7 @@
<!--version $Id$ //-->
<form action="{S_LOGIN_ACTION}" method="post">
<div>
{$LR_BLOCK_H_L}<a href="{U_LOGIN_LOGOUT}"><!-- IF $S_BLOCK_ICON --><img src="{T_THEME_PATH}/images/portal/portal_login.png" width="16" height="16" alt="" />&nbsp;<!-- ENDIF -->{L_LOGIN_LOGOUT}</a>{$LR_BLOCK_H_R}
{$LR_BLOCK_H_L}<a href="{U_LOGIN_LOGOUT}"><!-- IF $S_BLOCK_ICON --><img src="{$IMAGE_SRC}" width="16" height="16" alt="" />&nbsp;<!-- ENDIF -->{L_LOGIN_LOGOUT}</a>{$LR_BLOCK_H_R}
<span class="genmed">{L_USERNAME}:</span><br />
<input type="text" tabindex="1" name="username" id="username" size="25" value="" class="inputbox autowidth" /><br /><br />
<span class="genmed">{L_PASSWORD}:</span><br />

View File

@@ -1,6 +1,6 @@
<!--version $Id$ //-->
<!-- IF S_STYLE_OPTIONS and S_DISPLAY_CHANGE_STYLE -->
{$LR_BLOCK_H_L}<!-- IF $S_BLOCK_ICON --><img src="{T_THEME_PATH}/images/portal/portal_style.png" width="16" height="16" alt="" />&nbsp;<!-- ENDIF -->{L_BOARD_STYLE}{$LR_BLOCK_H_R}
{$LR_BLOCK_H_L}<!-- IF $S_BLOCK_ICON --><img src="{$IMAGE_SRC}" width="16" height="16" alt="" />&nbsp;<!-- ENDIF -->{L_BOARD_STYLE}{$LR_BLOCK_H_R}
<select style="width: 150px;" name="demo" id="demo" onchange="document.location.href = this.options[this.selectedIndex].value;">
{STYLE_SELECT}
</select>

View File

@@ -1,5 +1,5 @@
<!--version $Id$ //-->
{$LR_BLOCK_H_L}<!-- IF $S_BLOCK_ICON --><img src="{T_THEME_PATH}/images/portal/portal_user.png" width="16" height="16" alt="" />&nbsp;<!-- ENDIF -->{L_USER_MENU}{$LR_BLOCK_H_R}
{$LR_BLOCK_H_L}<!-- IF $S_BLOCK_ICON --><img src="{$IMAGE_SRC}" width="16" height="16" alt="" />&nbsp;<!-- ENDIF -->{L_USER_MENU}{$LR_BLOCK_H_R}
<div style="text-align: center;">
<a href="{U_VIEW_PROFILE}"><span>{USERNAME_FULL}</span></a><br />
<!-- IF B3P_AVATAR_IMG -->

Binary file not shown.

After

Width:  |  Height:  |  Size: 744 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 676 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB