Merge pull request #702 from pafcu/master

Directory shows channel suggestions by default
This commit is contained in:
RedMatrix 2014-11-19 09:06:36 +11:00
commit 3917880673
4 changed files with 43 additions and 4 deletions

View File

@ -24,7 +24,6 @@ function findpeople_widget() {
'$label' => t('Connect/Follow'),
'$hint' => t('Examples: Robert Morgenstein, Fishing'),
'$findthem' => t('Find'),
'$suggest' => t('Channel Suggestions'),
'$similar' => '', // FIXME and uncomment when mod/match working // t('Similar Interests'),
'$random' => t('Random Profile'),
'$inv' => t('Invite Friends'),

View File

@ -1,5 +1,6 @@
<?php
require_once('include/socgraph.php');
require_once('include/dir_fns.php');
require_once('include/widgets.php');
require_once('include/bbcode.php');
@ -7,6 +8,12 @@ require_once('include/bbcode.php');
function directory_init(&$a) {
$a->set_pager_itemspage(60);
if(x($_GET,'ignore')) {
q("insert into xign ( uid, xchan ) values ( %d, '%s' ) ",
intval(local_user()),
dbesc($_GET['ignore'])
);
}
}
function directory_content(&$a) {
@ -42,11 +49,33 @@ function directory_content(&$a) {
else
$search = ((x($_GET,'search')) ? notags(trim(rawurldecode($_GET['search']))) : '');
if(strpos($search,'=') && local_user() && get_pconfig(local_user(),'feature','expert'))
$advanced = $search;
$keywords = (($_GET['keywords']) ? $_GET['keywords'] : '');
// Suggest channels if no search terms or keywords are given
$suggest = ($search == '' && $keywords == '' && local_user());
if($suggest) {
$r = suggestion_query(local_user(),get_observer_hash());
// Remember in which order the suggestions were
$addresses = array();
foreach($r as $rr) {
$addresses[$rr['xchan_addr']] = $index++;
}
// Build query to get info about suggested people
$advanced = '';
foreach(array_keys($addresses) as $address) {
$advanced .= "address=\"$address\" ";
}
}
$tpl = get_markup_template('directory_header.tpl');
@ -227,19 +256,28 @@ function directory_content(&$a) {
'online' => $online,
'kw' => (($out) ? t('Keywords: ') : ''),
'keywords' => $out,
'ignlink' => $suggest ? $a->get_baseurl() . '/directory?ignore=' . $rr['hash'] : '',
'ignore_label' => "Don't suggest",
);
$arr = array('contact' => $rr, 'entry' => $entry);
call_hooks('directory_item', $arr);
$entries[] = $arr['entry'];
if($sort_order == '' && $suggest) {
$entries[$addresses[$rr['address']]] = $arr['entry']; // Use the same indexes as originally to get the best suggestion first
}
else {
$entries[] = $arr['entry'];
}
unset($profile);
unset($location);
}
ksort($entries); // Sort array by key so that foreach-constructs work as expected
if($j['keywords']) {
$a->data['directory_keywords'] = $j['keywords'];
}
@ -268,7 +306,7 @@ function directory_content(&$a) {
'$finddsc' => t('Finding:'),
'$safetxt' => htmlspecialchars($search,ENT_QUOTES,'UTF-8'),
'$entries' => $entries,
'$dirlbl' => t('Directory'),
'$dirlbl' => $suggest ? t('Channel Suggestions') : t('Directory'),
'$submit' => t('Find'),
'$next' => alt_pager($a,$j['records'], t('next page'), t('previous page'))

View File

@ -6,6 +6,9 @@
{{if $entry.connect}}
<div class="directory-connect btn btn-default"><a href="{{$entry.connect}}"><i class="icon-plus connect-icon"></i> {{$entry.conn_label}}</a></div>
{{/if}}
{{if $entry.ignlink}}
<div class="directory-ignore btn btn-default"><a href="{{$entry.ignlink}}"> {{$entry.ignore_label}}</a></div>
{{/if}}
</div>
</div>

View File

@ -12,7 +12,6 @@
</form>
<ul class="nav nav-pills nav-stacked">
{{if $similar}}<li><a href="match" >{{$similar}}</a></li>{{/if}}
{{if $loggedin}}<li><a href="suggest" >{{$suggest}}</a></li>{{/if}}
<li><a href="randprof" >{{$random}}</a></li>
{{if $loggedin}}{{if $inv}}<li><a href="invite" >{{$inv}}</a></li>{{/if}}{{/if}}
</ul>