Merge branch 'dev'

This commit is contained in:
zotlabs 2019-04-07 18:06:44 -07:00
commit 9577e1d3af
29 changed files with 337 additions and 244 deletions

View file

@ -173,10 +173,10 @@ class PermissionRoles {
'forum_moderated' => t('Group - Moderated')
],
// t('Collection') => [
// 'collection' => t('Collection - Normal'),
// 'collection_restricted' => t('Collection - Restricted')
// ],
t('Collection') => [
'collection' => t('Collection - Normal'),
'collection_restricted' => t('Collection - Restricted')
],
t('Feed Republish') => [
'feed' => t('Feed Republish')

View file

@ -424,6 +424,10 @@ class Activity {
$ret[] = [ 'ttype' => TERM_HASHTAG, 'url' => $t['href'], 'term' => escape_tags((substr($t['name'],0,1) === '#') ? substr($t['name'],1) : $t['name']) ];
break;
case 'topicalCollection':
$ret[] = [ 'ttype' => TERM_PCATEGORY, 'url' => $t['href'], 'term' => escape_tags($t['name']) ];
break;
case 'Mention':
$mention_type = substr($t['name'],0,1);
if($mention_type === '!') {
@ -462,6 +466,12 @@ class Activity {
}
break;
case TERM_PCATEGORY:
if($t['url'] && $t['term']) {
$ret[] = [ 'type' => 'topicalCollection', 'href' => $t['url'], 'name' => $t['term'] ];
}
break;
case TERM_FORUM:
$term = self::lookup_term_addr($t['url'],$t['term']);
$ret[] = [ 'type' => 'Mention', 'href' => $t['url'], 'name' => '!' . (($term) ? $term : $t['term']) ];

View file

@ -20,7 +20,7 @@ class Connect {
* This function does NOT send sync packets to clones. The caller is responsible for doing this
*/
static function connect($channel,$url) {
static function connect($channel, $url, $sub_channel = false) {
$uid = $channel['channel_id'];
@ -188,8 +188,20 @@ class Connect {
$p = Permissions::connect_perms($uid);
$my_perms = Permissions::serialise($p['perms']);
// parent channels have unencumbered write permission
if ($sub_channel) {
$p['perms']['post_wall'] = 1;
$p['perms']['post_comments'] = 1;
$p['perms']['write_storage'] = 1;
$p['perms']['post_like'] = 1;
$p['perms']['delegate'] = 0;
$p['perms']['moderated'] = 0;
}
$my_perms = Permissions::serialise($p['perms']);
$profile_assign = get_pconfig($uid,'system','profile_assign','');

View file

@ -7,6 +7,7 @@ namespace Zotlabs\Lib;
*
*/
use App;
use Zotlabs\Web\HTTPSig;
use Zotlabs\Access\Permissions;
use Zotlabs\Access\PermissionLimits;
@ -389,6 +390,22 @@ class Libzot {
$closeness = get_pconfig($channel['channel_id'],'system','new_abook_closeness',80);
// check if it is a sub-channel (collection) and auto-friend if it is
$is_collection = false;
$cl = q("select channel_id from channel where channel_hash = '%s' and channel_parent = '%s' and channel_account_id = %d limit 1",
dbesc($x['hash']),
dbesc($channel['channel_hash']),
intval($channel['channel_account_id'])
);
if($cl) {
$is_collection = true;
$automatic = true;
$closeness = 10;
}
$y = abook_store_lowlevel(
[
'abook_account' => intval($channel['channel_account_id']),
@ -417,14 +434,17 @@ class Libzot {
if($new_connection) {
if(! Permissions::PermsCompare($new_perms,$previous_perms))
Master::Summon([ 'Notifier', 'permissions_create', $new_connection[0]['abook_id'] ]);
Enotify::submit(
[
'type' => NOTIFY_INTRO,
'from_xchan' => $x['hash'],
'to_xchan' => $channel['channel_hash'],
'link' => z_root() . '/connedit/' . $new_connection[0]['abook_id']
]
);
if(! $is_collection) {
Enotify::submit(
[
'type' => NOTIFY_INTRO,
'from_xchan' => $x['hash'],
'to_xchan' => $channel['channel_hash'],
'link' => z_root() . '/connedit/' . $new_connection[0]['abook_id']
]
);
}
if(intval($permissions['view_stream'])) {
if(intval(get_pconfig($channel['channel_id'],'perm_limits','send_stream') & PERMS_PENDING)
@ -1437,6 +1457,20 @@ class Libzot {
}
}
}
if($tag['type'] === 'topicalCollection' && strpos($tag['name'],App::get_hostname())) {
$address = substr($tag['name'],0,strpos($tag['name'],'@'));
if($address) {
$z = q("select channel_hash as hash from channel where channel_address = '%s'
and channel_hash != '%s' and channel_removed = 0 limit 1",
dbesc($address),
dbesc($msg['sender'])
);
if($z) {
$r[] = $z[0]['hash'];
}
}
}
}
}
}

View file

@ -303,6 +303,22 @@ class Queue {
logger('returned_json: ' . json_encode($result,JSON_PRETTY_PRINT|JSON_UNESCAPED_SLASHES), LOGGER_DATA);
logger('deliver: local zot delivery succeeded to ' . $outq['outq_posturl']);
Libzot::process_response($outq['outq_posturl'],[ 'success' => true, 'body' => json_encode($result) ], $outq);
if(! $immediate) {
$x = q("select outq_hash from outq where outq_posturl = '%s' and outq_delivered = 0",
dbesc($outq['outq_posturl'])
);
$piled_up = array();
if($x) {
foreach($x as $xx) {
$piled_up[] = $xx['outq_hash'];
}
}
if($piled_up) {
do_delivery($piled_up,true);
}
}
}
else {
logger('remote');

View file

@ -122,7 +122,7 @@ class Acl extends \Zotlabs\Web\Controller {
"name" => t('Profile','acl') . ' ' . $rv['profile_name'],
"id" => 'vp' . $rv['id'],
"xid" => 'vp.' . $rv['profile_guid'],
"uids" => Zgroup::members_profile_xchan(local_channel(), $rv['id']),
"uids" => AccessList::members_profile_xchan(local_channel(), $rv['id']),
"link" => ''
);
}

View file

@ -18,7 +18,8 @@ class Apschema extends \Zotlabs\Web\Controller {
'conversation' => 'ostatus:conversation',
'sensitive' => 'as:sensitive',
'inheritPrivacy' => 'as:inheritPrivacy',
'commentPolicy' => 'as:commentPolicy'
'commentPolicy' => 'as:commentPolicy',
'topicalCollection' => 'as:topicalCollection'
]
];

View file

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

View file

@ -53,18 +53,27 @@ class Editpost extends \Zotlabs\Web\Controller {
$channel = \App::get_channel();
$category = '';
$collections = [];
$catsenabled = ((Apps::system_app_installed($owner_uid,'Categories')) ? 'categories' : '');
if ($catsenabled){
$itm = fetch_post_tags($itm);
$cats = get_terms_oftype($itm[0]['term'], TERM_CATEGORY);
foreach ($cats as $cat) {
if (strlen($category))
$category .= ', ';
$category .= $cat['term'];
}
$itm = fetch_post_tags($itm);
if($catsenabled) {
$cats = get_terms_oftype($itm[0]['term'], TERM_CATEGORY);
if($cats) {
foreach ($cats as $cat) {
if (strlen($category))
$category .= ', ';
$category .= $cat['term'];
}
}
}
$clcts = get_terms_oftype($itm[0]['term'], TERM_PCATEGORY);
if($clcts) {
foreach ($clcts as $clct) {
$collections[] = $clct['term'];
}
}
if($itm[0]['attach']) {
@ -98,6 +107,8 @@ class Editpost extends \Zotlabs\Web\Controller {
'showacl' => false,
'profile_uid' => $owner_uid,
'catsenabled' => $catsenabled,
'collections' => $collections,
'jotnets' => true,
'hide_expire' => true,
'bbcode' => true
);

View file

@ -415,6 +415,25 @@ class Item extends Controller {
$pagetitle = strtolower(\URLify::transliterate($pagetitle));
}
if (array_key_exists('collections',$_REQUEST) && is_array($_REQUEST['collections']) && count($_REQUEST['collections'])) {
foreach ($_REQUEST['collections'] as $clct) {
$r = q("select xchan_url, xchan_hash from xchan left join hubloc on hubloc_hash = xchan_hash where hubloc_addr = '%s' limit 1",
dbesc($clct)
);
if ($r) {
if (! isset($post_tags)) {
$post_tags = [];
}
$post_tags[] = [
'uid' => $profile_uid,
'ttype' => TERM_PCATEGORY,
'otype' => TERM_OBJ_POST,
'term' => $clct,
'url' => $r[0]['xchan_url']
];
}
}
}
$item_flags = $item_restrict = 0;
$expires = NULL_DATE;
@ -841,7 +860,9 @@ class Item extends Controller {
// Set permissions based on tag replacements
set_linkified_perms($results, $str_contact_allow, $str_group_allow, $profile_uid, $parent_item, $private);
$post_tags = array();
if (! isset($post_tags)) {
$post_tags = [];
}
foreach($results as $result) {
$success = $result['success'];
if($success['replaced']) {
@ -933,7 +954,10 @@ class Item extends Controller {
// BBCODE end alert
if(strlen($categories)) {
if (! isset($post_tags)) {
$post_tags = [];
}
$cats = explode(',',$categories);
foreach($cats as $cat) {
@ -968,6 +992,10 @@ class Item extends Controller {
intval(TERM_COMMUNITYTAG)
);
if($t) {
if (! isset($post_tags)) {
$post_tags = [];
}
foreach($t as $t1) {
$post_tags[] = array(
'uid' => $profile_uid,

View file

@ -11,7 +11,7 @@ class Manage extends \Zotlabs\Web\Controller {
return;
}
nav_set_selected('Channel Manager');
nav_set_selected('Channels');
require_once('include/security.php');
@ -60,7 +60,8 @@ class Manage extends \Zotlabs\Web\Controller {
$channels[$x]['link'] = 'manage/' . intval($channels[$x]['channel_id']);
$channels[$x]['default'] = (($channels[$x]['channel_id'] == $account['account_default_channel']) ? "1" : '');
$channels[$x]['default_links'] = '1';
$channels[$x]['collections_label'] = t('Collection');
$channels[$x]['forum_label'] = t('Group');
$c = q("SELECT id, item_wall FROM item
WHERE item_unseen = 1 and uid = %d " . item_normal(),
@ -161,6 +162,9 @@ class Manage extends \Zotlabs\Web\Controller {
. '&delegate=' . urlencode($delegates[$x]['xchan_addr']);
$delegates[$x]['channel_name'] = $delegates[$x]['xchan_name'];
$delegates[$x]['delegate'] = 1;
$delegates[$x]['collections_label'] = t('Collection');
$delegates[$x]['forum_label'] = t('Group');
}
}
else {
@ -168,7 +172,7 @@ class Manage extends \Zotlabs\Web\Controller {
}
$o = replace_macros(get_markup_template('channels.tpl'), array(
'$header' => t('Channel Manager'),
'$header' => t('Channels'),
'$msg_selected' => t('Current Channel'),
'$selected' => local_channel(),
'$desc' => t('Switch to one of your channels by selecting it.'),

View file

@ -160,9 +160,7 @@ class Network extends \Zotlabs\Web\Controller {
goaway(z_root() . '/network');
// NOTREACHED
}
if($pf)
$deftag = '!{' . (($cid_r[0]['xchan_addr']) ? $cid_r[0]['xchan_addr'] : $cid_r[0]['xchan_url']) . '}';
else
if(! $pf)
$def_acl = [ 'allow_cid' => '<' . $cid_r[0]['abook_xchan'] . '>', 'allow_gid' => '', 'deny_cid' => '', 'deny_gid' => '' ];
}

View file

@ -35,7 +35,7 @@ class Pconfig extends Controller {
}
if(strpos($k,'password') !== false) {
$v = z_obscure($v);
$v = obscurify($v);
}
set_pconfig(local_channel(),$cat,$k,$v);
@ -106,7 +106,7 @@ class Pconfig extends Controller {
$v = get_pconfig(local_channel(),$cat,$k);
if(strpos($k,'password') !== false)
$v = z_unobscure($v);
$v = unobscurify($v);
$o .= '<input type="hidden" name="cat" value="' . $cat . '" />';
$o .= '<input type="hidden" name="k" value="' . $k . '" />';

View file

@ -2,13 +2,15 @@
namespace Zotlabs\Module\Settings;
use App;
use Zotlabs\Access\Permissions;
use Zotlabs\Access\PermissionLimits;
class Tokens {
function post() {
$channel = \App::get_channel();
$channel = App::get_channel();
check_form_security_token_redirectOnErr('/settings/tokens', 'settings_tokens');
$token_errs = 0;
@ -60,7 +62,7 @@ class Tokens {
$atoken_xchan = substr($channel['channel_hash'],0,16) . '.' . $name;
$all_perms = \Zotlabs\Access\Permissions::Perms();
$all_perms = Permissions::Perms();
$p = EMPTY_STR;
@ -117,7 +119,7 @@ class Tokens {
$desc2 = t('You may also provide <em>dropbox</em> style access links to friends and associates by adding the Login Password to any specific site URL as shown. Examples:');
$global_perms = \Zotlabs\Access\Permissions::Perms();
$global_perms = Permissions::Perms();
$existing = get_all_perms(local_channel(),(($atoken_xchan) ? $atoken_xchan : EMPTY_STR));
$theirs = get_abconfig(local_channel(),$atoken_xchan,'system','their_perms',EMPTY_STR);
@ -133,7 +135,7 @@ class Tokens {
foreach($global_perms as $k => $v) {
$thisperm = ((in_array($k,$my_perms)) ? 1 : 0);
$checkinherited = \Zotlabs\Access\PermissionLimits::Get(local_channel(),$k);
$checkinherited = PermissionLimits::Get(local_channel(),$k);
// For auto permissions (when $self is true) we don't want to look at existing
// permissions because they are enabled for the channel owner
@ -151,6 +153,7 @@ class Tokens {
'$desc2' => $desc2,
'$tokens' => $t,
'$atoken' => $atoken,
'$atoken_xchan' => $atoken_chan,
'$url1' => z_root() . '/channel/' . $channel['channel_address'],
'$url2' => z_root() . '/photos/' . $channel['channel_address'],
'$name' => array('name', t('Login Name') . ' <span class="required">*</span>', (($atoken) ? $atoken['atoken_name'] : ''),''),

View file

@ -112,7 +112,7 @@ class Activity_filter {
$forum_active = ((x($_GET,'pf') && $_GET['cid'] == $f['abook_id']) ? 'active' : '');
$filter_active = 'forums';
}
$fsub[] = [
$csub[] = [
'label' => $f['xchan_name'],
'img' => $f['xchan_photo_s'],
'url' => z_root() . '/' . $cmd . '/?f=&pf=1&cid=' . $f['abook_id'],
@ -131,7 +131,7 @@ class Activity_filter {
'url' => '#',
'sel' => (($filter_active == 'collections') ? true : false),
'title' => t('Show collections'),
'sub' => $fsub
'sub' => $csub
];
}

View file

@ -448,7 +448,7 @@ define ( 'NAMESPACE_YMEDIA', 'http://search.yahoo.com/mrss/' );
define ( 'ACTIVITYSTREAMS_JSONLD_REV', 'https://www.w3.org/ns/activitystreams' );
define ( 'ZOT_APSCHEMA_REV', '/apschema/v1.4' );
define ( 'ZOT_APSCHEMA_REV', '/apschema/v1.5' );
/**
* activity stream defines
*/

View file

@ -464,7 +464,7 @@ function create_identity($arr) {
if($parent_channel_hash) {
$ch = channelx_by_hash($parent_channel_hash);
if($ch) {
connect_and_sync($ret['channel'],channel_reddress($ch));
connect_and_sync($ret['channel'],channel_reddress($ch), true);
}
}
@ -513,13 +513,13 @@ function create_identity($arr) {
function connect_and_sync($channel,$address) {
function connect_and_sync($channel,$address, $sub_channel = false) {
if((! $channel) || (! $address)) {
return false;
}
$f = Connect::connect($channel,$address);
$f = Connect::connect($channel,$address, $sub_channel);
if($f['success']) {
$clone = [];
foreach($f['abook'] as $k => $v) {

View file

@ -1335,7 +1335,12 @@ function z_status_editor($a, $x, $popup = false) {
$jotplugins = '';
call_hooks('jot_tool', $jotplugins);
$jotnets = '';
$jotcoll = jot_collections($c,((array_key_exists('collections',$x)) ? $x['collections'] : []));
if(! $jotcoll) {
$jotcoll = EMPTY_STR;
}
$jotnets = EMPTY_STR;
if(x($x,'jotnets')) {
call_hooks('jot_networks', $jotnets);
}
@ -1402,8 +1407,10 @@ function z_status_editor($a, $x, $popup = false) {
'$preview' => $preview,
'$source' => ((x($x, 'source')) ? $x['source'] : ''),
'$jotplugins' => $jotplugins,
'$jotcoll' => $jotcoll,
'$jotnets' => $jotnets,
'$jotnets_label' => t('Other networks and post services'),
'$jotcoll_label' => t('Collections'),
'$defexpire' => $defexpire,
'$feature_expire' => $feature_expire,
'$expires' => t('Set expiration date'),
@ -1417,6 +1424,7 @@ function z_status_editor($a, $x, $popup = false) {
'$expiryModalCANCEL' => t('Cancel'),
'$linkModalOK' => t('OK'),
'$linkModalCANCEL' => t('Cancel'),
'$close' => t('Close'),
'$expanded' => ((x($x, 'expanded')) ? $x['expanded'] : false),
'$bbcode' => ((x($x, 'bbcode')) ? $x['bbcode'] : false),
'$parent' => ((array_key_exists('parent',$x) && $x['parent']) ? $x['parent'] : 0),
@ -1434,6 +1442,31 @@ function z_status_editor($a, $x, $popup = false) {
}
function jot_collections($channel,$collections) {
$output = EMPTY_STR;
$r = q("select channel_address, channel_name from channel where channel_parent = '%s' and channel_removed = 0 order by channel_name asc",
dbesc($channel['channel_hash'])
);
if(! $r) {
return $output;
}
$size = ((count($r) < 4) ? count($r) : 4);
$output .= t('Post to Collections');
$output .= '<select size="' . $size . '" class="form-control" name="collections[]" multiple>';
foreach($r as $rv) {
$selected = ((is_array($collections) && in_array(channel_reddress($rv),$collections)) ? " selected " : "");
$output .= '<option value="' . channel_reddress($rv) . '"' . $selected . '>' . $rv['channel_name'] . '</option>';
}
$output .= '</select>';
return $output;
}
function get_item_children($arr, $parent) {
$children = array();
foreach($arr as $item) {

View file

@ -2550,19 +2550,18 @@ function tag_deliver($uid, $item_id) {
* Now we've got those out of the way. Let's see if this is a post that's tagged for re-delivery
*/
$terms = array_merge(get_terms_oftype($item['term'],TERM_MENTION),get_terms_oftype($item['term'],TERM_PCATEGORY));
$terms = get_terms_oftype($item['term'],TERM_MENTION);
$pterms = get_terms_oftype($item['term'],TERM_PCATEGORY);
if($terms)
logger('Post mentions: ' . print_r($terms,true), LOGGER_DATA);
$max_forums = get_config('system','max_tagged_forums',2);
$matched_forums = 0;
if($pterms)
logger('Post collections: ' . print_r($pterms,true), LOGGER_DATA);
$link = normalise_link($u[0]['xchan_url']);
if($terms) {
foreach($terms as $term) {
@ -2585,7 +2584,6 @@ function tag_deliver($uid, $item_id) {
$body = preg_replace('/\[share(.*?)\[\/share\]/','',$item['body']);
$tagged = false;
$ptagged = false;
$matches = array();
$pattern = '/[\!@]\!?\[[uz]rl\=' . preg_quote($term['url'],'/') . '\]' . preg_quote($term['term'],'/') . '\[\/[uz]rl\]/';
@ -2597,8 +2595,8 @@ function tag_deliver($uid, $item_id) {
$tagged = true;
if(! ($tagged || $ptagged)) {
logger('Mention was in a reshare or exceeded max_tagged_forums - ignoring');
if(! $tagged ) {
logger('Mention was in a reshare - ignoring');
continue;
}
@ -2630,31 +2628,32 @@ function tag_deliver($uid, $item_id) {
'otype' => 'item'
));
// Just a normal tag?
}
}
if($pterms) {
foreach($pterms as $term) {
if(! $ptagged) {
logger('Not a ptag', LOGGER_DEBUG);
$ptagged = false;
if(! link_compare($term['url'],$link)) {
continue;
}
$ptagged = true;
logger('Collection post found for ' . $u[0]['channel_name']);
// ptagged - keep going, next check permissions
// @fixme
if(! perm_is_allowed($uid,$item['author_xchan'],'write_collection')) {
if((! perm_is_allowed($uid,$item['author_xchan'],'write_collection')) && ($item['author_xchan'] !== $u[0]['channel_parent'])) {
logger('tag_delivery denied for uid ' . $uid . ' and xchan ' . $item['author_xchan']);
continue;
}
if(! $mention) {
logger('No mention for ' . $u[0]['channel_name']);
continue;
}
// tgroup delivery - setup a second delivery chain
// prevent delivery looping - only proceed
// if the message originated elsewhere and is a top-level post
if(intval($item['item_wall']) || intval($item['item_origin']) || (! intval($item['item_thread_top'])) || ($item['id'] != $item['parent'])) {
logger('Item was local or a comment. rejected.');
continue;
@ -2773,9 +2772,6 @@ function tgroup_check($uid, $item) {
if($r)
return true;
if(! perm_is_allowed($uid,$item['author_xchan'],'tag_deliver'))
return false;
$u = q("select * from channel left join xchan on channel_hash = xchan_hash where channel_id = %d limit 1",
intval($uid)
);
@ -2783,14 +2779,16 @@ function tgroup_check($uid, $item) {
if(! $u)
return false;
if((! perm_is_allowed($uid,$item['author_xchan'],'write_collection')) && ($item['author_xchan'] !== $u[0]['channel_parent'])) {
logger('tgroup_check delivery denied for uid ' . $uid . ' and xchan ' . $item['author_xchan']);
return false;
}
$terms = array_merge(get_terms_oftype($item['term'],TERM_MENTION),get_terms_oftype($item['term'],TERM_PCATEGORY));
$terms = get_terms_oftype($item['term'],TERM_PCATEGORY);
if($terms)
logger('tgroup_check: post mentions: ' . print_r($terms,true), LOGGER_DATA);
$max_forums = get_config('system','max_tagged_forums',2);
$matched_forums = 0;
$link = normalise_link($u[0]['xchan_url']);
@ -2800,106 +2798,13 @@ function tgroup_check($uid, $item) {
continue;
}
$mention = true;
logger('tgroup_check: mention found for ' . $u[0]['channel_name']);
// At this point we've determined that the person receiving this post was mentioned in it.
// Now let's check if this mention was inside a reshare so we don't spam a forum
// note: $term has been set to the matching term
$body = preg_replace('/\[share(.*?)\[\/share\]/','',$item['body']);
$forumpattern = '/\!\!?\[[uz]rl\=([^\]]*?)\]((?:.(?!\[[uz]rl\=))*?)\[\/[uz]rl\]/';
$found = false;
$matches = array();
if(preg_match_all($forumpattern,$body,$matches,PREG_SET_ORDER)) {
foreach($matches as $match) {
$matched_forums ++;
if($term['url'] === $match[1] && intval($term['ttype']) === TERM_FORUM) {
if($matched_forums <= $max_forums) {
$found = true;
break;
}
logger('forum ' . $term['term'] . ' exceeded max_tagged_forums - ignoring');
}
}
}
$forumpattern = '/\[[uz]rl\=([^\]]*?)\]\!((?:.(?!\[[uz]rl\=))*?)\[\/[uz]rl\]/';
$matches = array();
if(preg_match_all($forumpattern,$body,$matches,PREG_SET_ORDER)) {
foreach($matches as $match) {
$matched_forums ++;
if($term['url'] === $match[1] && intval($term['ttype']) === TERM_FORUM) {
if($matched_forums <= $max_forums) {
$found = true;
break;
}
logger('forum ' . $term['term'] . ' exceeded max_tagged_forums - ignoring');
}
}
}
if(intval(get_pconfig($uid,'system','anymention'))) {
// allow @mentions for forums
$forumpattern = '/\@\!?\[[uz]rl\=([^\]]*?)\]((?:.(?!\[[uz]rl\=))*?)\[\/[uz]rl\]/';
$matches = array();
if(preg_match_all($forumpattern,$body,$matches,PREG_SET_ORDER)) {
foreach($matches as $match) {
$matched_forums ++;
if($term['url'] === $match[1] && intval($term['ttype']) === TERM_MENTION) {
if($matched_forums <= $max_forums) {
$found = true;
break;
}
logger('forum ' . $term['term'] . ' exceeded max_tagged_forums - ignoring');
}
}
}
$forumpattern = '/\[[uz]rl\=([^\]]*?)\]\@((?:.(?!\[[uz]rl\=))*?)\[\/[uz]rl\]/';
$matches = array();
if(preg_match_all($forumpattern,$body,$matches,PREG_SET_ORDER)) {
foreach($matches as $match) {
$matched_forums ++;
if($term['url'] === $match[1] && intval($term['ttype']) === TERM_MENTION) {
if($matched_forums <= $max_forums) {
$found = true;
break;
}
logger('forum ' . $term['term'] . ' exceeded max_tagged_forums - ignoring');
}
}
}
}
if(! $found) {
logger('tgroup_check: mention was in a reshare or exceeded max_tagged_forums - ignoring');
continue;
}
return true;
}
}
return false;
}
/**

View file

@ -84,7 +84,7 @@ function nav($template = 'default') {
if(local_channel()) {
if(! $_SESSION['delegate']) {
$nav['manage'] = array('manage', t('Channel Manager'), "", t('Manage your channels'),'manage_nav_btn');
$nav['manage'] = array('manage', t('Channels'), "", t('Manage your channels'),'manage_nav_btn');
}
$nav['group'] = array('alist', t('Access Lists'),"", t('Manage your access lists'),'group_nav_btn');

View file

@ -381,7 +381,7 @@ function oembed_iframe($src,$width,$height) {
// Make sure any children are sandboxed within their own iframe.
return '<iframe ' . $scroll . 'height="' . $height . '" width="' . $width . '" src="' . $s . '" allowfullscreen frameborder="no" >'
return '<iframe ' . ' style="max-width: 100%;" ' . $scroll . 'height="' . $height . '" width="' . $width . '" src="' . $s . '" allowfullscreen frameborder="no" >'
. t('Embedded content') . '</iframe>';
}

View file

@ -75,7 +75,8 @@ function get_all_perms($uid, $observer_xchan, $check_siteblock = true, $default_
}
if(! $abook_checked) {
$x = q("select abook_blocked, abook_ignored, abook_pending, xchan_network from abook left join xchan on abook_xchan = xchan_hash
$x = q("select abook_blocked, abook_ignored, abook_pending, xchan_network from abook
left join xchan on abook_xchan = xchan_hash
where abook_channel = %d and abook_xchan = '%s' and abook_self = 0 limit 1",
intval($uid),
dbesc($observer_xchan)
@ -84,18 +85,8 @@ function get_all_perms($uid, $observer_xchan, $check_siteblock = true, $default_
// see if they've got a guest access token; these are treated as connections
$y = atoken_abook($uid,$observer_xchan);
if($y)
$x = array($y);
$x = [ $y ];
if(! $x) {
// not in address book and no guest token, see if they've got an xchan
// these *may* have individual (PERMS_SPECIFIC) permissions, but are not connections
$y = q("select xchan_network from xchan where xchan_hash = '%s' limit 1",
dbesc($observer_xchan)
);
if($y) {
$x = array(pseudo_abook($y[0]));
}
}
}
$abook_checked = true;
@ -204,13 +195,7 @@ function get_all_perms($uid, $observer_xchan, $check_siteblock = true, $default_
// They're a contact, so they have permission
if($channel_perm & PERMS_CONTACTS) {
// it was a fake abook entry, not really a connection
if(array_key_exists('abook_pseudo',$x[0]) && intval($x[0]['abook_pseudo'])) {
$ret[$perm_name] = false;
continue;
}
if($channel_perm & PERMS_CONTACTS) {
$ret[$perm_name] = true;
continue;
}
@ -315,17 +300,8 @@ function perm_is_allowed($uid, $observer_xchan, $permission, $check_siteblock =
// see if they've got a guest access token
$y = atoken_abook($uid,$observer_xchan);
if($y)
$x = array($y);
$x = [ $y ];
if(! $x) {
// not in address book and no guest token, see if they've got an xchan
$y = q("select xchan_network from xchan where xchan_hash = '%s' limit 1",
dbesc($observer_xchan)
);
if($y) {
$x = array(pseudo_abook($y[0]));
}
}
}
$abperms = get_abconfig($uid,$observer_xchan,'system','my_perms','');
@ -360,7 +336,7 @@ function perm_is_allowed($uid, $observer_xchan, $permission, $check_siteblock =
// If we're still here, we have an observer, check the network.
if($channel_perm & PERMS_NETWORK) {
if (($x && $x[0]['xchan_network'] === 'zot6') || ($y && $y[0]['xchan_network'] === 'zot6'))
if ($x && $x[0]['xchan_network'] === 'zot6')
return true;
}
@ -396,10 +372,6 @@ function perm_is_allowed($uid, $observer_xchan, $permission, $check_siteblock =
// They're a contact, so they have permission
if($channel_perm & PERMS_CONTACTS) {
// it was a fake abook entry, not really a connection
if(array_key_exists('abook_pseudo',$x[0]) && intval($x[0]['abook_pseudo'])) {
return false;
}
return true;
}

View file

@ -376,14 +376,21 @@ function pub_tagadelic($net,$site,$limit,$recent,$safemode,$type) {
}
function dir_tagadelic($count = 0, $hub = '') {
function dir_tagadelic($count = 0, $hub = '', $type = 0) {
$count = intval($count);
$sql_extra = EMPTY_STR;
if($type) {
return [];
}
if($hub) {
$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 xtag_hash in (select hubloc_hash from hubloc where hubloc_host = '%s' )
$sql_extra
group by xtag_term order by total desc %s",
dbesc($hub),
((intval($count)) ? "limit $count" : '')
@ -391,6 +398,7 @@ function dir_tagadelic($count = 0, $hub = '') {
}
else {
$r = q("select xtag_term as term, count(xtag_term) as total from xtag where xtag_flags = 0
$sql_extra
group by xtag_term order by total desc %s",
((intval($count)) ? "limit $count" : '')
);

View file

@ -3491,4 +3491,14 @@ function unserialise($x) {
}
$y = ((substr($x,0,5) === 'json:') ? json_decode(substr($x,5),true) : '');
return ((is_array($y)) ? $y : $x);
}
}
function obscurify($s) {
return str_rot47(base64url_encode($s));
}
function unobscurify($s) {
return base64url_decode(str_rot47($s));
}

View file

@ -852,11 +852,12 @@ return array(
'Text_LanguageDetect_ISO639' => $vendorDir . '/pear/text_languagedetect/Text/LanguageDetect/ISO639.php',
'Text_LanguageDetect_Parser' => $vendorDir . '/pear/text_languagedetect/Text/LanguageDetect/Parser.php',
'UploadHandler' => $vendorDir . '/blueimp/jquery-file-upload/server/php/UploadHandler.php',
'Zotlabs\\Access\\AccessList' => $baseDir . '/Zotlabs/Access/AccessList.php',
'Zotlabs\\Access\\AccessControl' => $baseDir . '/Zotlabs/Access/AccessControl.php',
'Zotlabs\\Access\\PermissionLimits' => $baseDir . '/Zotlabs/Access/PermissionLimits.php',
'Zotlabs\\Access\\PermissionRoles' => $baseDir . '/Zotlabs/Access/PermissionRoles.php',
'Zotlabs\\Access\\Permissions' => $baseDir . '/Zotlabs/Access/Permissions.php',
'Zotlabs\\Daemon\\Addon' => $baseDir . '/Zotlabs/Daemon/Addon.php',
'Zotlabs\\Daemon\\Cache_embeds' => $baseDir . '/Zotlabs/Daemon/Cache_embeds.php',
'Zotlabs\\Daemon\\Checksites' => $baseDir . '/Zotlabs/Daemon/Checksites.php',
'Zotlabs\\Daemon\\Cli_suggest' => $baseDir . '/Zotlabs/Daemon/Cli_suggest.php',
'Zotlabs\\Daemon\\Cron' => $baseDir . '/Zotlabs/Daemon/Cron.php',
@ -866,6 +867,7 @@ return array(
'Zotlabs\\Daemon\\CurlAuth' => $baseDir . '/Zotlabs/Daemon/CurlAuth.php',
'Zotlabs\\Daemon\\Deliver' => $baseDir . '/Zotlabs/Daemon/Deliver.php',
'Zotlabs\\Daemon\\Deliver_hooks' => $baseDir . '/Zotlabs/Daemon/Deliver_hooks.php',
'Zotlabs\\Daemon\\Delxitems' => $baseDir . '/Zotlabs/Daemon/Delxitems.php',
'Zotlabs\\Daemon\\Directory' => $baseDir . '/Zotlabs/Daemon/Directory.php',
'Zotlabs\\Daemon\\Expire' => $baseDir . '/Zotlabs/Daemon/Expire.php',
'Zotlabs\\Daemon\\Externals' => $baseDir . '/Zotlabs/Daemon/Externals.php',
@ -889,6 +891,7 @@ return array(
'Zotlabs\\Identity\\ProfilePhoto\\ProfilePhoto' => $baseDir . '/Zotlabs/Identity/ProfilePhoto.php',
'Zotlabs\\Lib\\AConfig' => $baseDir . '/Zotlabs/Lib/AConfig.php',
'Zotlabs\\Lib\\AbConfig' => $baseDir . '/Zotlabs/Lib/AbConfig.php',
'Zotlabs\\Lib\\AccessList' => $baseDir . '/Zotlabs/Lib/AccessList.php',
'Zotlabs\\Lib\\Activity' => $baseDir . '/Zotlabs/Lib/Activity.php',
'Zotlabs\\Lib\\ActivityPub' => $baseDir . '/Zotlabs/Lib/ActivityPub.php',
'Zotlabs\\Lib\\ActivityStreams' => $baseDir . '/Zotlabs/Lib/ActivityStreams.php',
@ -897,15 +900,17 @@ return array(
'Zotlabs\\Lib\\Cache' => $baseDir . '/Zotlabs/Lib/Cache.php',
'Zotlabs\\Lib\\Chatroom' => $baseDir . '/Zotlabs/Lib/Chatroom.php',
'Zotlabs\\Lib\\Config' => $baseDir . '/Zotlabs/Lib/Config.php',
'Zotlabs\\Lib\\Connect' => $baseDir . '/Zotlabs/Lib/Connect.php',
'Zotlabs\\Lib\\Crypto' => $baseDir . '/Zotlabs/Lib/Crypto.php',
'Zotlabs\\Lib\\DB_Upgrade' => $baseDir . '/Zotlabs/Lib/DB_Upgrade.php',
'Zotlabs\\Lib\\DReport' => $baseDir . '/Zotlabs/Lib/DReport.php',
'Zotlabs\\Lib\\Discover' => $baseDir . '/Zotlabs/Lib/Discover.php',
'Zotlabs\\Lib\\Enotify' => $baseDir . '/Zotlabs/Lib/Enotify.php',
'Zotlabs\\Lib\\ExtendedZip' => $baseDir . '/Zotlabs/Lib/ExtendedZip.php',
'Zotlabs\\Lib\\Group' => $baseDir . '/Zotlabs/Lib/Group.php',
'Zotlabs\\Lib\\IConfig' => $baseDir . '/Zotlabs/Lib/IConfig.php',
'Zotlabs\\Lib\\Img_filesize' => $baseDir . '/Zotlabs/Lib/Img_filesize.php',
'Zotlabs\\Lib\\JSalmon' => $baseDir . '/Zotlabs/Lib/JSalmon.php',
'Zotlabs\\Lib\\Keyutils' => $baseDir . '/Zotlabs/Lib/Keyutils.php',
'Zotlabs\\Lib\\LDSignatures' => $baseDir . '/Zotlabs/Lib/LDSignatures.php',
'Zotlabs\\Lib\\Libsync' => $baseDir . '/Zotlabs/Lib/Libsync.php',
'Zotlabs\\Lib\\Libzot' => $baseDir . '/Zotlabs/Lib/Libzot.php',
@ -927,6 +932,7 @@ return array(
'Zotlabs\\Lib\\Verify' => $baseDir . '/Zotlabs/Lib/Verify.php',
'Zotlabs\\Lib\\Webfinger' => $baseDir . '/Zotlabs/Lib/Webfinger.php',
'Zotlabs\\Lib\\XConfig' => $baseDir . '/Zotlabs/Lib/XConfig.php',
'Zotlabs\\Lib\\ZotURL' => $baseDir . '/Zotlabs/Lib/ZotURL.php',
'Zotlabs\\Lib\\Zotfinger' => $baseDir . '/Zotlabs/Lib/Zotfinger.php',
'Zotlabs\\Module\\Acl' => $baseDir . '/Zotlabs/Module/Acl.php',
'Zotlabs\\Module\\Activity' => $baseDir . '/Zotlabs/Module/Activity.php',
@ -944,6 +950,7 @@ return array(
'Zotlabs\\Module\\Admin\\Site' => $baseDir . '/Zotlabs/Module/Admin/Site.php',
'Zotlabs\\Module\\Admin\\Themes' => $baseDir . '/Zotlabs/Module/Admin/Themes.php',
'Zotlabs\\Module\\Affinity' => $baseDir . '/Zotlabs/Module/Affinity.php',
'Zotlabs\\Module\\Alist' => $baseDir . '/Zotlabs/Module/Alist.php',
'Zotlabs\\Module\\Ap_probe' => $baseDir . '/Zotlabs/Module/Ap_probe.php',
'Zotlabs\\Module\\Api' => $baseDir . '/Zotlabs/Module/Api.php',
'Zotlabs\\Module\\Appman' => $baseDir . '/Zotlabs/Module/Appman.php',
@ -954,11 +961,11 @@ return array(
'Zotlabs\\Module\\Authorize' => $baseDir . '/Zotlabs/Module/Authorize.php',
'Zotlabs\\Module\\Block' => $baseDir . '/Zotlabs/Module/Block.php',
'Zotlabs\\Module\\Blocks' => $baseDir . '/Zotlabs/Module/Blocks.php',
'Zotlabs\\Module\\Bookmarks' => $baseDir . '/Zotlabs/Module/Bookmarks.php',
'Zotlabs\\Module\\Branchtopic' => $baseDir . '/Zotlabs/Module/Branchtopic.php',
'Zotlabs\\Module\\Cal' => $baseDir . '/Zotlabs/Module/Cal.php',
'Zotlabs\\Module\\Card_edit' => $baseDir . '/Zotlabs/Module/Card_edit.php',
'Zotlabs\\Module\\Cards' => $baseDir . '/Zotlabs/Module/Cards.php',
'Zotlabs\\Module\\Categories' => $baseDir . '/Zotlabs/Module/Categories.php',
'Zotlabs\\Module\\Cdav' => $baseDir . '/Zotlabs/Module/Cdav.php',
'Zotlabs\\Module\\Changeaddr' => $baseDir . '/Zotlabs/Module/Changeaddr.php',
'Zotlabs\\Module\\Channel' => $baseDir . '/Zotlabs/Module/Channel.php',
@ -972,6 +979,7 @@ return array(
'Zotlabs\\Module\\Connections' => $baseDir . '/Zotlabs/Module/Connections.php',
'Zotlabs\\Module\\Connedit' => $baseDir . '/Zotlabs/Module/Connedit.php',
'Zotlabs\\Module\\Contactgroup' => $baseDir . '/Zotlabs/Module/Contactgroup.php',
'Zotlabs\\Module\\Content_filter' => $baseDir . '/Zotlabs/Module/Content_filter.php',
'Zotlabs\\Module\\Cover_photo' => $baseDir . '/Zotlabs/Module/Cover_photo.php',
'Zotlabs\\Module\\Dav' => $baseDir . '/Zotlabs/Module/Dav.php',
'Zotlabs\\Module\\Defperms' => $baseDir . '/Zotlabs/Module/Defperms.php',
@ -985,9 +993,11 @@ return array(
'Zotlabs\\Module\\Editwebpage' => $baseDir . '/Zotlabs/Module/Editwebpage.php',
'Zotlabs\\Module\\Email_resend' => $baseDir . '/Zotlabs/Module/Email_resend.php',
'Zotlabs\\Module\\Email_validation' => $baseDir . '/Zotlabs/Module/Email_validation.php',
'Zotlabs\\Module\\Embed' => $baseDir . '/Zotlabs/Module/Embed.php',
'Zotlabs\\Module\\Embedphotos' => $baseDir . '/Zotlabs/Module/Embedphotos.php',
'Zotlabs\\Module\\Event' => $baseDir . '/Zotlabs/Module/Event.php',
'Zotlabs\\Module\\Events' => $baseDir . '/Zotlabs/Module/Events.php',
'Zotlabs\\Module\\Expire' => $baseDir . '/Zotlabs/Module/Expire.php',
'Zotlabs\\Module\\Fbrowser' => $baseDir . '/Zotlabs/Module/Fbrowser.php',
'Zotlabs\\Module\\Feed' => $baseDir . '/Zotlabs/Module/Feed.php',
'Zotlabs\\Module\\File_upload' => $baseDir . '/Zotlabs/Module/File_upload.php',
@ -999,17 +1009,16 @@ return array(
'Zotlabs\\Module\\Followers' => $baseDir . '/Zotlabs/Module/Followers.php',
'Zotlabs\\Module\\Following' => $baseDir . '/Zotlabs/Module/Following.php',
'Zotlabs\\Module\\Getfile' => $baseDir . '/Zotlabs/Module/Getfile.php',
'Zotlabs\\Module\\Group' => $baseDir . '/Zotlabs/Module/Group.php',
'Zotlabs\\Module\\Hashtags' => $baseDir . '/Zotlabs/Module/Hashtags.php',
'Zotlabs\\Module\\Hcard' => $baseDir . '/Zotlabs/Module/Hcard.php',
'Zotlabs\\Module\\Help' => $baseDir . '/Zotlabs/Module/Help.php',
'Zotlabs\\Module\\Home' => $baseDir . '/Zotlabs/Module/Home.php',
'Zotlabs\\Module\\Hostxrd' => $baseDir . '/Zotlabs/Module/Hostxrd.php',
'Zotlabs\\Module\\Hq' => $baseDir . '/Zotlabs/Module/Hq.php',
'Zotlabs\\Module\\Id' => $baseDir . '/Zotlabs/Module/Id.php',
'Zotlabs\\Module\\Impel' => $baseDir . '/Zotlabs/Module/Impel.php',
'Zotlabs\\Module\\Import' => $baseDir . '/Zotlabs/Module/Import.php',
'Zotlabs\\Module\\Import_items' => $baseDir . '/Zotlabs/Module/Import_items.php',
'Zotlabs\\Module\\Inbox' => $baseDir . '/Zotlabs/Module/Inbox.php',
'Zotlabs\\Module\\Invite' => $baseDir . '/Zotlabs/Module/Invite.php',
'Zotlabs\\Module\\Item' => $baseDir . '/Zotlabs/Module/Item.php',
'Zotlabs\\Module\\Lang' => $baseDir . '/Zotlabs/Module/Lang.php',
@ -1035,13 +1044,11 @@ return array(
'Zotlabs\\Module\\Notifications' => $baseDir . '/Zotlabs/Module/Notifications.php',
'Zotlabs\\Module\\Notify' => $baseDir . '/Zotlabs/Module/Notify.php',
'Zotlabs\\Module\\Nullbox' => $baseDir . '/Zotlabs/Module/Nullbox.php',
'Zotlabs\\Module\\OAuth2TestVehicle' => $baseDir . '/Zotlabs/Module/Oauth2testvehicle.php',
'Zotlabs\\Module\\Oauthinfo' => $baseDir . '/Zotlabs/Module/Oauthinfo.php',
'Zotlabs\\Module\\Oembed' => $baseDir . '/Zotlabs/Module/Oembed.php',
'Zotlabs\\Module\\Oep' => $baseDir . '/Zotlabs/Module/Oep.php',
'Zotlabs\\Module\\Oexchange' => $baseDir . '/Zotlabs/Module/Oexchange.php',
'Zotlabs\\Module\\Online' => $baseDir . '/Zotlabs/Module/Online.php',
'Zotlabs\\Module\\Outbox' => $baseDir . '/Zotlabs/Module/Outbox.php',
'Zotlabs\\Module\\Owa' => $baseDir . '/Zotlabs/Module/Owa.php',
'Zotlabs\\Module\\Page' => $baseDir . '/Zotlabs/Module/Page.php',
'Zotlabs\\Module\\Pconfig' => $baseDir . '/Zotlabs/Module/Pconfig.php',
@ -1060,8 +1067,8 @@ return array(
'Zotlabs\\Module\\Profperm' => $baseDir . '/Zotlabs/Module/Profperm.php',
'Zotlabs\\Module\\Pubsites' => $baseDir . '/Zotlabs/Module/Pubsites.php',
'Zotlabs\\Module\\Pubstream' => $baseDir . '/Zotlabs/Module/Pubstream.php',
'Zotlabs\\Module\\Q' => $baseDir . '/Zotlabs/Module/Q.php',
'Zotlabs\\Module\\Randprof' => $baseDir . '/Zotlabs/Module/Randprof.php',
'Zotlabs\\Module\\Rbmark' => $baseDir . '/Zotlabs/Module/Rbmark.php',
'Zotlabs\\Module\\React' => $baseDir . '/Zotlabs/Module/React.php',
'Zotlabs\\Module\\Regdir' => $baseDir . '/Zotlabs/Module/Regdir.php',
'Zotlabs\\Module\\Register' => $baseDir . '/Zotlabs/Module/Register.php',
@ -1101,7 +1108,6 @@ return array(
'Zotlabs\\Module\\Tasks' => $baseDir . '/Zotlabs/Module/Tasks.php',
'Zotlabs\\Module\\Theme_info' => $baseDir . '/Zotlabs/Module/Theme_info.php',
'Zotlabs\\Module\\Thing' => $baseDir . '/Zotlabs/Module/Thing.php',
'Zotlabs\\Module\\Toggle_mobile' => $baseDir . '/Zotlabs/Module/Toggle_mobile.php',
'Zotlabs\\Module\\Toggle_safesearch' => $baseDir . '/Zotlabs/Module/Toggle_safesearch.php',
'Zotlabs\\Module\\Token' => $baseDir . '/Zotlabs/Module/Token.php',
'Zotlabs\\Module\\Uexport' => $baseDir . '/Zotlabs/Module/Uexport.php',
@ -1362,6 +1368,15 @@ return array(
'Zotlabs\\Update\\_1219' => $baseDir . '/Zotlabs/Update/_1219.php',
'Zotlabs\\Update\\_1220' => $baseDir . '/Zotlabs/Update/_1220.php',
'Zotlabs\\Update\\_1221' => $baseDir . '/Zotlabs/Update/_1221.php',
'Zotlabs\\Update\\_1222' => $baseDir . '/Zotlabs/Update/_1222.php',
'Zotlabs\\Update\\_1223' => $baseDir . '/Zotlabs/Update/_1223.php',
'Zotlabs\\Update\\_1224' => $baseDir . '/Zotlabs/Update/_1224.php',
'Zotlabs\\Update\\_1225' => $baseDir . '/Zotlabs/Update/_1225.php',
'Zotlabs\\Update\\_1226' => $baseDir . '/Zotlabs/Update/_1226.php',
'Zotlabs\\Update\\_1227' => $baseDir . '/Zotlabs/Update/_1227.php',
'Zotlabs\\Update\\_1228' => $baseDir . '/Zotlabs/Update/_1228.php',
'Zotlabs\\Update\\_1229' => $baseDir . '/Zotlabs/Update/_1229.php',
'Zotlabs\\Update\\_1230' => $baseDir . '/Zotlabs/Update/_1230.php',
'Zotlabs\\Web\\CheckJS' => $baseDir . '/Zotlabs/Web/CheckJS.php',
'Zotlabs\\Web\\Controller' => $baseDir . '/Zotlabs/Web/Controller.php',
'Zotlabs\\Web\\HTTPHeaders' => $baseDir . '/Zotlabs/Web/HTTPHeaders.php',
@ -1400,8 +1415,8 @@ return array(
'Zotlabs\\Widget\\Filer' => $baseDir . '/Zotlabs/Widget/Filer.php',
'Zotlabs\\Widget\\Findpeople' => $baseDir . '/Zotlabs/Widget/Findpeople.php',
'Zotlabs\\Widget\\Follow' => $baseDir . '/Zotlabs/Widget/Follow.php',
'Zotlabs\\Widget\\Forums' => $baseDir . '/Zotlabs/Widget/Forums.php',
'Zotlabs\\Widget\\Fullprofile' => $baseDir . '/Zotlabs/Widget/Fullprofile.php',
'Zotlabs\\Widget\\Groups' => $baseDir . '/Zotlabs/Widget/Groups.php',
'Zotlabs\\Widget\\Helpindex' => $baseDir . '/Zotlabs/Widget/Helpindex.php',
'Zotlabs\\Widget\\Hq_controls' => $baseDir . '/Zotlabs/Widget/Hq_controls.php',
'Zotlabs\\Widget\\Item' => $baseDir . '/Zotlabs/Widget/Item.php',
@ -1436,9 +1451,4 @@ return array(
'Zotlabs\\Zot6\\IHandler' => $baseDir . '/Zotlabs/Zot6/IHandler.php',
'Zotlabs\\Zot6\\Receiver' => $baseDir . '/Zotlabs/Zot6/Receiver.php',
'Zotlabs\\Zot6\\Zot6Handler' => $baseDir . '/Zotlabs/Zot6/Zot6Handler.php',
'Zotlabs\\Zot\\Auth' => $baseDir . '/Zotlabs/Zot/Auth.php',
'Zotlabs\\Zot\\Finger' => $baseDir . '/Zotlabs/Zot/Finger.php',
'Zotlabs\\Zot\\IHandler' => $baseDir . '/Zotlabs/Zot/IHandler.php',
'Zotlabs\\Zot\\Receiver' => $baseDir . '/Zotlabs/Zot/Receiver.php',
'Zotlabs\\Zot\\ZotHandler' => $baseDir . '/Zotlabs/Zot/ZotHandler.php',
);

View file

@ -1027,11 +1027,12 @@ class ComposerStaticInit7b34d7e50a62201ec5d5e526a5b8b35d
'Text_LanguageDetect_ISO639' => __DIR__ . '/..' . '/pear/text_languagedetect/Text/LanguageDetect/ISO639.php',
'Text_LanguageDetect_Parser' => __DIR__ . '/..' . '/pear/text_languagedetect/Text/LanguageDetect/Parser.php',
'UploadHandler' => __DIR__ . '/..' . '/blueimp/jquery-file-upload/server/php/UploadHandler.php',
'Zotlabs\\Access\\AccessList' => __DIR__ . '/../..' . '/Zotlabs/Access/AccessList.php',
'Zotlabs\\Access\\AccessControl' => __DIR__ . '/../..' . '/Zotlabs/Access/AccessControl.php',
'Zotlabs\\Access\\PermissionLimits' => __DIR__ . '/../..' . '/Zotlabs/Access/PermissionLimits.php',
'Zotlabs\\Access\\PermissionRoles' => __DIR__ . '/../..' . '/Zotlabs/Access/PermissionRoles.php',
'Zotlabs\\Access\\Permissions' => __DIR__ . '/../..' . '/Zotlabs/Access/Permissions.php',
'Zotlabs\\Daemon\\Addon' => __DIR__ . '/../..' . '/Zotlabs/Daemon/Addon.php',
'Zotlabs\\Daemon\\Cache_embeds' => __DIR__ . '/../..' . '/Zotlabs/Daemon/Cache_embeds.php',
'Zotlabs\\Daemon\\Checksites' => __DIR__ . '/../..' . '/Zotlabs/Daemon/Checksites.php',
'Zotlabs\\Daemon\\Cli_suggest' => __DIR__ . '/../..' . '/Zotlabs/Daemon/Cli_suggest.php',
'Zotlabs\\Daemon\\Cron' => __DIR__ . '/../..' . '/Zotlabs/Daemon/Cron.php',
@ -1041,6 +1042,7 @@ class ComposerStaticInit7b34d7e50a62201ec5d5e526a5b8b35d
'Zotlabs\\Daemon\\CurlAuth' => __DIR__ . '/../..' . '/Zotlabs/Daemon/CurlAuth.php',
'Zotlabs\\Daemon\\Deliver' => __DIR__ . '/../..' . '/Zotlabs/Daemon/Deliver.php',
'Zotlabs\\Daemon\\Deliver_hooks' => __DIR__ . '/../..' . '/Zotlabs/Daemon/Deliver_hooks.php',
'Zotlabs\\Daemon\\Delxitems' => __DIR__ . '/../..' . '/Zotlabs/Daemon/Delxitems.php',
'Zotlabs\\Daemon\\Directory' => __DIR__ . '/../..' . '/Zotlabs/Daemon/Directory.php',
'Zotlabs\\Daemon\\Expire' => __DIR__ . '/../..' . '/Zotlabs/Daemon/Expire.php',
'Zotlabs\\Daemon\\Externals' => __DIR__ . '/../..' . '/Zotlabs/Daemon/Externals.php',
@ -1064,6 +1066,7 @@ class ComposerStaticInit7b34d7e50a62201ec5d5e526a5b8b35d
'Zotlabs\\Identity\\ProfilePhoto\\ProfilePhoto' => __DIR__ . '/../..' . '/Zotlabs/Identity/ProfilePhoto.php',
'Zotlabs\\Lib\\AConfig' => __DIR__ . '/../..' . '/Zotlabs/Lib/AConfig.php',
'Zotlabs\\Lib\\AbConfig' => __DIR__ . '/../..' . '/Zotlabs/Lib/AbConfig.php',
'Zotlabs\\Lib\\AccessList' => __DIR__ . '/../..' . '/Zotlabs/Lib/AccessList.php',
'Zotlabs\\Lib\\Activity' => __DIR__ . '/../..' . '/Zotlabs/Lib/Activity.php',
'Zotlabs\\Lib\\ActivityPub' => __DIR__ . '/../..' . '/Zotlabs/Lib/ActivityPub.php',
'Zotlabs\\Lib\\ActivityStreams' => __DIR__ . '/../..' . '/Zotlabs/Lib/ActivityStreams.php',
@ -1072,15 +1075,17 @@ class ComposerStaticInit7b34d7e50a62201ec5d5e526a5b8b35d
'Zotlabs\\Lib\\Cache' => __DIR__ . '/../..' . '/Zotlabs/Lib/Cache.php',
'Zotlabs\\Lib\\Chatroom' => __DIR__ . '/../..' . '/Zotlabs/Lib/Chatroom.php',
'Zotlabs\\Lib\\Config' => __DIR__ . '/../..' . '/Zotlabs/Lib/Config.php',
'Zotlabs\\Lib\\Connect' => __DIR__ . '/../..' . '/Zotlabs/Lib/Connect.php',
'Zotlabs\\Lib\\Crypto' => __DIR__ . '/../..' . '/Zotlabs/Lib/Crypto.php',
'Zotlabs\\Lib\\DB_Upgrade' => __DIR__ . '/../..' . '/Zotlabs/Lib/DB_Upgrade.php',
'Zotlabs\\Lib\\DReport' => __DIR__ . '/../..' . '/Zotlabs/Lib/DReport.php',
'Zotlabs\\Lib\\Discover' => __DIR__ . '/../..' . '/Zotlabs/Lib/Discover.php',
'Zotlabs\\Lib\\Enotify' => __DIR__ . '/../..' . '/Zotlabs/Lib/Enotify.php',
'Zotlabs\\Lib\\ExtendedZip' => __DIR__ . '/../..' . '/Zotlabs/Lib/ExtendedZip.php',
'Zotlabs\\Lib\\Group' => __DIR__ . '/../..' . '/Zotlabs/Lib/Group.php',
'Zotlabs\\Lib\\IConfig' => __DIR__ . '/../..' . '/Zotlabs/Lib/IConfig.php',
'Zotlabs\\Lib\\Img_filesize' => __DIR__ . '/../..' . '/Zotlabs/Lib/Img_filesize.php',
'Zotlabs\\Lib\\JSalmon' => __DIR__ . '/../..' . '/Zotlabs/Lib/JSalmon.php',
'Zotlabs\\Lib\\Keyutils' => __DIR__ . '/../..' . '/Zotlabs/Lib/Keyutils.php',
'Zotlabs\\Lib\\LDSignatures' => __DIR__ . '/../..' . '/Zotlabs/Lib/LDSignatures.php',
'Zotlabs\\Lib\\Libsync' => __DIR__ . '/../..' . '/Zotlabs/Lib/Libsync.php',
'Zotlabs\\Lib\\Libzot' => __DIR__ . '/../..' . '/Zotlabs/Lib/Libzot.php',
@ -1102,6 +1107,7 @@ class ComposerStaticInit7b34d7e50a62201ec5d5e526a5b8b35d
'Zotlabs\\Lib\\Verify' => __DIR__ . '/../..' . '/Zotlabs/Lib/Verify.php',
'Zotlabs\\Lib\\Webfinger' => __DIR__ . '/../..' . '/Zotlabs/Lib/Webfinger.php',
'Zotlabs\\Lib\\XConfig' => __DIR__ . '/../..' . '/Zotlabs/Lib/XConfig.php',
'Zotlabs\\Lib\\ZotURL' => __DIR__ . '/../..' . '/Zotlabs/Lib/ZotURL.php',
'Zotlabs\\Lib\\Zotfinger' => __DIR__ . '/../..' . '/Zotlabs/Lib/Zotfinger.php',
'Zotlabs\\Module\\Acl' => __DIR__ . '/../..' . '/Zotlabs/Module/Acl.php',
'Zotlabs\\Module\\Activity' => __DIR__ . '/../..' . '/Zotlabs/Module/Activity.php',
@ -1119,6 +1125,7 @@ class ComposerStaticInit7b34d7e50a62201ec5d5e526a5b8b35d
'Zotlabs\\Module\\Admin\\Site' => __DIR__ . '/../..' . '/Zotlabs/Module/Admin/Site.php',
'Zotlabs\\Module\\Admin\\Themes' => __DIR__ . '/../..' . '/Zotlabs/Module/Admin/Themes.php',
'Zotlabs\\Module\\Affinity' => __DIR__ . '/../..' . '/Zotlabs/Module/Affinity.php',
'Zotlabs\\Module\\Alist' => __DIR__ . '/../..' . '/Zotlabs/Module/Alist.php',
'Zotlabs\\Module\\Ap_probe' => __DIR__ . '/../..' . '/Zotlabs/Module/Ap_probe.php',
'Zotlabs\\Module\\Api' => __DIR__ . '/../..' . '/Zotlabs/Module/Api.php',
'Zotlabs\\Module\\Appman' => __DIR__ . '/../..' . '/Zotlabs/Module/Appman.php',
@ -1129,11 +1136,11 @@ class ComposerStaticInit7b34d7e50a62201ec5d5e526a5b8b35d
'Zotlabs\\Module\\Authorize' => __DIR__ . '/../..' . '/Zotlabs/Module/Authorize.php',
'Zotlabs\\Module\\Block' => __DIR__ . '/../..' . '/Zotlabs/Module/Block.php',
'Zotlabs\\Module\\Blocks' => __DIR__ . '/../..' . '/Zotlabs/Module/Blocks.php',
'Zotlabs\\Module\\Bookmarks' => __DIR__ . '/../..' . '/Zotlabs/Module/Bookmarks.php',
'Zotlabs\\Module\\Branchtopic' => __DIR__ . '/../..' . '/Zotlabs/Module/Branchtopic.php',
'Zotlabs\\Module\\Cal' => __DIR__ . '/../..' . '/Zotlabs/Module/Cal.php',
'Zotlabs\\Module\\Card_edit' => __DIR__ . '/../..' . '/Zotlabs/Module/Card_edit.php',
'Zotlabs\\Module\\Cards' => __DIR__ . '/../..' . '/Zotlabs/Module/Cards.php',
'Zotlabs\\Module\\Categories' => __DIR__ . '/../..' . '/Zotlabs/Module/Categories.php',
'Zotlabs\\Module\\Cdav' => __DIR__ . '/../..' . '/Zotlabs/Module/Cdav.php',
'Zotlabs\\Module\\Changeaddr' => __DIR__ . '/../..' . '/Zotlabs/Module/Changeaddr.php',
'Zotlabs\\Module\\Channel' => __DIR__ . '/../..' . '/Zotlabs/Module/Channel.php',
@ -1147,6 +1154,7 @@ class ComposerStaticInit7b34d7e50a62201ec5d5e526a5b8b35d
'Zotlabs\\Module\\Connections' => __DIR__ . '/../..' . '/Zotlabs/Module/Connections.php',
'Zotlabs\\Module\\Connedit' => __DIR__ . '/../..' . '/Zotlabs/Module/Connedit.php',
'Zotlabs\\Module\\Contactgroup' => __DIR__ . '/../..' . '/Zotlabs/Module/Contactgroup.php',
'Zotlabs\\Module\\Content_filter' => __DIR__ . '/../..' . '/Zotlabs/Module/Content_filter.php',
'Zotlabs\\Module\\Cover_photo' => __DIR__ . '/../..' . '/Zotlabs/Module/Cover_photo.php',
'Zotlabs\\Module\\Dav' => __DIR__ . '/../..' . '/Zotlabs/Module/Dav.php',
'Zotlabs\\Module\\Defperms' => __DIR__ . '/../..' . '/Zotlabs/Module/Defperms.php',
@ -1160,9 +1168,11 @@ class ComposerStaticInit7b34d7e50a62201ec5d5e526a5b8b35d
'Zotlabs\\Module\\Editwebpage' => __DIR__ . '/../..' . '/Zotlabs/Module/Editwebpage.php',
'Zotlabs\\Module\\Email_resend' => __DIR__ . '/../..' . '/Zotlabs/Module/Email_resend.php',
'Zotlabs\\Module\\Email_validation' => __DIR__ . '/../..' . '/Zotlabs/Module/Email_validation.php',
'Zotlabs\\Module\\Embed' => __DIR__ . '/../..' . '/Zotlabs/Module/Embed.php',
'Zotlabs\\Module\\Embedphotos' => __DIR__ . '/../..' . '/Zotlabs/Module/Embedphotos.php',
'Zotlabs\\Module\\Event' => __DIR__ . '/../..' . '/Zotlabs/Module/Event.php',
'Zotlabs\\Module\\Events' => __DIR__ . '/../..' . '/Zotlabs/Module/Events.php',
'Zotlabs\\Module\\Expire' => __DIR__ . '/../..' . '/Zotlabs/Module/Expire.php',
'Zotlabs\\Module\\Fbrowser' => __DIR__ . '/../..' . '/Zotlabs/Module/Fbrowser.php',
'Zotlabs\\Module\\Feed' => __DIR__ . '/../..' . '/Zotlabs/Module/Feed.php',
'Zotlabs\\Module\\File_upload' => __DIR__ . '/../..' . '/Zotlabs/Module/File_upload.php',
@ -1174,17 +1184,16 @@ class ComposerStaticInit7b34d7e50a62201ec5d5e526a5b8b35d
'Zotlabs\\Module\\Followers' => __DIR__ . '/../..' . '/Zotlabs/Module/Followers.php',
'Zotlabs\\Module\\Following' => __DIR__ . '/../..' . '/Zotlabs/Module/Following.php',
'Zotlabs\\Module\\Getfile' => __DIR__ . '/../..' . '/Zotlabs/Module/Getfile.php',
'Zotlabs\\Module\\Group' => __DIR__ . '/../..' . '/Zotlabs/Module/Group.php',
'Zotlabs\\Module\\Hashtags' => __DIR__ . '/../..' . '/Zotlabs/Module/Hashtags.php',
'Zotlabs\\Module\\Hcard' => __DIR__ . '/../..' . '/Zotlabs/Module/Hcard.php',
'Zotlabs\\Module\\Help' => __DIR__ . '/../..' . '/Zotlabs/Module/Help.php',
'Zotlabs\\Module\\Home' => __DIR__ . '/../..' . '/Zotlabs/Module/Home.php',
'Zotlabs\\Module\\Hostxrd' => __DIR__ . '/../..' . '/Zotlabs/Module/Hostxrd.php',
'Zotlabs\\Module\\Hq' => __DIR__ . '/../..' . '/Zotlabs/Module/Hq.php',
'Zotlabs\\Module\\Id' => __DIR__ . '/../..' . '/Zotlabs/Module/Id.php',
'Zotlabs\\Module\\Impel' => __DIR__ . '/../..' . '/Zotlabs/Module/Impel.php',
'Zotlabs\\Module\\Import' => __DIR__ . '/../..' . '/Zotlabs/Module/Import.php',
'Zotlabs\\Module\\Import_items' => __DIR__ . '/../..' . '/Zotlabs/Module/Import_items.php',
'Zotlabs\\Module\\Inbox' => __DIR__ . '/../..' . '/Zotlabs/Module/Inbox.php',
'Zotlabs\\Module\\Invite' => __DIR__ . '/../..' . '/Zotlabs/Module/Invite.php',
'Zotlabs\\Module\\Item' => __DIR__ . '/../..' . '/Zotlabs/Module/Item.php',
'Zotlabs\\Module\\Lang' => __DIR__ . '/../..' . '/Zotlabs/Module/Lang.php',
@ -1210,13 +1219,11 @@ class ComposerStaticInit7b34d7e50a62201ec5d5e526a5b8b35d
'Zotlabs\\Module\\Notifications' => __DIR__ . '/../..' . '/Zotlabs/Module/Notifications.php',
'Zotlabs\\Module\\Notify' => __DIR__ . '/../..' . '/Zotlabs/Module/Notify.php',
'Zotlabs\\Module\\Nullbox' => __DIR__ . '/../..' . '/Zotlabs/Module/Nullbox.php',
'Zotlabs\\Module\\OAuth2TestVehicle' => __DIR__ . '/../..' . '/Zotlabs/Module/Oauth2testvehicle.php',
'Zotlabs\\Module\\Oauthinfo' => __DIR__ . '/../..' . '/Zotlabs/Module/Oauthinfo.php',
'Zotlabs\\Module\\Oembed' => __DIR__ . '/../..' . '/Zotlabs/Module/Oembed.php',
'Zotlabs\\Module\\Oep' => __DIR__ . '/../..' . '/Zotlabs/Module/Oep.php',
'Zotlabs\\Module\\Oexchange' => __DIR__ . '/../..' . '/Zotlabs/Module/Oexchange.php',
'Zotlabs\\Module\\Online' => __DIR__ . '/../..' . '/Zotlabs/Module/Online.php',
'Zotlabs\\Module\\Outbox' => __DIR__ . '/../..' . '/Zotlabs/Module/Outbox.php',
'Zotlabs\\Module\\Owa' => __DIR__ . '/../..' . '/Zotlabs/Module/Owa.php',
'Zotlabs\\Module\\Page' => __DIR__ . '/../..' . '/Zotlabs/Module/Page.php',
'Zotlabs\\Module\\Pconfig' => __DIR__ . '/../..' . '/Zotlabs/Module/Pconfig.php',
@ -1235,8 +1242,8 @@ class ComposerStaticInit7b34d7e50a62201ec5d5e526a5b8b35d
'Zotlabs\\Module\\Profperm' => __DIR__ . '/../..' . '/Zotlabs/Module/Profperm.php',
'Zotlabs\\Module\\Pubsites' => __DIR__ . '/../..' . '/Zotlabs/Module/Pubsites.php',
'Zotlabs\\Module\\Pubstream' => __DIR__ . '/../..' . '/Zotlabs/Module/Pubstream.php',
'Zotlabs\\Module\\Q' => __DIR__ . '/../..' . '/Zotlabs/Module/Q.php',
'Zotlabs\\Module\\Randprof' => __DIR__ . '/../..' . '/Zotlabs/Module/Randprof.php',
'Zotlabs\\Module\\Rbmark' => __DIR__ . '/../..' . '/Zotlabs/Module/Rbmark.php',
'Zotlabs\\Module\\React' => __DIR__ . '/../..' . '/Zotlabs/Module/React.php',
'Zotlabs\\Module\\Regdir' => __DIR__ . '/../..' . '/Zotlabs/Module/Regdir.php',
'Zotlabs\\Module\\Register' => __DIR__ . '/../..' . '/Zotlabs/Module/Register.php',
@ -1276,7 +1283,6 @@ class ComposerStaticInit7b34d7e50a62201ec5d5e526a5b8b35d
'Zotlabs\\Module\\Tasks' => __DIR__ . '/../..' . '/Zotlabs/Module/Tasks.php',
'Zotlabs\\Module\\Theme_info' => __DIR__ . '/../..' . '/Zotlabs/Module/Theme_info.php',
'Zotlabs\\Module\\Thing' => __DIR__ . '/../..' . '/Zotlabs/Module/Thing.php',
'Zotlabs\\Module\\Toggle_mobile' => __DIR__ . '/../..' . '/Zotlabs/Module/Toggle_mobile.php',
'Zotlabs\\Module\\Toggle_safesearch' => __DIR__ . '/../..' . '/Zotlabs/Module/Toggle_safesearch.php',
'Zotlabs\\Module\\Token' => __DIR__ . '/../..' . '/Zotlabs/Module/Token.php',
'Zotlabs\\Module\\Uexport' => __DIR__ . '/../..' . '/Zotlabs/Module/Uexport.php',
@ -1537,6 +1543,15 @@ class ComposerStaticInit7b34d7e50a62201ec5d5e526a5b8b35d
'Zotlabs\\Update\\_1219' => __DIR__ . '/../..' . '/Zotlabs/Update/_1219.php',
'Zotlabs\\Update\\_1220' => __DIR__ . '/../..' . '/Zotlabs/Update/_1220.php',
'Zotlabs\\Update\\_1221' => __DIR__ . '/../..' . '/Zotlabs/Update/_1221.php',
'Zotlabs\\Update\\_1222' => __DIR__ . '/../..' . '/Zotlabs/Update/_1222.php',
'Zotlabs\\Update\\_1223' => __DIR__ . '/../..' . '/Zotlabs/Update/_1223.php',
'Zotlabs\\Update\\_1224' => __DIR__ . '/../..' . '/Zotlabs/Update/_1224.php',
'Zotlabs\\Update\\_1225' => __DIR__ . '/../..' . '/Zotlabs/Update/_1225.php',
'Zotlabs\\Update\\_1226' => __DIR__ . '/../..' . '/Zotlabs/Update/_1226.php',
'Zotlabs\\Update\\_1227' => __DIR__ . '/../..' . '/Zotlabs/Update/_1227.php',
'Zotlabs\\Update\\_1228' => __DIR__ . '/../..' . '/Zotlabs/Update/_1228.php',
'Zotlabs\\Update\\_1229' => __DIR__ . '/../..' . '/Zotlabs/Update/_1229.php',
'Zotlabs\\Update\\_1230' => __DIR__ . '/../..' . '/Zotlabs/Update/_1230.php',
'Zotlabs\\Web\\CheckJS' => __DIR__ . '/../..' . '/Zotlabs/Web/CheckJS.php',
'Zotlabs\\Web\\Controller' => __DIR__ . '/../..' . '/Zotlabs/Web/Controller.php',
'Zotlabs\\Web\\HTTPHeaders' => __DIR__ . '/../..' . '/Zotlabs/Web/HTTPHeaders.php',
@ -1575,8 +1590,8 @@ class ComposerStaticInit7b34d7e50a62201ec5d5e526a5b8b35d
'Zotlabs\\Widget\\Filer' => __DIR__ . '/../..' . '/Zotlabs/Widget/Filer.php',
'Zotlabs\\Widget\\Findpeople' => __DIR__ . '/../..' . '/Zotlabs/Widget/Findpeople.php',
'Zotlabs\\Widget\\Follow' => __DIR__ . '/../..' . '/Zotlabs/Widget/Follow.php',
'Zotlabs\\Widget\\Forums' => __DIR__ . '/../..' . '/Zotlabs/Widget/Forums.php',
'Zotlabs\\Widget\\Fullprofile' => __DIR__ . '/../..' . '/Zotlabs/Widget/Fullprofile.php',
'Zotlabs\\Widget\\Groups' => __DIR__ . '/../..' . '/Zotlabs/Widget/Groups.php',
'Zotlabs\\Widget\\Helpindex' => __DIR__ . '/../..' . '/Zotlabs/Widget/Helpindex.php',
'Zotlabs\\Widget\\Hq_controls' => __DIR__ . '/../..' . '/Zotlabs/Widget/Hq_controls.php',
'Zotlabs\\Widget\\Item' => __DIR__ . '/../..' . '/Zotlabs/Widget/Item.php',
@ -1611,11 +1626,6 @@ class ComposerStaticInit7b34d7e50a62201ec5d5e526a5b8b35d
'Zotlabs\\Zot6\\IHandler' => __DIR__ . '/../..' . '/Zotlabs/Zot6/IHandler.php',
'Zotlabs\\Zot6\\Receiver' => __DIR__ . '/../..' . '/Zotlabs/Zot6/Receiver.php',
'Zotlabs\\Zot6\\Zot6Handler' => __DIR__ . '/../..' . '/Zotlabs/Zot6/Zot6Handler.php',
'Zotlabs\\Zot\\Auth' => __DIR__ . '/../..' . '/Zotlabs/Zot/Auth.php',
'Zotlabs\\Zot\\Finger' => __DIR__ . '/../..' . '/Zotlabs/Zot/Finger.php',
'Zotlabs\\Zot\\IHandler' => __DIR__ . '/../..' . '/Zotlabs/Zot/IHandler.php',
'Zotlabs\\Zot\\Receiver' => __DIR__ . '/../..' . '/Zotlabs/Zot/Receiver.php',
'Zotlabs\\Zot\\ZotHandler' => __DIR__ . '/../..' . '/Zotlabs/Zot/ZotHandler.php',
);
public static function getInitializer(ClassLoader $loader)

View file

@ -1814,4 +1814,8 @@ dl.bb-dl > dd > li {
.threadlevel.even {
color: #888;
}
}
.channel-active {
border: 3px solid #0275d8;
}

View file

@ -16,14 +16,15 @@
{{/if}}
</div>
<h3>
{{if $selected == $channel.channel_id}}
{{*if $selected == $channel.channel_id}}
<i class="fa fa-circle text-success" title="{{$msg_selected}}"></i>
{{/if}}
{{/if*}}
{{if $channel.delegate}}
<i class="fa fa-arrow-circle-right" title="{{$delegated_desc}}"></i>
{{/if}}
{{if $channel.xchan_type == 2}}<i class="fa fa-tags" title="{{$channel.collections_label}}"></i>&nbsp;{{elseif $channel.xchan_type == 1}}<i class="fa fa-comments-o" title="{{$channel.forum_label}}"></i>&nbsp;{{/if}}
{{if $selected != $channel.channel_id}}<a href="{{$channel.link}}" title="{{$channel.channel_name}}">{{/if}}
{{$channel.channel_name}}
{{$channel.channel_name}}
{{if $selected != $channel.channel_id}}</a>{{/if}}
</h3>
<div class="clear"></div>
@ -31,7 +32,7 @@
<div class="section-content-wrapper">
<div class="channel-photo-wrapper">
{{if $selected != $channel.channel_id}}<a href="{{$channel.link}}" class="channel-selection-photo-link" title="{{$channel.channel_name}}">{{/if}}
<img class="channel-photo" src="{{$channel.xchan_photo_m}}" alt="{{$channel.channel_name}}" />
<img class="channel-photo{{if $selected == $channel.channel_id}} channel-active{{/if}}" src="{{$channel.xchan_photo_m}}" alt="{{$channel.channel_name}}" />
{{if $selected != $channel.channel_id}}</a>{{/if}}
</div>
<div class="channel-notifications-wrapper">

View file

@ -191,6 +191,11 @@
<i class="fa fa-share-alt jot-icons"></i>
</button>
{{/if}}
{{if $jotcoll}}
<button id="dbtn-jotcoll" class="btn btn-outline-secondary btn-sm" data-toggle="modal" data-target="#jotcollModal" type="button" title="{{$jotcoll_label}}">
<i class="fa fa-tags jot-icons"></i>
</button>
{{/if}}
{{if $showacl}}
<button id="dbtn-acl" class="btn btn-outline-secondary btn-sm" data-toggle="modal" data-target="#aclModal" title="{{$permset}}" type="button" data-form_id="profile-jot-form">
<i id="jot-perms-icon" class="fa fa-{{$lockstate}} jot-icons{{if $bang}} jot-lock-warn{{/if}}"></i>
@ -209,14 +214,32 @@
<div class="modal-dialog">
<div class="modal-content">
<div class="modal-header">
<h4 class="modal-title" id="expiryModalLabel">{{$jotnets_label}}</h4>
<h4 class="modal-title" id="jotnetsModalLabel">{{$jotnets_label}}</h4>
<button type="button" class="close" data-dismiss="modal" aria-hidden="true">&times;</button>
</div>
<div class="modal-body">
{{$jotnets}}
</div>
<div class="modal-footer">
<button type="button" class="btn btn-outline-secondary" data-dismiss="modal">Close</button>
<button type="button" class="btn btn-outline-secondary" data-dismiss="modal">{{$close}}</button>
</div>
</div><!-- /.modal-content -->
</div><!-- /.modal-dialog -->
</div><!-- /.modal -->
{{/if}}
{{if $jotcoll}}
<div class="modal" id="jotcollModal" tabindex="-1" role="dialog" aria-labelledby="jotcollModalLabel" aria-hidden="true">
<div class="modal-dialog">
<div class="modal-content">
<div class="modal-header">
<h4 class="modal-title" id="jotcollModalLabel">{{$jotcoll_label}}</h4>
<button type="button" class="close" data-dismiss="modal" aria-hidden="true">&times;</button>
</div>
<div class="modal-body">
{{$jotcoll}}
</div>
<div class="modal-footer">
<button type="button" class="btn btn-outline-secondary" data-dismiss="modal">{{$close}}</button>
</div>
</div><!-- /.modal-content -->
</div><!-- /.modal-dialog -->