First commit
This commit is contained in:
commit
201edf2e4a
115 changed files with 29451 additions and 0 deletions
19
src/templates/directory.phtml
Normal file
19
src/templates/directory.phtml
Normal file
|
|
@ -0,0 +1,19 @@
|
|||
<!-- <div class="row">
|
||||
<h1><?php echo $this->e($title) ?></h1>
|
||||
</div>-->
|
||||
<div class="row">
|
||||
<div class="col-xl-9 col-lg-8">
|
||||
<?php echo $this->fetch('sub/profiles.phtml', [
|
||||
'page' => 'directory',
|
||||
'profiles' => $profiles,
|
||||
'accountTypeTabs' => $accountTypeTabs,
|
||||
'pager_full' => $pager_full,
|
||||
'pager_minimal' => $pager_minimal
|
||||
]) ?>
|
||||
</div>
|
||||
<div class="col-xl-3 col-lg-4">
|
||||
<?php echo $popularTags ?>
|
||||
<?php echo $popularCountries ?>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
74
src/templates/layout.phtml
Normal file
74
src/templates/layout.phtml
Normal file
|
|
@ -0,0 +1,74 @@
|
|||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<title>Friendica Directory</title>
|
||||
<base href="<?php echo $baseUrl ?>">
|
||||
<meta charset="utf-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
|
||||
<link rel="stylesheet" href="assets/css/friendica-directory.min.css">
|
||||
<link rel="stylesheet" href="assets/vendor/fontawesome/web-fonts-with-css/css/solid.css">
|
||||
<link rel="stylesheet" href="assets/vendor/fontawesome/web-fonts-with-css/css/fontawesome.css">
|
||||
</head>
|
||||
<body>
|
||||
<!-- Navigation -->
|
||||
<nav class="navbar navbar-expand-lg navbar-light bg-light static-top">
|
||||
<div class="container">
|
||||
<a class="navbar-brand" href="">
|
||||
<img src="assets/images/friendica-32.png" width="32" height="32" class="d-inline-block align-top" alt="">
|
||||
Friendica Directory
|
||||
</a>
|
||||
<?php if (empty($noNavSearch)): ?>
|
||||
<form class="form-inline my-2 my-lg-0 d-none d-md-flex" action="search">
|
||||
<div class="input-group">
|
||||
<label class="sr-only" for="header_search">Search terms</label>
|
||||
<input name="q" class="form-control" type="search" id="header_search" placeholder="Search..."
|
||||
aria-label="Search terms">
|
||||
<div class="input-group-append">
|
||||
<button class="btn btn-primary" type="submit">Search</button>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
<?php endif; ?>
|
||||
<button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarResponsive"
|
||||
aria-controls="navbarResponsive" aria-expanded="false" aria-label="Toggle navigation">
|
||||
<span class="navbar-toggler-icon"></span>
|
||||
</button>
|
||||
|
||||
<div class="collapse navbar-collapse pt-2" id="navbarResponsive">
|
||||
<ul class="navbar-nav ml-auto">
|
||||
<?php if (empty($noNavSearch)): ?>
|
||||
<li class="nav-item d-md-none">
|
||||
<form action="search">
|
||||
<div class="input-group">
|
||||
<label class="sr-only" for="nav_search">Search terms</label>
|
||||
<input name="q" class="form-control form-control-sm" type="search" id="nav_search"
|
||||
placeholder="Search..." aria-label="Search terms">
|
||||
<div class="input-group-append">
|
||||
<button class="btn btn-primary btn-sm" type="submit">Search</button>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
</li>
|
||||
<?php endif; ?>
|
||||
|
||||
<li class="nav-item">
|
||||
<a class="nav-link" href=""><i class="fa fa-address-card"></i> Directory
|
||||
<!--<span class="sr-only">(current)</span>-->
|
||||
</a>
|
||||
</li>
|
||||
<li class="nav-item">
|
||||
<a class="nav-link" href="servers"><i class="fa fa-hotel"></i> Public Servers</a>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</nav>
|
||||
|
||||
<!-- Page Content -->
|
||||
<div class="container pt-3">
|
||||
<?php echo $content ?>
|
||||
</div>
|
||||
<script type="text/javascript" src="assets/vendor/bootstrap.native/dist/bootstrap-native-v4.min.js"></script>
|
||||
</body>
|
||||
</html>
|
||||
|
||||
20
src/templates/search.phtml
Normal file
20
src/templates/search.phtml
Normal file
|
|
@ -0,0 +1,20 @@
|
|||
<!--<h1>Search</h1>-->
|
||||
<form action="search">
|
||||
<div class="input-group">
|
||||
<label class="sr-only" for="search_search">Search terms</label>
|
||||
<input name="q" class="form-control" type="search" id="search_search" placeholder="Search..."
|
||||
aria-label="Search terms" value="<?php echo $this->escapeHtmlAttr($query) ?>">
|
||||
<div class="input-group-append">
|
||||
<button class="btn btn-primary" type="submit">Search</button>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
|
||||
<h2><?php echo $count ?> results for "<?php echo $this->e($query) ?>"</h2>
|
||||
<?php echo $this->fetch('sub/profiles.phtml', [
|
||||
'page' => 'search',
|
||||
'profiles' => $profiles,
|
||||
'accountTypeTabs' => $accountTypeTabs,
|
||||
'pager_full' => $pager_full,
|
||||
'pager_minimal' => $pager_minimal
|
||||
]) ?>
|
||||
14
src/templates/servers.phtml
Normal file
14
src/templates/servers.phtml
Normal file
|
|
@ -0,0 +1,14 @@
|
|||
<h1><?php echo $this->e($title) ?></h1>
|
||||
<nav aria-label="Top servers pagination">
|
||||
<?php echo $this->fetch('sub/pager_full.phtml', $pager) ?>
|
||||
</nav>
|
||||
<div class="row">
|
||||
<?php foreach ($servers as $server) : ?>
|
||||
<div class="col-xl-6">
|
||||
<?php echo $this->fetch('sub/server.phtml', ['server' => $server, 'stable_version' => $stable_version, 'dev_version' => $dev_version]) ?>
|
||||
</div>
|
||||
<?php endforeach; ?>
|
||||
</div>
|
||||
<nav aria-label="Bottom servers pagination">
|
||||
<?php echo $this->fetch('sub/pager_full.phtml', $pager) ?>
|
||||
</nav>
|
||||
41
src/templates/sub/pager_full.phtml
Normal file
41
src/templates/sub/pager_full.phtml
Normal file
|
|
@ -0,0 +1,41 @@
|
|||
<?php if (!empty($prev) || !empty($next)): ?>
|
||||
<ul class="pagination justify-content-center">
|
||||
<?php if (!empty($first)): ?>
|
||||
<li class="page-item <?php echo $first['class'] ?>">
|
||||
<a class="page-link" href="<?php echo $first['url'] ?>" tabindex="-1">
|
||||
<span aria-hidden="true">«</span>
|
||||
<?php echo $first['text'] ?>
|
||||
</a>
|
||||
</li>
|
||||
<?php endif; ?>
|
||||
<?php if (!empty($prev)): ?>
|
||||
<li class="page-item <?php echo $prev['class'] ?>">
|
||||
<a class="page-link" href="<?php echo $prev['url'] ?>" tabindex="-1">
|
||||
<span aria-hidden="true">‹</span>
|
||||
<?php echo $prev['text'] ?>
|
||||
</a>
|
||||
</li>
|
||||
<?php endif; ?>
|
||||
<?php foreach ($pages as $page): ?>
|
||||
<li class="page-item <?php echo $page['class'] ?>">
|
||||
<a class="page-link" href="<?php echo $page['url'] ?>" tabindex="-1"><?php echo $page['text'] ?></a>
|
||||
</li>
|
||||
<?php endforeach; ?>
|
||||
<?php if (!empty($next)): ?>
|
||||
<li class="page-item <?php echo $next['class'] ?>">
|
||||
<a class="page-link" href="<?php echo $next['url'] ?>" tabindex="-1">
|
||||
<?php echo $next['text'] ?>
|
||||
<span aria-hidden="true">›</span>
|
||||
</a>
|
||||
</li>
|
||||
<?php endif; ?>
|
||||
<?php if (!empty($last)): ?>
|
||||
<li class="page-item <?php echo $last['class'] ?>">
|
||||
<a class="page-link" href="<?php echo $last['url'] ?>" tabindex="-1">
|
||||
<?php echo $last['text'] ?>
|
||||
<span aria-hidden="true">»</span>
|
||||
</a>
|
||||
</li>
|
||||
<?php endif; ?>
|
||||
</ul>
|
||||
<?php endif; ?>
|
||||
20
src/templates/sub/pager_minimal.phtml
Normal file
20
src/templates/sub/pager_minimal.phtml
Normal file
|
|
@ -0,0 +1,20 @@
|
|||
<?php if (!empty($prev) || !empty($next)): ?>
|
||||
<ul class="pagination justify-content-between">
|
||||
<?php if (!empty($prev)): ?>
|
||||
<li class="page-item <?php echo $prev['class'] ?>">
|
||||
<a class="page-link" href="<?php echo $prev['url'] ?>" tabindex="-1">
|
||||
<span aria-hidden="true">‹</span>
|
||||
<?php echo $prev['text'] ?>
|
||||
</a>
|
||||
</li>
|
||||
<?php endif; ?>
|
||||
<?php if (!empty($next)): ?>
|
||||
<li class="page-item <?php echo $next['class'] ?>">
|
||||
<a class="page-link" href="<?php echo $next['url'] ?>" tabindex="-1">
|
||||
<?php echo $next['text'] ?>
|
||||
<span aria-hidden="true">›</span>
|
||||
</a>
|
||||
</li>
|
||||
<?php endif; ?>
|
||||
</ul>
|
||||
<?php endif; ?>
|
||||
57
src/templates/sub/profile.phtml
Normal file
57
src/templates/sub/profile.phtml
Normal file
|
|
@ -0,0 +1,57 @@
|
|||
<?php
|
||||
$parts = [];
|
||||
if (!empty($profile['locality'])) {
|
||||
$parts[] = $this->escapeHtml($profile['locality']) . ' <a href="search?field=locality&q=' . $this->escapeUrl($profile['locality']) . '"><span class="fa fa-filter" title="Search" aria-hidden="true"></span></a>';
|
||||
}
|
||||
if (!empty($profile['region'])
|
||||
&& strtolower($profile['locality']) != strtolower($profile['region'])) {
|
||||
$parts[] = $this->escapeHtml($profile['region']) . ' <a href="search?field=region&q=' . $this->escapeUrl($profile['region']) . '"><span class="fa fa-filter" title="Search" aria-hidden="true"></span></a>';
|
||||
}
|
||||
|
||||
if (!empty($profile['country'])) {
|
||||
$parts[] = $this->escapeHtml($profile['country']) . ' <a href="search?field=country&q=' . $this->escapeUrl($profile['country']) . '"><span class="fa fa-filter" title="Search" aria-hidden="true"></span></a>';
|
||||
}
|
||||
?>
|
||||
|
||||
<figure id="profile-<?php echo $this->escapeHtmlAttr($profile['id']) ?>" class="bg-light p-3 rounded">
|
||||
<div class="media">
|
||||
<a href="<?php echo $this->escapeHtmlAttr($profile['profile_url']) ?>"><img class="mr-3 rounded"
|
||||
src="photo/<?php echo $profile['id'] ?>.jpg"></a>
|
||||
<div class="media-body">
|
||||
<h5 class="name">
|
||||
<?php if ($profile['dfrn_request']): ?>
|
||||
<a href="<?php echo $profile['dfrn_request']; ?>" class="card-link btn btn-primary float-right"><i
|
||||
class="fa fa-external-link-alt"></i> Follow</a>
|
||||
<?php endif; ?>
|
||||
<?php echo $this->escapeHtml($profile['name']) ?>
|
||||
</h5>
|
||||
<p class="url"><a
|
||||
href="<?php echo $this->escapeHtmlAttr($profile['profile_url']) ?>"><?php echo $this->escapeHtml($profile['addr']) ?></a>
|
||||
</p>
|
||||
<p class="description d-none d-md-block"><?php echo $this->escapeHtml($profile['pdesc']) ?></p>
|
||||
</div>
|
||||
</div>
|
||||
<p class="description d-md-none"><?php echo $this->escapeHtml($profile['pdesc']) ?></p>
|
||||
<div class="location">
|
||||
<?php if (count($parts)): ?>
|
||||
<i class="fa fa-globe"></i>
|
||||
<?php echo implode(', ', $parts); ?>
|
||||
<?php endif ?>
|
||||
</div>
|
||||
|
||||
<?php if ($profile['tags']): ?>
|
||||
<div class="tags">
|
||||
|
||||
<?php
|
||||
$tags = array_map('trim', explode(' ', $profile['tags']));
|
||||
|
||||
foreach ($tags as $tag):?>
|
||||
|
||||
<span class="badge"><?php echo $this->escapeHtml($tag) ?> <a
|
||||
href="/search?q=<?php echo $this->escapeUrl($tag) ?>"><i class="fa fa-tag"
|
||||
title="Search tag"></i></a></span>
|
||||
|
||||
<?php endforeach; ?>
|
||||
</div>
|
||||
<?php endif; ?>
|
||||
</figure>
|
||||
18
src/templates/sub/profiles.phtml
Normal file
18
src/templates/sub/profiles.phtml
Normal file
|
|
@ -0,0 +1,18 @@
|
|||
<nav aria-label="Account type tabs" class="mb-3">
|
||||
<?php echo $accountTypeTabs ?>
|
||||
</nav>
|
||||
<nav aria-label="Top <?php echo $page ?> pagination" class="d-none d-md-block">
|
||||
<?php echo $this->fetch('sub/pager_full.phtml', $pager_full) ?>
|
||||
</nav>
|
||||
<nav aria-label="Top <?php echo $page ?> pagination" class="d-md-none">
|
||||
<?php echo $this->fetch('sub/pager_minimal.phtml', $pager_minimal) ?>
|
||||
</nav>
|
||||
<?php foreach ($profiles as $profile) : ?>
|
||||
<?php echo $this->fetch('sub/profile.phtml', ['profile' => $profile]) ?>
|
||||
<?php endforeach; ?>
|
||||
<nav aria-label="Bottom <?php echo $page ?> pagination" class="d-none d-md-block">
|
||||
<?php echo $this->fetch('sub/pager_full.phtml', $pager_full) ?>
|
||||
</nav>
|
||||
<nav aria-label="Bottom <?php echo $page ?> pagination" class="d-md-none">
|
||||
<?php echo $this->fetch('sub/pager_minimal.phtml', $pager_minimal) ?>
|
||||
</nav>
|
||||
84
src/templates/sub/server.phtml
Normal file
84
src/templates/sub/server.phtml
Normal file
|
|
@ -0,0 +1,84 @@
|
|||
<?php
|
||||
|
||||
|
||||
if ($server['health_score'] <= 0) {
|
||||
$badge_class = 'badge-dark';
|
||||
} elseif ($server['health_score'] <= 50) {
|
||||
$badge_class = 'badge-danger';
|
||||
} elseif ($server['health_score'] <= 80) {
|
||||
$badge_class = 'badge-warning';
|
||||
} else {
|
||||
$badge_class = 'badge-success';
|
||||
}
|
||||
|
||||
if ($server['version'] == $stable_version) {
|
||||
$version_badge = '<span class="badge badge-success"><i class="fa fa-smile"></i> Stable Version</span>';
|
||||
} elseif ($server['version'] == $dev_version) {
|
||||
$version_badge = '<span class="badge badge-secondary"><i class="fa fa-poo"></i> Develop Version</span>';
|
||||
} else {
|
||||
$version_badge = '<span class="badge badge-warning"><i class="fa fa-frown"></i> Outdated Version</span>';
|
||||
}
|
||||
|
||||
$base_url = $server['base_url'];
|
||||
|
||||
$base_url_display = substr($base_url, strpos($base_url, '/') + 2);
|
||||
?>
|
||||
<div class="card mr-2 mb-2 bg-light" id="server-card-<?php echo $server['id'] ?>">
|
||||
<div class="card-body">
|
||||
<h5 class="card-title">
|
||||
<?php echo $this->e($server['name']); ?>
|
||||
</h5>
|
||||
<h6 class="card-subtitle mb-2 text-muted">
|
||||
<?php if ($server['ssl_state']): ?>
|
||||
<span class="badge badge-success"><i class="fa fa-lock"></i> HTTPS</span>
|
||||
<?php else: ?>
|
||||
<span class="badge badge-secondary"><i class="fa fa-lock-open"></i> HTTP</span>
|
||||
<?php endif; ?>
|
||||
<a href="<?php echo $base_url; ?>"><?php echo $this->e($base_url_display); ?></a>
|
||||
</h6>
|
||||
<p class="card-text">
|
||||
<span class="badge <?php echo $badge_class ?>"><i
|
||||
class="fa fa-heartbeat"></i> <?php echo $server['health_score'] ?></span>
|
||||
<span class="badge badge-secondary"><i
|
||||
class="fa fa-user"></i> <?php echo $this->e($server['user_count'] ?: '~'); ?> Users</span>
|
||||
<?php echo $version_badge; ?>
|
||||
<?php if ($server['admin_profile'] && $server['admin_name']): ?>
|
||||
<a href="<?php echo $server['admin_profile']; ?>" class="badge badge-primary">
|
||||
<i class="fa fa-star"></i> Admin: <?php echo $this->e($server['admin_name']); ?>
|
||||
</a>
|
||||
<?php endif; ?>
|
||||
</p>
|
||||
<?php if ($server['info']) : ?>
|
||||
<p class="card-text"><?php echo $this->e($server['info']); ?></p>
|
||||
<?php else: ?>
|
||||
<p class="card-text text-muted"><No description provided></p>
|
||||
<?php endif; ?>
|
||||
<a href="<?php echo $base_url; ?>" class="card-link btn btn-primary"><i class="fa fa-external-link-alt"></i>
|
||||
Visit server</a>
|
||||
</div>
|
||||
</div>
|
||||
<?php /*
|
||||
<div class="site">
|
||||
<div class="site-supports">
|
||||
<em>Features</em>
|
||||
<?php foreach ($server['popular_supports'] as $key => $value): if (!$value) continue; ?>
|
||||
|
||||
<div class="supports <?php echo strtolower($key); ?>">
|
||||
<?php echo $key; ?><?php if ($key == 'HTTPS' && $server['ssl_grade'] != null): ?>, Grade: <?php echo $server['ssl_grade']; ?><?php endif ?> √
|
||||
</div>
|
||||
<?php endforeach ?>
|
||||
<?php if ($server['supports_more'] > 0): ?>
|
||||
|
||||
<?php
|
||||
$more = '';
|
||||
foreach ($server['less_popular_supports'] as $key => $value) {
|
||||
if (!$value)
|
||||
continue;
|
||||
$more .= $key . PHP_EOL;
|
||||
}
|
||||
?>
|
||||
<abbr class="more" title="<?php echo $more ?>">+<?php echo $server['supports_more']; ?> more</abbr>
|
||||
<?php endif ?>
|
||||
</div>
|
||||
</div>
|
||||
*/
|
||||
17
src/templates/tag.phtml
Normal file
17
src/templates/tag.phtml
Normal file
|
|
@ -0,0 +1,17 @@
|
|||
<h1>Tag</h1>
|
||||
<div class="row">
|
||||
<h2><?php echo $count ?> results for "<?php echo $this->e($term) ?>"</h2>
|
||||
</div>
|
||||
<nav aria-label="Bottom search pagination">
|
||||
<?php echo $this->fetch('pager.phtml', $pager) ?>
|
||||
</nav>
|
||||
<div class="row">
|
||||
<?php foreach ($profiles as $profile) : ?>
|
||||
<div class="col-xl-6">
|
||||
<?php echo $this->fetch('sub/profile.phtml', ['profile' => $profile]) ?>
|
||||
</div>
|
||||
<?php endforeach; ?>
|
||||
</div>
|
||||
<nav aria-label="Bottom search pagination">
|
||||
<?php echo $this->fetch('pager.phtml', $pager) ?>
|
||||
</nav>
|
||||
8
src/templates/widget/accounttypetabs.phtml
Normal file
8
src/templates/widget/accounttypetabs.phtml
Normal file
|
|
@ -0,0 +1,8 @@
|
|||
<ul class="nav nav-tabs justify-content-center">
|
||||
<?php foreach ($tabs as $tab): ?>
|
||||
<li class="nav-item">
|
||||
<a class="nav-link<?php echo $tab['active'] ? ' active' : '' ?>"
|
||||
href="<?php echo $this->escapeHtmlAttr($tab['link']) ?>"><?php echo $this->e($tab['title']) ?></a>
|
||||
</li>
|
||||
<?php endforeach; ?>
|
||||
</ul>
|
||||
12
src/templates/widget/popularcountries.phtml
Normal file
12
src/templates/widget/popularcountries.phtml
Normal file
|
|
@ -0,0 +1,12 @@
|
|||
<div>
|
||||
<h3><?php echo $this->e($title) ?></h3>
|
||||
<ul>
|
||||
<?php foreach ($countries as $country): ?>
|
||||
<li>
|
||||
<a href="search?field=country&q=<?php echo $this->escapeUrl($country['country']) ?>">
|
||||
<?php echo $this->e($country['country']) ?>
|
||||
</a>
|
||||
</li>
|
||||
<?php endforeach; ?>
|
||||
</ul>
|
||||
</div>
|
||||
12
src/templates/widget/populartags.phtml
Normal file
12
src/templates/widget/populartags.phtml
Normal file
|
|
@ -0,0 +1,12 @@
|
|||
<div>
|
||||
<h3><?php echo $this->e($title) ?></h3>
|
||||
<ul>
|
||||
<?php foreach ($tags as $tag): ?>
|
||||
<li>
|
||||
<a href="search?q=<?php echo $this->escapeUrl($tag['term']) ?>">
|
||||
<?php echo $this->e($tag['term']) ?>
|
||||
</a>
|
||||
</li>
|
||||
<?php endforeach; ?>
|
||||
</ul>
|
||||
</div>
|
||||
Loading…
Add table
Add a link
Reference in a new issue