Separate index and bridge card generating code into a separate classes (#734)
[html] Generate index and bridge cards using separate clases Move HTML generating code from 'index.php' to 'Index.php', separating components into static functions. Move HTML generation code for bridge cards from 'html.php' to 'BridgeCard.php', separating components into static functions.
This commit is contained in:
parent
15e6d77569
commit
d83f2f285b
5 changed files with 390 additions and 380 deletions
lib
300
lib/html.php
300
lib/html.php
|
@ -1,304 +1,4 @@
|
|||
<?php
|
||||
function displayBridgeCard($bridgeName, $formats, $isActive = true){
|
||||
|
||||
$getHelperButtonsFormat = function($formats){
|
||||
$buttons = '';
|
||||
foreach($formats as $name) {
|
||||
$buttons .= '<button type="submit" name="format" value="'
|
||||
. $name
|
||||
. '">'
|
||||
. $name
|
||||
. '</button>'
|
||||
. PHP_EOL;
|
||||
}
|
||||
|
||||
return $buttons;
|
||||
};
|
||||
|
||||
$getFormHeader = function($bridgeName){
|
||||
return <<<EOD
|
||||
<form method="GET" action="?">
|
||||
<input type="hidden" name="action" value="display" />
|
||||
<input type="hidden" name="bridge" value="{$bridgeName}" />
|
||||
EOD;
|
||||
};
|
||||
|
||||
$bridge = Bridge::create($bridgeName);
|
||||
|
||||
if($bridge == false)
|
||||
return '';
|
||||
|
||||
$HTTPSWarning = '';
|
||||
if(strpos($bridge->getURI(), 'https') !== 0) {
|
||||
|
||||
$HTTPSWarning = '<div class="secure-warning">Warning :
|
||||
This bridge is not fetching its content through a secure connection</div>';
|
||||
|
||||
}
|
||||
|
||||
$name = '<a href="' . $bridge->getURI() . '">' . $bridge->getName() . '</a>';
|
||||
$description = $bridge->getDescription();
|
||||
|
||||
$card = <<<CARD
|
||||
<section id="bridge-{$bridgeName}" data-ref="{$bridgeName}">
|
||||
<h2>{$name}</h2>
|
||||
<p class="description">
|
||||
{$description}
|
||||
</p>
|
||||
<input type="checkbox" class="showmore-box" id="showmore-{$bridgeName}" />
|
||||
<label class="showmore" for="showmore-{$bridgeName}">Show more</label>
|
||||
CARD;
|
||||
|
||||
// If we don't have any parameter for the bridge, we print a generic form to load it.
|
||||
if(count($bridge->getParameters()) == 0) {
|
||||
|
||||
$card .= $getFormHeader($bridgeName);
|
||||
$card .= $HTTPSWarning;
|
||||
|
||||
if($isActive) {
|
||||
if(defined('PROXY_URL') && PROXY_BYBRIDGE) {
|
||||
$idArg = 'arg-'
|
||||
. urlencode($bridgeName)
|
||||
. '-'
|
||||
. urlencode('proxyoff')
|
||||
. '-'
|
||||
. urlencode('_noproxy');
|
||||
|
||||
$card .= '<input id="'
|
||||
. $idArg
|
||||
. '" type="checkbox" name="_noproxy" />'
|
||||
. PHP_EOL;
|
||||
|
||||
$card .= '<label for="'
|
||||
. $idArg
|
||||
. '">Disable proxy ('
|
||||
. ((defined('PROXY_NAME') && PROXY_NAME) ? PROXY_NAME : PROXY_URL)
|
||||
. ')</label><br />'
|
||||
. PHP_EOL;
|
||||
} if(CUSTOM_CACHE_TIMEOUT) {
|
||||
$idArg = 'arg-'
|
||||
. urlencode($bridgeName)
|
||||
. '-'
|
||||
. urlencode('_cache_timeout');
|
||||
|
||||
$card .= '<label for="'
|
||||
. $idArg
|
||||
. '">Cache timeout in seconds : </label>'
|
||||
. PHP_EOL;
|
||||
|
||||
$card .= '<input id="'
|
||||
. $idArg
|
||||
. '" type="number" value="'
|
||||
. $bridge->getCacheTimeout()
|
||||
. '" name="_cache_timeout" /><br />'
|
||||
. PHP_EOL;
|
||||
}
|
||||
$card .= $getHelperButtonsFormat($formats);
|
||||
} else {
|
||||
$card .= '<span style="font-weight: bold;">Inactive</span>';
|
||||
}
|
||||
|
||||
$card .= '</form>' . PHP_EOL;
|
||||
}
|
||||
|
||||
$hasGlobalParameter = array_key_exists('global', $bridge->getParameters());
|
||||
|
||||
if($hasGlobalParameter) {
|
||||
$globalParameters = $bridge->getParameters()['global'];
|
||||
}
|
||||
|
||||
foreach($bridge->getParameters() as $parameterName => $parameter) {
|
||||
if(!is_numeric($parameterName) && $parameterName == 'global')
|
||||
continue;
|
||||
|
||||
if($hasGlobalParameter)
|
||||
$parameter = array_merge($parameter, $globalParameters);
|
||||
|
||||
if(!is_numeric($parameterName))
|
||||
$card .= '<h5>' . $parameterName . '</h5>' . PHP_EOL;
|
||||
|
||||
$card .= $getFormHeader($bridgeName);
|
||||
$card .= $HTTPSWarning;
|
||||
|
||||
foreach($parameter as $id => $inputEntry) {
|
||||
$additionalInfoString = '';
|
||||
|
||||
if(isset($inputEntry['required']) && $inputEntry['required'] === true)
|
||||
$additionalInfoString .= ' required';
|
||||
|
||||
if(isset($inputEntry['pattern']))
|
||||
$additionalInfoString .= ' pattern="' . $inputEntry['pattern'] . '"';
|
||||
|
||||
if(isset($inputEntry['title']))
|
||||
$additionalInfoString .= ' title="' . $inputEntry['title'] . '"';
|
||||
|
||||
if(!isset($inputEntry['exampleValue']))
|
||||
$inputEntry['exampleValue'] = '';
|
||||
|
||||
if(!isset($inputEntry['defaultValue']))
|
||||
$inputEntry['defaultValue'] = '';
|
||||
|
||||
$idArg = 'arg-'
|
||||
. urlencode($bridgeName)
|
||||
. '-'
|
||||
. urlencode($parameterName)
|
||||
. '-'
|
||||
. urlencode($id);
|
||||
|
||||
$card .= '<label for="'
|
||||
. $idArg
|
||||
. '">'
|
||||
. $inputEntry['name']
|
||||
. ' : </label>'
|
||||
. PHP_EOL;
|
||||
|
||||
if(!isset($inputEntry['type']) || $inputEntry['type'] == 'text') {
|
||||
$card .= '<input '
|
||||
. $additionalInfoString
|
||||
. ' id="'
|
||||
. $idArg
|
||||
. '" type="text" value="'
|
||||
. $inputEntry['defaultValue']
|
||||
. '" placeholder="'
|
||||
. $inputEntry['exampleValue']
|
||||
. '" name="'
|
||||
. $id
|
||||
. '" /><br />'
|
||||
. PHP_EOL;
|
||||
} elseif($inputEntry['type'] == 'number') {
|
||||
$card .= '<input '
|
||||
. $additionalInfoString
|
||||
. ' id="'
|
||||
. $idArg
|
||||
. '" type="number" value="'
|
||||
. $inputEntry['defaultValue']
|
||||
. '" placeholder="'
|
||||
. $inputEntry['exampleValue']
|
||||
. '" name="'
|
||||
. $id
|
||||
. '" /><br />'
|
||||
. PHP_EOL;
|
||||
} else if($inputEntry['type'] == 'list') {
|
||||
$card .= '<select '
|
||||
. $additionalInfoString
|
||||
. ' id="'
|
||||
. $idArg
|
||||
. '" name="'
|
||||
. $id
|
||||
. '" >';
|
||||
|
||||
foreach($inputEntry['values'] as $name => $value) {
|
||||
if(is_array($value)) {
|
||||
$card .= '<optgroup label="' . htmlentities($name) . '">';
|
||||
foreach($value as $subname => $subvalue) {
|
||||
if($inputEntry['defaultValue'] === $subname
|
||||
|| $inputEntry['defaultValue'] === $subvalue) {
|
||||
$card .= '<option value="'
|
||||
. $subvalue
|
||||
. '" selected>'
|
||||
. $subname
|
||||
. '</option>';
|
||||
} else {
|
||||
$card .= '<option value="'
|
||||
. $subvalue
|
||||
. '">'
|
||||
. $subname
|
||||
. '</option>';
|
||||
}
|
||||
}
|
||||
$card .= '</optgroup>';
|
||||
} else {
|
||||
if($inputEntry['defaultValue'] === $name
|
||||
|| $inputEntry['defaultValue'] === $value) {
|
||||
$card .= '<option value="'
|
||||
. $value
|
||||
. '" selected>'
|
||||
. $name
|
||||
. '</option>';
|
||||
} else {
|
||||
$card .= '<option value="'
|
||||
. $value
|
||||
. '">'
|
||||
. $name
|
||||
. '</option>';
|
||||
}
|
||||
}
|
||||
}
|
||||
$card .= '</select><br >';
|
||||
} elseif($inputEntry['type'] == 'checkbox') {
|
||||
if($inputEntry['defaultValue'] === 'checked')
|
||||
$card .= '<input '
|
||||
. $additionalInfoString
|
||||
. ' id="'
|
||||
. $idArg
|
||||
. '" type="checkbox" name="'
|
||||
. $id
|
||||
. '" checked /><br />'
|
||||
. PHP_EOL;
|
||||
else
|
||||
$card .= '<input '
|
||||
. $additionalInfoString
|
||||
. ' id="'
|
||||
. $idArg
|
||||
. '" type="checkbox" name="'
|
||||
. $id
|
||||
. '" /><br />'
|
||||
. PHP_EOL;
|
||||
}
|
||||
}
|
||||
|
||||
if($isActive) {
|
||||
if(defined('PROXY_URL') && PROXY_BYBRIDGE) {
|
||||
$idArg = 'arg-'
|
||||
. urlencode($bridgeName)
|
||||
. '-'
|
||||
. urlencode('proxyoff')
|
||||
. '-'
|
||||
. urlencode('_noproxy');
|
||||
|
||||
$card .= '<input id="'
|
||||
. $idArg
|
||||
. '" type="checkbox" name="_noproxy" />'
|
||||
. PHP_EOL;
|
||||
|
||||
$card .= '<label for="'
|
||||
. $idArg
|
||||
. '">Disable proxy ('
|
||||
. ((defined('PROXY_NAME') && PROXY_NAME) ? PROXY_NAME : PROXY_URL)
|
||||
. ')</label><br />'
|
||||
. PHP_EOL;
|
||||
} if(CUSTOM_CACHE_TIMEOUT) {
|
||||
$idArg = 'arg-'
|
||||
. urlencode($bridgeName)
|
||||
. '-'
|
||||
. urlencode('_cache_timeout');
|
||||
|
||||
$card .= '<label for="'
|
||||
. $idArg
|
||||
. '">Cache timeout in seconds : </label>'
|
||||
. PHP_EOL;
|
||||
|
||||
$card .= '<input id="'
|
||||
. $idArg
|
||||
. '" type="number" value="'
|
||||
. $bridge->getCacheTimeout()
|
||||
. '" name="_cache_timeout" /><br />'
|
||||
. PHP_EOL;
|
||||
}
|
||||
$card .= $getHelperButtonsFormat($formats);
|
||||
} else {
|
||||
$card .= '<span style="font-weight: bold;">Inactive</span>';
|
||||
}
|
||||
$card .= '</form>' . PHP_EOL;
|
||||
}
|
||||
|
||||
$card .= '<label class="showless" for="showmore-' . $bridgeName . '">Show less</label>';
|
||||
$card .= '<p class="maintainer">' . $bridge->getMaintainer() . '</p>';
|
||||
$card .= '</section>';
|
||||
|
||||
return $card;
|
||||
}
|
||||
|
||||
function sanitize($textToSanitize,
|
||||
$removedTags = array('script', 'iframe', 'input', 'form'),
|
||||
$keptAttributes = array('title', 'href', 'src'),
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue