I know this site is all but a ghost town but anyone know if it is still working for 3.2?
IPB 3.2?
Started by ghosty, Jul 25 2011 05:45 PM
7 replies to this topic
#2
Posted 27 July 2011 - 11:26 AM
Yes it does but you will need to omit a line of code and stats module will no linger work. I havent gone thru the code to figure out why yet but I will work on it.
Cricket if you read this please PM me I have a serious question about continuing the portal for you.
Cricket if you read this please PM me I have a serious question about continuing the portal for you.
#3
Posted 30 July 2011 - 07:19 PM
ghosty, on 27 July 2011 - 11:26 AM, said:
Yes it does but you will need to omit a line of code and stats module will no linger work. I havent gone thru the code to figure out why yet but I will work on it.
Cricket if you read this please PM me I have a serious question about continuing the portal for you.
Cricket if you read this please PM me I have a serious question about continuing the portal for you.
I am a huge fan of Unreal portal and it has been a main feature at our site, well untill IPB 3.2.0
And help getting it to work so we dont have to deal with IP Portal would great.
#5
Posted 03 August 2011 - 09:17 PM
For anyone interested in getting the basic stats block to work (minus birthdays and calendar events), I've modified uportal.php and the stats header skin below and have the basic stats block working now. This will hold me over just fine until cricket gets the updated portal out. Basically, I just commented out any references to birthdays and calendar in uportal.php and removed those portions from the skin. Edited versions are below for anyone who might be interested.
uportal.php:
stats_header skin:
uportal.php:
<?php
/*
''~``
( o o )
+------------------.oooO--(_)--Oooo.------------------+
| Unreal Portal |
| .oooO |
| ( ) Oooo. |
+---------------------\ (----( )--------------------+
\_) ) /
(_/
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|The Logo Looks Best in Courier New|
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
---====---
Unreal Portal
By Cricket
*/
if ( ! defined( 'IN_IPB' ) )
{
print "<h1>Incorrect access</h1>You cannot access this file directly. If you have recently upgraded, make sure you upgraded all the relevant files.";
exit();
}
class public_uportal_uportal_uportal extends ipsCommand
{
private $output = "";
private $blocks = array();
private $globals = array();
private $data = array();
private $topboxes = "";
private $leftboxes = "";
private $middleboxes = "";
private $rightboxes = "";
private $bottomboxes = "";
private $latest_posts = array();
private $latest_news = array();
private $news = array();
private $top_forums = array();
private $top_posters = array();
private $new_members = array();
private $width;
private $forumid;
public function doExecute( ipsRegistry $registry )
{
$this->registry->class_localization->loadLanguageFile( array( 'public_login' ), 'core' );
$this->registry->class_localization->loadLanguageFile( array( 'public_topic' ), 'forums' );
$this->registry->class_localization->loadLanguageFile( array( 'public_boards' ), 'forums' );
$this->registry->class_localization->loadLanguageFile( array( 'public_uportal' ) );
$this->initializeParser();
$this->getSettings();
$this->getBlocks();
$this->getCustomBlocks();
$this->getCustomContent();
$this->manageWidths();
$this->queryForData();
$this->buildBlocks();
$this->displayBlocks();
$this->_do_output();
}
protected function _do_output()
{
//Top Column Start
$this->output .= $this->topboxes;
//Top Column End
$this->output .= $this->portal_start();
//Left Column Start
$this->output .= $this->column_start($this->globals['setting']['left']);
$this->output .= $this->leftboxes;
$this->output .= $this->column_end();
//Left Column End
//Spacer Column
$this->output .= $this->column_start($this->globals['setting']['spacer1']);
$this->output .= $this->no_content();
$this->output .= $this->column_end();
//Middle Column Start
$this->output .= $this->column_start($this->globals['setting']['middle']);
$this->output .= $this->middleboxes;
$this->output .= $this->column_end();
//Middle Column End
//Spacer Column
$this->output .= $this->column_start($this->globals['setting']['spacer2']);
$this->output .= $this->no_content();
$this->output .= $this->column_end();
//Right Column Start
$this->output .= $this->column_start($this->globals['setting']['right']);
$this->output .= $this->rightboxes;
$this->output .= $this->column_end();
$this->output .= $this->portal_end();
//Bottom Column Start
$this->output .= $this->bottomboxes;
//Bottom Column End
$output = base64_decode('PGRpdiBhbGlnbj0nY2VudGVyJz5Qb3dlcmVkIGJ5IFVucmVhbCBQ
b3J0YWwgdjMuMC4xICZjb3B5OyAyMDA5IDxhIGhyZWY9J2h0dHA6Ly93d3cudW5yZWFsLXN
vbHV0aW9ucy5vcmcnIHRhcmdldD0nX2JsYW5rJz5VbnJlYWwgU29sdXRpb25zPC9hPjwvZ
Gl2Pg==');
$this->output .= $output;
$this->registry->output->addContent( $this->output );
$this->registry->output->setTitle( "{$this->settings['board_name']} - {$this->lang->words['page_title']}" );
$this->registry->output->addNavigation( $this->lang->words['page_title'], 'app=uportal' );
$this->registry->output->sendOutput();
}
private function initializeParser()
{
IPSText::getTextClass('bbcode')->allow_update_caches = 1;
IPSText::getTextClass('bbcode')->bypass_badwords = intval($this->memberData['g_bypass_badwords']);
IPSText::getTextClass('bbcode')->parse_smilies = 1;
IPSText::getTextClass('bbcode')->parse_html = 1;
IPSText::getTextClass('bbcode')->parse_bbcode = 1;
}
private function getSettings()
{
$this->checkCache('up_settings', 'uportal_settings');
if( is_array( $this->registry->cache()->getCache('uportal_settings') ) )
{
foreach($this->registry->cache()->getCache('uportal_settings') as $fetch)
{
$this->globals['setting'][$fetch['name']] = $fetch['value'];
}
}
}
private function getBlocks()
{
$this->checkCache('unrealportal', 'uportal_blocks', 'order2 asc');
if( is_array( $this->registry->cache()->getCache('uportal_blocks') ) )
{
foreach($this->registry->cache()->getCache('uportal_blocks') as $fetch)
{
if($fetch['custblock_id'] == 0)
{
$this->globals['block'][$fetch['name']] = $fetch['show'];
$this->globals['block_ids'][$fetch['name']] = $fetch['id'];
$this->blocks[$fetch['name']] = $fetch['align'];
}
else
{
$this->globals['block']["cb_{$fetch['custblock_id']}"] = $fetch['show'];
$this->globals['block_ids']["cb_{$fetch['custblock_id']}"] = $fetch['id'];
$this->blocks["cb_{$fetch['custblock_id']}"] = $fetch['align'];
}
}
}
}
private function getCustomBlocks()
{
$this->checkCache('up_custblocks', 'uportal_custblocks');
if( is_array( $this->registry->cache()->getCache('uportal_custblocks') ) )
{
foreach($this->registry->cache()->getCache('uportal_custblocks') as $fetch)
{
$this->data["cb_{$fetch['id']}"] = $this->customBlock($fetch);
}
}
}
private function getCustomContent()
{
$content = array();
$this->checkCache('up_custcontent', 'uportal_content');
if( is_array( $this->registry->cache()->getCache('uportal_content') ) )
{
foreach($this->registry->cache()->getCache('uportal_content') as $fetch)
{
if($fetch['id'] == $this->request['code'])
{
$content = $fetch;
break;
}
}
if(sizeof($content) > 0)
$this->data["cc_{$content['id']}"] = $this->content($content['id'], $content['name'], $content['title'], $content['html']);
}
}
private function queryForData()
{
//Latest Posts
if (($this->globals['block']['latest_posts_big'] != 0) || ($this->globals['block']['latest_posts']) != 0)
{
if ($this->globals['setting']['num_latestposts'])
$number_of_posts1 = $this->globals['setting']['num_latestposts'];
else
$number_of_posts1 = 5;
if ($this->globals['setting']['num_latestposts_big'])
$number_of_posts2 = $this->globals['setting']['num_latestposts_big'];
else
$number_of_posts2 = 5;
if($number_of_posts1 > $number_of_posts2)
$maxcount = $number_of_posts1;
else
$maxcount = $number_of_posts2;
$count = 0;
$limit = $maxcount + 20;
$where = "t.approved = '1'";
if($this->memberData['is_mod'])
$where = "1=1";
$this->DB->build( array(
'select' => 't.tid, t.title, t.title_seo, t.description, t.state, t.poll_state, t.posts as replies, t.last_post, t.last_vote, t.start_date, t.views, t.starter_name as guest_starter_name, t.last_poster_name as guest_last_poster_name, t.seo_last_name as guest_seo_last_name, t.seo_first_name as guest_seo_first_name',
'from' => array( 'topics' => 't' ),
'where' => $where,
'order' => 't.last_post desc',
'limit' => array( $limit ),
'add_join' => array(
array( 'select' => 'm.member_id as id, m.members_display_name, m.members_seo_name as seo_members_display_name',
'from' => array( 'members' => 'm' ),
'where' => 'm.member_id=t.last_poster_id',
'type' => 'left'
),
array( 'select' => 's.member_id as starter_id, s.members_display_name as starter_name, s.members_seo_name as seo_starter_name',
'from' => array( 'members' => 's' ),
'where' => 's.member_id=t.starter_id',
'type' => 'left'
),
array( 'select' => 'f.name, f.name_seo, f.id as forum_id',
'from' => array( 'forums' => 'f' ),
'where' => 'f.id=t.forum_id',
'type' => 'left'
)
)
));
$query = $this->DB->execute();
while( $fetch = $this->DB->fetch($query) )
{
if( $this->registry->permissions->check( 'read', $this->registry->getClass('class_forums')->forum_by_id[$fetch['forum_id'] ] ) !== false )
{
$this->latest_posts[] = $fetch;
$count++;
}
if($count == $maxcount)
break;
}
}
//End Latest Posts
//Latest News
if($this->globals['block']['latest_news'] != 0)
{
if($this->forumid == null)
{
// nothing inserted?
if ( $this->globals['setting']['newsforum'] == "" )
{
$this->forumid[]=1;
}
// multiple forums
elseif ( $this->globals['setting']['newsforum'] == 0 )
{
if ( $this->globals['setting']['newsforum_expert'] == "" )
{
if($this->globals['setting']['newsforum'] != null)
$this->forumid[]= $this->globals['setting']['newsforum'];
else
$this->forumid[]="1";
}
else
{
$this->forumid = explode(",", $this->globals['setting']['newsforum_expert']);
}
}
// normal
else
{
$this->forumid[] = $this->globals['setting']['newsforum'];
}
}
$max = $this->globals['setting']['num_latest_news'];
$total = sizeof($this->forumid);
$count = 0;
$this->width = 100 / $total;
$this->width = floor($this->width);
$this->width = "{$this->width}%";
$toquery = "";
if(is_array($this->forumid))
{
foreach($this->forumid as $key=>$value)
{
$count++;
$toquery .= "(select f.name, f.id, t.tid, t.title, t.title_seo from {$this->DB->obj['sql_tbl_prefix']}topics t left join {$this->DB->obj['sql_tbl_prefix']}forums f on (f.id=t.forum_id) where t.forum_id = '$value'";
if ( ! $this->memberData['is_mod'] )
$toquery .= " and t.approved = '1'";
$toquery .= " order by t.tid desc limit $max)";
if($count != $total)
$toquery .= " union ";
}
}
$this->DB->allow_sub_select = 1;
$query = $this->DB->query($toquery);
while($fetch = $this->DB->fetch($query))
{
if( $this->registry->permissions->check( 'read', $this->registry->getClass('class_forums')->forum_by_id[$fetch['id'] ] ) !== false )
{
$this->latest_news[] = $fetch;
}
}
$this->DB->allow_sub_select = 0;
}
//End Latest News
//News
if($this->globals['block']['news'] != 0)
{
$count = 0;
$max = $this->globals['setting']['newsposts'] ? $this->globals['setting']['newsposts'] : 5;
if($this->globals['setting']['newsforum_expert'] != null)
$this->forumid = explode(",", $this->globals['setting']['newsforum_expert']);
else
$this->forumid[] = $this->globals['setting']['newsforum'];
// nothing inserted?
if ( $this->globals['setting']['newsforum'] == "" and
$this->globals['setting']['newsforum_expert'] == null )
{
$forumid="t.forum_id=2";
}
// multiple forums
elseif ( $this->globals['setting']['newsforum_expert'] != null )
{
if ( $this->globals['setting']['newsforum_expert'] == "" )
{
$forumid="t.forum_id=2";
}
else
{
$forums = explode(",", $this->globals['setting']['newsforum_expert']);
$forumid = "t.forum_id=". join (" OR t.forum_id=", $forums);
// 'special' mode
$special = 1;
}
}
// normal
else
{
$forumid = "t.forum_id=". $this->globals['setting']['newsforum'];
}
// Selected Forum
if($this->request['news'] != null)
{
$newsforum = $this->request['news'];
if(is_array($this->forumid))
{
foreach($this->forumid as $key => $value)
{
if($newsforum == $value)
{
$forumid = "t.forum_id=". $newsforum;
break;
}
}
}
}
$limit = $maxcount + 20;
$where = "({$forumid})";
if( ! $this->memberData['is_mod'] )
$where .= " and t.approved = '1'";
$this->DB->build( array(
'select' => 't.forum_id, t.tid, t.title, t.title_seo, t.posts as comments, t.topic_hasattach',
'from' => array( 'topics' => 't' ),
'where' => $where,
'order' => "t.tid desc LIMIT {$limit}",
'add_join' => array(
array( 'select' => 'p.pid, p.post_date, p.post, p.post_htmlstate, p.author_id, p.author_name',
'from' => array( 'posts' => 'p' ),
'where' => 'p.topic_id=t.tid AND p.new_topic=1',
'type' => 'left'
),
array( 'select' => 'm.members_display_name, m.members_seo_name, m.member_id as id, m.member_group_id as mgroup',
'from' => array( 'members' => 'm' ),
'where' => 'm.member_id=p.author_id',
'type' => 'left'
)
)
));
$query = $this->DB->execute();
while( $fetch = $this->DB->fetch($query) )
{
if( $this->registry->permissions->check( 'read', $this->registry->getClass('class_forums')->forum_by_id[$fetch['forum_id'] ] ) !== false )
{
$this->news[] = $fetch;
$count++;
}
if($count == $max)
break;
}
}
//End News
//Top Forums
if ($this->globals['block']['top_forums'] != 0)
{
$count = 0;
if ($this->globals['setting']['num_top_forums'])
$number_of_forums = $this->globals['setting']['num_top_forums'];
else
$number_of_forums = 5;
$this->DB->build( array(
'select' => 'id, name, name_seo, topics, posts as replies',
'from' => 'forums',
'where' => 'sub_can_post = 1',
'order' => "topics desc, posts desc"
));
$query = $this->DB->execute();
while( $fetch = $this->DB->fetch($query) )
{
if( $this->registry->permissions->check( 'read', $this->registry->getClass('class_forums')->forum_by_id[$fetch['id'] ] ) !== false )
{
$this->top_forums[] = $fetch;
$count++;
}
if($count == $number_of_forums)
break;
}
}
//End Top Forums
if ($this->globals['block']['top_posters'] != 0)
{
if ($this->globals['setting']['num_topposters'])
$number_top_posters = $this->globals['setting']['num_topposters'];
else
$number_top_posters = 5;
$this->DB->build( array(
'select' => 'member_id as id, members_display_name, members_seo_name, posts',
'from' => 'members',
'order' => "posts desc LIMIT {$number_top_posters}"
));
$query = $this->DB->execute();
while( $fetch = $this->DB->fetch($query) )
{
$this->top_posters[] = $fetch;
}
}
//End Top Posters
//New Members
if($this->globals['block']['new_members'] != 0)
{
if ($this->globals['setting']['num_newmembers'])
$number_new_members = $this->globals['setting']['num_newmembers'];
else
$number_new_members = 5;
$this->DB->build( array(
'select' => 'member_id as id, members_display_name, members_seo_name, joined',
'from' => 'members',
'order' => "id desc limit {$number_new_members}"
));
$query = $this->DB->execute();
while( $fetch = $this->DB->fetch($query) )
{
$this->new_members[] = $fetch;
}
}
//End New Members
}
private function manageWidths()
{
if($this->globals['setting']['left'] == null)
$this->globals['setting']['left'] = "25%";
if($this->globals['setting']['spacer1'] == null)
$this->globals['setting']['spacer1'] = "1%";
if($this->globals['setting']['middle'] == null)
$this->globals['setting']['middle'] = "50%";
else
{
$this->globals['setting']['middle'] = str_replace("%", "", $this->globals['setting']['middle']);
if($this->globals['setting']['left'] != "0%")
$this->globals['setting']['middle']--;
if($this->globals['setting']['right'] != "0%")
$this->globals['setting']['middle']--;
$this->globals['setting']['middle'] = "{$this->globals['setting']['middle']}%";
}
if($this->globals['setting']['spacer2'] == null)
$this->globals['setting']['spacer2'] = "1%";
if($this->globals['setting']['right'] == null)
$this->globals['setting']['right'] = "25%";
if($this->globals['setting']['leftcustom'] == null)
$this->globals['setting']['leftcustom'] = "25%";
if($this->globals['setting']['middlecustom'] == null)
$this->globals['setting']['middlecustom'] = "50%";
else
{
$this->globals['setting']['middlecustom'] = str_replace("%", "", $this->globals['setting']['middlecustom']);
if($this->globals['setting']['leftcustom'] != "0%")
$this->globals['setting']['middlecustom']--;
if($this->globals['setting']['rightcustom'] != "0%")
$this->globals['setting']['middlecustom']--;
$this->globals['setting']['middlecustom'] = "{$this->globals['setting']['middlecustom']}%";
}
if($this->globals['setting']['rightcustom'] == null)
$this->globals['setting']['rightcustom'] = "25%";
if($this->request['code'] != null)
{
$this->globals['setting']['left'] = $this->globals['setting']['leftcustom'];
$this->globals['setting']['middle'] = $this->globals['setting']['middlecustom'];
$this->globals['setting']['right'] = $this->globals['setting']['rightcustom'];
}
}
private function buildBlocks()
{
$this->data['loginbox'] = $this->login();
$this->data['latest_posts'] = $this->latest_posts();
$this->data['stats'] = $this->board_stats();
//$this->data['calendar'] = $this->calendar();
$this->data['custom_content'] = $this->customcontent();
$this->data['latest_posts_big'] = $this->latest_posts_big();
$this->data['latest_news'] = $this->latest_news();
$this->data['news'] = $this->news();
$this->data['poll'] = $this->poll();
$this->data['top_forums'] = $this->top_forums();
$this->data['top_posters'] = $this->top_posters();
$this->data['new_members'] = $this->new_members();
$this->data['site_search'] = $this->site_search();
$this->data['websearch'] = $this->web_search();
}
private function displayBlocks()
{
if(is_array($this->blocks))
{
foreach($this->blocks as $fetch['name'] => $fetch['align'])
{
if($fetch['align'] == 'top')
$this->topboxes .= $this->data[$fetch['name']];
if($this->globals['setting']['left'] == "0%" and $this->globals['setting']['right'] != "0%" and $this->request['code'] == null)
{
if($fetch['align'] == 'left' or $fetch['align'] == 'right')
$this->rightboxes .= $this->data[$fetch['name']];
else if($fetch['align'] == 'middle')
$this->middleboxes .= $this->data[$fetch['name']];
}
else if($this->globals['setting']['right'] == "0%" and $this->globals['setting']['left'] != "0%" and $this->request['code'] == null)
{
if($fetch['align'] == 'left' or $fetch['align'] == 'right')
$this->leftboxes .= $this->data[$fetch['name']];
else if($fetch['align'] == 'middle')
$this->middleboxes .= $this->data[$fetch['name']];
}
else if($this->globals['setting']['left'] == "0%" and $this->globals['setting']['right'] == "0%" and $this->request['code'] == null)
{
if($fetch['align'] == 'middle')
$this->middleboxes .= $this->data[$fetch['name']];
}
else if($this->globals['setting']['left'] != "0%" and $this->globals['setting']['right'] != "0%" and $this->request['code'] == null)
{
if($fetch['align'] == 'left')
$this->leftboxes .= $this->data[$fetch['name']];
else if($fetch['align'] == 'middle')
$this->middleboxes .= $this->data[$fetch['name']];
else if($fetch['align'] == 'right')
$this->rightboxes .= $this->data[$fetch['name']];
}
else if($this->globals['setting']['leftcustom'] == "0%" and $this->globals['setting']['rightcustom'] != "0%" and $this->request['code'] != null)
{
if($fetch['align'] == 'left' or $fetch['align'] == 'right')
$this->rightboxes .= $this->data[$fetch['name']];
else if($fetch['align'] == 'middle')
{
if($fetch['name'] == "news")
{
$this->middleboxes.= $this->data["cc_{$this->request['code']}"];
}
else
$this->middleboxes .= $this->data[$fetch['name']];
}
}
else if($this->globals['setting']['rightcustom'] == "0%" and $this->globals['setting']['leftcustom'] != "0%" and $this->request['code'] != null)
{
if($fetch['align'] == 'left' or $fetch['align'] == 'right')
$this->leftboxes .= $this->data[$fetch['name']];
else if($fetch['align'] == 'middle')
{
if($fetch['name'] == "news")
{
$this->middleboxes.= $this->data["cc_{$this->request['code']}"];
}
else
$this->middleboxes .= $this->data[$fetch['name']];
}
}
else if($this->globals['setting']['leftcustom'] == "0%" and $this->globals['setting']['rightcustom'] == "0%" and $this->request['code'] != null)
{
if($fetch['align'] == 'middle')
{
if($fetch['name'] == "news")
{
$this->middleboxes.= $this->data["cc_{$this->request['code']}"];
}
else
$this->middleboxes .= $this->data[$fetch['name']];
}
}
else if($this->globals['setting']['leftcustom'] != "0%" and $this->globals['setting']['rightcustom'] != "0%" and $this->request['code'] != null)
{
if($fetch['align'] == 'left')
$this->leftboxes .= $this->data[$fetch['name']];
else if($fetch['align'] == 'right')
$this->rightboxes .= $this->data[$fetch['name']];
else if($fetch['align'] == 'middle')
{
if($fetch['name'] == "news")
{
$this->middleboxes.= $this->data["cc_{$this->request['code']}"];
}
else
$this->middleboxes .= $this->data[$fetch['name']];
}
}
if($fetch['align'] == 'bottom')
$this->bottomboxes .= $this->data[$fetch['name']];
}
}
}
function login()
{
if ($this->globals['block']['loginbox'] && !$this->memberData['member_id'])
{
$to_return = $this->registry->getClass('output')->getTemplate('uportal')->block_start($this->globals['block_ids']['loginbox'], "log_in");
$to_return .= $this->registry->getClass('output')->getTemplate('uportal')->login();
$to_return .= $this->registry->getClass('output')->getTemplate('uportal')->block_end();
return $to_return;
}
return '';
}
function latest_posts()
{
$latest_posts = array();
if(!($this->globals['block']['latest_posts']))
return '';
if(sizeof($this->latest_posts) > 0)
{
if ($this->globals['setting']['num_latestposts'])
$maxcount = $this->globals['setting']['num_latestposts'];
else
$maxcount = 5;
$count = 0;
foreach($this->latest_posts as $key=>$fetch)
{
$latest_posts[] = $to_return = $this->registry->getClass('output')->getTemplate('uportal')->latest_posts_row($fetch);
$count++;
if($count == $maxcount)
break;
}
}
$latest_posts = implode($this->registry->getClass('output')->getTemplate('uportal')->br(), $latest_posts);
$to_return = $this->registry->getClass('output')->getTemplate('uportal')->block_start($this->globals['block_ids']['latest_posts'], "latest_posts");
$to_return .= $this->registry->getClass('output')->getTemplate('uportal')->general_block($latest_posts);
$to_return .= $this->registry->getClass('output')->getTemplate('uportal')->block_end();
return $to_return;
}
function board_stats()
{
if(!($this->globals['block']['stats']))
return '';
require_once( IPSLib::getAppDir( 'forums', 'forums' ) . '/boards.php' );
$boards = new public_forums_forums_boards();
$boards->makeRegistryShortcuts( $this->registry );
$active = $boards->getActiveUserDetails();
//$this->registry->cache()->getCache('birthdays');
//$birthdays = $boards->getBirthdays();
//$this->registry->cache()->getCache('calendar');
//$events = $boards->getCalendarEvents();
$stats_info = $boards->getTotalTextString();
$active = array_merge( $active, array( 'text' => $this->lang->words['total_word_string'],
'posts' => $boards->total_posts,
'active' => $boards->users_online,
'members' => $boards->total_members,
'cut_off' => $this->settings['au_cutoff'],
'info' => $stats_info ) );
//$to_return = $this->registry->getClass('output')->getTemplate('uportal')->stats_header($active, $birthdays, $events, $this->globals['block_ids']['stats']);
$to_return = $this->registry->getClass('output')->getTemplate('uportal')->stats_header($active, $this->globals['block_ids']['stats']);
$to_return .= $this->registry->getClass('output')->getTemplate('uportal')->stats_footer();
return $to_return;
}
/* function calendar()
{
if (!($this->globals['block']['calendar']))
return '';
require_once( 'classes/class_calendar.php' );
$this->class_calendar = new class_calendar( $this->registry );
$this->class_calendar->globals =& $this->globals;
return $this->class_calendar->show_calendar();
} */
function customcontent()
{
if (!($this->globals['block']['custom_content']))
return '';
if( is_array( $this->registry->cache()->getCache('uportal_content') ) )
{
foreach($this->registry->cache()->getCache('uportal_content') as $fetch)
{
$links .= "<a href='{$this->settings['base_url']}app=uportal&code={$fetch['id']}'>{$fetch['title']}</a><br/>";
}
}
$to_return = $this->registry->getClass('output')->getTemplate('uportal')->block_start($this->globals['block_ids']['custom_content'], "custom_content");
$to_return .= $this->registry->getClass('output')->getTemplate('uportal')->general_block($links);
$to_return .= $this->registry->getClass('output')->getTemplate('uportal')->block_end();
return $to_return;
}
function latest_posts_big()
{
if (!($this->globals['block']['latest_posts_big']))
return '';
$to_return = $this->registry->getClass('output')->getTemplate('uportal')->block_start($this->globals['block_ids']['latest_posts_big'], "latest_posts_big");
$to_return .= $this->registry->getClass('output')->getTemplate('uportal')->latest_posts_big_start();
if(sizeof($this->latest_posts) > 0)
{
if ($this->globals['setting']['num_latestposts_big'])
$maxcount = $this->globals['setting']['num_latestposts_big'];
else
$maxcount = 5;
$count = 0;
foreach($this->latest_posts as $key=>$fetch)
{
$fetch['start_date'] = $this->registry->class_localization->getDate( $fetch['start_date'], 'LONG');
if($fetch['poll_state'] == 0)
{
$fetch['last_action'] = $this->registry->class_localization->getDate( $fetch['last_post'], 'LONG');
}
else
{
if($fetch['last_poll'] > $fetch['last_post'])
$fetch['last_action'] = $this->registry->class_localization->getDate( $fetch['last_poll'], 'LONG');
else
$fetch['last_action'] = $this->registry->class_localization->getDate( $fetch['last_post'], 'LONG');
}
$to_return .= $this->registry->getClass('output')->getTemplate('uportal')->latest_posts_big_row($fetch);
$count++;
if($count == $maxcount)
break;
}
}
$to_return .= $this->registry->getClass('output')->getTemplate('uportal')->latest_posts_big_end();
$to_return .= $this->registry->getClass('output')->getTemplate('uportal')->block_end();
return $to_return;
}
function latest_news()
{
if(!($this->globals['block']['latest_news']))
return '';
if(sizeof($this->latest_news) > 0)
{
$to_return = $this->registry->getClass('output')->getTemplate('uportal')->block_start($this->globals['block_ids']['latest_news'], "latest_news");
$to_return .= $this->registry->getClass('output')->getTemplate('uportal')->table_start();
$to_return .= $this->registry->getClass('output')->getTemplate('uportal')->tr_start("header");
$forum_name = "";
$count = -1;
$count2 = 0;
$maxcount = 0;
$latest_news = array();
foreach($this->latest_news as $key=>$fetch)
{
if($forum_name != $fetch['name'])
{
$to_return .= $this->registry->getClass('output')->getTemplate('uportal')->th_row($this->width, $fetch);
$forum_name = $fetch['name'];
$count++;
$count2 = 0;
}
$latest_news[$count][$count2] = $fetch;
$count2++;
if($count2 > $maxcount)
$maxcount = $count2;
}
$to_return .= $this->registry->getClass('output')->getTemplate('uportal')->tr_end();
for($count2 = 0; $count2 < $maxcount; $count2++)
{
$to_return .= $this->registry->getClass('output')->getTemplate('uportal')->tr_start();
for($newcount = 0; $newcount <= $count; $newcount++)
{
$to_return .= $this->registry->getClass('output')->getTemplate('uportal')->td_row($this->width, $latest_news[$newcount][$count2]);
}
$to_return .= $this->registry->getClass('output')->getTemplate('uportal')->tr_end();
}
$to_return .= $this->registry->getClass('output')->getTemplate('uportal')->table_end();
$to_return .= $this->registry->getClass('output')->getTemplate('uportal')->block_end();
return $to_return;
}
}
function news()
{
if($this->globals['block']['news'] == 0)
return '';
if ( ! is_object( $this->class_attach ) )
{
require_once( IPSLib::getAppDir( 'core' ) . '/sources/classes/attach/class_attach.php' );
$this->class_attach = new class_attach( $this->registry );
}
$this->class_attach->type = 'post';
$this->class_attach->init();
$total = sizeof($this->news);
$count = 0;
if($total > 0)
{
$to_return = $this->registry->getClass('output')->getTemplate('uportal')->news_attachments_js();
foreach($this->news as $key=>$fetch)
{
$count++;
$this->lang->words["news{$fetch['tid']}"] = $fetch['title'];
$to_return .= $this->registry->getClass('output')->getTemplate('uportal')->block_start("news{$fetch['tid']}","news{$fetch['tid']}");
IPSText::getTextClass('bbcode')->parse_html = ( $this->registry->getClass('class_forums')->forum_by_id[ $fetch['forum_id'] ]['use_html'] and $this->caches['group_cache'][ $fetch['mgroup'] ]['g_dohtml'] and $fetch['post_htmlstate'] ) ? 1 : 0;
IPSText::getTextClass('bbcode')->parse_nl2br = $fetch['post_htmlstate'] == 2 ? 1 : 0;
IPSText::getTextClass('bbcode')->parsing_section = 'post';
IPSText::getTextClass('bbcode')->parsing_mgroup = $this->memberData['member_group_id'];
if (!$this->memberData['view_img'])
{
$fetch['post'] = IPSText::getTextClass('bbcode')->unconvertSmilies($fetch['post']);
}
$fetch['post'] = IPSText::getTextClass('bbcode')->preDisplayParse($fetch['post']);
if($this->globals['setting']['tease_news'])
{
$fetch['post'] = substr($fetch['post'], 0, $this->globals['setting']['tease_length']);
$fetch['post'] .= " <b><a href='{$this->settings['base_url']}showtopic=" . "{$fetch['tid']}'>...</a></b>";
}
//Handle attachments
$fetch['attachmentHtml'] = '';
if($fetch['topic_hasattach'])
{
$this->settings['show_img_upload'] = 1;
if( $this->registry->permissions->check( 'download', $this->registry->getClass('class_forums')->forum_by_id[$fetch['forum_id'] ] ) === false )
{
$this->settings['show_img_upload'] = 0;
}
$fetch['post'] = $this->class_attach->renderAttachments( $fetch['post'], array($fetch['pid']) );
$fetch['attachmentHtml'] = $fetch['post'][$fetch['pid']]['attachmentHtml'];
$fetch['post'] = $fetch['post'][0]['html'];
}
$fetch['post_date'] = $this->registry->class_localization->getDate( $fetch['post_date'], 'LONG');
$to_return .= $this->registry->getClass('output')->getTemplate('uportal')->news_block($fetch, $this->globals['setting']['newsforum_height'], $this->globals['setting']['newsforum_height_limit'], $this->globals['setting']['newsforum_width']);
if($count == $total)
$to_return .= $this->registry->getClass('output')->getTemplate('uportal')->block_end();
else
$to_return .= $this->registry->getClass('output')->getTemplate('uportal')->block_end();
}
}
return $to_return;
}
function poll()
{
if ($this->globals['setting']['poll']==0)
return '';
require_once( IPSLib::getAppDir( 'forums', 'forums' ) . '/topics.php' );
$topic = new public_forums_forums_topics();
$topic->makeRegistryShortcuts( $this->registry );
$topic->topic = $this->DB->buildAndFetch( array( 'select' => '*', 'from' => 'topics', 'where' => "tid=" . $this->globals['setting']['poll'] ) );
$topic->forum = ipsRegistry::getClass('class_forums')->forum_by_id[ $topic->topic['forum_id'] ];
$this->request['f'] = $topic->forum['id'] ;
$this->request['t'] = $tid ;
if ( $topic->topic['poll_state'] )
{
$to_return = $this->registry->getClass('output')->getTemplate('uportal')->block_start("poll", "poll");
$to_return .= $this->registry->getClass('output')->getTemplate('uportal')->general_block($topic->_generatePollOutput());
$to_return .= $this->registry->getClass('output')->getTemplate('uportal')->block_end();
return $to_return;
}
return;
}
function top_forums()
{
if (!($this->globals['block']['top_forums']))
return '';
$to_return = $this->registry->getClass('output')->getTemplate('uportal')->block_start($this->globals['block_ids']['top_forums'], "top_forums");
$to_return .= $this->registry->getClass('output')->getTemplate('uportal')->top_forums_start();
if(sizeof($this->top_forums) > 0)
{
foreach($this->top_forums as $key=>$fetch)
{
$to_return .= $this->registry->getClass('output')->getTemplate('uportal')->top_forums_row($fetch);
}
}
$to_return .= $this->registry->getClass('output')->getTemplate('uportal')->top_forums_end();
$to_return .= $this->registry->getClass('output')->getTemplate('uportal')->block_end();
return $to_return;
}
function top_posters()
{
if (!($this->globals['block']['top_posters']))
return '';
$to_return = $this->registry->getClass('output')->getTemplate('uportal')->block_start($this->globals['block_ids']['top_posters'], "top_posters");
$to_return .= $this->registry->getClass('output')->getTemplate('uportal')->top_posters_start();
if(sizeof($this->top_posters) > 0)
{
foreach($this->top_posters as $key=>$fetch)
{
$to_return .= $this->registry->getClass('output')->getTemplate('uportal')->top_posters_row($fetch);
}
}
$to_return .= $this->registry->getClass('output')->getTemplate('uportal')->top_posters_end();
$to_return .= $this->registry->getClass('output')->getTemplate('uportal')->block_end();
return $to_return;
}
function new_members()
{
if (!($this->globals['block']['new_members']))
return '';
$to_return = $this->registry->getClass('output')->getTemplate('uportal')->block_start($this->globals['block_ids']['new_members'], "new_members");
$to_return .= $this->registry->getClass('output')->getTemplate('uportal')->new_members_start();
if(sizeof($this->new_members) > 0)
{
foreach($this->new_members as $key=>$fetch)
{
$fetch['joined'] = $this->registry->class_localization->getDate( $fetch['joined'], 'LONG');
$to_return .= $this->registry->getClass('output')->getTemplate('uportal')->new_members_row($fetch);
}
}
$to_return .= $this->registry->getClass('output')->getTemplate('uportal')->new_members_end();
$to_return .= $this->registry->getClass('output')->getTemplate('uportal')->block_end();
return $to_return;
}
function site_search()
{
if(!($this->globals['block']['site_search']))
return '';
$to_return = $this->registry->getClass('output')->getTemplate('uportal')->block_start($this->globals['block_ids']['site_search'], "site_search");
$to_return .= $this->registry->getClass('output')->getTemplate('uportal')->site_search();
$to_return .= $this->registry->getClass('output')->getTemplate('uportal')->block_end();
return $to_return;
}
function web_search()
{
if (!($this->globals['block']['websearch']))
return '';
$to_return = $this->registry->getClass('output')->getTemplate('uportal')->block_start($this->globals['block_ids']['websearch'], "web_search");
$to_return .= $this->registry->getClass('output')->getTemplate('uportal')->web_search();
$to_return .= $this->registry->getClass('output')->getTemplate('uportal')->block_end();
return $to_return;
}
function portal_start()
{
return $this->registry->getClass('output')->getTemplate('uportal')->portal_start();
}
function portal_end()
{
return $this->registry->getClass('output')->getTemplate('uportal')->portal_end();
}
function column_start($width="")
{
return $this->registry->getClass('output')->getTemplate('uportal')->column_start($width);
}
function column_end()
{
return $this->registry->getClass('output')->getTemplate('uportal')->column_end();
}
function no_content()
{
return $this->registry->getClass('output')->getTemplate('uportal')->no_content();
}
private function customBlock($block='')
{
if (!($this->globals['block']["cb_{$block['id']}"]))
return '';
ob_start();
eval("?>".$block['html']."<?php\n");
$block['html'] = ob_get_contents();
ob_end_clean();
$this->lang->words["cb_{$block['id']}"] = $block['title'];
$to_return = $this->registry->getClass('output')->getTemplate('uportal')->block_start($this->globals['block_ids']["cb_{$block['id']}"], "cb_{$block['id']}");
$to_return .= $this->registry->getClass('output')->getTemplate('uportal')->custom_block($block['html']);
$to_return .= $this->registry->getClass('output')->getTemplate('uportal')->block_end();
return $to_return;
}
private function content($contentid, $contentname, $contenttitle, $contenthtml)
{
$to_echo = '';
ob_start();
eval("?>".$contenthtml."<?php\n");
$contenthtml = ob_get_contents();
ob_end_clean();
switch($this->request['code'])
{
case $contentid:
$this->lang->words[$contentname] = $contenttitle;
$to_echo .= $this->registry->getClass('output')->getTemplate('uportal')->block_start("cc{$contentid}",$contentname);
$to_echo .= $this->registry->getClass('output')->getTemplate('uportal')->custom_block($contenthtml);
$to_echo .= $this->registry->getClass('output')->getTemplate('uportal')->block_end();
return $to_echo;
break;
default:
break;
}
}
//Helper function that sets the cache if the cache isn't set
private function checkCache($table_name, $settings_name, $order="")
{
if( is_array( $this->registry->cache()->getCache($settings_name) ) == false)
{
$cache = array();
if($order=="")
{
$this->DB->build( array(
'select' => '*',
'from' => $table_name
));
}
else
{
$this->DB->build( array(
'select' => '*',
'from' => $table_name,
'order' => $order
));
}
$query = $this->DB->execute();
while( $fetch = $this->DB->fetch($query) )
$cache[] = $fetch;
$this->registry->cache()->setCache( $settings_name, $cache, array( 'array' => 1, 'deletefirst' => 1, 'donow' => 1 ) );
}
}
}
stats_header skin:
<div class='category_block block_wrap'>
<h3 id='category_up{$id}' class='maintitle'><a class='toggle right' href='#' title='{$this->lang->words['toggle_cat']}'>{$this->lang->words['toggle_cat']}</a> {$this->lang->words['board_stats']}</h3>
<table class='ipb_table' cellspacing="1">
<tbody>
<tr>
<td class='row2 altrow'><b>{$stats['TOTAL']} {$this->lang->words['active_users_text']} {$this->lang->words['active_users']}</b></td>
</tr>
<tr>
<td class='row2'>{$stats['MEMBERS']} {$this->lang->words['members']}, {$stats['GUESTS']} {$this->lang->words['guests']}, {$stats['ANON']} {$this->lang->words['anon_users']}</td>
</tr>
<if test="activeNames:|:count($stats['NAMES'])">
<tr>
<td class='row2'>{parse expression="implode( ", ", $stats['NAMES'] )"}</td>
</tr>
</if>
<if test="showTotals:|:$this->settings['show_totals']">
<tr>
<td class='row2 altrow'><b>{$this->lang->words['board_stats']}</b></td>
</tr>
<tr>
<td class='row2'>{$stats['text']}<br/>{$this->lang->words['most_online']}</td>
<tr>
</if>
1 user(s) are reading this topic
0 members, 1 guests, 0 anonymous users












