'All',
'categorized' => 'Categorized'
);
$filter_fields = Array(
'std-proposal' => 'Standard Proposals',
'std-tr1' => 'TR1 libraries',
'header-only' => 'Header Only Libraries',
'autolink' => 'Automatic Linking');
$sort_fields = Array(
'name' => 'Name',
'boost-version' => 'First Release',
'std-proposal' => 'STD Proposal',
'std-tr1' => 'STD::TR1',
'header-only' => 'Header Only Use',
'autolink' => 'Automatic Linking',
'key' => 'Key'
);
$display_sort_fields = Array(
'' => 'Name',
'boost-version' => 'First Release'
);
// View
$view_value = isset($_GET['view']) ? $_GET['view'] : '';
$category_value = '';
$filter_value = '';
if(strpos($view_value, 'filtered_') === 0) {
$filter_value = substr($view_value, strlen('filtered_'));
if(!isset($filter_fields[$filter_value])) {
echo 'Invalid filter field.'; exit(0);
}
}
else if(strpos($view_value, 'category_') === 0) {
$category_value = substr($view_value, strlen('category_'));
if(!isset($libs->categories[$category_value])) {
echo 'Invalid category: '.htmlentities($category_value); exit(0);
}
}
else {
$filter_value = '';
if(!isset($view_fields[$view_value])) {
echo 'Invalid view value.'; exit(0);
}
}
// Sort
$sort_value = isset($_GET['sort']) && $_GET['sort'] ?
$_GET['sort'] : 'name';
if(!isset($sort_fields[$sort_value])) {
echo 'Invalid sort field.'; exit(0);
}
// Page title
$page_title = boost_title().' Library Documentation';
if($category_value) $page_title.= ' - '. $libs->categories[$category_value]['title'];
// Functions
function library_filter($lib) {
global $filter_value, $category_value;
$libversion = explode('.',$lib['boost-version']);
return boost_version($libversion[0],$libversion[1],$libversion[2]) &&
(!$filter_value || ($lib[$filter_value] && $lib[$filter_value] !== 'false')) &&
(!isset($_GET['filter']) || $lib[$_GET['filter']]) &&
(!$category_value || $category_value === 'all' ||
array_search($category_value, $lib['category']) !== FALSE);
}
// Library display functions:
function libref($lib)
{
if (isset($lib['documentation']) && $lib['documentation'] != '')
{
if (isset($_SERVER["PATH_INFO"]) && $_SERVER["PATH_INFO"] != '' && $_SERVER["PATH_INFO"] != '/')
{
$docref = '/doc/libs'.$_SERVER["PATH_INFO"].'/'.$lib['documentation'];
}
else
{
global $boost_current_version;
$docref = '/doc/libs/release/'.$lib['documentation'];
}
print ''.($lib['name'] ? $lib['name'] : $lib['key']).'';
}
else
{
print ($lib['name'] ? $lib['name'] : $lib['key']);
}
}
function libauthors($lib)
{
print ($lib['authors'] ? $lib['authors'] : ' ');
}
function libavailable($lib)
{
print ($lib['boost-version'] ? $lib['boost-version'] : ' ');
}
function libstandard($lib)
{
$p = array();
if ($lib['std-proposal']) { $p[] = 'Proposed'; }
if ($lib['std-tr1']) { $p[] = 'TR1'; }
print ($p ? implode(', ',$p) : ' ');
}
function libbuildlink($lib, $build_values)
{
if (!empty($lib['build']))
print $build_values[$lib['build']];
else
print ' ';
}
function libcategories($lib, $categories)
{
$first = true;
if($lib['category']) {
foreach($lib['category'] as $category_name) {
if(!$first) echo ', ';
$first = false;
category_link($category_name, $categories[$category_name]);
}
}
if($first) echo ' ';
}
function option_link($description, $field, $value)
{
$base_uri = preg_replace('![#?].*!', '', $_SERVER['REQUEST_URI']);
$current_value = isset($_GET[$field]) ? $_GET[$field] : '';
if($current_value == $value) {
echo '';
}
else {
$params = $_GET;
$params[$field] = $value;
$url_params = '';
foreach($params as $k => $v) {
if($v) {
$url_params .= $url_params ? '&' : '?';
$url_params .= urlencode($k) . '='. urlencode($v);
}
}
echo '';
}
echo htmlentities($description);
if($current_value == $value) {
echo '';
}
else {
echo '';
}
}
function category_link($name, $category) {
option_link(
isset($category['title']) ? $category['title'] : $name,
'view', 'category_'.$name);
}
?>
', htmlentities($libs->categories[$category_value]['title']), ''; ?>
get($sort_value, 'library_filter') as $key => $lib) { ?>
-
- Author(s)
- First Release
- Standard
- Build & Link
- build_values); ?>
- Categories
- categories); ?>
By Category
get_categorized($sort_value, 'library_filter') as $name => $category) {
if(count($category['libraries'])) {?>