Vergleich inc/functions_forumlist.php - 1.8.5 - 1.8.29

  Keine Änderungen   Hinzugefügt   Modifiziert   Entfernt
Zeile 11Zeile 11
/**
* Build a list of forum bits.
*

/**
* Build a list of forum bits.
*

* @param int The parent forum to fetch the child forums for (0 assumes all)
* @param int The depth to return forums with.

* @param int $pid The parent forum to fetch the child forums for (0 assumes all)
* @param int $depth The depth to return forums with.

* @return array Array of information regarding the child forums of this parent forum
*/
function build_forumbits($pid=0, $depth=1)

* @return array Array of information regarding the child forums of this parent forum
*/
function build_forumbits($pid=0, $depth=1)

Zeile 41Zeile 41
	{
foreach($parent as $forum)
{

	{
foreach($parent as $forum)
{

 
			$forum['viewers'] = 0;

			$subforums = $sub_forums = '';
$lastpost_data = array(

			$subforums = $sub_forums = '';
$lastpost_data = array(

				'lastpost' => 0


				'lastpost' => 0,
'lastposter' => '',

			);
$forum_viewers_text = '';
$forum_viewers_text_plain = '';

			);
$forum_viewers_text = '';
$forum_viewers_text_plain = '';

Zeile 62Zeile 64
			// Build the link to this forum
$forum_url = get_forum_link($forum['fid']);


			// Build the link to this forum
$forum_url = get_forum_link($forum['fid']);


			// This forum has a password, and the user isn't authenticated with it - hide post information

 
			$hideinfo = $hidecounters = false;
$hidelastpostinfo = false;
$showlockicon = 0;

			$hideinfo = $hidecounters = false;
$hidelastpostinfo = false;
$showlockicon = 0;

			if(isset($permissions['canviewthreads']) && $permissions['canviewthreads'] != 1)
{
$hideinfo = true;




// Hide post info if user cannot view forum or cannot view threads
if($permissions['canview'] != 1 || (isset($permissions['canviewthreads']) && $permissions['canviewthreads'] != 1))
{
$hideinfo = true;

			}

			}





			if(isset($permissions['canonlyviewownthreads']) && $permissions['canonlyviewownthreads'] == 1)
{
$hidecounters = true;

			if(isset($permissions['canonlyviewownthreads']) && $permissions['canonlyviewownthreads'] == 1)
{
$hidecounters = true;

Zeile 82Zeile 85
					foreach($fcache as $fcache_p)
{
foreach($fcache_p as $parent_p)

					foreach($fcache as $fcache_p)
{
foreach($fcache_p as $parent_p)

						{

						{

							foreach($parent_p as $forum_p)
{
if($forumpermissions[$forum_p['fid']]['canonlyviewownthreads'])

							foreach($parent_p as $forum_p)
{
if($forumpermissions[$forum_p['fid']]['canonlyviewownthreads'])

Zeile 108Zeile 111
					}
}


					}
}


				if($private_forums[$forum['fid']]['lastpost'])

				if(!empty($private_forums[$forum['fid']]['lastpost']))

				{
$forum['lastpost'] = $private_forums[$forum['fid']]['lastpost'];

				{
$forum['lastpost'] = $private_forums[$forum['fid']]['lastpost'];

 

if(!$private_forums[$forum['fid']]['lastposteruid'] && !$private_forums[$forum['fid']]['lastposter'])
{
$private_forums[$forum['fid']]['lastposter'] = $lang->guest; // htmlspecialchars_uni'd when formatted later
}


$lastpost_data = array(
"lastpost" => $private_forums[$forum['fid']]['lastpost'],


$lastpost_data = array(
"lastpost" => $private_forums[$forum['fid']]['lastpost'],

Zeile 119Zeile 127
						"lastposttid" => $private_forums[$forum['fid']]['tid'],
"lastposteruid" => $private_forums[$forum['fid']]['lastposteruid']
);

						"lastposttid" => $private_forums[$forum['fid']]['tid'],
"lastposteruid" => $private_forums[$forum['fid']]['lastposteruid']
);

				}

				}

			}
else

			}
else

			{






			{
if(!$forum['lastposteruid'] && !$forum['lastposter'])
{
$forum['lastposter'] = $lang->guest; // htmlspecialchars_uni'd when formatted later
}


				$lastpost_data = array(
"lastpost" => $forum['lastpost'],
"lastpostsubject" => $forum['lastpostsubject'],

				$lastpost_data = array(
"lastpost" => $forum['lastpost'],
"lastpostsubject" => $forum['lastpostsubject'],

Zeile 130Zeile 143
					"lastposttid" => $forum['lastposttid'],
"lastposteruid" => $forum['lastposteruid']
);

					"lastposttid" => $forum['lastposttid'],
"lastposteruid" => $forum['lastposteruid']
);

			}

if($forum['password'] != '' && $mybb->cookies['forumpass'][$forum['fid']] !== md5($mybb->user['uid'].$forum['password']))








			}

// This forum has a password, and the user isn't authenticated with it - hide post information
if(!forum_password_validated($forum, true))
{
$hideinfo = true;
$showlockicon = 1;
}

if(is_array($forum_viewers) && isset($forum_viewers[$forum['fid']]) && $forum_viewers[$forum['fid']] > 0)

			{

			{

			    $hideinfo = true;
$showlockicon = 1;

				$forum['viewers'] = $forum_viewers[$forum['fid']];


			}

// Fetch subforums of this forum
if(isset($fcache[$forum['fid']]))

			}

// Fetch subforums of this forum
if(isset($fcache[$forum['fid']]))

			{

			{

				$forum_info = build_forumbits($forum['fid'], $depth+1);

// Increment forum counters with counters from child forums

				$forum_info = build_forumbits($forum['fid'], $depth+1);

// Increment forum counters with counters from child forums

Zeile 148Zeile 167
				$forum['posts'] += $forum_info['counters']['posts'];
$forum['unapprovedthreads'] += $forum_info['counters']['unapprovedthreads'];
$forum['unapprovedposts'] += $forum_info['counters']['unapprovedposts'];

				$forum['posts'] += $forum_info['counters']['posts'];
$forum['unapprovedthreads'] += $forum_info['counters']['unapprovedthreads'];
$forum['unapprovedposts'] += $forum_info['counters']['unapprovedposts'];


if(!empty($forum_info['counters']['viewing']))


if(!empty($forum_info['counters']['viewers']))

				{

				{

					$forum['viewers'] += $forum_info['counters']['viewing'];

					$forum['viewers'] += $forum_info['counters']['viewers'];

				}

// If the child forums' lastpost is greater than the one for this forum, set it as the child forums greatest.

				}

// If the child forums' lastpost is greater than the one for this forum, set it as the child forums greatest.

				if($forum_info['lastpost']['lastpost'] > $lastpost_data['lastpost'])

				if(isset($forum_info['lastpost']['lastpost']) && $forum_info['lastpost']['lastpost'] > $lastpost_data['lastpost'])

				{
$lastpost_data = $forum_info['lastpost'];

/*
// If our subforum is unread, then so must be our parents. Force our parents to unread as well
if(strstr($forum_info['lightbulb']['folder'], "on") !== false)

				{
$lastpost_data = $forum_info['lastpost'];

/*
// If our subforum is unread, then so must be our parents. Force our parents to unread as well
if(strstr($forum_info['lightbulb']['folder'], "on") !== false)

					{

					{

						$forum['lastread'] = 0;
}
// Otherwise, if we have an explicit record in the db, we must make sure that it is explicitly set

						$forum['lastread'] = 0;
}
// Otherwise, if we have an explicit record in the db, we must make sure that it is explicitly set

Zeile 176Zeile 195
			}

// If we are hiding information (lastpost) because we aren't authenticated against the password for this forum, remove them

			}

// If we are hiding information (lastpost) because we aren't authenticated against the password for this forum, remove them

			if($hidelastpostinfo == true)

			if($hideinfo == true || $hidelastpostinfo == true)

			{

			{

 
				// Used later for get_forum_lightbulb function call - Setting to 0 prevents the bulb from being lit up
// If hiding info or hiding lastpost info no "unread" posts indication should be shown to the user.

				$lastpost_data = array(
'lastpost' => 0,

				$lastpost_data = array(
'lastpost' => 0,

					'lastposter' => ''
);
}

// If the current forums lastpost is greater than other child forums of the current parent, overwrite it
if(!isset($parent_lastpost) || $lastpost_data['lastpost'] > $parent_lastpost['lastpost'])
{

					'lastposter' => '',
);
}

// If the current forums lastpost is greater than other child forums of the current parent and forum info isn't hidden, overwrite it
if((!isset($parent_lastpost) || $lastpost_data['lastpost'] > $parent_lastpost['lastpost']) && $hideinfo != true)
{

				$parent_lastpost = $lastpost_data;
}

				$parent_lastpost = $lastpost_data;
}


if(is_array($forum_viewers) && isset($forum_viewers[$forum['fid']]) && $forum_viewers[$forum['fid']] > 0)
{
$forum['viewers'] = $forum_viewers[$forum['fid']];
}









			// Increment the counters for the parent forum (returned later)
if($hideinfo != true && $hidecounters != true)
{

			// Increment the counters for the parent forum (returned later)
if($hideinfo != true && $hidecounters != true)
{

Zeile 202Zeile 218
				$parent_counters['posts'] += $forum['posts'];
$parent_counters['unapprovedposts'] += $forum['unapprovedposts'];
$parent_counters['unapprovedthreads'] += $forum['unapprovedthreads'];

				$parent_counters['posts'] += $forum['posts'];
$parent_counters['unapprovedposts'] += $forum['unapprovedposts'];
$parent_counters['unapprovedthreads'] += $forum['unapprovedthreads'];





				if(!empty($forum['viewers']))
{
$parent_counters['viewers'] += $forum['viewers'];
}

				if(!empty($forum['viewers']))
{
$parent_counters['viewers'] += $forum['viewers'];
}

			}

			}


// Done with our math, lets talk about displaying - only display forums which are under a certain depth
if($depth > $showdepth)


// Done with our math, lets talk about displaying - only display forums which are under a certain depth
if($depth > $showdepth)

			{

			{

				continue;

				continue;

			}


			}


			// Get the lightbulb status indicator for this forum based on the lastpost
$lightbulb = get_forum_lightbulb($forum, $lastpost_data, $showlockicon);

// Fetch the number of unapproved threads and posts for this forum

			// Get the lightbulb status indicator for this forum based on the lastpost
$lightbulb = get_forum_lightbulb($forum, $lastpost_data, $showlockicon);

// Fetch the number of unapproved threads and posts for this forum

			$unapproved = get_forum_unapproved($forum);


 
			if($hideinfo == true)
{

			if($hideinfo == true)
{

				unset($unapproved);








				$unapproved = array(
"unapproved_posts" => '',
"unapproved_threads" => '',
);
}
else
{
$unapproved = get_forum_unapproved($forum);

			}

// Sanitize name and description of forum.

			}

// Sanitize name and description of forum.

Zeile 282Zeile 303
			if($forum['linkto'] == '')
{
// No posts have been made in this forum - show never text

			if($forum['linkto'] == '')
{
// No posts have been made in this forum - show never text

				if(($lastpost_data['lastpost'] == 0 || $lastpost_data['lastposter'] == '') && $hideinfo != true)

				if($lastpost_data['lastpost'] == 0 && $hideinfo != true)

				{
eval("\$lastpost = \"".$templates->get("forumbit_depth2_forum_lastpost_never")."\";");
}

				{
eval("\$lastpost = \"".$templates->get("forumbit_depth2_forum_lastpost_never")."\";");
}

Zeile 292Zeile 313
					$lastpost_date = my_date('relative', $lastpost_data['lastpost']);

// Set up the last poster, last post thread id, last post subject and format appropriately

					$lastpost_date = my_date('relative', $lastpost_data['lastpost']);

// Set up the last poster, last post thread id, last post subject and format appropriately

 
					$lastpost_data['lastposter'] = htmlspecialchars_uni($lastpost_data['lastposter']);

					$lastpost_profilelink = build_profile_link($lastpost_data['lastposter'], $lastpost_data['lastposteruid']);
$lastpost_link = get_thread_link($lastpost_data['lastposttid'], 0, "lastpost");
$lastpost_subject = $full_lastpost_subject = $parser->parse_badwords($lastpost_data['lastpostsubject']);

					$lastpost_profilelink = build_profile_link($lastpost_data['lastposter'], $lastpost_data['lastposteruid']);
$lastpost_link = get_thread_link($lastpost_data['lastposttid'], 0, "lastpost");
$lastpost_subject = $full_lastpost_subject = $parser->parse_badwords($lastpost_data['lastpostsubject']);

Zeile 413Zeile 435

// Check if this category is either expanded or collapsed and hide it as necessary.
$expdisplay = '';


// Check if this category is either expanded or collapsed and hide it as necessary.
$expdisplay = '';

			$collapsed_name = "cat_{$forum['fid']}_c";
if(isset($collapsed[$collapsed_name]) && $collapsed[$collapsed_name] == "display: show;")

			$collapsed_name = "cat_{$forum['fid']}_e";
if(isset($collapsed[$collapsed_name]) && $collapsed[$collapsed_name] == "display: none;")

			{
$expcolimage = "collapse_collapsed.png";
$expdisplay = "display: none;";
$expthead = " thead_collapsed";

			{
$expcolimage = "collapse_collapsed.png";
$expdisplay = "display: none;";
$expthead = " thead_collapsed";

				$expaltext = "[+]";

				$expaltext = $lang->expcol_expand;

			}
else
{
$expcolimage = "collapse.png";
$expthead = "";

			}
else
{
$expcolimage = "collapse.png";
$expthead = "";

				$expaltext = "[-]";

				$expaltext = $lang->expcol_collapse;

			}

// Swap over the alternate backgrounds

			}

// Swap over the alternate backgrounds

Zeile 458Zeile 480
/**
* Fetch the status indicator for a forum based on its last post and the read date
*

/**
* Fetch the status indicator for a forum based on its last post and the read date
*

 * @param array Array of information about the forum
* @param array Array of information about the lastpost date
* @param int Whether or not this forum is locked or not

 * @param array $forum Array of information about the forum
* @param array $lastpost Array of information about the lastpost date
* @param int $locked Whether or not this forum is locked or not

 * @return array Array of the folder image to be shown and the alt text
*/
function get_forum_lightbulb($forum, $lastpost, $locked=0)

 * @return array Array of the folder image to be shown and the alt text
*/
function get_forum_lightbulb($forum, $lastpost, $locked=0)

Zeile 473Zeile 495
		$folder = "offlink";
$altonoff = $lang->forum_redirect;
}

		$folder = "offlink";
$altonoff = $lang->forum_redirect;
}

	// This forum is closed, so override the folder icon with the "offlock" icon.

	// This forum is closed, so override the folder icon with the "offclose" icon.

	elseif($forum['open'] == 0 || $locked)
{

	elseif($forum['open'] == 0 || $locked)
{

		$folder = "offlock";
$altonoff = $lang->forum_locked;

		$folder = "offclose";
$altonoff = $lang->forum_closed;

	}
else
{

	}
else
{

Zeile 538Zeile 560
/**
* Fetch the number of unapproved posts, formatted, from a forum
*

/**
* Fetch the number of unapproved posts, formatted, from a forum
*

 * @param array Array of information about the forum

 * @param array $forum Array of information about the forum

 * @return array Array containing formatted string for posts and string for threads
*/
function get_forum_unapproved($forum)

 * @return array Array containing formatted string for posts and string for threads
*/
function get_forum_unapproved($forum)