' . $name . '' . PHP_EOL; } return $buttons; } private static function getFormHeader($bridgeName, $isHttps = false) { $form = << EOD; if(!$isHttps) { $form .= '
Warning : This bridge is not fetching its content through a secure connection
'; } return $form; } private static function getForm($bridgeName, $formats, $isActive = false, $isHttps = false, $parameterName = '', $parameters = array()) { $form = BridgeCard::getFormHeader($bridgeName, $isHttps); if(count($parameters) > 0) { $form .= '
'; foreach($parameters as $id => $inputEntry) { if(!isset($inputEntry['exampleValue'])) $inputEntry['exampleValue'] = ''; if(!isset($inputEntry['defaultValue'])) $inputEntry['defaultValue'] = ''; $idArg = 'arg-' . urlencode($bridgeName) . '-' . urlencode($parameterName) . '-' . urlencode($id); $form .= '' . PHP_EOL; if(!isset($inputEntry['type']) || $inputEntry['type'] === 'text') { $form .= BridgeCard::getTextInput($inputEntry, $idArg, $id); } elseif($inputEntry['type'] === 'number') { $form .= BridgeCard::getNumberInput($inputEntry, $idArg, $id); } else if($inputEntry['type'] === 'list') { $form .= BridgeCard::getListInput($inputEntry, $idArg, $id); } elseif($inputEntry['type'] === 'checkbox') { $form .= BridgeCard::getCheckboxInput($inputEntry, $idArg, $id); } } $form .= '
'; } if($isActive) { $form .= BridgeCard::buildFormatButtons($formats); } else { $form .= 'Inactive'; } return $form . '' . PHP_EOL; } private static function getInputAttributes($entry) { $retVal = ''; if(isset($entry['required']) && $entry['required'] === true) $retVal .= ' required'; if(isset($entry['pattern'])) $retVal .= ' pattern="' . $entry['pattern'] . '"'; if(isset($entry['title'])) $retVal .= ' title="' . filter_var($entry['title'], FILTER_SANITIZE_STRING) . '"'; return $retVal; } private static function getTextInput($entry, $id, $name) { return '' . PHP_EOL; } private static function getNumberInput($entry, $id, $name) { return '' . PHP_EOL; } private static function getListInput($entry, $id, $name) { $list = ''; return $list; } private static function getCheckboxInput($entry, $id, $name) { return '' . PHP_EOL; } static function displayBridgeCard($bridgeName, $formats, $isActive = true){ $bridge = Bridge::create($bridgeName); if($bridge == false) return ''; $isHttps = strpos($bridge->getURI(), 'https') === 0; $uri = $bridge->getURI(); $name = $bridge->getName(); $icon = $bridge->getIcon(); $description = $bridge->getDescription(); $parameters = $bridge->getParameters(); if(defined('PROXY_URL') && PROXY_BYBRIDGE) { $parameters['global']['_noproxy'] = array( 'name' => 'Disable proxy (' . ((defined('PROXY_NAME') && PROXY_NAME) ? PROXY_NAME : PROXY_URL) . ')', 'type' => 'checkbox' ); } if(CUSTOM_CACHE_TIMEOUT) { $parameters['global']['_cache_timeout'] = array( 'name' => 'Cache timeout in seconds', 'type' => 'number', 'defaultValue' => $bridge->getCacheTimeout() ); } $card = <<

{$name}

{$description}

CARD; // If we don't have any parameter for the bridge, we print a generic form to load it. if(count($parameters) === 0 || count($parameters) === 1 && array_key_exists('global', $parameters)) { $card .= BridgeCard::getForm($bridgeName, $formats, $isActive, $isHttps); } else { foreach($parameters as $parameterName => $parameter) { if(!is_numeric($parameterName) && $parameterName === 'global') continue; if(array_key_exists('global', $parameters)) $parameter = array_merge($parameter, $parameters['global']); if(!is_numeric($parameterName)) $card .= '
' . $parameterName . '
' . PHP_EOL; $card .= BridgeCard::getForm($bridgeName, $formats, $isActive, $isHttps, $parameterName, $parameter); } } $card .= ''; $card .= '

' . $bridge->getMaintainer() . '

'; $card .= ''; return $card; } }