
10-11-2007, 06:53 PM
|
 |
|
|
Join Date: Jul 2007
Location: Lol'sk
Posts: 49
Благодарил(а): 0 раз(а)
Поблагодарили:
0 раз(а) в 0 сообщениях
|
|
I made fix for private blog entries. Not good (I just cut some code form blog_functions), but works =)
PHP Code:
//Latest Blogs
require_once(DIR . '/includes/blog_functions_shared.php');
$having_or = array(); if (!can_moderate_blog()) { if ($vbulletin->userinfo['userid']) { $having_or[] = "userid = " . $vbulletin->userinfo['userid']; $having_or[] = "(bu.options_ignore & " . $vbulletin->bf_misc_vbblogsocnetoptions['canviewmyblog'] . " AND ignoreid IS NOT NULL)"; $having_or[] = "(bu.options_buddy & " . $vbulletin->bf_misc_vbblogsocnetoptions['canviewmyblog'] . " AND buddyid IS NOT NULL)"; $having_or[] = "(bu.options_everyone & " . $vbulletin->bf_misc_vbblogsocnetoptions['canviewmyblog'] . " AND (bu.options_buddy & " . $vbulletin->bf_misc_vbblogsocnetoptions['canviewmyblog'] . " OR buddyid IS NULL) AND (bu.options_ignore & " . $vbulletin->bf_misc_vbblogsocnetoptions['canviewmyblog'] . " OR ignoreid IS NULL))"; } else { $having_or[] = "bu.options_everyone & " . $vbulletin->bf_misc_vbblogsocnetoptions['canviewmyblog']; } }
$having_join = array(); $having_select = array(); if ($vbulletin->userinfo['userid']) { $having_join[] = "LEFT JOIN " . TABLE_PREFIX . "userlist AS buddy ON (buddy.userid = blog.userid AND buddy.relationid = " . $vbulletin->userinfo['userid'] . " AND buddy.type = 'buddy')"; $having_join[] = "LEFT JOIN " . TABLE_PREFIX . "userlist AS ignored ON (ignored.userid = blog.userid AND ignored.relationid = " . $vbulletin->userinfo['userid'] . " AND ignored.type = 'ignore')"; $having_select[] = "ignored.relationid AS ignoreid, buddy.relationid AS buddyid"; }
$latestblogs = $db->query(" SELECT blog.blogid, blog.title, blog.username, blog.dateline, blog.userid, blog.views, options_everyone, options_buddy " . (!empty($having_select) ? ", " . implode(", ", $having_select) : "") . " FROM " . TABLE_PREFIX . "blog as blog LEFT JOIN " . TABLE_PREFIX . "blog_user as bu ON (bu.bloguserid = blog.userid) " . (!empty($having_join) ? implode("\r\n", $having_join) : "") . " WHERE blog.state='visible' AND blog.pending='0' " . (!empty($having_or) ? "HAVING " . implode("\r\n\tOR ", $having_or) : "") . " ORDER BY blog.dateline DESC LIMIT 10 "); while ($showblogs=$db->fetch_array($latestblogs)) { $showblogsprivate = false; if (can_moderate() AND $showblogs['userid'] != $vbulletin->userinfo['userid']) { $everyoneelsecanview = $showblogs['options_everyone'] & $vbulletin->bf_misc_vbblogsocnetoptions['canviewmyblog']; $buddiescanview = $showblogs['options_buddy'] & $vbulletin->bf_misc_vbblogsocnetoptions['canviewmyblog']; if (!$everyoneelsecanview AND (!$showblogs['buddyid'] OR !$buddiescanview)) { $showblogsprivate = true; } }
$counter++; $blog_userid = $showblogs['userid']; $blogid = $showblogs['blogid']; $blog_title = $showblogs['title']; $blog_views = $showblogs['views']; $blog_username = $showblogs['username']; $blog_dateline = vbdate($vbulletin->options['dateformat'], $showblogs['dateline']); if ($showblogsprivate) $spitblogs_title .= '<img class="inlineimg" src="/images/misc/blog/key.gif" alt="Private Entry" border="0" />'; // very bad code =) $spitblogs_title .= "<a href=\"blog.php?b=$blogid\">$blog_title</a>"; $spitblogs_title .= "<br /> "; $spitblogs_views .= $blog_views; $spitblogs_views .= "<br /> "; $spitblogs_username .= "<a href=\"blog.php?u=$blog_userid\">$blog_username</a>"; $spitblogs_username .= "<br /> "; $spitblogs_date .= $blog_dateline; $spitblogs_date .= "<br /> "; if ($counter < 5) { $spitblogs .= "<br /> "; } elseif ($counter == 5) { break; } } //Latest Blogs
|