Vergleich inc/functions_indicators.php - 1.8.0 - 1.8.38

  Keine Änderungen   Hinzugefügt   Modifiziert   Entfernt
Zeile 11Zeile 11
/**
* Mark a particular thread as read for the current user.
*

/**
* Mark a particular thread as read for the current user.
*

 * @param int The thread ID
* @param int The forum ID of the thread

 * @param int $tid The thread ID
* @param int $fid The forum ID of the thread

 */
function mark_thread_read($tid, $fid)
{

 */
function mark_thread_read($tid, $fid)
{

Zeile 51Zeile 51
/**
* Fetches the number of unread threads for the current user in a particular forum.
*

/**
* Fetches the number of unread threads for the current user in a particular forum.
*

 * @param string The forums (CSV list)

 * @param string $fid The forums (CSV list)

 * @return int The number of unread threads
*/
function fetch_unread_count($fid)
{
global $cache, $db, $mybb;


 * @return int The number of unread threads
*/
function fetch_unread_count($fid)
{
global $cache, $db, $mybb;


	$onlyview = $onlyview2 = '';
$permissions = forum_permissions($fid);































	$forums_all = $forums_own = array();
$forums = explode(',', $fid);
foreach($forums as $forum)
{
$permissions = forum_permissions($forum);
if(!empty($permissions['canonlyviewownthreads']))
{
$forums_own[] = $forum;
}
else
{
$forums_all[] = $forum;
}
}
if(!empty($forums_own))
{
$where = "(fid IN (".implode(',', $forums_own).") AND uid = {$mybb->user['uid']})";
$where2 = "(t.fid IN (".implode(',', $forums_own).") AND t.uid = {$mybb->user['uid']})";
}
if(!empty($forums_all))
{
if(isset($where))
{
$where = "({$where} OR fid IN (".implode(',', $forums_all)."))";
$where2 = "({$where2} OR t.fid IN (".implode(',', $forums_all)."))";
}
else
{
$where = 'fid IN ('.implode(',', $forums_all).')';
$where2 = 't.fid IN ('.implode(',', $forums_all).')';
}
}

	$cutoff = TIME_NOW-$mybb->settings['threadreadcut']*60*60*24;

if(!empty($permissions['canonlyviewownthreads']))

	$cutoff = TIME_NOW-$mybb->settings['threadreadcut']*60*60*24;

if(!empty($permissions['canonlyviewownthreads']))

Zeile 76Zeile 106

if(isset($mybb->cookies['mybb']['threadread']))
{


if(isset($mybb->cookies['mybb']['threadread']))
{

			$threadsread = my_unserialize($mybb->cookies['mybb']['threadread']);

			$threadsread = my_unserialize($mybb->cookies['mybb']['threadread'], false);

		}
if(isset($mybb->cookies['mybb']['forumread']))
{

		}
if(isset($mybb->cookies['mybb']['forumread']))
{

			$forumsread = my_unserialize($mybb->cookies['mybb']['forumread']);

			$forumsread = my_unserialize($mybb->cookies['mybb']['forumread'], false);

		}

if(!empty($threadsread))

		}

if(!empty($threadsread))

		{

		{

			foreach($threadsread as $key => $value)

			foreach($threadsread as $key => $value)

			{

			{

				$tids .= $comma.(int)$key;
$comma = ',';

				$tids .= $comma.(int)$key;
$comma = ',';

			}

			}

		}

if(!empty($tids))

		}

if(!empty($tids))

Zeile 97Zeile 127
			$count = 0;

// We've read at least some threads, are they here?

			$count = 0;

// We've read at least some threads, are they here?

			$query = $db->simple_select("threads", "lastpost, tid, fid", "visible=1 AND closed NOT LIKE 'moved|%' AND fid IN ({$fid}) AND lastpost > '{$cutoff}'{$onlyview}", array("limit" => 100));


			$query = $db->simple_select("threads", "lastpost, tid, fid", "visible=1 AND closed NOT LIKE 'moved|%' AND {$where} AND lastpost > '{$cutoff}'", array("limit" => 100));


			while($thread = $db->fetch_array($query))
{

			while($thread = $db->fetch_array($query))
{

				if(isset($threadsread[$thread['tid']]) && $thread['lastpost'] > (int)$threadsread[$thread['tid']] && isset($forumsread[$thread['fid']]) && $thread['lastpost'] > (int)$forumsread[$thread['fid']])

				if((!isset($threadsread[$thread['tid']]) || $thread['lastpost'] > (int)$threadsread[$thread['tid']]) && (!isset($forumsread[$thread['fid']]) || $thread['lastpost'] > (int)$forumsread[$thread['fid']]))

				{
++$count;
}
}

return $count;

				{
++$count;
}
}

return $count;

		}


		}


		// Not read any threads?
return false;
}

		// Not read any threads?
return false;
}

Zeile 118Zeile 148
		switch($db->type)
{
case "pgsql":

		switch($db->type)
{
case "pgsql":

				$query = $db->query("
SELECT COUNT(t.tid) AS unread_count
FROM ".TABLE_PREFIX."threads t
LEFT JOIN ".TABLE_PREFIX."threadsread tr ON (tr.tid=t.tid AND tr.uid='{$mybb->user['uid']}')

				$query = $db->query("
SELECT COUNT(t.tid) AS unread_count
FROM ".TABLE_PREFIX."threads t
LEFT JOIN ".TABLE_PREFIX."threadsread tr ON (tr.tid=t.tid AND tr.uid='{$mybb->user['uid']}')

					LEFT JOIN ".TABLE_PREFIX."forumsread fr ON (fr.fid=t.fid AND fr.uid='{$mybb->user['uid']}')

					LEFT JOIN ".TABLE_PREFIX."forumsread fr ON (fr.fid=t.fid AND fr.uid='{$mybb->user['uid']}')

					WHERE t.visible=1 AND t.closed NOT LIKE 'moved|%' AND t.fid IN ($fid) AND t.lastpost > COALESCE(tr.dateline,$cutoff) AND t.lastpost > COALESCE(fr.dateline,$cutoff) AND t.lastpost>$cutoff{$onlyview2}

					WHERE t.visible=1 AND t.closed NOT LIKE 'moved|%' AND {$where2} AND t.lastpost > COALESCE(tr.dateline,$cutoff) AND t.lastpost > COALESCE(fr.dateline,$cutoff) AND t.lastpost>$cutoff

				");
break;
default:

				");
break;
default:

Zeile 132Zeile 162
					FROM ".TABLE_PREFIX."threads t
LEFT JOIN ".TABLE_PREFIX."threadsread tr ON (tr.tid=t.tid AND tr.uid='{$mybb->user['uid']}')
LEFT JOIN ".TABLE_PREFIX."forumsread fr ON (fr.fid=t.fid AND fr.uid='{$mybb->user['uid']}')

					FROM ".TABLE_PREFIX."threads t
LEFT JOIN ".TABLE_PREFIX."threadsread tr ON (tr.tid=t.tid AND tr.uid='{$mybb->user['uid']}')
LEFT JOIN ".TABLE_PREFIX."forumsread fr ON (fr.fid=t.fid AND fr.uid='{$mybb->user['uid']}')

					WHERE t.visible=1 AND t.closed NOT LIKE 'moved|%' AND t.fid IN ($fid) AND t.lastpost > IFNULL(tr.dateline,$cutoff) AND t.lastpost > IFNULL(fr.dateline,$cutoff) AND t.lastpost>$cutoff{$onlyview2}
");
}

					WHERE t.visible=1 AND t.closed NOT LIKE 'moved|%' AND {$where2} AND t.lastpost > IFNULL(tr.dateline,$cutoff) AND t.lastpost > IFNULL(fr.dateline,$cutoff) AND t.lastpost>$cutoff
");
}

		return $db->fetch_field($query, "unread_count");
}
}

		return $db->fetch_field($query, "unread_count");
}
}

Zeile 142Zeile 172
/**
* Mark a particular forum as read.
*

/**
* Mark a particular forum as read.
*

 * @param int The forum ID

 * @param int $fid The forum ID

 */
function mark_forum_read($fid)
{
global $mybb, $db;

 */
function mark_forum_read($fid)
{
global $mybb, $db;





	// Can only do "true" tracking for registered users
if($mybb->settings['threadreadcut'] > 0 && $mybb->user['uid'])
{

	// Can only do "true" tracking for registered users
if($mybb->settings['threadreadcut'] > 0 && $mybb->user['uid'])
{

Zeile 158Zeile 188
		{
$ignored_forums = array();
$forums = array_reverse(explode(",", get_parent_list($fid)));

		{
$ignored_forums = array();
$forums = array_reverse(explode(",", get_parent_list($fid)));





			unset($forums[0]);
if(!empty($forums))
{

			unset($forums[0]);
if(!empty($forums))
{

Zeile 253Zeile 283
				$update_count = 15;
}


				$update_count = 15;
}


			$mark_query = '';










			switch($db->type)
{
case "pgsql":
case "sqlite":
$mark_query = array();
break;
default:
$mark_query = '';
}


			$done = 0;
foreach(array_keys($forums) as $fid)
{

			$done = 0;
foreach(array_keys($forums) as $fid)
{

Zeile 295Zeile 334
				}
}


				}
}


			if($mark_query != '')

			if(!empty($mark_query))

			{
switch($db->type)
{

			{
switch($db->type)
{