hubzilla issue #945 continued: We previously blocked directory keywords when searching the local directory as it produced errant results and included results from the entire directory space (an issue that was resolved satisfactorily by that fix sometime in the past). As a result of issue #945 this was reworked so that we should return correct results for keywords when searching either the local directory or a standalone directory.

This commit is contained in:
zotlabs 2018-01-10 15:32:04 -08:00
parent d0d72c7fd2
commit c09bab466a
2 changed files with 13 additions and 8 deletions

View File

@ -313,7 +313,7 @@ class Dirsearch extends \Zotlabs\Web\Controller {
$ret['results'] = $entries;
if($kw) {
$k = dir_tagadelic($kw);
$k = dir_tagadelic($kw, $hub);
if($k) {
$ret['keywords'] = array();
foreach($k as $kv) {

View File

@ -309,19 +309,27 @@ function article_tagadelic($uid, $count = 0, $authors = '', $owner = '', $flags
function dir_tagadelic($count = 0) {
function dir_tagadelic($count = 0, $hub = '') {
$count = intval($count);
$dirmode = get_config('system','directory_mode');
if($dirmode == DIRECTORY_MODE_STANDALONE) {
if(($dirmode == DIRECTORY_MODE_STANDALONE) && (! $hub)) {
$hub = \App::get_hostname();
}
if($hub)
$hub_query = " and xtag_hash in (select hubloc_hash from hubloc where hubloc_host = '" . protect_sprintf(dbesc($hub)) . "') ";
else
$hub_query = '';
if($hub_query) {
// Fetch tags
$r = q("select xtag_term as term, count(xtag_term) as total from xtag
left join hubloc on xtag_hash = hubloc_hash
where xtag_flags = 0 and hubloc_url = '%s'
where xtag_flags = 0 $hub_query
group by xtag_term order by total desc %s",
dbesc(z_root()),
((intval($count)) ? "limit $count" : '')
);
}
@ -485,9 +493,6 @@ function dir_tagblock($link,$r) {
$o = '';
$observer = get_observer_hash();
if(! get_directory_setting($observer, 'globaldir'))
return $o;
if(! $r)
$r = App::$data['directory_keywords'];