Merge remote-tracking branch 'upstream/dev' into doco

This commit is contained in:
Andrew Manning
2016-12-05 20:16:19 -05:00
20 changed files with 278 additions and 76 deletions
+49 -3
View File
@@ -33,6 +33,7 @@
api_register_func('api/red/item/full','red_item', true);
api_register_func('api/z/1.0/item/full','red_item', true);
api_register_func('api/z/1.0/network/stream','api_network_stream', true);
api_register_func('api/z/1.0/abook','api_zot_abook_xchan',true);
api_register_func('api/z/1.0/abconfig','api_zot_abconfig',true);
api_register_func('api/z/1.0/perm_allowed','api_zot_perm_allowed',true);
@@ -55,18 +56,63 @@
}
function api_network_stream($type) {
if(api_user() === false) {
logger('api_channel_stream: no user');
return false;
}
$channel = channelx_by_n(api_user());
if(! $channel)
return false;
if($_SERVER['REQUEST_METHOD'] == 'POST') {
// json_return_and_die(post_activity_item($_REQUEST));
}
else {
$mindate = (($_REQUEST['mindate']) ? datetime_convert('UTC','UTC',$_REQUEST['mindate']) : '');
if(! $mindate)
$mindate = datetime_convert('UTC','UTC', 'now - 14 days');
$arr = $_REQUEST;
$ret = [];
$i = items_fetch($arr,App::get_channel(),get_observer_hash());
if($i) {
foreach($i as $iv) {
$ret[] = encode_item($iv);
}
}
json_return_and_die($ret);
}
}
function api_channel_stream($type) {
if(api_user() === false) {
logger('api_channel_stream: no user');
return false;
}
$channel = channelx_by_n(api_user());
if(! $channel)
return false;
if($_SERVER['REQUEST_METHOD'] == 'POST') {
json_return_and_die(post_activity_item($_REQUEST));
}
else {
// fetch stream
$mindate = (($_REQUEST['mindate']) ? datetime_convert('UTC','UTC',$_REQUEST['mindate']) : '');
if(! $mindate)
$mindate = datetime_convert('UTC','UTC', 'now - 14 days');
json_return_and_die(zot_feed($channel['channel_id'],$channel['channel_hash'],[ 'mindate' => $mindate ]));
}
}
@@ -237,8 +283,8 @@
}
if($r) {
$x = q("select * from group_member left join xchan on group_member.xchan = xchan.xchan_hash
left join abook on abook_xchan = xchan_hash where gid = %d",
$x = q("select * from group_member left join abook on abook_xchan = xchan and abook_channel = group_member.uid left join xchan on group_member.xchan = xchan.xchan_hash
where gid = %d",
intval($r[0]['id'])
);
json_return_and_die($x);
+4 -2
View File
@@ -149,16 +149,18 @@ function markdown_to_bb($s, $use_zrl = false) {
$s = html2bbcode($s);
$s = preg_replace("/\[([uz])rl=(.*?)\]\[\/[uz]rl\]/ism",'[$1rl=$2]$2[/$1rl]',$s);
// protect the recycle symbol from turning into a tag, but without unescaping angles and naked ampersands
$s = str_replace('♲',html_entity_decode('♲',ENT_QUOTES,'UTF-8'),$s);
// Convert everything that looks like a link to a link
if($use_zrl) {
$s = str_replace(array('[img','/img]'),array('[zmg','/zmg]'),$s);
$s = preg_replace("/([^\]\=]|^)(https?\:\/\/)([a-zA-Z0-9\:\/\-\?\&\;\.\=\_\~\#\%\$\!\+\,]+)/ism", '$1[zrl=$2$3]$2$3[/zrl]',$s);
$s = preg_replace("/([^\]\=]|^)(https?\:\/\/)([a-zA-Z0-9\:\/\-\?\&\;\.\=\_\~\#\%\$\!\+\,\(\)]+)/ism", '$1[zrl=$2$3]$2$3[/zrl]',$s);
}
else {
$s = preg_replace("/([^\]\=]|^)(https?\:\/\/)([a-zA-Z0-9\:\/\-\?\&\;\.\=\_\~\#\%\$\!\+\,]+)/ism", '$1[url=$2$3]$2$3[/url]',$s);
$s = preg_replace("/([^\]\=]|^)(https?\:\/\/)([a-zA-Z0-9\:\/\-\?\&\;\.\=\_\~\#\%\$\!\+\,\(\)]+)/ism", '$1[url=$2$3]$2$3[/url]',$s);
}
// remove duplicate adjacent code tags
+2 -2
View File
@@ -826,12 +826,12 @@ function bbcode($Text, $preserve_nl = false, $tryoembed = true, $cache = false)
// Check for table of content without params
while(strpos($Text,'[toc]') !== false) {
$toc_id = 'toc-' . random_string(10);
$Text = preg_replace("/\[toc\]/ism", '<strong>' . t('Contents:') . '</strong><ul id="' . $toc_id . '" class="toc" data-toc=".section-content-wrapper"></ul><script>$("#' . $toc_id . '").toc();</script>', $Text, 1);
$Text = preg_replace("/\[toc\]/ism", '<ul id="' . $toc_id . '" class="toc" data-toc=".section-content-wrapper"></ul><script>$("#' . $toc_id . '").toc();</script>', $Text, 1);
}
// Check for table of content with params
while(strpos($Text,'[toc') !== false) {
$toc_id = 'toc-' . random_string(10);
$Text = preg_replace("/\[toc([^\]]+?)\]/ism", '<strong>' . t('Contents:') . '</strong><ul id="' . $toc_id . '" class="toc"$1></ul><script>$("#' . $toc_id . '").toc();</script>', $Text, 1);
$Text = preg_replace("/\[toc([^\]]+?)\]/ism", '<ul id="' . $toc_id . '" class="toc"$1></ul><script>$("#' . $toc_id . '").toc();</script>', $Text, 1);
}
// Check for centered text
if (strpos($Text,'[/center]') !== false) {
+12 -12
View File
@@ -35,8 +35,8 @@ function load_config($family) {
Zlib\Config::Load($family);
}
function get_config($family, $key) {
return Zlib\Config::Get($family,$key);
function get_config($family, $key, $default = false) {
return Zlib\Config::Get($family,$key,$default);
}
function set_config($family, $key, $value) {
@@ -51,8 +51,8 @@ function load_pconfig($uid) {
Zlib\PConfig::Load($uid);
}
function get_pconfig($uid, $family, $key, $instore = false) {
return Zlib\PConfig::Get($uid,$family,$key,$instore = false);
function get_pconfig($uid, $family, $key, $default = false) {
return Zlib\PConfig::Get($uid,$family,$key,$default);
}
function set_pconfig($uid, $family, $key, $value) {
@@ -67,8 +67,8 @@ function load_xconfig($xchan) {
Zlib\XConfig::Load($xchan);
}
function get_xconfig($xchan, $family, $key) {
return Zlib\XConfig::Get($xchan,$family,$key);
function get_xconfig($xchan, $family, $key, $default = false) {
return Zlib\XConfig::Get($xchan,$family,$key, $default);
}
function set_xconfig($xchan, $family, $key, $value) {
@@ -83,8 +83,8 @@ function load_aconfig($account_id) {
Zlib\AConfig::Load($account_id);
}
function get_aconfig($account_id, $family, $key) {
return Zlib\AConfig::Get($account_id, $family, $key);
function get_aconfig($account_id, $family, $key, $default = false) {
return Zlib\AConfig::Get($account_id, $family, $key, $default);
}
function set_aconfig($account_id, $family, $key, $value) {
@@ -99,8 +99,8 @@ function load_abconfig($chan, $xhash, $family = '') {
return Zlib\AbConfig::Load($chan,$xhash,$family);
}
function get_abconfig($chan,$xhash,$family,$key) {
return Zlib\AbConfig::Get($chan,$xhash,$family,$key);
function get_abconfig($chan,$xhash,$family,$key, $default = false) {
return Zlib\AbConfig::Get($chan,$xhash,$family,$key, $default);
}
function set_abconfig($chan,$xhash,$family,$key,$value) {
@@ -115,8 +115,8 @@ function load_iconfig(&$item) {
Zlib\IConfig::Load($item);
}
function get_iconfig(&$item, $family, $key) {
return Zlib\IConfig::Get($item, $family, $key);
function get_iconfig(&$item, $family, $key, $default = false) {
return Zlib\IConfig::Get($item, $family, $key, $default);
}
function set_iconfig(&$item, $family, $key, $value, $sharing = false) {
+9 -13
View File
@@ -3980,8 +3980,8 @@ function items_fetch($arr,$channel = null,$observer_hash = null,$client_mode = C
$sql_nets .= "( abook.abook_closeness >= " . intval($arr['cmin']) . " ";
$sql_nets .= " AND abook.abook_closeness <= " . intval($arr['cmax']) . " ) ";
/** @fixme dead code, $cmax is undefined */
if ($cmax == 99)
if ($arr['cmax'] == 99)
$sql_nets .= " OR abook.abook_closeness IS NULL ) ";
}
}
@@ -4116,25 +4116,21 @@ function webpage_to_namespace($webpage) {
function update_remote_id($channel,$post_id,$webpage,$pagetitle,$namespace,$remote_id,$mid) {
$page_type = '';
if(! $post_id)
return;
if($webpage == ITEM_TYPE_WEBPAGE)
$page_type = 'WEBPAGE';
elseif($webpage == ITEM_TYPE_BLOCK)
$page_type = 'BUILDBLOCK';
elseif($webpage == ITEM_TYPE_PDL)
$page_type = 'PDL';
elseif($webpage == ITEM_TYPE_DOC)
$page_type = 'docfile';
elseif($namespace && $remote_id) {
$page_type = webpage_to_namespace($webpage);
if($page_type == 'unknown' && $namespace && $remote_id) {
$page_type = $namespace;
$pagetitle = $remote_id;
}
else {
$page_type = '';
}
if($page_type) {
// store page info as an alternate message_id so we can access it via
// https://sitename/page/$channelname/$pagetitle
// if no pagetitle was given or it couldn't be transliterated into a url, use the first
+1 -1
View File
@@ -19,7 +19,7 @@ function wiki_list($channel, $observer_hash) {
$w['htmlName'] = get_iconfig($w, 'wiki', 'htmlName');
$w['urlName'] = get_iconfig($w, 'wiki', 'urlName');
$w['path'] = get_iconfig($w, 'wiki', 'path');
$w['path'] = get_iconfig($w, 'wiki', 'mimeType');
$w['mimeType'] = get_iconfig($w, 'wiki', 'mimeType');
}
}
// TODO: query db for wikis the observer can access. Return with two lists, for read and write access
+1 -1
View File
@@ -4179,7 +4179,7 @@ function update_hub_connected($hub,$sitekey = '') {
dbesc($sitekey)
);
if(intval($hub['hubloc_orphancheck'])) {
q("update hubloc set hubloc_orhpancheck = 0 where hubloc_id = %d and hubloc_sitekey = '%s' ",
q("update hubloc set hubloc_orphancheck = 0 where hubloc_id = %d and hubloc_sitekey = '%s' ",
intval($hub['hubloc_id']),
dbesc($sitekey)
);