EOD; } /** * Get the document body for all bridge cards * * @param bool $showInactive Inactive bridges are visible on the home page if * enabled. * @param int $totalBridges (ref) Returns the total number of bridges. * @param int $totalActiveBridges (ref) Returns the number of active bridges. * @return string The document body for all bridge cards. */ private static function getBridges($showInactive, &$totalBridges, &$totalActiveBridges) { $body = ''; $totalActiveBridges = 0; $inactiveBridges = ''; $bridgeFac = new \BridgeFactory(); $bridgeFac->setWorkingDir(PATH_LIB_BRIDGES); $bridgeList = $bridgeFac->getBridgeNames(); $formatFac = new FormatFactory(); $formatFac->setWorkingDir(PATH_LIB_FORMATS); $formats = $formatFac->getFormatNames(); $totalBridges = count($bridgeList); foreach($bridgeList as $bridgeName) { if($bridgeFac->isWhitelisted($bridgeName)) { $body .= BridgeCard::displayBridgeCard($bridgeName, $formats); $totalActiveBridges++; } elseif($showInactive) { // inactive bridges $inactiveBridges .= BridgeCard::displayBridgeCard($bridgeName, $formats, false) . PHP_EOL; } } $body .= $inactiveBridges; return $body; } /** * Get the document header * * @return string The document header */ private static function getHeader() { $warning = ''; if(Debug::isEnabled()) { if(!Debug::isSecure()) { $warning .= <<Warning : Debug mode is active from any location, make sure only you can access RSS-Bridge. EOD; } else { $warning .= <<Warning : Debug mode is active from your IP address, your requests will bypass the cache. EOD; } } return << {$warning} EOD; } /** * Get the searchbar * * @return string The searchbar */ private static function getSearchbar() { $query = filter_input(INPUT_GET, 'q', FILTER_SANITIZE_SPECIAL_CHARS); return <<

Search

EOD; } /** * Get the document footer * * @param int $totalBridges The total number of bridges, shown in the footer * @param int $totalActiveBridges The total number of active bridges, shown * in the footer. * @param bool $showInactive Sets the 'Show active'/'Show inactive' text in * the footer. * @return string The document footer */ private static function getFooter($totalBridges, $totalActiveBridges, $showInactive) { $version = Configuration::getVersion(); $email = Configuration::getConfig('admin', 'email'); $admininfo = ''; if (!empty($email)) { $admininfo = << You may email the administrator of this RSS-Bridge instance at {$email} EOD; } $inactive = ''; if($totalActiveBridges !== $totalBridges) { if(!$showInactive) { $inactive = '
'; } else { $inactive = '
'; } } return << RSS-Bridge ~ Public Domain

{$version}

{$totalActiveBridges}/{$totalBridges} active bridges.
{$inactive} {$admininfo} EOD; } /** * Create the entire home page * * @param bool $showInactive Inactive bridges are displayed on the home page, * if enabled. * @return string The home page */ static function create($showInactive = true) { $totalBridges = 0; $totalActiveBridges = 0; return '' . BridgeList::getHead() . '' . BridgeList::getHeader() . BridgeList::getSearchbar() . '
' . BridgeList::getBridges($showInactive, $totalBridges, $totalActiveBridges) . '
' . BridgeList::getFooter($totalBridges, $totalActiveBridges, $showInactive) . ''; } }