Merge branch 'dev'
This commit is contained in:
@@ -1644,319 +1644,6 @@ function prepare_page($item) {
|
||||
));
|
||||
}
|
||||
|
||||
|
||||
function network_tabs() {
|
||||
|
||||
$no_active='';
|
||||
$starred_active = '';
|
||||
$new_active = '';
|
||||
$all_active = '';
|
||||
$search_active = '';
|
||||
$conv_active = '';
|
||||
$spam_active = '';
|
||||
$postord_active = '';
|
||||
|
||||
if(x($_GET,'new')) {
|
||||
$new_active = 'active';
|
||||
}
|
||||
|
||||
if(x($_GET,'search')) {
|
||||
$search_active = 'active';
|
||||
}
|
||||
|
||||
if(x($_GET,'star')) {
|
||||
$starred_active = 'active';
|
||||
}
|
||||
|
||||
if(x($_GET,'conv')) {
|
||||
$conv_active = 'active';
|
||||
}
|
||||
|
||||
if(x($_GET,'spam')) {
|
||||
$spam_active = 'active';
|
||||
}
|
||||
|
||||
if (($new_active == '')
|
||||
&& ($starred_active == '')
|
||||
&& ($conv_active == '')
|
||||
&& ($search_active == '')
|
||||
&& ($spam_active == '')) {
|
||||
$no_active = 'active';
|
||||
}
|
||||
|
||||
if ($no_active=='active' && x($_GET,'order')) {
|
||||
switch($_GET['order']){
|
||||
case 'post': $postord_active = 'active'; $no_active=''; break;
|
||||
case 'comment' : $all_active = 'active'; $no_active=''; break;
|
||||
}
|
||||
}
|
||||
|
||||
if ($no_active=='active') $all_active='active';
|
||||
|
||||
$cmd = App::$cmd;
|
||||
|
||||
// tabs
|
||||
$tabs = array();
|
||||
|
||||
$tabs[] = array(
|
||||
'label' => t('Commented Order'),
|
||||
'url'=>z_root() . '/' . $cmd . '?f=&order=comment' . ((x($_GET,'cid')) ? '&cid=' . $_GET['cid'] : '') . ((x($_GET,'gid')) ? '&gid=' . $_GET['gid'] : ''),
|
||||
'sel'=>$all_active,
|
||||
'title'=> t('Sort by Comment Date'),
|
||||
);
|
||||
|
||||
$tabs[] = array(
|
||||
'label' => t('Posted Order'),
|
||||
'url'=>z_root() . '/' . $cmd . '?f=&order=post' . ((x($_GET,'cid')) ? '&cid=' . $_GET['cid'] : '') . ((x($_GET,'gid')) ? '&gid=' . $_GET['gid'] : ''),
|
||||
'sel'=>$postord_active,
|
||||
'title' => t('Sort by Post Date'),
|
||||
);
|
||||
|
||||
if(feature_enabled(local_channel(),'personal_tab')) {
|
||||
$tabs[] = array(
|
||||
'label' => t('Personal'),
|
||||
'url' => z_root() . '/' . $cmd . '?f=' . ((x($_GET,'cid')) ? '&cid=' . $_GET['cid'] : '') . '&conv=1',
|
||||
'sel' => $conv_active,
|
||||
'title' => t('Posts that mention or involve you'),
|
||||
);
|
||||
}
|
||||
|
||||
if(feature_enabled(local_channel(),'new_tab')) {
|
||||
$tabs[] = array(
|
||||
'label' => t('New'),
|
||||
'url' => z_root() . '/' . $cmd . '?f=' . ((x($_GET,'cid')) ? '&cid=' . $_GET['cid'] : '') . '&new=1' . ((x($_GET,'gid')) ? '&gid=' . $_GET['gid'] : ''),
|
||||
'sel' => $new_active,
|
||||
'title' => t('Activity Stream - by date'),
|
||||
);
|
||||
}
|
||||
|
||||
if(feature_enabled(local_channel(),'star_posts')) {
|
||||
$tabs[] = array(
|
||||
'label' => t('Starred'),
|
||||
'url'=>z_root() . '/' . $cmd . '/?f=' . ((x($_GET,'cid')) ? '&cid=' . $_GET['cid'] : '') . '&star=1',
|
||||
'sel'=>$starred_active,
|
||||
'title' => t('Favourite Posts'),
|
||||
);
|
||||
}
|
||||
// Not yet implemented
|
||||
|
||||
if(feature_enabled(local_channel(),'spam_filter')) {
|
||||
$tabs[] = array(
|
||||
'label' => t('Spam'),
|
||||
'url'=> z_root() . '/network?f=&spam=1',
|
||||
'sel'=> $spam_active,
|
||||
'title' => t('Posts flagged as SPAM'),
|
||||
);
|
||||
}
|
||||
|
||||
$arr = array('tabs' => $tabs);
|
||||
call_hooks('network_tabs', $arr);
|
||||
|
||||
$tpl = get_markup_template('common_tabs.tpl');
|
||||
|
||||
return replace_macros($tpl, array('$tabs' => $arr['tabs']));
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief
|
||||
*
|
||||
* @param App $a
|
||||
* @param boolean $is_owner default false
|
||||
* @param string $nickname default null
|
||||
* @return void|string
|
||||
*/
|
||||
function profile_tabs($a, $is_owner = false, $nickname = null){
|
||||
|
||||
// Don't provide any profile tabs if we're running as the sys channel
|
||||
|
||||
if (App::$is_sys)
|
||||
return;
|
||||
|
||||
if (get_pconfig($uid, 'system', 'noprofiletabs'))
|
||||
return;
|
||||
|
||||
$channel = App::get_channel();
|
||||
|
||||
if (is_null($nickname))
|
||||
$nickname = $channel['channel_address'];
|
||||
|
||||
|
||||
$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 = '';
|
||||
}
|
||||
else {
|
||||
$cal_link = '/cal/' . $nickname;
|
||||
}
|
||||
|
||||
require_once('include/security.php');
|
||||
$sql_options = item_permissions_sql($uid);
|
||||
|
||||
$r = q("select item.* from item left join iconfig on item.id = iconfig.iid
|
||||
where item.uid = %d and iconfig.cat = 'system' and iconfig.v = '%s'
|
||||
and item.item_delayed = 0 and item.item_deleted = 0
|
||||
and ( iconfig.k = 'WEBPAGE' and item_type = %d )
|
||||
$sql_options limit 1",
|
||||
intval($uid),
|
||||
dbesc('home'),
|
||||
intval(ITEM_TYPE_WEBPAGE)
|
||||
);
|
||||
|
||||
$has_webpages = (($r) ? true : false);
|
||||
|
||||
if (x($_GET, 'tab'))
|
||||
$tab = notags(trim($_GET['tab']));
|
||||
|
||||
$url = z_root() . '/channel/' . $nickname;
|
||||
$pr = z_root() . '/profile/' . $nickname;
|
||||
|
||||
$tabs = array(
|
||||
array(
|
||||
'label' => t('Channel'),
|
||||
'url' => $url,
|
||||
'sel' => ((argv(0) == 'channel') ? 'active' : ''),
|
||||
'title' => t('Status Messages and Posts'),
|
||||
'id' => 'status-tab',
|
||||
'icon' => 'home'
|
||||
),
|
||||
);
|
||||
|
||||
$p = get_all_perms($uid,get_observer_hash());
|
||||
|
||||
if ($p['view_profile']) {
|
||||
$tabs[] = array(
|
||||
'label' => t('About'),
|
||||
'url' => $pr,
|
||||
'sel' => ((argv(0) == 'profile') ? 'active' : ''),
|
||||
'title' => t('Profile Details'),
|
||||
'id' => 'profile-tab',
|
||||
'icon' => 'user'
|
||||
);
|
||||
}
|
||||
if ($p['view_storage']) {
|
||||
$tabs[] = array(
|
||||
'label' => t('Photos'),
|
||||
'url' => z_root() . '/photos/' . $nickname,
|
||||
'sel' => ((argv(0) == 'photos') ? 'active' : ''),
|
||||
'title' => t('Photo Albums'),
|
||||
'id' => 'photo-tab',
|
||||
'icon' => 'photo'
|
||||
);
|
||||
$tabs[] = array(
|
||||
'label' => t('Files'),
|
||||
'url' => z_root() . '/cloud/' . $nickname,
|
||||
'sel' => ((argv(0) == 'cloud' || argv(0) == 'sharedwithme') ? 'active' : ''),
|
||||
'title' => t('Files and Storage'),
|
||||
'id' => 'files-tab',
|
||||
'icon' => 'folder-open'
|
||||
);
|
||||
}
|
||||
|
||||
if($p['view_stream'] && $cal_link) {
|
||||
$tabs[] = array(
|
||||
'label' => t('Events'),
|
||||
'url' => z_root() . $cal_link,
|
||||
'sel' => ((argv(0) == 'cal' || argv(0) == 'events') ? 'active' : ''),
|
||||
'title' => t('Events'),
|
||||
'id' => 'event-tab',
|
||||
'icon' => 'calendar'
|
||||
);
|
||||
}
|
||||
|
||||
|
||||
if ($p['chat'] && feature_enabled($uid,'ajaxchat')) {
|
||||
$has_chats = Zotlabs\Lib\Chatroom::list_count($uid);
|
||||
if ($has_chats) {
|
||||
$tabs[] = array(
|
||||
'label' => t('Chatrooms'),
|
||||
'url' => z_root() . '/chat/' . $nickname,
|
||||
'sel' => ((argv(0) == 'chat') ? 'active' : '' ),
|
||||
'title' => t('Chatrooms'),
|
||||
'id' => 'chat-tab',
|
||||
'icon' => 'comments-o'
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
require_once('include/menu.php');
|
||||
$has_bookmarks = menu_list_count(local_channel(),'',MENU_BOOKMARK) + menu_list_count(local_channel(),'',MENU_SYSTEM|MENU_BOOKMARK);
|
||||
|
||||
if($is_owner && $has_bookmarks) {
|
||||
$tabs[] = array(
|
||||
'label' => t('Bookmarks'),
|
||||
'url' => z_root() . '/bookmarks',
|
||||
'sel' => ((argv(0) == 'bookmarks') ? 'active' : ''),
|
||||
'title' => t('Saved Bookmarks'),
|
||||
'id' => 'bookmarks-tab',
|
||||
'icon' => 'bookmark'
|
||||
);
|
||||
}
|
||||
|
||||
if(feature_enabled($uid,'cards')) {
|
||||
$tabs[] = array(
|
||||
'label' => t('Cards'),
|
||||
'url' => z_root() . '/cards/' . $nickname,
|
||||
'sel' => ((argv(0) == 'cards') ? 'active' : ''),
|
||||
'title' => t('View Cards'),
|
||||
'id' => 'cards-tab',
|
||||
'icon' => 'list'
|
||||
);
|
||||
}
|
||||
|
||||
if(feature_enabled($uid,'articles')) {
|
||||
$tabs[] = array(
|
||||
'label' => t('articles'),
|
||||
'url' => z_root() . '/articles/' . $nickname,
|
||||
'sel' => ((argv(0) == 'articles') ? 'active' : ''),
|
||||
'title' => t('View Articles'),
|
||||
'id' => 'articles-tab',
|
||||
'icon' => 'file-text-o'
|
||||
);
|
||||
}
|
||||
|
||||
if($has_webpages && feature_enabled($uid,'webpages')) {
|
||||
$tabs[] = array(
|
||||
'label' => t('Webpages'),
|
||||
'url' => z_root() . '/page/' . $nickname . '/home',
|
||||
'sel' => ((argv(0) == 'webpages') ? 'active' : ''),
|
||||
'title' => t('View Webpages'),
|
||||
'id' => 'webpages-tab',
|
||||
'icon' => 'newspaper-o'
|
||||
);
|
||||
}
|
||||
|
||||
|
||||
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('profile_tabs.tpl');
|
||||
|
||||
return replace_macros($tpl, array(
|
||||
'$tabs' => $arr['tabs'],
|
||||
'$name' => App::$profile['channel_name'],
|
||||
'$thumb' => App::$profile['thumb']
|
||||
));
|
||||
}
|
||||
|
||||
|
||||
function get_responses($conv_responses,$response_verbs,$ob,$item) {
|
||||
|
||||
$ret = array();
|
||||
|
||||
@@ -81,24 +81,6 @@ function get_features($filtered = true, $level = (-1)) {
|
||||
get_config('feature_lock','profile_export'),
|
||||
feature_level('profile_export',3),
|
||||
],
|
||||
|
||||
[
|
||||
'webpages',
|
||||
t('Web Pages'),
|
||||
t('Provide managed web pages on your channel'),
|
||||
false,
|
||||
get_config('feature_lock','webpages'),
|
||||
feature_level('webpages',3),
|
||||
],
|
||||
|
||||
[
|
||||
'wiki',
|
||||
t('Wiki'),
|
||||
t('Provide a wiki for your channel'),
|
||||
false,
|
||||
get_config('feature_lock','wiki'),
|
||||
feature_level('wiki',2),
|
||||
],
|
||||
/*
|
||||
[
|
||||
'hide_rating',
|
||||
@@ -118,15 +100,6 @@ function get_features($filtered = true, $level = (-1)) {
|
||||
feature_level('private_notes',1),
|
||||
],
|
||||
|
||||
[
|
||||
'articles',
|
||||
t('Articles'),
|
||||
t('Create interactive articles'),
|
||||
false,
|
||||
get_config('feature_lock','articles'),
|
||||
feature_level('articles',1),
|
||||
],
|
||||
|
||||
[
|
||||
'nav_channel_select',
|
||||
t('Navigation Channel Select'),
|
||||
@@ -145,16 +118,6 @@ function get_features($filtered = true, $level = (-1)) {
|
||||
feature_level('photo_location',2),
|
||||
],
|
||||
|
||||
[
|
||||
'ajaxchat',
|
||||
t('Access Controlled Chatrooms'),
|
||||
t('Provide chatrooms and chat services with access control.'),
|
||||
true,
|
||||
get_config('feature_lock','ajaxchat'),
|
||||
feature_level('ajaxchat',1),
|
||||
],
|
||||
|
||||
|
||||
[
|
||||
'smart_birthdays',
|
||||
t('Smart Birthdays'),
|
||||
|
||||
@@ -295,6 +295,8 @@ function bb_to_markdown($Text, $options = []) {
|
||||
*/
|
||||
function html2markdown($html,$options = []) {
|
||||
$markdown = '';
|
||||
|
||||
$html = htmlspecialchars($html);
|
||||
|
||||
$environment = Environment::createDefaultEnvironment($options);
|
||||
$environment->addConverter(new TableConverter());
|
||||
|
||||
@@ -1,11 +1,11 @@
|
||||
<?php /** @file */
|
||||
|
||||
use \Zotlabs\Lib as Zlib;
|
||||
use \Zotlabs\Lib\Apps;
|
||||
use \Zotlabs\Lib\Chatroom;
|
||||
|
||||
require_once('include/security.php');
|
||||
require_once('include/menu.php');
|
||||
|
||||
|
||||
function nav($template = 'default') {
|
||||
|
||||
/**
|
||||
@@ -213,26 +213,26 @@ function nav($template = 'default') {
|
||||
//app bin
|
||||
if($is_owner) {
|
||||
if(get_pconfig(local_channel(), 'system','import_system_apps') !== datetime_convert('UTC','UTC','now','Y-m-d')) {
|
||||
Zlib\Apps::import_system_apps();
|
||||
Apps::import_system_apps();
|
||||
set_pconfig(local_channel(), 'system','import_system_apps', datetime_convert('UTC','UTC','now','Y-m-d'));
|
||||
}
|
||||
|
||||
$syslist = array();
|
||||
$list = Zlib\Apps::app_list(local_channel(), false, ['nav_featured_app', 'nav_pinned_app']);
|
||||
$list = Apps::app_list(local_channel(), false, ['nav_featured_app', 'nav_pinned_app']);
|
||||
if($list) {
|
||||
foreach($list as $li) {
|
||||
$syslist[] = Zlib\Apps::app_encode($li);
|
||||
$syslist[] = Apps::app_encode($li);
|
||||
}
|
||||
}
|
||||
Zlib\Apps::translate_system_apps($syslist);
|
||||
Apps::translate_system_apps($syslist);
|
||||
}
|
||||
else {
|
||||
$syslist = Zlib\Apps::get_system_apps(true);
|
||||
$syslist = Apps::get_system_apps(true);
|
||||
}
|
||||
|
||||
usort($syslist,'Zotlabs\\Lib\\Apps::app_name_compare');
|
||||
|
||||
$syslist = Zlib\Apps::app_order(local_channel(),$syslist);
|
||||
$syslist = Apps::app_order(local_channel(),$syslist);
|
||||
|
||||
foreach($syslist as $app) {
|
||||
if(\App::$nav_sel['name'] == $app['name'])
|
||||
@@ -240,18 +240,18 @@ function nav($template = 'default') {
|
||||
|
||||
if($is_owner) {
|
||||
if(strpos($app['categories'],'nav_pinned_app') !== false) {
|
||||
$navbar_apps[] = Zlib\Apps::app_render($app,'navbar');
|
||||
$navbar_apps[] = Apps::app_render($app,'navbar');
|
||||
}
|
||||
else {
|
||||
$nav_apps[] = Zlib\Apps::app_render($app,'nav');
|
||||
$nav_apps[] = Apps::app_render($app,'nav');
|
||||
}
|
||||
}
|
||||
elseif(! $is_owner && strpos($app['requires'], 'local_channel') === false) {
|
||||
if(strpos($app['categories'],'nav_pinned_app') !== false) {
|
||||
$navbar_apps[] = Zlib\Apps::app_render($app,'navbar');
|
||||
$navbar_apps[] = Apps::app_render($app,'navbar');
|
||||
}
|
||||
else {
|
||||
$nav_apps[] = Zlib\Apps::app_render($app,'nav');
|
||||
$nav_apps[] = Apps::app_render($app,'nav');
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -314,12 +314,10 @@ function nav($template = 'default') {
|
||||
function nav_set_selected($item){
|
||||
App::$nav_sel['raw_name'] = $item;
|
||||
$item = ['name' => $item];
|
||||
Zlib\Apps::translate_system_apps($item);
|
||||
Apps::translate_system_apps($item);
|
||||
App::$nav_sel['name'] = $item['name'];
|
||||
}
|
||||
|
||||
|
||||
|
||||
function channel_apps($is_owner = false, $nickname = null) {
|
||||
|
||||
// Don't provide any channel apps if we're running as the sys channel
|
||||
@@ -419,8 +417,8 @@ function channel_apps($is_owner = false, $nickname = null) {
|
||||
}
|
||||
|
||||
|
||||
if ($p['chat'] && feature_enabled($uid,'ajaxchat')) {
|
||||
$has_chats = ZLib\Chatroom::list_count($uid);
|
||||
if ($p['chat'] && Apps::system_app_installed($uid,'Chatrooms')) {
|
||||
$has_chats = Chatroom::list_count($uid);
|
||||
if ($has_chats) {
|
||||
$tabs[] = [
|
||||
'label' => t('Chatrooms'),
|
||||
@@ -445,7 +443,7 @@ function channel_apps($is_owner = false, $nickname = null) {
|
||||
];
|
||||
}
|
||||
|
||||
if($p['view_pages'] && feature_enabled($uid,'cards')) {
|
||||
if($p['view_pages'] && Apps::system_app_installed($uid, 'Cards')) {
|
||||
$tabs[] = [
|
||||
'label' => t('Cards'),
|
||||
'url' => z_root() . '/cards/' . $nickname ,
|
||||
@@ -456,7 +454,7 @@ function channel_apps($is_owner = false, $nickname = null) {
|
||||
];
|
||||
}
|
||||
|
||||
if($p['view_pages'] && feature_enabled($uid,'articles')) {
|
||||
if($p['view_pages'] && Apps::system_app_installed($uid, 'Articles')) {
|
||||
$tabs[] = [
|
||||
'label' => t('Articles'),
|
||||
'url' => z_root() . '/articles/' . $nickname ,
|
||||
@@ -468,7 +466,7 @@ function channel_apps($is_owner = false, $nickname = null) {
|
||||
}
|
||||
|
||||
|
||||
if($has_webpages && feature_enabled($uid,'webpages')) {
|
||||
if($has_webpages && Apps::system_app_installed($uid, 'Webpages')) {
|
||||
$tabs[] = [
|
||||
'label' => t('Webpages'),
|
||||
'url' => z_root() . '/page/' . $nickname . '/home',
|
||||
@@ -480,21 +478,19 @@ function channel_apps($is_owner = false, $nickname = null) {
|
||||
}
|
||||
|
||||
|
||||
if ($p['view_wiki']) {
|
||||
if(feature_enabled($uid,'wiki') && (get_account_techlevel($account_id) > 3)) {
|
||||
$tabs[] = [
|
||||
'label' => t('Wikis'),
|
||||
'url' => z_root() . '/wiki/' . $nickname,
|
||||
'sel' => ((argv(0) == 'wiki') ? 'active' : ''),
|
||||
'title' => t('Wiki'),
|
||||
'id' => 'wiki-tab',
|
||||
'icon' => 'pencil-square-o'
|
||||
];
|
||||
}
|
||||
if ($p['view_wiki'] && Apps::system_app_installed($uid, 'Wiki')) {
|
||||
$tabs[] = [
|
||||
'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);
|
||||
|
||||
call_hooks('channel_apps', $arr);
|
||||
|
||||
return replace_macros(get_markup_template('profile_tabs.tpl'),
|
||||
|
||||
@@ -157,7 +157,7 @@ function z_fetch_url($url, $binary = false, $redirects = 0, $opts = array()) {
|
||||
|
||||
if($http_code == 301 || $http_code == 302 || $http_code == 303 || $http_code == 307 || $http_code == 308) {
|
||||
$matches = array();
|
||||
preg_match('/(Location:|URI:)(.*?)\n/', $header, $matches);
|
||||
preg_match('/(Location:|URI:)(.*?)\n/i', $header, $matches);
|
||||
$newurl = trim(array_pop($matches));
|
||||
if(strpos($newurl,'/') === 0)
|
||||
$newurl = $url . $newurl;
|
||||
|
||||
Reference in New Issue
Block a user