02.02.2015, 23:19
wersja skryptu MyBB:
adres forum:
na czym polega problem (screen, opis, komunikaty, nazwa stylu/theme/szablonu):
, warto to wdrożyć do paczki z pluginem
Zaglądam w ten plugin od tej skórki i widzę że "nadal kilka rzeczy jest nie tak"
Proponuje zamienić funkcje last_threads_profile() na moją poprawkę
Zoptymalizowałem kod
Pobieranie tematów wedlug permisji grup, aktywności for
analogicznie mozna poprawić dla postów
adres forum:
na czym polega problem (screen, opis, komunikaty, nazwa stylu/theme/szablonu):
Zaglądam w ten plugin od tej skórki i widzę że "nadal kilka rzeczy jest nie tak"
Proponuje zamienić funkcje last_threads_profile() na moją poprawkę
Zoptymalizowałem kod
Pobieranie tematów wedlug permisji grup, aktywności for
analogicznie mozna poprawić dla postów
Kod PHP:
function ostatnie_tematy()
{
global $mybb, $db, $templates, $theme, $ostatnie_tematy, $memprofile, $parser, $forum_cache;
require_once MYBB_ROOT."inc/functions_search.php";
require_once MYBB_ROOT."inc/class_parser.php";
$altbg = alt_trow();
$ostatnie_tematy_row = "";
$memprofileuid = $memprofile['uid'];
$permsql = "";
$onlyusfids = array();
$group_permissions = forum_permissions();
foreach($group_permissions as $fid => $forum_permissions)
{
if(isset($forum_permissions['canonlyviewownthreads']) && $forum_permissions['canonlyviewownthreads'] == 1)
{
$onlyusfids[] = $fid;
}
}
if(!empty($onlyusfids))
{
$permsql .= "AND ((t.fid IN(".implode(',', $onlyusfids).") AND t.uid='{$mybb->user['uid']}') OR t.fid NOT IN(".implode(',', $onlyusfids)."))";
}
$unsearchforums = get_unsearchable_forums();
if($unsearchforums)
{
$permsql .= " AND t.fid NOT IN ($unsearchforums)";
}
$inactiveforums = get_inactive_forums();
if($inactiveforums)
{
$permsql .= " AND t.fid NOT IN ($inactiveforums)";
}
/*
$excludeforums = '';
if(!empty($mybb->settings['portal_excludediscussion']))
{
$excludeforums = "AND t.fid NOT IN ({$mybb->settings['portal_excludediscussion']})";
}
*/
$query = $db->query("
SELECT t.tid, t.fid, t.uid, t.subject, t.replies, t.views, t.dateline, t.firstpost, p.pid, p.message
FROM ".TABLE_PREFIX."threads t
LEFT JOIN ".TABLE_PREFIX."posts p ON (t.firstpost=p.pid)
WHERE 1=1 AND t.uid={$memprofileuid} {$unapproved_where} {$permsql} AND t.visible='1' AND t.closed NOT LIKE 'moved|%'
ORDER BY t.dateline DESC
LIMIT 0, 5
");
while($thread = $db->fetch_array($query))
{
$thread['subject'] = htmlspecialchars_uni($parser->parse_badwords($thread['subject']));
$thread['threadlink'] = get_thread_link($thread['tid']);
$thread['dateline'] = my_date('relative', $thread['dateline']);
$parser = new postParser;
$parser_options = array("allow_html" => 0, "allow_mycode" => 1, "allow_smilies" => 1, "allow_imgcode" => 1, "allow_videocode" => 1, "filter_badwords" => 1);
$thread['message'] = $parser->parse_message($thread['message'], $parser_options);
eval("\$ostatnie_tematy_row .= \"".$templates->get("ostatnie_tematy_row")."\";");
$altbg = alt_trow();
}
// if(!$ostatnie_tematy_row)
// {
// eval("\$ostatnie_tematy_row = \"".$templates->get("ostatnie_tematy_row_empty")."\";");
// }
eval("\$ostatnie_tematy = \"".$templates->get("ostatnie_tematy")."\";");
return $ostatnie_tematy;
}