/** * Prepare to show projects in the forum bit list. * * @param array (Output) List of forums which show selected projects after. [forumid][] = projectid * @param array (Output) Last post/counts for the selected projects */ function pt_forumbit_setup(&$project_forums, &$project_types) { global $vbulletin, $db; $after_projects = array(); $project_forums = array(); $project_types = array(); if (!is_array($vbulletin->pt_projects)) { return; } if (!($vbulletin->userinfo['permissions']['ptpermissions'] & $vbulletin->bf_ugp_ptpermissions['canviewprojecttools'])) { return; } foreach ($vbulletin->pt_projects as $project) { if ($project['afterforumids']) { $after = explode(',', $project['afterforumids']); foreach ($after as $afterforumid) { $project_forums["{$afterforumid}"][] = $project['projectid']; } $after_projects[] = $project['projectid']; } } if ($after_projects) { build_project_private_lastpost_sql_all($vbulletin->userinfo, $private_lastpost_join, $private_lastpost_fields); $marking = ($vbulletin->options['threadmarking'] and $vbulletin->userinfo['userid']); $project_type_data = $db->query_read("\r\n\t\t\tSELECT projecttype.*\r\n\t\t\t\t" . ($marking ? ", projectread.readtime AS projectread" : '') . "\r\n\t\t\t\t" . ($private_lastpost_fields ? ", {$private_lastpost_fields}" : '') . "\r\n\t\t\tFROM " . TABLE_PREFIX . "pt_projecttype AS projecttype\r\n\t\t\t" . ($marking ? "\r\n\t\t\t\tLEFT JOIN " . TABLE_PREFIX . "pt_projectread AS projectread ON\r\n\t\t\t\t\t(projectread.projectid = projecttype.projectid AND projectread.issuetypeid = projecttype.issuetypeid AND projectread.userid = " . $vbulletin->userinfo['userid'] . ")\r\n\t\t\t" : '') . "\r\n\t\t\t{$private_lastpost_join}\r\n\t\t\tWHERE projecttype.projectid IN (" . implode(',', $after_projects) . ")\r\n\t\t"); while ($project_type = $db->fetch_array($project_type_data)) { $project_types["{$project_type['projectid']}"]["{$project_type['issuetypeid']}"] = $project_type; } } }
for ($i = 1; $i <= 12; $i++) { $startdate_selected["{$i}"] = $i == $startdate[1] ? ' selected="selected"' : ''; } $enddate = explode(',', vbdate('j,n,Y', TIMENOW, false, false)); $enddate['day'] = $enddate[0]; $enddate['year'] = $enddate[2]; $enddate_selected = array(); for ($i = 1; $i <= 12; $i++) { $enddate_selected["{$i}"] = $i == $enddate[1] ? ' selected="selected"' : ''; } $timeline_entries = vb_number_format($db->num_rows($activity_results)); if ($timeline_entries) { eval('$timeline = "' . fetch_template('pt_timeline') . '";'); } } build_project_private_lastpost_sql_all($vbulletin->userinfo, $private_lastpost_join, $private_lastpost_fields); $project_types = array(); $marking = ($vbulletin->options['threadmarking'] and $vbulletin->userinfo['userid']); $project_types_query = $db->query_read("\r\n\t\tSELECT projecttype.*\r\n\t\t\t" . ($marking ? ", projectread.readtime AS projectread" : '') . "\r\n\t\t\t" . ($private_lastpost_fields ? ", {$private_lastpost_fields}" : '') . "\r\n\t\tFROM " . TABLE_PREFIX . "pt_projecttype AS projecttype\r\n\t\tINNER JOIN " . TABLE_PREFIX . "pt_issuetype AS issuetype ON (issuetype.issuetypeid = projecttype.issuetypeid)\r\n\t\t" . ($marking ? "\r\n\t\t\tLEFT JOIN " . TABLE_PREFIX . "pt_projectread AS projectread ON\r\n\t\t\t\t(projectread.projectid = projecttype.projectid AND projectread.issuetypeid = projecttype.issuetypeid AND projectread.userid = " . $vbulletin->userinfo['userid'] . ")\r\n\t\t" : '') . "\r\n\t\t{$private_lastpost_join}\r\n\t\tWHERE projecttype.projectid IN (" . implode(',', array_keys($perms_query)) . ")\r\n\t\tORDER BY issuetype.displayorder\r\n\t"); while ($project_type = $db->fetch_array($project_types_query)) { $project_types["{$project_type['projectid']}"][] = $project_type; } $show['search_options'] = false; // project list $projectbits = ''; foreach ($vbulletin->pt_projects as $project) { if (!isset($perms_query["{$project['projectid']}"]) or !is_array($project_types["{$project['projectid']}"]) or $project['displayorder'] == 0) { continue; } $projectperms = fetch_project_permissions($vbulletin->userinfo, $project['projectid']); $project['lastpost'] = 0;