/*
+---------------------------------------------------------------+
| e107 website system
|
| ©Steve Dunstan 2001-2002
| http://e107.org
| jalist@e107.org
|
| Released under the terms and conditions of the
| GNU General Public License (http://gnu.org).
+---------------------------------------------------------------+
*/
//$ec_dir = e_PLUGIN."calendar_menu/";
$lan_file = $ec_dir."languages/".e_LANGUAGE.".php";
include(file_exists($lan_file) ? $lan_file : e_PLUGIN."calendar_menu/languages/English.php");
$datearray = getdate();
$current_day = $datearray['mday'];
$current_month = $datearray['mon'];
$current_year = $datearray['year'];
// get first and last days of month in unix format---------------------------------------------------
$monthstart= mktime(0,0,0,$current_month,1,$current_year);
$firstdayarray = getdate($monthstart);
$monthend = mktime(0,0,0,$current_month+1,0,$current_year);
$lastdayarray = getdate($monthend);
// ----------------------------------------------------------------------------------------------------------
// get events from current month----------------------------------------------------------------------
$sql -> db_Select("event", "*", "(event_start>='$monthstart' AND event_start<= '$monthend') OR (event_rec_y='$current_month')");
$events = $sql -> db_Rows();
while($row = $sql -> db_Fetch()){
extract($row);
$evf = getdate($event_start);
$tmp = $evf['mday'];
$event_true[$tmp] = $event_category;
}
// -----------------------------------------------------------------------------------------------------------
// set up arrays for calender display ------------------------------------------------------------------
$week = Array(EC_LAN_25,EC_LAN_19,EC_LAN_20,EC_LAN_21,EC_LAN_22,EC_LAN_23,EC_LAN_24);
$months = Array(EC_LAN_0,EC_LAN_1,EC_LAN_2,EC_LAN_3,EC_LAN_4,EC_LAN_5,EC_LAN_6,EC_LAN_7,EC_LAN_8,EC_LAN_9,EC_LAN_10,EC_LAN_11);
$calendar_title = $months[$datearray[mon]-1]." ".$current_year;
// -----------------------------------------------------------------------------------------------------------
$text = "";
if($events){
$text .= EC_LAN_26 . ": ".$events;
}else{
$text .= EC_LAN_27;
}
$start = $monthstart;
$text .= "
";
foreach($week as $day){
$text .= "| ".$day." | ";
}
$text .= " ";
$thismonth = $datearray['mon'];
$thisday = $datearray['mday'];
for($c=0; $c<$firstdayarray['wday']; $c++){
$text .= "
| ";
}
$loop = $firstdayarray['wday'];
for($c=1; $c<=31; $c++){
$dayarray = getdate($start+($c*84460));
if($dayarray['mon'] == $thismonth){
if($thisday == $c){
$text .= "";
}else{
$text .=" | ";
}
if($event_true[($c)]){
$sql -> db_Select("event_cat", "*", "event_cat_id='".$event_true[($c)]."' ");
$icon = $sql -> db_Fetch();
extract($icon);
$img = " ";
}else{
$img = " ";
}
$linkut = mktime(0 ,0 ,0 ,$dayarray['mon'], $c, $datearray['year']);
$text .="$img $c";
if($thisday == $c){
}
$text .= " | \n";
$loop++;
if($loop == 7){
$loop = 0;
$text .= " ";
}
}
}
for($a=($loop+1); $a<=7; $a++){
$text .="| | ";
}
$text .= "
";
$ns -> tablerender($calendar_title, $text);
?>
|
// Area Identification
$caption = 'COMCENT Message Center';
$text = ' ';
// Form processing follows here
if (!$error && $_POST){ // someone is trying to do something
switch($_GET['cmd']){
case 'remove':
// They have to answer yes or no
if ($_POST['m_remove'] == 'Y' && $_GET['message'] != ''){
$message = new Messaging_Class($_GET['message']);
$result = $GLOBALS['services']->sql_query("DELETE FROM pilot_messages WHERE subject = '".$message->getSubject()."' AND sent_by =".$_GET['id']." AND squad_message = 'Y'");
if ($GLOBALS['services']->sql_affectedrows($result) < 0){
$error = error_layout('There was a problem getting data from the database: '.
join(' ',$GLOBALS['services']->sql_error($result)));
break;
}
$successful = 1;
} else {
unset($_GET);
}
break;
case 'reply':
// Attempting to reply to a message
// First make sure there is something to do
if ($_POST['m_subject'] == '' || $_POST['m_body'] == '')
{ if ($_POST['m_review']){ unset($_POST['m_review']); } break; }
// We only have to do something upon completion
if ($_POST['completed']){
// We need to save this ...
// There shouldn't be any errors here as we are just saving to the database
$result = $GLOBALS['services']->sql_query('INSERT INTO pilot_messages (nick_id,sent_by,subject,
body,recieved)
VALUES ('.$_POST['m_pilot'].','.$_POST['m_from'].',
"'.$_POST['m_subject'].'","'.$_POST['m_body'].'",
NOW())');
if ($GLOBALS['services']->sql_affectedrows($result) < 0){ // query failed
$error = error_layout('There was a problem getting data from the database: '.
join(' ',$GLOBALS['services']->sql_error($result)));
break;
}
// Grab the last inserted id
$mid = $GLOBALS['services']->sql_autofetch('SELECT message_id FROM pilot_messages WHERE
nick_id='.$_POST['m_pilot'].' AND
sent_by='.$_POST['m_from'].' AND
subject="'.$_POST['m_subject'].'"');
// now update the information for the current message
$result = $GLOBALS['services']->sql_query('UPDATE pilot_messages SET reply='.$mid['message_id'].',
pilot_messages.read=\'Y\',readdate=NOW()
WHERE message_id='.$_GET['message']);
}
break;
case 'compose':
// The person is creating a message
// First make sure there is something to do
if (($_POST['m_pilot'] == '' && $_POST['m_squad'] == '') || $_POST['m_subject'] == '' || $_POST['m_body'] == '')
{ if ($_POST['m_review']){ unset($_POST['m_review']); } break; }
// Okay everything is here lets show them what they are sending to verify it
if ($_POST['m_review']){
if ($_POST['m_pilot'] != '' && !is_numeric($_POST['m_pilot'])){ // we will need to look up similar pilot names
// but only if the passed id is not an int
$result = $GLOBALS['services']->sql_query('SELECT nick_id,nick FROM nick WHERE nick LIKE "%'.$_POST['m_pilot'].'%" ORDER BY nick');
if ($GLOBALS['services']->sql_numrows($result) < 1) { // no matches, must reenter information
$serror = error_layout('No Nicks Matched that Name, please re-enter the pilots name.');
unset($_POST['m_review']);
break;
} else { // Pilots found, so lets list them
while($array = $GLOBALS['services']->sql_fetchrow($result)){
$poptions[] = Array($array['nick_id'],$array['nick']);
}
}
} else if ($_POST['m_squad']){ // get the squads name and id
$sarray = $GLOBALS['services']->sql_autofetch('SELECT squad_id,squad_name FROM squads WHERE squad_id='.$_POST['m_squad']);
if ($sarray['squad_id'] == ''){ // no squad name found, odd, but it could happen
$serror = error_layout('You have chosen an incorrect squad name.');
unset($_POST['m_review']);
break;
}
}
} else if ($_POST['completed']){
// We need to save this ...
// There shouldn't be any errors here as we are just saving to the database
if ($_GET['type'] != 'squad'){
$result = $GLOBALS['services']->sql_query('INSERT INTO pilot_messages (nick_id,sent_by,subject,body,recieved)
VALUES ('.$_POST['m_pilot'].','.$_POST['m_from'].',
"'.$_POST['m_subject'].'","'.$_POST['m_body'].'",NOW())');
if ($GLOBALS['services']->sql_affectedrows($result) < 0){ // query failed
$error = error_layout('There was a problem getting data from the database: '.
join(' ',$GLOBALS['services']->sql_error($result)));
break;
}
} else { // is squad message
// We have the squad ID so lets grab the pilots list
$result = $GLOBALS['services']->sql_query('SELECT nick_id,squad_leader FROM onweb
LEFT JOIN squads on onweb.squad_id=squads.squad_id
WHERE squads.squad_id='.$_POST['m_squad']);
// If it is a squad then there is always one, but lets double check just to be sure
if ($GLOBALS['services']->sql_numrows($result) < 1){ // No rows returned.. HACK ATTEMPT
$error = error_layout(HACKINGATTEMPT);
break;
} else { // there are rows
while($array = $GLOBALS['services']->sql_fetchrow($result)){
$result2 = $GLOBALS['services']->sql_query('INSERT INTO pilot_messages (nick_id,sent_by,subject,body,recieved,
squad_message,email)
VALUES ('.$array['nick_id'].','.$array['squad_leader'].',
"'.$_POST['m_subject'].'","'.$_POST['m_body'].'",NOW(),
\'Y\',\''.$_POST['m_email'].'\')');
// Grab last insert if the goal is to send an email
if ($_POST['m_email'] == 'Y'){
$mid = $GLOBALS['services']->sql_autofetch('SELECT message_id FROM pilot_messages WHERE
nick_id='.$_POST['m_pilot'].' AND
sent_by='.$_POST['m_from'].' AND
subject="'.$_POST['m_subject'].'"');
//$_SESSION['out']->sendEmailSquadMessage($mid['message_id']);
}
}
}
}
}
break;
}
}
// Display processing follows here
if (!$_SESSION['uobject']){
// This person has not logged in yet.
$text .= NOTLOGGEDINMSG;
} else if ($_GET['cmd'] == 'remove'){
$caption .= ' -- Remove Message';
if (!$successful){
// Create a message object for reusing display setup
$text .= 'You have chosen to remove the following message:
';
$message = new Messaging_Class($_GET['message']);
$text .= '';
$text .= '| From: | '.$message->getSentBy().'
[ REPLY ] | ';
$text .= '| Sent: | '.$message->getRecieved('m/d/Y H:i:s').' | ';
$text .= '| Subject: | '.$message->getSubject().' | ';
$text .= '| Body: | '.$message->getBody().' | ';
$text .= ' ';
$text .= $_SESSION['out']->formStart();
$text .= $_SESSION['out']->formLine('Are You Sure?','radio','m_remove',$_POST['m_remove'], Array(Array('Y','YES'),Array('N','NO')));
$text .= $_SESSION['out']->formEnd();
} else { // process was successful
$text .= 'Your squad message has been removed from the database.';
$text .= '
';
$text .= ' To go back to viewing your messages click here.
';
}
} else if ($_GET['cmd'] == 'view'){
// This process has no POST so we need to update the database from here
$result = $GLOBALS['services']->sql_query('UPDATE pilot_messages SET pilot_messages.read=\'Y\', readdate=NOW()
WHERE message_id='.$_GET['message']);
$caption .= ' -- View Message';
// Create a message object for reusing display setup
$text .= 'Here is the message you were sent:
';
$message = new Messaging_Class($_GET['message']);
$text .= '';
$text .= '| From: | '.$message->getSentBy().'
[ REPLY ] | ';
$text .= '| Sent: | '.$message->getRecieved('m/d/Y H:i:s').' | ';
$text .= '| Subject: | '.$message->getSubject().' | ';
$text .= '| Body: | '.$message->getBody().' | ';
$text .= ' ';
$text .= ' To go back to viewing your messages click here.
';
} else if ($_GET['cmd'] == 'reply'){
if ($error){
$text .= $error;
} else if ($_POST['completed']){
$caption .= ' -- Compose Reply Message -- Sent';
$array = $GLOBALS['services']->sql_autofetch('SELECT nick FROM nick WHERE nick_id='.$_POST['m_pilot']);
// Inform the player that his message has been sent
$text .= 'The following message has been sent:
';
$text .= '';
$pinfo = $GLOBALS['services']->sql_autofetch('SELECT nick FROM nick WHERE nick_id='.$_POST['m_pilot']);
$text .= '| To: | '.$pinfo['nick'].' | ';
$pinfo = $GLOBALS['services']->sql_autofetch('SELECT nick FROM nick WHERE nick_id='.$_POST['m_from']);
$text .= '| From: | '.$pinfo['nick'].' | ';
$text .= '| Sent: | '.date('m/d/Y H:i:s',time()).' | ';
$text .= '| Subject: | '.$_POST['m_subject'].' | ';
$text .= '| Body: | '.$_POST['m_body'].' | ';
$text .= ' ';
$text .= ' To go back to viewing your messages click here.
';
} else {
if ($_POST['m_review']){
$caption .= ' -- Compose Reply Message -- Verify';
// We check in the config to make sure this person is a squad leader so if no error, then allow it
$text .= 'Please verify your response:
';
} else {
$caption .= ' -- Compose Reply Message';
// We check in the config to make sure this person is a squad leader so if no error, then allow it
$text .= 'You are responding to the following message:
';
}
// Create a message object for reusing display setup
$message = new Messaging_Class($_GET['message']);
$text .= '';
$text .= '| From: | '.$message->getSentBy().' | ';
$text .= '| Sent: | '.$message->getRecieved('m/d/Y H:i:s').' | ';
$text .= '| Subject: | '.$message->getSubject().' | ';
$text .= '| Body: | '.$message->getBody().' | ';
$text .= ' ';
$text .= $serror;
$text .= $_SESSION['out']->formStart();
// Since we don't know which pilot they want the message sent from, ask them.
foreach($_SESSION['uobject']->pilots as $pilot){
$poptions[] = Array($pilot->id, $pilot->nick);
}
$text .= $_SESSION['out']->resultLine('Send To Pilot: ',$message->getSentBy());
$text .= $_SESSION['out']->formHidden('m_pilot',$message->getPilotID());
if ($_GET['id']) { // ID was passed which means they want to send the message to this pilot no search done
$pinfo = $GLOBALS['services']->sql_autofetch('SELECT nick FROM nick WHERE nick_id='.$_GET['id']);
$text .= $_SESSION['out']->resultLine('Send From Pilot: ',$pinfo['nick']);
$text .= $_SESSION['out']->formHidden('m_from',$_GET['id']);
} else { // no ID passed
$text .= $_SESSION['out']->formLine('Send From Pilot: ','text','m_from',$_POST['m_from'],Array('size'=>34));
}
$text .= $_SESSION['out']->formLine('Subject: ','text','m_subject',$_POST['m_subject'],Array('size'=>34));
$text .= $_SESSION['out']->formLine('Message: ', 'textarea','m_body',$_POST['m_body']);
if ($_POST['m_review']){
$text .= $_SESSION['out']->formHidden('completed',1);
} else {
$text .= $_SESSION['out']->formHidden('m_review',1);
}
$text .= $_SESSION['out']->formEnd('VERIFY MESSAGE TO PILOT');
}
} else if ($_GET['cmd'] == 'compose'){
if ($error){
$text .= $error;
} else if ($_POST['completed']){
if ($_GET['type'] == 'squad'){
$caption .= ' -- Compose Squad Message -- Sent';
// Inform the player that his message has been sent
$text .= 'The following message has been sent to your squad mates.
';
$text .= '';
$pinfo = $GLOBALS['services']->sql_autofetch('SELECT squad_name FROM squads WHERE squad_id='.$_POST['m_squad']);
} else {
$caption .= ' -- Compose Pilot Message -- Sent';
// Inform the player that his message has been sent
$text .= 'The following message has been sent:
';
$text .= '';
$pinfo = $GLOBALS['services']->sql_autofetch('SELECT nick FROM nick WHERE nick_id='.$_POST['m_pilot']);
$text .= '| To: | '.$pinfo['nick'].' | ';
$pinfo = $GLOBALS['services']->sql_autofetch('SELECT nick FROM nick WHERE nick_id='.$_POST['m_from']);
}
$text .= '| From: | '.$pinfo['nick'].$pinfo['squad_name'].' | ';
$text .= '| Sent: | '.date('m/d/Y H:i:s',time()).' | ';
$text .= '| Subject: | '.$_POST['m_subject'].' | ';
$text .= '| Body: | '.$_POST['m_body'].' | ';
$text .= ' ';
$text .= ' To go back to viewing your messages click here.
';
} else if ($_POST['m_review']){
if ($_GET['type'] == 'squad'){
$caption .= ' -- Compose Squad Message -- Verify';
// We check in the config to make sure this person is a squad leader so if no error, then allow it
$text .= 'Please verify the information below to ensure that this is correct.
';
$text .= $serror;
$text .= $_SESSION['out']->formStart();
$text .= $_SESSION['out']->resultLine('Send To Squad: ',$sarray['squad_name']);
$text .= $_SESSION['out']->formHidden('m_squad',$sarray['squad_id']);
$text .= $_SESSION['out']->formLine('Send Via Email: ','checkbox','m_email',$_POST['m_email'],Array(Array('Y')));
$text .= $_SESSION['out']->formLine('Subject: ','text','m_subject',$_POST['m_subject'],Array('size'=>35));
$text .= $_SESSION['out']->formLine('Message: ', 'textarea','m_body',$_POST['m_body']);
$text .= $_SESSION['out']->formHidden('completed',1);
$text .= $_SESSION['out']->formEnd('SEND MESSAGE TO SQUAD');
} else {
$caption .= ' -- Compose Pilot Message -- Verify';
// We check in the config to make sure this person is a squad leader so if no error, then allow it
$text .= 'Please verify the information below to ensure that this is correct.
';
$text .= $serror;
$text .= $_SESSION['out']->formStart();
if (!is_numeric($_POST['m_pilot'])){
if (!$serror){
$text .= $_SESSION['out']->formLine('Send To pilot: ','select','m_pilot',$_POST['m_pilot'],$poptions);
} else {
$text .= $_SESSION['out']->formLine('Send To Pilot: ','text','m_pilot',$_POST['m_pilot'],Array('size'=>35));
}
} else {
$pinfo = $GLOBALS['services']->sql_autofetch('SELECT nick FROM nick WHERE nick_id='.$_POST['m_pilot']);
$text .= $_SESSION['out']->resultLine('Send To Pilot: ',$pinfo['nick']);
$text .= $_SESSION['out']->formHidden('m_pilot',$_POST['m_pilot']);
}
$pinfo = $GLOBALS['services']->sql_autofetch('SELECT nick FROM nick WHERE nick_id='.$_POST['m_from']);
$text .= $_SESSION['out']->resultLine('Send From Pilot: ',$pinfo['nick']);
$text .= $_SESSION['out']->formHidden('m_from',$_POST['m_from']);
$text .= $_SESSION['out']->formLine('Subject: ','text','m_subject',$_POST['m_subject'],Array('size'=>35));
$text .= $_SESSION['out']->formLine('Message: ', 'textarea','m_body',$_POST['m_body']);
if (!$serror){
$text .= $_SESSION['out']->formHidden('completed',1);
} else {
$text .= $_SESSION['out']->formHidden('m_review',1);
}
$text .= $_SESSION['out']->formEnd('SEND MESSAGE TO PILOT');
}
} else {
// Person is wanting ot compose a message for either their squads or other players
if ($_GET['type'] == 'squad'){ // this person is doing a squad message only allowed by squad leaders
$caption .= ' -- Compose Squad Message';
// We check in the config to make sure this person is a squad leader so if no error, then allow it
$text .= 'Please use the following form to compose the message that you want to send to your squad.
';
$text .= 'You will be asked to confirm the message details before it is submitted.
';
$text .= $_SESSION['out']->formStart();
// Build list of squads
foreach($_SESSION['uobject']->pilots as $pilot){
if ($pilot->isSquadLeader()){
$squad = $pilot->squad;
$options[] = Array($squad->id, $squad->name);
}
}
$text .= $_SESSION['out']->formLine('Send To Squad: ','select','m_squad',$_POST['m_squad'],$options);
$text .= $_SESSION['out']->formLine('Send Via Email: ','checkbox','m_email',$_POST['m_email'],Array(Array('Y')));
$text .= $_SESSION['out']->formLine('Subject: ','text','m_subject',$_POST['m_subject'],Array('size'=>34));
$text .= $_SESSION['out']->formLine('Message: ', 'textarea','m_body',$_POST['m_body']);
$text .= $_SESSION['out']->formHidden('m_review',1);
$text .= $_SESSION['out']->formEnd('VERIFY MESSAGE TO SQUAD');
} else {
$caption .= ' -- Compose Pilot Message';
// We check in the config to make sure this person is a squad leader so if no error, then allow it
$text .= 'Please use the following form to compose the message that you want to send to a pilot.
';
$text .= 'If you do not know the pilot\'s name you can enter in any part of it that you can remember,
and when you are asked to confirm the details of this emial, you will be given a chance to
select the pilot.
';
$text .= $serror;
$text .= $_SESSION['out']->formStart();
if ($_GET['id']) { // ID was passed which means they want to send the message to this pilot no search done
$pinfo = $GLOBALS['services']->sql_autofetch('SELECT nick FROM nick WHERE nick_id='.$_GET['id']);
$text .= $_SESSION['out']->resultLine('Send To Pilot: ',$pinfo['nick']);
$text .= $_SESSION['out']->formHidden('m_pilot',$_GET['id']);
} else { // no ID passed
$text .= $_SESSION['out']->formLine('Send To Pilot: ','text','m_pilot',$_POST['m_pilot'],Array('size'=>34));
}
// Since we don't know which pilot they want the message sent from, ask them.
foreach($_SESSION['uobject']->pilots as $pilot){
$poptions[] = Array($pilot->id, $pilot->nick);
}
$text .= $_SESSION['out']->formLine('Send From Pilot: ','select','m_from',$_POST['m_from'],$poptions);
$text .= $_SESSION['out']->formLine('Subject: ','text','m_subject',$_POST['m_subject'],Array('size'=>34));
$text .= $_SESSION['out']->formLine('Message: ', 'textarea','m_body',$_POST['m_body']);
$text .= $_SESSION['out']->formHidden('m_review',1);
$text .= $_SESSION['out']->formEnd('VERIFY MESSAGE TO PILOT');
}
}
} else {
// Defaulted Message view
// if someone has passed an ID with no cmd, this is a hack attempt
if ($_GET['id']){
$text = error_layout(HACKINGATTEMPT);
} else {
$result = $GLOBALS['services']->sql_query('SELECT message_id FROM pilot_messages
left join name_link on pilot_messages.nick_id=name_link.nick_id
WHERE user_id='.$_SESSION['uobject']->info_array['id'].'
ORDER BY recieved DESC');
if ($GLOBALS['services']->sql_numrows($result) > 0){ // data found
while($array = $GLOBALS['services']->sql_fetchrow($result)){
$message = new Messaging_Class($array['message_id']);
$pilot = $_SESSION['uobject']->getPilot($message->getPilotId());
if ($pilot && $pilot->isSquadLeader()){ $squad_leader = true; }
if ($message->hasReply()){ $class = 'statsreply'; } else { $class = 'stats'; }
if ($message->isSquadMessage()){
$squad .= '
| '.$message->getSquadName().' | ';
// Adjust for if the email was read or replied to
if (!$message->hasBeenRead()){
$squad .= ''.$message->getSubject().' | ';
} else { // message has been read
$squad .= ''.$message->getSubject().' | ';
}
$squad .= ' '.$message->getRecieved('m/d/Y H:i:s').' |
'.$message->wasSentByEmail().' |
';
// Since this is squad messages, only squad leader can delete them
// Squad leader isn't gonna want to reply to themselves, so only delete is shown
if ($pilot && $pilot->isSquadLeader()){
$squad .= '[ REMOVE ] ';
} else { // person is not squad leader so give ability to reply
if ($message->hasReply()){
$squad .= 'REPLIED';
} else {
$squad .= '[ REPLY ] ';
}
}
$squad .= ' | ';
} else {
$reg .= '
| '.$message->getSentBy().' | ';
// Adjust for if the email was read
if (!$message->hasBeenRead()){
$reg .= ''.$message->getSubject().' | ';
} else { // message has been read
$reg .= ''.$message->getSubject().' | ';
}
$reg .= ' '.$message->getRecieved('m/d/Y H:i:s').' |
'.$message->wasSentByEmail().' |
';
if (!$message->hasReply()){
$reg .= '[ REPLY ] ';
} else {
$reg .= 'REPLIED';
}
$reg .= ' | ';
}
}
}
$text .= '| Squad Messages ';
if ($_SESSION['uobject']->isSquadLeader()){ $text .= '[ COMPOSE ]'; }
$text .= ' | ';
$text .= '
| Subject |
For Squad |
Recieved |
|
|
';
$text .= $squad;
$text .= '
';
// Now we need to show all the regular messages
$text .= '| Pilot Messages
[ COMPOSE ] | ';
$text .= '
| From |
Subject |
Recieved |
|
|
';
$text .= $reg;
$text .= '
';
}
}
// Fix caption
$caption =''.$caption.' ';
if ($_GET['cmd']){
$caption .= '[ « ]';
}
$caption .= '[ ^ ] ';
// Display main Box
$ns->gen_tablerend($caption,$text);
?>
// Seconday area for holding things like the search tools and linked pilots info
// Do we have linked pilots?
if ($_SESSION['uobject'] && $_SESSION['uobject']->hasLinkedPilots()){
$ns->tablerender("Linked Pilots",$_SESSION['uobject']->displayPilots());
}
?>
|
// Display external template
require_once(FOOTERF);
?> |
|