Fix directory filter links

- Enable "People" and "Forums" links in the Directory
This commit is contained in:
Hypolite Petovan 2017-10-30 22:05:23 -04:00
parent 4cc55f4302
commit e91ae5d4af
3 changed files with 44 additions and 24 deletions

View File

@ -17,9 +17,14 @@ function directory_init(App $a)
function directory_content(App $a)
{
$forums = false;
if ($a->argc == 2 && $a->argv[1] === 'forum') {
$forums = true;
$filter = false;
if ($a->argc == 2) {
if ($a->argv[1] === 'forums') {
$filter = 'forums';
}
if ($a->argv[1] === 'people') {
$filter = 'people';
}
}
$alpha = false;
@ -33,15 +38,17 @@ function directory_content(App $a)
'$header' => t('Global Directory'),
'$submit' => t('Find'),
'$forum' => $a->get_baseurl() . (($forums) ? '' : '/directory/forum'),
'$toggle' => (($forums) ? t('Show People') : t('Show Community Forums')),
'$toggle' => (($filter == 'forums') ? t('Show People') : t('Show Community Forums')),
'$alpha' => (($alpha) ? t('Updated order') : t('Alphabetic order')),
'$alink' => (($alpha) ? str_replace('&alpha=1', '', $a->query_string) : $a->query_string . "&alpha=1"),
'$args' => (($forums) ? '/forum' : ''),
'$args' => (($filter == 'forums') ? '/forum' : ''),
));
$sql_extra = '';
if ($forums) {
if ($filter == 'forums') {
$sql_extra .= ' AND `comm` = 1 ';
}else if ($filter == 'people') {
$sql_extra .= ' AND `comm` = 0 ';
}
$sql_extra = str_replace('%', '%%', $sql_extra);
@ -77,7 +84,7 @@ function directory_content(App $a)
$view->output(array(
'total' => number_format($total),
'results' => $r,
'filter' => $forums ? 'forums' : '',
'filter' => $filter,
));
killme();

View File

@ -7,20 +7,35 @@ use \BadMethodCallException;
*/
class Search extends BaseHelper
{
public function filterAllUrl($query)
public function filterAllUrl($query = '')
{
return $this->app->get_baseurl() . '/search?query=' . urlencode($query);
if (empty($query)) {
$url = $this->app->get_baseurl() . '/directory';
} else {
$url = $this->app->get_baseurl() . '/search?query=' . urlencode($query);
}
return $url;
}
public function filterPeopleUrl($query)
public function filterPeopleUrl($query = '')
{
return $this->app->get_baseurl() . '/search/people?query=' . urlencode($query);
if (empty($query)) {
$url = $this->app->get_baseurl() . '/directory/people';
} else {
$url = $this->app->get_baseurl() . '/search/people?query=' . urlencode($query);
}
return $url;
}
public function filterForumsUrl($query)
public function filterForumsUrl($query = '')
{
return $this->app->get_baseurl() . '/search/forums?query=' . urlencode($query);
if (empty($query)) {
$url = $this->app->get_baseurl() . '/directory/forums';
} else {
$url = $this->app->get_baseurl() . '/search/forums?query=' . urlencode($query);
}
return $url;
}
}

View File

@ -1,9 +1,9 @@
<div class="sub-menu-outer">
<div class="sub-menu-inner search-options">
<a class="option <?php echo $filter === null ? 'active' : '' ?>" href="<?php echo $this->filterAllUrl(''); ?>">All</a>
<a class="option <?php echo $filter == 'people' ? 'active' : '' ?>" href="<?php echo $this->filterPeopleUrl(''); ?>">People</a>
<a class="option <?php echo $filter == 'forums' ? 'active' : '' ?>" href="<?php echo $this->filterForumsUrl(''); ?>">Forums</a>
</div>
<div class="sub-menu-inner search-options">
<a class="option <?php echo empty($filter) ? 'active' : '' ?>" href="<?php echo $this->filterAllUrl(''); ?>">All</a>
<a class="option <?php echo $filter == 'people' ? 'active' : '' ?>" href="<?php echo $this->filterPeopleUrl(''); ?>">People</a>
<a class="option <?php echo $filter == 'forums' ? 'active' : '' ?>" href="<?php echo $this->filterForumsUrl(''); ?>">Forums</a>
</div>
</div>
<div class="directory-results">
@ -16,13 +16,11 @@
<?php if (count($results)): ?>
<?php
foreach ($results as $profile) {
echo $this->view('_profile', array('profile' => $profile));
}
?>
<?php else: ?>
<h3>There were no results</h3>