Merge branch 'master' into tres
Conflicts: include/Contact.php include/ItemObject.php include/api.php include/attach.php include/diaspora.php include/dir_fns.php include/enotify.php include/event.php include/expire.php include/items.php include/notifier.php include/notify.php include/photos.php include/taxonomy.php include/text.php include/widgets.php include/zot.php mod/admin.php mod/channel.php mod/dirsearch.php mod/display.php mod/editwebpage.php mod/events.php mod/home.php mod/item.php mod/manage.php mod/mood.php mod/network.php mod/page.php mod/photos.php mod/ping.php mod/post.php mod/thing.php mod/viewsrc.php view/css/mod_events.css
This commit is contained in:
@@ -12,6 +12,7 @@ function dirsearch_content(&$a) {
|
||||
|
||||
$ret = array('success' => false);
|
||||
|
||||
// logger('request: ' . print_r($_REQUEST,true));
|
||||
|
||||
|
||||
$dirmode = intval(get_config('system','directory_mode'));
|
||||
@@ -21,6 +22,15 @@ function dirsearch_content(&$a) {
|
||||
json_return_and_die($ret);
|
||||
}
|
||||
|
||||
$access_token = $_REQUEST['t'];
|
||||
|
||||
$token = get_config('system','realm_token');
|
||||
if($token && $access_token != $token) {
|
||||
$result['message'] = t('This directory server requires an access token');
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
if(argc() > 1 && argv(1) === 'sites') {
|
||||
$ret = list_public_sites();
|
||||
json_return_and_die($ret);
|
||||
@@ -81,6 +91,12 @@ function dirsearch_content(&$a) {
|
||||
else
|
||||
$sync = false;
|
||||
|
||||
|
||||
if($hub)
|
||||
$hub_query = " and xchan_hash in (select hubloc_hash from hubloc where hubloc_host = '" . protect_sprintf(dbesc($hub)) . "') ";
|
||||
else
|
||||
$hub_query = '';
|
||||
|
||||
$sort_order = ((x($_REQUEST,'order')) ? $_REQUEST['order'] : '');
|
||||
|
||||
$joiner = ' OR ';
|
||||
@@ -89,8 +105,6 @@ function dirsearch_content(&$a) {
|
||||
|
||||
if($name)
|
||||
$sql_extra .= dir_query_build($joiner,'xchan_name',$name);
|
||||
if($hub)
|
||||
$sql_extra .= " $joiner xchan_hash in (select hubloc_hash from hubloc where hubloc_host = '" . protect_sprintf(dbesc($hub)) . "') ";
|
||||
if($address)
|
||||
$sql_extra .= dir_query_build($joiner,'xchan_addr',$address);
|
||||
if($city)
|
||||
@@ -111,8 +125,7 @@ function dirsearch_content(&$a) {
|
||||
$sql_extra .= dir_query_build($joiner,'xprof_keywords',$keywords);
|
||||
|
||||
if($forums)
|
||||
$sql_extra .= dir_flag_build($joiner,'xchan_pubforum',$forums);
|
||||
|
||||
$safesql .= dir_flag_build(' AND ','xchan_flags',XCHAN_FLAGS_PUBFORUM, $forums);
|
||||
|
||||
// we only support an age range currently. You must set both agege
|
||||
// (greater than or equal) and agele (less than or equal)
|
||||
@@ -156,7 +169,6 @@ function dirsearch_content(&$a) {
|
||||
$sql_extra .= " and xchan_addr like '%%" . get_app()->get_hostname() . "' ";
|
||||
}
|
||||
|
||||
|
||||
$safesql = (($safe > 0) ? " and xchan_censored = 0 and xchan_selfcensored = 0 " : '');
|
||||
if($safe < 0)
|
||||
$safesql = " and ( xchan_censored = 1 OR xchan_selfcensored = 1 ) ";
|
||||
@@ -174,8 +186,15 @@ function dirsearch_content(&$a) {
|
||||
}
|
||||
|
||||
|
||||
if($sort_order == 'normal')
|
||||
if($sort_order == 'normal') {
|
||||
$order = " order by xchan_name asc ";
|
||||
|
||||
// Start the alphabetic search at 'A'
|
||||
// This will make a handful of channels whose names begin with
|
||||
// punctuation un-searchable in this mode
|
||||
|
||||
$safesql .= " and ascii(substring(xchan_name FROM 1 FOR 1)) > 64 ";
|
||||
}
|
||||
elseif($sort_order == 'reverse')
|
||||
$order = " order by xchan_name desc ";
|
||||
elseif($sort_order == 'reversedate')
|
||||
@@ -226,17 +245,17 @@ function dirsearch_content(&$a) {
|
||||
json_return_and_die($spkt);
|
||||
}
|
||||
else {
|
||||
$r = q("SELECT xchan.*, xprof.* from xchan left join xprof on xchan_hash = xprof_hash where ( $logic $sql_extra ) and xchan_network = 'zot' and xchan_hidden = 0 and xchan_orphan = 0 and xchan_deleted = 0 $safesql $order $qlimit ");
|
||||
$r = q("SELECT xchan.*, xprof.* from xchan left join xprof on xchan_hash = xprof_hash where ( $logic $sql_extra ) $hub_query and xchan_network = 'zot' and xchan_hidden = 0 and xchan_orphan = 0 and xchan_deleted = 0 $safesql $order $qlimit ",
|
||||
$ret['page'] = $page + 1;
|
||||
$ret['records'] = count($r);
|
||||
);
|
||||
}
|
||||
|
||||
$ret['page'] = $page + 1;
|
||||
$ret['records'] = count($r);
|
||||
|
||||
if($r) {
|
||||
|
||||
$entries = array();
|
||||
|
||||
|
||||
foreach($r as $rr) {
|
||||
|
||||
$entry = array();
|
||||
@@ -301,7 +320,7 @@ function dir_query_build($joiner,$field,$s) {
|
||||
}
|
||||
|
||||
function dir_flag_build($joiner,$field,$bit,$s) {
|
||||
return dbesc($joiner) . " ( " . dbesc($field) . " = " . intval($bit) . " ) ";
|
||||
return dbesc($joiner) . " ( " . dbesc($field) . " & " . intval($bit) . " ) " . ((intval($s)) ? '>' : '=' ) . " 0 ";
|
||||
}
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user