aboutsummaryrefslogtreecommitdiffstats
path: root/include
diff options
context:
space:
mode:
Diffstat (limited to 'include')
-rw-r--r--include/conversation.php313
-rw-r--r--include/features.php37
-rw-r--r--include/markdown.php2
-rw-r--r--include/nav.php60
-rw-r--r--include/network.php2
5 files changed, 31 insertions, 383 deletions
diff --git a/include/conversation.php b/include/conversation.php
index 4997bc2b7..28a339479 100644
--- a/include/conversation.php
+++ b/include/conversation.php
@@ -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();
diff --git a/include/features.php b/include/features.php
index 7e2c9a3ac..5479be122 100644
--- a/include/features.php
+++ b/include/features.php
@@ -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',
@@ -119,15 +101,6 @@ function get_features($filtered = true, $level = (-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'),
t('Change channels directly from within the navigation dropdown menu'),
@@ -146,16 +119,6 @@ function get_features($filtered = true, $level = (-1)) {
],
[
- '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'),
t('Make birthday events timezone aware in case your friends are scattered across the planet.'),
diff --git a/include/markdown.php b/include/markdown.php
index e5f5b9369..0d810764f 100644
--- a/include/markdown.php
+++ b/include/markdown.php
@@ -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());
diff --git a/include/nav.php b/include/nav.php
index 56fe9b901..9afba7945 100644
--- a/include/nav.php
+++ b/include/nav.php
@@ -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'),
diff --git a/include/network.php b/include/network.php
index d4f4f27c6..5ae02deff 100644
--- a/include/network.php
+++ b/include/network.php
@@ -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;