function freshports_ListOfPorts($result, $db, $ShowDateAdded, $ShowCategoryHeaders, $User, $PortCount = -1) { require_once $_SERVER['DOCUMENT_ROOT'] . '/../classes/ports.php'; require_once $_SERVER['DOCUMENT_ROOT'] . '/../classes/port-display.php'; $port_display = new port_display($db, $User); $port_display->SetDetailsReports(); $port = new Port($db); $port->LocalResult = $result; $LastCategory = ''; $GlobalHideLastChange = 'N'; $numrows = pg_numrows($result); if ($PortCount == -1) { $PortCount = $numrows; } $PortCountText = "<TR><TD>{$PortCount} ports found."; if ($numrows != $PortCount) { $PortCountText .= " (showing only {$numrows} ports on this page)"; } $PortCountText .= "</TD></TR>\n"; $HTML = $PortCountText; $HTML .= "<TR><TD>\n"; $HTML .= "<br><center>\n" . Ad_728x90() . "\n</center>\n"; if ($numrows > 0 && $ShowCategoryHeaders) { $HTML .= '<DL>'; } for ($i = 0; $i < $numrows; $i++) { $port->FetchNth($i); if ($ShowCategoryHeaders) { $Category = $port->category; if ($LastCategory != $Category) { if ($i > 0) { $HTML .= "\n</DD>\n"; } $LastCategory = $Category; if ($ShowCategoryHeaders) { $HTML .= '<DT>'; } $HTML .= '<BIG><BIG><B><a href="/' . $Category . '/">' . $Category . '</a></B></BIG></BIG>'; if ($ShowCategoryHeaders) { $HTML .= "</DT>\n<DD>"; } } } $port_display->port = $port; $Port_HTML = $port_display->Display(); $HTML .= $port_display->ReplaceWatchListToken($port->{'onwatchlist'}, $Port_HTML, $port->{'element_id'}); $HTML .= '<BR>'; } if ($numrows && $ShowCategoryHeaders) { $HTML .= "\n</DD>\n</DL>\n"; } $HTML .= "</TD></TR>\n"; $HTML .= $PortCountText; return $HTML; }
function freshports_PortDisplay($db, $category, $port) { global $TableWidth; global $FreshPortsTitle; global $User; require_once $_SERVER['DOCUMENT_ROOT'] . '/../classes/port-display.php'; # these two options must be the last on the line. And as such are mutually exclusive define('BYPASSCACHE', 'bypasscache=1'); # do not read the cache for display define('REFRESHCACHE', 'refreshcache=1'); # refresh the cache $BypassCache = substr($_SERVER["REQUEST_URI"], strlen($_SERVER["REQUEST_URI"]) - strlen(BYPASSCACHE)) == BYPASSCACHE; $RefreshCache = substr($_SERVER["REQUEST_URI"], strlen($_SERVER["REQUEST_URI"]) - strlen(REFRESHCACHE)) == REFRESHCACHE; $Debug = 0; if ($Debug) { echo 'into ' . __FILE__ . ' now' . "<br>\n"; } $PageNumber = 1; if (isset($_SERVER['REDIRECT_QUERY_STRING'])) { parse_str($_SERVER['REDIRECT_QUERY_STRING'], $query_parts); } else { $query_parts = null; } if ($Debug) { echo print_r($query_parts, true); } if (isset($query_parts['page']) && Is_Numeric($query_parts['page'])) { $PageNumber = intval($query_parts['page']); if ($PageNumber != $query_parts['page'] || $PageNumber < 1) { $PageNumber = 1; } } $port_display = new port_display($db, $User); $port_display->SetDetailsFull(); $Cache = new CachePort(); $Cache->PageSize = $User->page_size; $result = $Cache->RetrievePort($category, $port, CACHE_PORT_DETAIL, $PageNumber); if (!$result && !$BypassCache && !$RefreshCache) { if ($Debug) { echo "found something from the cache<br>\n"; } $HTML = $Cache->CacheDataGet(); # # we need to know the element_id of this port # and the whether or not it is on the person's watch list # let's create a special function for that! # $EndOfFirstLine = strpos($HTML, "\n"); if ($EndOfFirstLine == false) { die('Internal error: I was expecting an ElementID and found nothing'); } # extract the ElementID from the cache $ElementID = intval(substr($HTML, 0, $EndOfFirstLine)); if ($ElementID == 0) { syslog(LOG_ERR, "Extract of ElementID from cache failed. Is cache corrupt/deprecated? port was {$category}/{$port}"); die('sorry, I encountered a problem with the cache. Please send the URL and this message to the webmaster.'); } if ($User->id) { $OnWatchList = freshports_OnWatchList($db, $User->id, $ElementID); } else { $OnWatchList = 0; } $HTML = substr($HTML, $EndOfFirstLine + 1); } else { if ($Debug) { echo "found NOTHING in cache for '{$category}/{$port}'<br>\n"; } $HTML = ''; $port_id = freshports_GetPortID($db, $category, $port); if (!isset($port_id)) { if ($Debug) { echo "{$category}/{$port} is not a port according to freshports_GetPortID<br>\n"; } return -1; } if ($Debug) { echo "{$category}/{$port} found by freshports_GetPortID<br>"; } $MyPort = new Port($db); $MyPort->FetchByID($port_id, $User->id); $port_display->port = $MyPort; $HTML .= $port_display->Display(); $HTML .= "</TD></TR>\n</TABLE>\n\n"; $HTML .= DisplayPortCommits($MyPort, $PageNumber); # If we are not reading if (!$BypassCache || $RefreshCache) { $Cache->CacheDataSet($MyPort->{'element_id'} . "\n" . $HTML); $Cache->AddPort($MyPort->category, $MyPort->port, CACHE_PORT_DETAIL, $PageNumber); } $ElementID = $MyPort->{'element_id'}; $OnWatchList = $MyPort->{'onwatchlist'}; } # At this point, we have the port detail HTML $HTML = $port_display->ReplaceWatchListToken($OnWatchList, $HTML, $ElementID); global $ShowAds, $BannerAd; global $ShowAds; global $BannerAd; if ($ShowAds && $BannerAd) { $HTML_For_Ad = "<hr><center>\n" . Ad_728x90PortDescription() . "\n</center>\n<hr>\n"; } else { $HTML_For_Ad = ''; } $HTML = $port_display->ReplaceAdvertismentToken($HTML, $HTML_For_Ad); freshports_ConditionalGetUnix($Cache->LastModifiedGet()); header("HTTP/1.1 200 OK"); $Title = $category . "/" . $port; require_once $_SERVER['DOCUMENT_ROOT'] . '/../include/getvalues.php'; freshports_Start($Title, "{$FreshPortsTitle} - new ports, applications", "FreeBSD, index, applications, ports"); ?> <?php echo freshports_MainTable(); ?> <tr><TD VALIGN="top" width="100%"> <?php echo freshports_MainContentTable(); ?> <TR> <?php echo freshports_PageBannerText("Port details"); ?> </TR> <tr><td valign="top" width="100%"> <?php echo $HTML; ?> </TD> <TD VALIGN="top" WIDTH="*" ALIGN="center"> <?php echo freshports_SideBar(); ?> </td> </TR> </TABLE> <?php echo freshports_ShowFooter(); ?> </body> </html> <?php return 0; }
$HTML .= $NumPortsFound . ' ' . $links['all']; $HTML .= $DisplayCommit->CreateHTML(); $HTML .= '<tr><td>' . $NumPortsFound . ' ' . $links['all'] . '</td></tr>'; break; default: require_once $_SERVER['DOCUMENT_ROOT'] . '/../classes/port-display.php'; $links = $Pager->GetLinks(); $HTML .= $NumPortsFound . ' ' . $links['all']; global $User; $port_display = new port_display($db, $User); $port_display->SetDetailsSearch(); for ($i = 0; $i < $NumFetches; $i++) { $Port->FetchNth($i); $port_display->port = $Port; $Port_HTML = $port_display->Display(); $HTML .= $port_display->ReplaceWatchListToken($Port->{'onwatchlist'}, $Port_HTML, $Port->{'element_id'}); } $HTML .= $NumPortsFound . ' ' . $links['all']; } } echo $HTML; } ?> </table> </td> <TD VALIGN="top" WIDTH="*" ALIGN="center"> <?php echo freshports_SideBar(); ?>
function freshports_CategoryDisplay($db, $category, $PageNo = 1, $PageSize = DEFAULT_PAGE_SIZE) { global $TableWidth; global $User; header('HTTP/1.1 200 OK'); $Debug = 0; if (isset($_SERVER['REDIRECT_QUERY_STRING'])) { if (isset($_SERVER["REDIRECT_QUERY_STRING"])) { parse_str($_SERVER['REDIRECT_QUERY_STRING'], $query_parts); if (isset($query_parts['page'])) { $PageNo = $query_parts['page']; } if (isset($query_parts['page_size'])) { $PageSize = $query_parts['page_size']; } } } if (!isset($page) || $page == '') { $page = 1; } if (!isset($page_size) || $page_size == '') { $page_size = $User->page_size; } if ($Debug) { echo "\$page = '{$page}'<br>\n"; echo "\$page_size = '{$page_size}'<br>\n"; } SetType($PageNo, "integer"); SetType($PageSize, "integer"); if (!isset($PageNo) || !str_is_int("{$PageNo}") || $PageNo < 1) { $PageNo = 1; } if (!isset($PageSize) || !str_is_int("{$PageSize}") || $PageSize < 1 || $PageSize > MAX_PAGE_SIZE) { $PageSize = DEFAULT_PAGE_SIZE; } if ($Debug) { echo "\$PageNo = '{$PageNo}'<br>\n"; echo "\$PageSize = '{$PageSize}'<br>\n"; } require_once $_SERVER['DOCUMENT_ROOT'] . '/../classes/categories.php'; require_once $_SERVER['DOCUMENT_ROOT'] . '/../classes/watch_lists.php'; if ($category->IsPrimary()) { $WatchLists = new WatchLists($db); $WatchListCount = $WatchLists->IsOnWatchList($User->id, $category->element_id); } $title = $category->{'name'}; # find out how many ports are in this category $PortCount = $category->PortCount($category->name); global $User; if ($Debug) { echo "\$User->id='{$User->id}'"; } freshports_Start($title, 'freshports - new ports, applications', 'FreeBSD, index, applications, ports'); $port = new Port($db); $numrows = $port->FetchByCategoryInitialise($category->name, $User->id, $PageSize, $PageNo); ?> <?php echo freshports_MainTable(); ?> <tr><td valign="top" width="100%"> <?php echo freshports_MainContentTable(); ?> <tr> <?php echo freshports_PageBannerText('Category listing - ' . $category->{'name'}); ?> </tr> <tr><td> <?php if ($category->IsPrimary()) { if ($WatchListCount) { echo freshports_Watch_Link_Remove('', 0, $category->{'element_id'}); } else { echo freshports_Watch_Link_Add('', 0, $category->{'element_id'}); } } ?> <BIG><BIG><B><?php echo $category->{'description'}; ?> </B></BIG></BIG>- Number of ports in this category: <?php echo $PortCount; ?> <p> Ports marked with a <sup>*</sup> actually reside within another category but have <b><?php echo $category->{'name'}; ?> </b> listed as a secondary category. <?php global $ShowAds, $BannerAd; if ($ShowAds && $BannerAd) { echo "<br><center>\n" . Ad_728x90() . "\n</center>\n"; } echo '<div align="center"><br>'; freshports_CategoryNextPreviousPage($category->name, $PortCount, $PageNo, $PageSize); echo '</div>'; ?> </td></tr> <?php if ($Debug) { echo "\$CategoryID = '{$CategoryID}'<BR>\n"; echo "GlobalHideLastChange = {$GlobalHideLastChange}<BR>\n"; echo "\$numrows = {$numrows}<BR>\n"; } $ShowShortDescription = "Y"; $HTML = freshports_echo_HTML("<TR>\n<TD>\n"); require_once $_SERVER['DOCUMENT_ROOT'] . '/../classes/port-display.php'; $port_display = new port_display($db, $User); $port_display->SetDetailsCategory(); for ($i = 0; $i < $numrows; $i++) { $port->FetchNth($i); $port_display->port = $port; $Port_HTML = $port_display->Display(); $HTML .= $port_display->ReplaceWatchListToken($port->{'onwatchlist'}, $Port_HTML, $port->{'element_id'}); } // end for echo $HTML; ?> </TD></TR> <TR><TD> <div align="center"><br> <?php freshports_CategoryNextPreviousPage($category->name, $PortCount, $PageNo, $PageSize); ?> </div> </TD></TR> </TABLE> <TD VALIGN="top" WIDTH="*" ALIGN="center"> <?php echo freshports_SideBar(); ?> </td> </TR> </TABLE> <?php echo freshports_ShowFooter(); ?> </body> </html> <?php }