Merge branch 'dev' of https://github.com/redmatrix/hubzilla into xdev_merge
This commit is contained in:
@@ -611,6 +611,7 @@ function conversation(&$a, $items, $mode, $update, $page_mode = 'traditional', $
|
||||
$owner_photo = '';
|
||||
$owner_name = '';
|
||||
$sparkle = '';
|
||||
$is_new = false;
|
||||
|
||||
if($mode === 'search' || $mode === 'community') {
|
||||
if(((activity_match($item['verb'],ACTIVITY_LIKE)) || (activity_match($item['verb'],ACTIVITY_DISLIKE)))
|
||||
@@ -679,6 +680,9 @@ function conversation(&$a, $items, $mode, $update, $page_mode = 'traditional', $
|
||||
|
||||
$has_tags = (($body['tags'] || $body['categories'] || $body['mentions'] || $body['attachments'] || $body['folders']) ? true : false);
|
||||
|
||||
if(strcmp(datetime_convert('UTC','UTC',$item['created']),datetime_convert('UTC','UTC','now - 12 hours')) > 0)
|
||||
$is_new = true;
|
||||
|
||||
$tmp_item = array(
|
||||
'template' => $tpl,
|
||||
'toplevel' => 'toplevel_item',
|
||||
@@ -735,6 +739,7 @@ function conversation(&$a, $items, $mode, $update, $page_mode = 'traditional', $
|
||||
'wait' => t('Please wait'),
|
||||
'thread_level' => 1,
|
||||
'has_tags' => $has_tags,
|
||||
'is_new' => $is_new
|
||||
);
|
||||
|
||||
$arr = array('item' => $item, 'output' => $tmp_item);
|
||||
@@ -1082,8 +1087,8 @@ function builtin_activity_puller($item, &$conv_responses) {
|
||||
if((activity_match($item['verb'], $verb)) && ($item['id'] != $item['parent'])) {
|
||||
$name = (($item['author']['xchan_name']) ? $item['author']['xchan_name'] : t('Unknown'));
|
||||
$url = (($item['author_xchan'] && $item['author']['xchan_photo_s'])
|
||||
? '<a href="' . chanlink_hash($item['author_xchan']) . '">' . '<img class="dropdown-menu-img-xs" src="' . zid($item['author']['xchan_photo_s']) . '" alt="' . urlencode($name) . '" />' . $name . '</a>'
|
||||
: '<a href="#" class="disabled">' . $name . '</a>'
|
||||
? '<a class="dropdown-item" href="' . chanlink_hash($item['author_xchan']) . '">' . '<img class="menu-img-1" src="' . zid($item['author']['xchan_photo_s']) . '" alt="' . urlencode($name) . '" />' . $name . '</a>'
|
||||
: '<a class="dropdown-item" href="#" class="disabled">' . $name . '</a>'
|
||||
);
|
||||
|
||||
if(! $item['thr_parent'])
|
||||
@@ -1676,6 +1681,9 @@ function profile_tabs($a, $is_owner = false, $nickname = null){
|
||||
if (App::$is_sys)
|
||||
return;
|
||||
|
||||
if (get_pconfig($uid, 'system', 'noprofiletabs'))
|
||||
return;
|
||||
|
||||
$channel = App::get_channel();
|
||||
|
||||
if (is_null($nickname))
|
||||
@@ -1685,6 +1693,9 @@ function profile_tabs($a, $is_owner = false, $nickname = null){
|
||||
$uid = ((App::$profile['profile_uid']) ? App::$profile['profile_uid'] : local_channel());
|
||||
$account_id = ((App::$profile['profile_uid']) ? App::$profile['channel_account_id'] : App::$channel['channel_account_id']);
|
||||
|
||||
if ($uid == local_channel())
|
||||
return;
|
||||
|
||||
if($uid == local_channel()) {
|
||||
$cal_link = '';
|
||||
}
|
||||
@@ -1707,9 +1718,6 @@ function profile_tabs($a, $is_owner = false, $nickname = null){
|
||||
|
||||
$has_webpages = (($r) ? true : false);
|
||||
|
||||
if (get_pconfig($uid, 'system', 'noprofiletabs'))
|
||||
return;
|
||||
|
||||
if (x($_GET, 'tab'))
|
||||
$tab = notags(trim($_GET['tab']));
|
||||
|
||||
@@ -1723,6 +1731,7 @@ function profile_tabs($a, $is_owner = false, $nickname = null){
|
||||
'sel' => ((argv(0) == 'channel') ? 'active' : ''),
|
||||
'title' => t('Status Messages and Posts'),
|
||||
'id' => 'status-tab',
|
||||
'icon' => 'home'
|
||||
),
|
||||
);
|
||||
|
||||
@@ -1735,6 +1744,7 @@ function profile_tabs($a, $is_owner = false, $nickname = null){
|
||||
'sel' => ((argv(0) == 'profile') ? 'active' : ''),
|
||||
'title' => t('Profile Details'),
|
||||
'id' => 'profile-tab',
|
||||
'icon' => 'user'
|
||||
);
|
||||
}
|
||||
if ($p['view_storage']) {
|
||||
@@ -1744,6 +1754,7 @@ function profile_tabs($a, $is_owner = false, $nickname = null){
|
||||
'sel' => ((argv(0) == 'photos') ? 'active' : ''),
|
||||
'title' => t('Photo Albums'),
|
||||
'id' => 'photo-tab',
|
||||
'icon' => 'photo'
|
||||
);
|
||||
$tabs[] = array(
|
||||
'label' => t('Files'),
|
||||
@@ -1751,6 +1762,7 @@ function profile_tabs($a, $is_owner = false, $nickname = null){
|
||||
'sel' => ((argv(0) == 'cloud' || argv(0) == 'sharedwithme') ? 'active' : ''),
|
||||
'title' => t('Files and Storage'),
|
||||
'id' => 'files-tab',
|
||||
'icon' => 'folder-open'
|
||||
);
|
||||
}
|
||||
|
||||
@@ -1761,6 +1773,7 @@ function profile_tabs($a, $is_owner = false, $nickname = null){
|
||||
'sel' => ((argv(0) == 'cal' || argv(0) == 'events') ? 'active' : ''),
|
||||
'title' => t('Events'),
|
||||
'id' => 'event-tab',
|
||||
'icon' => 'calendar'
|
||||
);
|
||||
}
|
||||
|
||||
@@ -1774,6 +1787,7 @@ function profile_tabs($a, $is_owner = false, $nickname = null){
|
||||
'sel' => ((argv(0) == 'chat') ? 'active' : '' ),
|
||||
'title' => t('Chatrooms'),
|
||||
'id' => 'chat-tab',
|
||||
'icon' => 'comments-o'
|
||||
);
|
||||
}
|
||||
}
|
||||
@@ -1787,6 +1801,7 @@ function profile_tabs($a, $is_owner = false, $nickname = null){
|
||||
'sel' => ((argv(0) == 'bookmarks') ? 'active' : ''),
|
||||
'title' => t('Saved Bookmarks'),
|
||||
'id' => 'bookmarks-tab',
|
||||
'icon' => 'bookmark'
|
||||
);
|
||||
}
|
||||
|
||||
@@ -1797,27 +1812,34 @@ function profile_tabs($a, $is_owner = false, $nickname = null){
|
||||
'sel' => ((argv(0) == 'webpages') ? 'active' : ''),
|
||||
'title' => t('View Webpages'),
|
||||
'id' => 'webpages-tab',
|
||||
'icon' => 'newspaper-o'
|
||||
);
|
||||
}
|
||||
|
||||
|
||||
if(feature_enabled($uid,'wiki') && (get_account_techlevel($account_id) > 3)) {
|
||||
$tabs[] = array(
|
||||
'label' => t('Wikis'),
|
||||
'url' => z_root() . '/wiki/' . $nickname,
|
||||
'sel' => ((argv(0) == 'wiki') ? 'active' : ''),
|
||||
'title' => t('Wiki'),
|
||||
'id' => 'wiki-tab',
|
||||
);
|
||||
if ($p['view_wiki']) {
|
||||
if(feature_enabled($uid,'wiki') && (get_account_techlevel($account_id) > 3)) {
|
||||
$tabs[] = array(
|
||||
'label' => t('Wikis'),
|
||||
'url' => z_root() . '/wiki/' . $nickname,
|
||||
'sel' => ((argv(0) == 'wiki') ? 'active' : ''),
|
||||
'title' => t('Wiki'),
|
||||
'id' => 'wiki-tab',
|
||||
'icon' => 'pencil-square-o'
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
$arr = array('is_owner' => $is_owner, 'nickname' => $nickname, 'tab' => (($tab) ? $tab : false), 'tabs' => $tabs);
|
||||
call_hooks('profile_tabs', $arr);
|
||||
|
||||
$tpl = get_markup_template('common_tabs.tpl');
|
||||
$tpl = get_markup_template('profile_tabs.tpl');
|
||||
|
||||
return replace_macros($tpl,array('$tabs' => $arr['tabs']));
|
||||
return replace_macros($tpl, array(
|
||||
'$tabs' => $arr['tabs'],
|
||||
'$name' => App::$profile['channel_name'],
|
||||
'$thumb' => App::$profile['thumb']
|
||||
));
|
||||
}
|
||||
|
||||
|
||||
@@ -1828,15 +1850,11 @@ function get_responses($conv_responses,$response_verbs,$ob,$item) {
|
||||
$ret[$v] = array();
|
||||
$ret[$v]['count'] = ((x($conv_responses[$v],$item['mid'])) ? $conv_responses[$v][$item['mid']] : '');
|
||||
$ret[$v]['list'] = ((x($conv_responses[$v],$item['mid'])) ? $conv_responses[$v][$item['mid'] . '-l'] : '');
|
||||
if(count($ret[$v]['list']) > MAX_LIKERS) {
|
||||
$ret[$v]['list_part'] = array_slice($ret[$v]['list'], 0, MAX_LIKERS);
|
||||
array_push($ret[$v]['list_part'], '<a href="#" data-toggle="modal" data-target="#' . $v . 'Modal-'
|
||||
. (($ob) ? $ob->get_id() : $item['id']) . '"><b>' . t('View all') . '</b></a>');
|
||||
} else {
|
||||
$ret[$v]['list_part'] = '';
|
||||
}
|
||||
$ret[$v]['button'] = get_response_button_text($v,$ret[$v]['count']);
|
||||
$ret[$v]['title'] = $conv_responses[$v]['title'];
|
||||
if($ret[$v]['count'] > MAX_LIKERS) {
|
||||
$ret[$v]['modal'] = true;
|
||||
}
|
||||
}
|
||||
|
||||
$count = 0;
|
||||
|
||||
@@ -36,14 +36,15 @@ EOT;
|
||||
}
|
||||
elseif(remote_channel())
|
||||
$observer = App::get_observer();
|
||||
|
||||
|
||||
require_once('include/conversation.php');
|
||||
$is_owner = (((local_channel()) && (\App::$profile['profile_uid'] == local_channel())) ? true : false);
|
||||
$navapps[] = profile_tabs($a, $is_owner, \App::$profile['channel_address']);
|
||||
|
||||
$myident = (($channel) ? $channel['xchan_addr'] : '');
|
||||
|
||||
$sitelocation = (($myident) ? $myident : App::get_hostname());
|
||||
|
||||
|
||||
|
||||
/**
|
||||
*
|
||||
* Provide a banner/logo/whatever
|
||||
@@ -55,10 +56,9 @@ EOT;
|
||||
if($banner === false)
|
||||
$banner = get_config('system','sitename');
|
||||
|
||||
//the notifications template is in hdr.tpl
|
||||
App::$page['header'] .= replace_macros(get_markup_template('hdr.tpl'), array(
|
||||
'$baseurl' => z_root(),
|
||||
'$sitelocation' => $sitelocation,
|
||||
'$banner' => $banner
|
||||
//we could additionally use this to display important system notifications e.g. for updates
|
||||
));
|
||||
|
||||
$server_role = get_config('system','server_role');
|
||||
@@ -66,21 +66,21 @@ EOT;
|
||||
$techlevel = get_account_techlevel();
|
||||
|
||||
// nav links: array of array('href', 'text', 'extra css classes', 'title')
|
||||
$nav = Array();
|
||||
$nav = [];
|
||||
|
||||
/**
|
||||
* Display login or logout
|
||||
*/
|
||||
|
||||
$nav['usermenu']=array();
|
||||
$nav['usermenu'] = [];
|
||||
$userinfo = null;
|
||||
$nav['loginmenu']=array();
|
||||
$nav['loginmenu'] = [];
|
||||
|
||||
if($observer) {
|
||||
$userinfo = array(
|
||||
$userinfo = [
|
||||
'icon' => $observer['xchan_photo_m'],
|
||||
'name' => $observer['xchan_addr'],
|
||||
);
|
||||
];
|
||||
}
|
||||
|
||||
elseif(! $_SESSION['authenticated']) {
|
||||
@@ -96,38 +96,21 @@ EOT;
|
||||
if($chans && count($chans) > 1 && feature_enabled(local_channel(),'nav_channel_select') && (! $basic))
|
||||
$nav['channels'] = $chans;
|
||||
|
||||
$nav['logout'] = Array('logout',t('Logout'), "", t('End this session'),'logout_nav_btn');
|
||||
$nav['logout'] = ['logout',t('Logout'), "", t('End this session'),'logout_nav_btn'];
|
||||
|
||||
// user menu
|
||||
//$nav['usermenu'][] = Array('channel/' . $channel['channel_address'], t('Home'), "", t('Your posts and conversations'),'channel_nav_btn');
|
||||
$nav['usermenu'][] = Array('profile/' . $channel['channel_address'], t('View Profile'), "", t('Your profile page'),'profile_nav_btn');
|
||||
$nav['usermenu'][] = ['profile/' . $channel['channel_address'], t('View Profile'), "", t('Your profile page'),'profile_nav_btn'];
|
||||
|
||||
if(feature_enabled(local_channel(),'multi_profiles') && (! $basic))
|
||||
$nav['usermenu'][] = Array('profiles', t('Edit Profiles'),"", t('Manage/Edit profiles'),'profiles_nav_btn');
|
||||
$nav['usermenu'][] = ['profiles', t('Edit Profiles'),"", t('Manage/Edit profiles'),'profiles_nav_btn'];
|
||||
else
|
||||
$nav['usermenu'][] = Array('profiles/' . $prof[0]['id'], t('Edit Profile'),"", t('Edit your profile'),'profiles_nav_btn');
|
||||
$nav['usermenu'][] = ['profiles/' . $prof[0]['id'], t('Edit Profile'),"", t('Edit your profile'),'profiles_nav_btn'];
|
||||
|
||||
//$nav['usermenu'][] = Array('photos/' . $channel['channel_address'], t('Photos'), "", t('Your photos'),'photos_nav_btn');
|
||||
//$nav['usermenu'][] = Array('cloud/' . $channel['channel_address'],t('Files'),"",t('Your files'),'cloud_nav_btn');
|
||||
|
||||
//if((! $basic) && feature_enabled(local_channel(),'ajaxchat'))
|
||||
// $nav['usermenu'][] = Array('chat/' . $channel['channel_address'], t('Chat'),"",t('Your chatrooms'),'chat_nav_btn');
|
||||
|
||||
|
||||
//require_once('include/menu.php');
|
||||
//$has_bookmarks = menu_list_count(local_channel(),'',MENU_BOOKMARK) + menu_list_count(local_channel(),'',MENU_SYSTEM|MENU_BOOKMARK);
|
||||
//if(($has_bookmarks) && (! $basic)) {
|
||||
// $nav['usermenu'][] = Array('bookmarks', t('Bookmarks'), "", t('Your bookmarks'),'bookmarks_nav_btn');
|
||||
//}
|
||||
|
||||
//if(feature_enabled($channel['channel_id'],'webpages') && (! $basic))
|
||||
// $nav['usermenu'][] = Array('webpages/' . $channel['channel_address'],t('Webpages'),"",t('Your webpages'),'webpages_nav_btn');
|
||||
//if(feature_enabled($channel['channel_id'],'wiki') && (! $basic))
|
||||
// $nav['usermenu'][] = Array('wiki/' . $channel['channel_address'],t('Wikis'),"",t('Your wikis'),'wiki_nav_btn');
|
||||
}
|
||||
else {
|
||||
if(! get_account_id()) {
|
||||
$nav['login'] = login(true,'main-login',false,false);
|
||||
$nav['loginmenu'][] = Array('login',t('Login'),'',t('Sign in'),'login_nav_btn');
|
||||
$nav['loginmenu'][] = ['login',t('Login'),'',t('Sign in'),'login_nav_btn'];
|
||||
App::$page['content'] .= replace_macros(get_markup_template('nav_login.tpl'),
|
||||
[
|
||||
'$nav' => $nav,
|
||||
@@ -137,7 +120,7 @@ EOT;
|
||||
|
||||
}
|
||||
else
|
||||
$nav['alogout'] = Array('logout',t('Logout'), "", t('End this session'),'logout_nav_btn');
|
||||
$nav['alogout'] = ['logout',t('Logout'), "", t('End this session'),'logout_nav_btn'];
|
||||
|
||||
|
||||
}
|
||||
@@ -159,7 +142,7 @@ EOT;
|
||||
}
|
||||
|
||||
if(((get_config('system','register_policy') == REGISTER_OPEN) || (get_config('system','register_policy') == REGISTER_APPROVE)) && (! $_SESSION['authenticated']))
|
||||
$nav['register'] = array('register',t('Register'), "", t('Create an account'),'register_nav_btn');
|
||||
$nav['register'] = ['register',t('Register'), "", t('Create an account'),'register_nav_btn'];
|
||||
|
||||
if(! get_config('system','hide_help')) {
|
||||
$help_url = z_root() . '/help?f=&cmd=' . App::$cmd;
|
||||
@@ -171,15 +154,10 @@ EOT;
|
||||
//point directly to /help if $context_help is empty - this can be removed once we have context help for all modules
|
||||
$enable_context_help = (($context_help) ? true : false);
|
||||
}
|
||||
$nav['help'] = array($help_url, t('Help'), "", t('Help and documentation'), 'help_nav_btn', $context_help, $enable_context_help);
|
||||
$nav['help'] = [$help_url, t('Help'), "", t('Help and documentation'), 'help_nav_btn', $context_help, $enable_context_help];
|
||||
}
|
||||
|
||||
if(! $basic)
|
||||
$nav['apps'] = array('apps', t('Apps'), "", t('Applications, utilities, links, games'),'apps_nav_btn');
|
||||
|
||||
$nav['search'] = array('search', t('Search'), "", t('Search site @name, #tag, ?docs, content'));
|
||||
|
||||
$nav['directory'] = array('directory', t('Directory'), "", t('Channel Directory'),'directory_nav_btn');
|
||||
$nav['search'] = ['search', t('Search'), "", t('Search site @name, #tag, ?docs, content')];
|
||||
|
||||
|
||||
/**
|
||||
@@ -246,15 +224,13 @@ EOT;
|
||||
$banner = get_config('system','sitename');
|
||||
|
||||
$x = array('nav' => $nav, 'usermenu' => $userinfo );
|
||||
|
||||
call_hooks('nav', $x);
|
||||
|
||||
// Not sure the best place to put this on the page. So I'm implementing it but leaving it
|
||||
// turned off until somebody discovers this and figures out a good location for it.
|
||||
$powered_by = '';
|
||||
|
||||
// $powered_by = '<strong>red<img class="smiley" src="' . z_root() . '/images/rm-16.png" alt="r#" />matrix</strong>';
|
||||
|
||||
|
||||
//app bin
|
||||
if(local_channel()) {
|
||||
if(get_pconfig(local_channel(), 'system','initial_import_system_apps') === false) {
|
||||
|
||||
@@ -1456,11 +1456,10 @@ function format_hashtags(&$item) {
|
||||
continue;
|
||||
if(strpos($item['body'], $t['url']))
|
||||
continue;
|
||||
|
||||
if($s)
|
||||
$s .= ' ';
|
||||
$s .= ' ';
|
||||
|
||||
$s .= '#<a href="' . zid($t['url']) . '" >' . $term . '</a>';
|
||||
$s .= '<span class="badge badge-pill badge-info"><i class="fa fa-hashtag"></i> <a class="text-white" href="' . zid($t['url']) . '" >' . $term . '</a></span>';
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1480,11 +1479,9 @@ function format_mentions(&$item) {
|
||||
continue;
|
||||
if(strpos($item['body'], $t['url']))
|
||||
continue;
|
||||
|
||||
if($s)
|
||||
$s .= ' ';
|
||||
|
||||
$s .= '@<a href="' . zid($t['url']) . '" >' . $term . '</a>';
|
||||
$s .= ' ';
|
||||
$s .= '<span class="badge badge-pill badge-success"><i class="fa fa-at"></i> <a class="text-white" href="' . zid($t['url']) . '" >' . $term . '</a></span>';
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
1778
include/widgets.php
Normal file
1778
include/widgets.php
Normal file
File diff suppressed because it is too large
Load Diff
Reference in New Issue
Block a user