aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorThomas Willingham <beardyunixer@beardyunixer.com>2014-12-08 13:34:56 +0000
committerThomas Willingham <beardyunixer@beardyunixer.com>2014-12-08 13:34:56 +0000
commit934172c2fc67a6d6d85ef252ddef47ce5fc8cf46 (patch)
tree1bc992641ea985be8797b3df0450d224ac10abb6
parent99b5bef68eff4bc7b3a36b7626ec6aa1d936e5d9 (diff)
parentc8818d83498d19262ba90f7f2954828c24cf03cb (diff)
downloadvolse-hubzilla-934172c2fc67a6d6d85ef252ddef47ce5fc8cf46.tar.gz
volse-hubzilla-934172c2fc67a6d6d85ef252ddef47ce5fc8cf46.tar.bz2
volse-hubzilla-934172c2fc67a6d6d85ef252ddef47ce5fc8cf46.zip
Merge pull request #724 from pafcu/suggestionsindir
Show suggestions in directory
-rw-r--r--mod/directory.php46
-rwxr-xr-xview/tpl/direntry.tpl3
-rwxr-xr-xview/tpl/peoplefind.tpl2
3 files changed, 47 insertions, 4 deletions
diff --git a/mod/directory.php b/mod/directory.php
index 47849e6ba..85c2d4c84 100644
--- a/mod/directory.php
+++ b/mod/directory.php
@@ -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) {
@@ -43,14 +50,38 @@ 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 = (local_user() && x($_REQUEST,'suggest')) ? $_REQUEST['suggest'] : '';
+
+ if($suggest) {
+ $r = suggestion_query(local_user(),get_observer_hash());
+
+ // Remember in which order the suggestions were
+ $addresses = array();
+ $index = 0;
+ 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\" ";
+ }
+ // Remove last space in the advanced query
+ $advanced = rtrim($advanced);
+
+ }
+
$tpl = get_markup_template('directory_header.tpl');
-
$dirmode = intval(get_config('system','directory_mode'));
if(($dirmode == DIRECTORY_MODE_PRIMARY) || ($dirmode == DIRECTORY_MODE_STANDALONE)) {
@@ -236,19 +267,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'];
}
@@ -277,7 +317,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'))
diff --git a/view/tpl/direntry.tpl b/view/tpl/direntry.tpl
index 2da920ab1..cdc6f1f97 100755
--- a/view/tpl/direntry.tpl
+++ b/view/tpl/direntry.tpl
@@ -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>
diff --git a/view/tpl/peoplefind.tpl b/view/tpl/peoplefind.tpl
index 2f23948c8..ba71c1e80 100755
--- a/view/tpl/peoplefind.tpl
+++ b/view/tpl/peoplefind.tpl
@@ -12,7 +12,7 @@
</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}}
+ {{if $loggedin}}<li><a href="directory?suggest=1" >{{$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>