Merge branch '3.8RC'
This commit is contained in:
@@ -81,7 +81,7 @@ class Acl extends \Zotlabs\Web\Controller {
|
||||
|
||||
|
||||
if($search) {
|
||||
$sql_extra = " AND groups.gname LIKE " . protect_sprintf( "'%" . dbesc($search) . "%'" ) . " ";
|
||||
$sql_extra = " AND pgrp.gname LIKE " . protect_sprintf( "'%" . dbesc($search) . "%'" ) . " ";
|
||||
$sql_extra2 = "AND ( xchan_name LIKE " . protect_sprintf( "'%" . dbesc($search) . "%'" ) . " OR xchan_addr LIKE " . protect_sprintf( "'%" . dbesc(punify($search)) . ((strpos($search,'@') === false) ? "%@%'" : "%'")) . ") ";
|
||||
|
||||
// This horrible mess is needed because position also returns 0 if nothing is found.
|
||||
@@ -128,13 +128,13 @@ class Acl extends \Zotlabs\Web\Controller {
|
||||
|
||||
// Normal privacy groups
|
||||
|
||||
$r = q("SELECT groups.id, groups.hash, groups.gname
|
||||
FROM groups, group_member
|
||||
WHERE groups.deleted = 0 AND groups.uid = %d
|
||||
AND group_member.gid = groups.id
|
||||
$r = q("SELECT pgrp.id, pgrp.hash, pgrp.gname
|
||||
FROM pgrp, pgrp_member
|
||||
WHERE pgrp.deleted = 0 AND pgrp.uid = %d
|
||||
AND pgrp_member.gid = pgrp.id
|
||||
$sql_extra
|
||||
GROUP BY groups.id
|
||||
ORDER BY groups.gname
|
||||
GROUP BY pgrp.id
|
||||
ORDER BY pgrp.gname
|
||||
LIMIT %d OFFSET %d",
|
||||
intval(local_channel()),
|
||||
intval($count),
|
||||
|
||||
@@ -109,7 +109,7 @@ class Admin extends \Zotlabs\Web\Controller {
|
||||
|
||||
// available channels, primary and clones
|
||||
$channels = array();
|
||||
$r = q("SELECT COUNT(*) AS total, COUNT(CASE WHEN channel_primary = 1 THEN 1 ELSE NULL END) AS main, COUNT(CASE WHEN channel_primary = 0 THEN 1 ELSE NULL END) AS clones FROM channel WHERE channel_removed = 0");
|
||||
$r = q("SELECT COUNT(*) AS total, COUNT(CASE WHEN channel_primary = 1 THEN 1 ELSE NULL END) AS main, COUNT(CASE WHEN channel_primary = 0 THEN 1 ELSE NULL END) AS clones FROM channel WHERE channel_removed = 0 and channel_system = 0");
|
||||
if ($r) {
|
||||
$channels['total'] = array('label' => t('Channels'), 'val' => $r[0]['total']);
|
||||
$channels['main'] = array('label' => t('Primary'), 'val' => $r[0]['main']);
|
||||
|
||||
@@ -31,7 +31,7 @@ class Account_edit {
|
||||
}
|
||||
|
||||
$service_class = trim($_REQUEST['service_class']);
|
||||
$account_level = intval(trim($_REQUEST['account_level']));
|
||||
$account_level = 5;
|
||||
$account_language = trim($_REQUEST['account_language']);
|
||||
|
||||
$r = q("update account set account_service_class = '%s', account_level = %d, account_language = '%s'
|
||||
@@ -68,7 +68,6 @@ class Account_edit {
|
||||
'$title' => t('Account Edit'),
|
||||
'$pass1' => [ 'pass1', t('New Password'), ' ','' ],
|
||||
'$pass2' => [ 'pass2', t('New Password again'), ' ','' ],
|
||||
'$account_level' => [ 'account_level', t('Technical skill level'), $x[0]['account_level'], '', \Zotlabs\Lib\Techlevels::levels() ],
|
||||
'$account_language' => [ 'account_language' , t('Account language (for emails)'), $x[0]['account_language'], '', language_list() ],
|
||||
'$service_class' => [ 'service_class', t('Service class'), $x[0]['account_service_class'], '' ],
|
||||
'$submit' => t('Submit'),
|
||||
@@ -81,4 +80,4 @@ class Account_edit {
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
@@ -72,7 +72,6 @@ class Site {
|
||||
$maxloadavg = ((x($_POST,'maxloadavg')) ? intval(trim($_POST['maxloadavg'])) : 50);
|
||||
$feed_contacts = ((x($_POST,'feed_contacts')) ? intval($_POST['feed_contacts']) : 0);
|
||||
$verify_email = ((x($_POST,'verify_email')) ? 1 : 0);
|
||||
$techlevel_lock = ((x($_POST,'techlock')) ? intval($_POST['techlock']) : 0);
|
||||
$imagick_path = ((x($_POST,'imagick_path')) ? trim($_POST['imagick_path']) : '');
|
||||
$thumbnail_security = ((x($_POST,'thumbnail_security')) ? intval($_POST['thumbnail_security']) : 0);
|
||||
$force_queue = ((intval($_POST['force_queue']) > 0) ? intval($_POST['force_queue']) : 3000);
|
||||
@@ -81,10 +80,6 @@ class Site {
|
||||
|
||||
$permissions_role = escape_tags(trim($_POST['permissions_role']));
|
||||
|
||||
$techlevel = null;
|
||||
if(array_key_exists('techlevel', $_POST))
|
||||
$techlevel = intval($_POST['techlevel']);
|
||||
|
||||
set_config('system', 'feed_contacts', $feed_contacts);
|
||||
set_config('system', 'delivery_interval', $delivery_interval);
|
||||
set_config('system', 'delivery_batch_count', $delivery_batch_count);
|
||||
@@ -110,12 +105,6 @@ class Site {
|
||||
set_config('system', 'pubstream_incl',$pub_incl);
|
||||
set_config('system', 'pubstream_excl',$pub_excl);
|
||||
|
||||
set_config('system', 'techlevel_lock', $techlevel_lock);
|
||||
|
||||
|
||||
|
||||
if(! is_null($techlevel))
|
||||
set_config('system', 'techlevel', $techlevel);
|
||||
|
||||
if($directory_server)
|
||||
set_config('system','directory_server',$directory_server);
|
||||
@@ -284,15 +273,6 @@ class Site {
|
||||
// now invert the logic for the setting.
|
||||
$discover_tab = (1 - $discover_tab);
|
||||
|
||||
$techlevels = [
|
||||
'0' => t('Beginner/Basic'),
|
||||
'1' => t('Novice - not skilled but willing to learn'),
|
||||
'2' => t('Intermediate - somewhat comfortable'),
|
||||
'3' => t('Advanced - very comfortable'),
|
||||
'4' => t('Expert - I can write computer code'),
|
||||
'5' => t('Wizard - I probably know more than you do')
|
||||
];
|
||||
|
||||
$perm_roles = \Zotlabs\Access\PermissionRoles::roles();
|
||||
$default_role = get_config('system','default_permissions_role','social');
|
||||
|
||||
@@ -316,10 +296,6 @@ class Site {
|
||||
// name, label, value, help string, extra data...
|
||||
'$sitename' => array('sitename', t("Site name"), htmlspecialchars(get_config('system','sitename'), ENT_QUOTES, 'UTF-8'),''),
|
||||
|
||||
'$techlevel' => [ 'techlevel', t('Site default technical skill level'), get_config('system','techlevel'), t('Used to provide a member experience matched to technical comfort level'), $techlevels ],
|
||||
|
||||
'$techlock' => [ 'techlock', t('Lock the technical skill level setting'), get_config('system','techlevel_lock'), t('Members can set their own technical comfort level by default') ],
|
||||
|
||||
'$banner' => array('banner', t("Banner/Logo"), $banner, t('Unfiltered HTML/CSS/JS is allowed')),
|
||||
'$admininfo' => array('admininfo', t("Administrator Information"), $admininfo, t("Contact information for site administrators. Displayed on siteinfo page. BBCode can be used here")),
|
||||
'$siteinfo' => array('siteinfo', t('Site Information'), get_config('system','siteinfo'), t("Publicly visible description of this site. Displayed on siteinfo page. BBCode can be used here")),
|
||||
@@ -335,7 +311,7 @@ class Site {
|
||||
'$access_policy' => array('access_policy', t("Which best describes the types of account offered by this hub?"), get_config('system','access_policy'), t("This is displayed on the public server site list."), $access_choices),
|
||||
'$register_text' => array('register_text', t("Register text"), htmlspecialchars(get_config('system','register_text'), ENT_QUOTES, 'UTF-8'), t("Will be displayed prominently on the registration page.")),
|
||||
'$role' => $role,
|
||||
'$frontpage' => array('frontpage', t("Site homepage to show visitors (default: login box)"), get_config('system','frontpage'), t("example: 'public' to show public stream, 'page/sys/home' to show a system webpage called 'home' or 'include:home.html' to include a file.")),
|
||||
'$frontpage' => array('frontpage', t("Site homepage to show visitors (default: login box)"), get_config('system','frontpage'), t("example: 'pubstream' to show public stream, 'page/sys/home' to show a system webpage called 'home' or 'include:home.html' to include a file.")),
|
||||
'$mirror_frontpage' => array('mirror_frontpage', t("Preserve site homepage URL"), get_config('system','mirror_frontpage'), t('Present the site homepage in a frame at the original location instead of redirecting')),
|
||||
'$abandon_days' => array('abandon_days', t('Accounts abandoned after x days'), get_config('system','account_abandon_days'), t('Will not waste system resources polling external sites for abandonded accounts. Enter 0 for no time limit.')),
|
||||
'$allowed_sites' => array('allowed_sites', t("Allowed friend domains"), get_config('system','allowed_sites'), t("Comma separated list of domains which are allowed to establish friendships with this site. Wildcards are accepted. Empty to allow any domains")),
|
||||
|
||||
@@ -113,10 +113,12 @@ class Appman extends \Zotlabs\Web\Controller {
|
||||
if($r) {
|
||||
$app = $r[0];
|
||||
|
||||
$term = q("select * from term where otype = %d and oid = %d",
|
||||
$term = q("select * from term where otype = %d and oid = %d and uid = %d",
|
||||
intval(TERM_OBJ_APP),
|
||||
intval($r[0]['id'])
|
||||
intval($r[0]['id']),
|
||||
intval(local_channel())
|
||||
);
|
||||
|
||||
if($term) {
|
||||
$app['categories'] = '';
|
||||
foreach($term as $t) {
|
||||
|
||||
@@ -47,11 +47,11 @@ class Apps extends \Zotlabs\Web\Controller {
|
||||
return replace_macros(get_markup_template('myapps.tpl'), array(
|
||||
'$sitename' => get_config('system','sitename'),
|
||||
'$cat' => $cat,
|
||||
'$title' => t('Apps'),
|
||||
'$title' => (($available) ? t('Available Apps') : t('Installed Apps')),
|
||||
'$apps' => $apps,
|
||||
'$authed' => ((local_channel()) ? true : false),
|
||||
'$manage' => (($available) ? '' : t('Manage apps')),
|
||||
'$create' => (($mode == 'edit') ? t('Create new app') : '')
|
||||
'$manage' => (($available) ? '' : t('Manage Apps')),
|
||||
'$create' => (($mode == 'edit') ? t('Create Custom App') : '')
|
||||
));
|
||||
|
||||
}
|
||||
|
||||
@@ -122,7 +122,7 @@ class Article_edit extends \Zotlabs\Web\Controller {
|
||||
'bbcode' => (($mimetype == 'text/bbcode') ? true : false)
|
||||
);
|
||||
|
||||
$editor = status_editor($a, $x);
|
||||
$editor = status_editor($a, $x, false, 'Article_edit');
|
||||
|
||||
$o .= replace_macros(get_markup_template('edpost_head.tpl'), array(
|
||||
'$title' => t('Edit Article'),
|
||||
|
||||
@@ -1,12 +1,17 @@
|
||||
<?php
|
||||
namespace Zotlabs\Module;
|
||||
|
||||
use App;
|
||||
use Zotlabs\Lib\Apps;
|
||||
use Zotlabs\Web\Controller;
|
||||
use Zotlabs\Lib\PermissionDescription;
|
||||
|
||||
require_once('include/channel.php');
|
||||
require_once('include/conversation.php');
|
||||
require_once('include/acl_selectors.php');
|
||||
|
||||
|
||||
class Articles extends \Zotlabs\Web\Controller {
|
||||
class Articles extends Controller {
|
||||
|
||||
function init() {
|
||||
|
||||
@@ -25,22 +30,27 @@ class Articles extends \Zotlabs\Web\Controller {
|
||||
return login();
|
||||
}
|
||||
|
||||
if(! \App::$profile) {
|
||||
if(! App::$profile) {
|
||||
notice( t('Requested profile is not available.') . EOL );
|
||||
\App::$error = 404;
|
||||
App::$error = 404;
|
||||
return;
|
||||
}
|
||||
|
||||
if(! feature_enabled(\App::$profile_uid,'articles')) {
|
||||
return;
|
||||
if(! Apps::system_app_installed(App::$profile_uid, 'Articles')) {
|
||||
//Do not display any associated widgets at this point
|
||||
App::$pdl = '';
|
||||
|
||||
$o = '<b>' . t('Articles App') . ' (' . t('Not Installed') . '):</b><br>';
|
||||
$o .= t('Create interactive articles');
|
||||
return $o;
|
||||
}
|
||||
|
||||
nav_set_selected(t('Articles'));
|
||||
nav_set_selected('Articles');
|
||||
|
||||
head_add_link([
|
||||
'rel' => 'alternate',
|
||||
'type' => 'application/json+oembed',
|
||||
'href' => z_root() . '/oep?f=&url=' . urlencode(z_root() . '/' . \App::$query_string),
|
||||
'href' => z_root() . '/oep?f=&url=' . urlencode(z_root() . '/' . App::$query_string),
|
||||
'title' => 'oembed'
|
||||
]);
|
||||
|
||||
@@ -48,19 +58,21 @@ class Articles extends \Zotlabs\Web\Controller {
|
||||
$category = (($_REQUEST['cat']) ? escape_tags(trim($_REQUEST['cat'])) : '');
|
||||
|
||||
if($category) {
|
||||
$sql_extra2 .= protect_sprintf(term_item_parent_query(\App::$profile['profile_uid'],'item', $category, TERM_CATEGORY));
|
||||
$sql_extra2 .= protect_sprintf(term_item_parent_query(App::$profile['profile_uid'],'item', $category, TERM_CATEGORY));
|
||||
}
|
||||
|
||||
$datequery = ((x($_GET,'dend') && is_a_date_arg($_GET['dend'])) ? notags($_GET['dend']) : '');
|
||||
$datequery2 = ((x($_GET,'dbegin') && is_a_date_arg($_GET['dbegin'])) ? notags($_GET['dbegin']) : '');
|
||||
|
||||
$which = argv(1);
|
||||
|
||||
$selected_card = ((argc() > 2) ? argv(2) : '');
|
||||
|
||||
$_SESSION['return_url'] = \App::$query_string;
|
||||
$_SESSION['return_url'] = App::$query_string;
|
||||
|
||||
$uid = local_channel();
|
||||
$owner = \App::$profile_uid;
|
||||
$observer = \App::get_observer();
|
||||
$owner = App::$profile_uid;
|
||||
$observer = App::get_observer();
|
||||
|
||||
$ob_hash = (($observer) ? $observer['xchan_hash'] : '');
|
||||
|
||||
@@ -98,7 +110,7 @@ class Articles extends \Zotlabs\Web\Controller {
|
||||
'lockstate' => (($channel['channel_allow_cid'] || $channel['channel_allow_gid']
|
||||
|| $channel['channel_deny_cid'] || $channel['channel_deny_gid']) ? 'lock' : 'unlock'),
|
||||
'acl' => (($is_owner) ? populate_acl($channel_acl, false,
|
||||
\Zotlabs\Lib\PermissionDescription::fromGlobalPermission('view_pages')) : ''),
|
||||
PermissionDescription::fromGlobalPermission('view_pages')) : ''),
|
||||
'permissions' => $channel_acl,
|
||||
'showacl' => (($is_owner) ? true : false),
|
||||
'visitor' => true,
|
||||
@@ -120,7 +132,7 @@ class Articles extends \Zotlabs\Web\Controller {
|
||||
$x['title'] = $_REQUEST['title'];
|
||||
if($_REQUEST['body'])
|
||||
$x['body'] = $_REQUEST['body'];
|
||||
$editor = status_editor($a,$x);
|
||||
$editor = status_editor($a,$x,false,'Articles');
|
||||
|
||||
}
|
||||
else {
|
||||
@@ -128,8 +140,8 @@ class Articles extends \Zotlabs\Web\Controller {
|
||||
}
|
||||
|
||||
$itemspage = get_pconfig(local_channel(),'system','itemspage');
|
||||
\App::set_pager_itemspage(((intval($itemspage)) ? $itemspage : 20));
|
||||
$pager_sql = sprintf(" LIMIT %d OFFSET %d ", intval(\App::$pager['itemspage']), intval(\App::$pager['start']));
|
||||
App::set_pager_itemspage(((intval($itemspage)) ? $itemspage : 20));
|
||||
$pager_sql = sprintf(" LIMIT %d OFFSET %d ", intval(App::$pager['itemspage']), intval(App::$pager['start']));
|
||||
|
||||
|
||||
$sql_extra = item_permissions_sql($owner);
|
||||
@@ -143,10 +155,21 @@ class Articles extends \Zotlabs\Web\Controller {
|
||||
$sql_item = "and item.id = " . intval($r[0]['iid']) . " ";
|
||||
}
|
||||
}
|
||||
|
||||
if($datequery) {
|
||||
$sql_extra2 .= protect_sprintf(sprintf(" AND item.created <= '%s' ", dbesc(datetime_convert(date_default_timezone_get(),'',$datequery))));
|
||||
$order = 'post';
|
||||
}
|
||||
if($datequery2) {
|
||||
$sql_extra2 .= protect_sprintf(sprintf(" AND item.created >= '%s' ", dbesc(datetime_convert(date_default_timezone_get(),'',$datequery2))));
|
||||
}
|
||||
|
||||
if($datequery || $datequery2) {
|
||||
$sql_extra2 .= " and item.item_thread_top != 0 ";
|
||||
}
|
||||
|
||||
$r = q("select * from item
|
||||
where item.uid = %d and item_type = %d
|
||||
$sql_extra $sql_item order by item.created desc $pager_sql",
|
||||
$sql_extra $sql_extra2 $sql_item order by item.created desc $pager_sql",
|
||||
intval($owner),
|
||||
intval(ITEM_TYPE_ARTICLE)
|
||||
);
|
||||
@@ -166,7 +189,7 @@ class Articles extends \Zotlabs\Web\Controller {
|
||||
WHERE item.uid = %d $item_normal
|
||||
AND item.parent IN ( %s )
|
||||
$sql_extra $sql_extra2 ",
|
||||
intval(\App::$profile['profile_uid']),
|
||||
intval(App::$profile['profile_uid']),
|
||||
dbesc($parents_str)
|
||||
);
|
||||
if($items) {
|
||||
|
||||
@@ -7,27 +7,34 @@ use Zotlabs\Identity\OAuth2Storage;
|
||||
class Authorize extends \Zotlabs\Web\Controller {
|
||||
|
||||
function get() {
|
||||
if (!local_channel()) {
|
||||
if (! local_channel()) {
|
||||
return login();
|
||||
} else {
|
||||
// TODO: Fully implement the dynamic client registration protocol:
|
||||
// OpenID Connect Dynamic Client Registration 1.0 Client Metadata
|
||||
// http://openid.net/specs/openid-connect-registration-1_0.html
|
||||
$app = array(
|
||||
'name' => (x($_REQUEST, 'client_name') ? urldecode($_REQUEST['client_name']) : t('Unknown App')),
|
||||
'icon' => (x($_REQUEST, 'logo_uri') ? urldecode($_REQUEST['logo_uri']) : z_root() . '/images/icons/plugin.png'),
|
||||
'url' => (x($_REQUEST, 'client_uri') ? urldecode($_REQUEST['client_uri']) : ''),
|
||||
);
|
||||
$o .= replace_macros(get_markup_template('oauth_authorize.tpl'), array(
|
||||
'$title' => t('Authorize'),
|
||||
'$authorize' => sprintf( t('Do you authorize the app %s to access your channel data?'), '<a style="float: none;" href="' . $app['url'] . '">' . $app['name'] . '</a> '),
|
||||
'$app' => $app,
|
||||
'$yes' => t('Allow'),
|
||||
'$no' => t('Deny'),
|
||||
'$client_id' => (x($_REQUEST, 'client_id') ? $_REQUEST['client_id'] : ''),
|
||||
}
|
||||
else {
|
||||
|
||||
$name = $_REQUEST['client_name'];
|
||||
if(! $name) {
|
||||
$name = (($_REQUEST['client_id']) ?: t('Unknown App'));
|
||||
}
|
||||
|
||||
$app = [
|
||||
'name' => $name,
|
||||
'icon' => (x($_REQUEST, 'logo_uri') ? $_REQUEST['logo_uri'] : z_root() . '/images/icons/plugin.png'),
|
||||
'url' => (x($_REQUEST, 'client_uri') ? $_REQUEST['client_uri'] : ''),
|
||||
];
|
||||
|
||||
$link = (($app['url']) ? '<a style="float: none;" href="' . $app['url'] . '">' . $app['name'] . '</a> ' : $app['name']);
|
||||
|
||||
$o .= replace_macros(get_markup_template('oauth_authorize.tpl'), [
|
||||
'$title' => t('Authorize'),
|
||||
'$authorize' => sprintf( t('Do you authorize the app %s to access your channel data?'), $link ),
|
||||
'$app' => $app,
|
||||
'$yes' => t('Allow'),
|
||||
'$no' => t('Deny'),
|
||||
'$client_id' => (x($_REQUEST, 'client_id') ? $_REQUEST['client_id'] : ''),
|
||||
'$redirect_uri' => (x($_REQUEST, 'redirect_uri') ? $_REQUEST['redirect_uri'] : ''),
|
||||
'$state' => (x($_REQUEST, 'state') ? $_REQUEST['state'] : ''),
|
||||
));
|
||||
'$state' => (x($_REQUEST, 'state') ? $_REQUEST['state'] : ''),
|
||||
]);
|
||||
return $o;
|
||||
}
|
||||
}
|
||||
@@ -60,13 +67,16 @@ class Authorize extends \Zotlabs\Web\Controller {
|
||||
$request = \OAuth2\Request::createFromGlobals();
|
||||
$response = new \OAuth2\Response();
|
||||
|
||||
// Note, "sub" field must match type and content. $user_id is used to populate - make sure it's a string.
|
||||
$channel = channelx_by_n(local_channel());
|
||||
$user_id = $channel['channel_id'];
|
||||
|
||||
// If the client is not registered, add to the database
|
||||
if (!$client = $storage->getClientDetails($client_id)) {
|
||||
$client_secret = random_string(16);
|
||||
// Until "Dynamic Client Registration" is pursued - allow new clients to assign their own secret in the REQUEST
|
||||
$client_secret = (isset($_REQUEST['client_secret'])) ? $_REQUEST['client_secret'] : random_string(16);
|
||||
// Client apps are registered per channel
|
||||
$user_id = local_channel();
|
||||
$storage->setClientDetails($client_id, $client_secret, $redirect_uri, 'authorization_code', null, $user_id);
|
||||
|
||||
$storage->setClientDetails($client_id, $client_secret, $redirect_uri, 'authorization_code', $_REQUEST['scope'], $user_id);
|
||||
}
|
||||
if (!$client = $storage->getClientDetails($client_id)) {
|
||||
// There was an error registering the client.
|
||||
@@ -83,7 +93,7 @@ class Authorize extends \Zotlabs\Web\Controller {
|
||||
|
||||
// print the authorization code if the user has authorized your client
|
||||
$is_authorized = ($_POST['authorize'] === 'allow');
|
||||
$s->handleAuthorizeRequest($request, $response, $is_authorized, local_channel());
|
||||
$s->handleAuthorizeRequest($request, $response, $is_authorized, $user_id);
|
||||
if ($is_authorized) {
|
||||
$code = substr($response->getHttpHeader('Location'), strpos($response->getHttpHeader('Location'), 'code=') + 5, 40);
|
||||
logger('Authorization Code: ' . $code);
|
||||
|
||||
@@ -109,7 +109,7 @@ class Blocks extends \Zotlabs\Web\Controller {
|
||||
if($_REQUEST['pagetitle'])
|
||||
$x['pagetitle'] = $_REQUEST['pagetitle'];
|
||||
|
||||
$editor = status_editor($a,$x);
|
||||
$editor = status_editor($a,$x,false,'Blocks');
|
||||
|
||||
|
||||
$r = q("select iconfig.iid, iconfig.k, iconfig.v, mid, title, body, mimetype, created, edited from iconfig
|
||||
|
||||
@@ -1,6 +1,9 @@
|
||||
<?php
|
||||
namespace Zotlabs\Module;
|
||||
|
||||
use App;
|
||||
use Zotlabs\Lib\Apps;
|
||||
|
||||
|
||||
class Bookmarks extends \Zotlabs\Web\Controller {
|
||||
|
||||
@@ -8,7 +11,10 @@ class Bookmarks extends \Zotlabs\Web\Controller {
|
||||
if(! local_channel())
|
||||
return;
|
||||
|
||||
nav_set_selected('View Bookmarks');
|
||||
if(! Apps::system_app_installed(local_channel(), 'Bookmarks'))
|
||||
return;
|
||||
|
||||
nav_set_selected('Bookmarks');
|
||||
|
||||
$item_id = intval($_REQUEST['item']);
|
||||
$burl = trim($_REQUEST['burl']);
|
||||
@@ -59,19 +65,26 @@ class Bookmarks extends \Zotlabs\Web\Controller {
|
||||
killme();
|
||||
}
|
||||
|
||||
function get() {
|
||||
function get() {
|
||||
if(! local_channel()) {
|
||||
notice( t('Permission denied.') . EOL);
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
if(! Apps::system_app_installed(local_channel(), 'Bookmarks')) {
|
||||
//Do not display any associated widgets at this point
|
||||
App::$pdl = '';
|
||||
|
||||
$o = '<b>' . t('Bookmarks App') . ' (' . t('Not Installed') . '):</b><br>';
|
||||
$o .= t('Bookmark links from posts and manage them');
|
||||
return $o;
|
||||
}
|
||||
|
||||
require_once('include/menu.php');
|
||||
require_once('include/conversation.php');
|
||||
|
||||
$channel = \App::get_channel();
|
||||
|
||||
//$o = profile_tabs($a,true,$channel['channel_address']);
|
||||
$o = '';
|
||||
|
||||
$o .= '<div class="generic-content-wrapper-styled">';
|
||||
|
||||
@@ -6,6 +6,7 @@ require_once('include/bbcode.php');
|
||||
require_once('include/datetime.php');
|
||||
require_once('include/event.php');
|
||||
require_once('include/items.php');
|
||||
require_once('include/html2plain.php');
|
||||
|
||||
|
||||
class Cal extends \Zotlabs\Web\Controller {
|
||||
@@ -74,7 +75,7 @@ class Cal extends \Zotlabs\Web\Controller {
|
||||
|
||||
$sql_extra = permissions_sql($channel['channel_id'],get_observer_hash(),'event');
|
||||
|
||||
$first_day = get_pconfig(local_channel(),'system','cal_first_day');
|
||||
$first_day = feature_enabled($channel['channel_id'], 'events_cal_first_day');
|
||||
$first_day = (($first_day) ? $first_day : 0);
|
||||
|
||||
$htpl = get_markup_template('event_head.tpl');
|
||||
@@ -88,9 +89,6 @@ class Cal extends \Zotlabs\Web\Controller {
|
||||
|
||||
$o = '';
|
||||
|
||||
//$tabs = profile_tabs($a, True, $channel['channel_address']);
|
||||
$tabs = '';
|
||||
|
||||
$mode = 'view';
|
||||
$y = 0;
|
||||
$m = 0;
|
||||
@@ -296,6 +294,7 @@ class Cal extends \Zotlabs\Web\Controller {
|
||||
}
|
||||
$html = format_event_html($rr);
|
||||
$rr['desc'] = zidify_links(smilies(bbcode($rr['desc'])));
|
||||
$rr['description'] = htmlentities(html2plain(bbcode($rr['description'])),ENT_COMPAT,'UTF-8',false);
|
||||
$rr['location'] = zidify_links(smilies(bbcode($rr['location'])));
|
||||
$events[] = array(
|
||||
'id'=>$rr['id'],
|
||||
@@ -347,8 +346,7 @@ class Cal extends \Zotlabs\Web\Controller {
|
||||
'$next' => t('Next'),
|
||||
'$today' => t('Today'),
|
||||
'$form' => $form,
|
||||
'$expandform' => ((x($_GET,'expandform')) ? true : false),
|
||||
'$tabs' => $tabs
|
||||
'$expandform' => ((x($_GET,'expandform')) ? true : false)
|
||||
));
|
||||
|
||||
if (x($_GET,'id')){ echo $o; killme(); }
|
||||
|
||||
@@ -122,7 +122,7 @@ class Card_edit extends \Zotlabs\Web\Controller {
|
||||
'bbcode' => (($mimetype == 'text/bbcode') ? true : false)
|
||||
);
|
||||
|
||||
$editor = status_editor($a, $x);
|
||||
$editor = status_editor($a, $x, false, 'Card_edit');
|
||||
|
||||
$o .= replace_macros(get_markup_template('edpost_head.tpl'), array(
|
||||
'$title' => t('Edit Card'),
|
||||
|
||||
@@ -1,12 +1,16 @@
|
||||
<?php
|
||||
namespace Zotlabs\Module;
|
||||
|
||||
use App;
|
||||
use Zotlabs\Lib\Apps;
|
||||
use Zotlabs\Web\Controller;
|
||||
use Zotlabs\Lib\PermissionDescription;
|
||||
|
||||
require_once('include/channel.php');
|
||||
require_once('include/conversation.php');
|
||||
require_once('include/acl_selectors.php');
|
||||
|
||||
|
||||
class Cards extends \Zotlabs\Web\Controller {
|
||||
class Cards extends Controller {
|
||||
|
||||
function init() {
|
||||
|
||||
@@ -29,22 +33,27 @@ class Cards extends \Zotlabs\Web\Controller {
|
||||
return login();
|
||||
}
|
||||
|
||||
if(! \App::$profile) {
|
||||
if(! App::$profile) {
|
||||
notice( t('Requested profile is not available.') . EOL );
|
||||
\App::$error = 404;
|
||||
App::$error = 404;
|
||||
return;
|
||||
}
|
||||
|
||||
if(! feature_enabled(\App::$profile_uid, 'cards')) {
|
||||
return;
|
||||
if(! Apps::system_app_installed(App::$profile_uid, 'Cards')) {
|
||||
//Do not display any associated widgets at this point
|
||||
App::$pdl = '';
|
||||
|
||||
$o = '<b>' . t('Cards App') . ' (' . t('Not Installed') . '):</b><br>';
|
||||
$o .= t('Create personal planning cards');
|
||||
return $o;
|
||||
}
|
||||
|
||||
nav_set_selected(t('Cards'));
|
||||
nav_set_selected('Cards');
|
||||
|
||||
head_add_link([
|
||||
'rel' => 'alternate',
|
||||
'type' => 'application/json+oembed',
|
||||
'href' => z_root() . '/oep?f=&url=' . urlencode(z_root() . '/' . \App::$query_string),
|
||||
'href' => z_root() . '/oep?f=&url=' . urlencode(z_root() . '/' . App::$query_string),
|
||||
'title' => 'oembed'
|
||||
]);
|
||||
|
||||
@@ -52,7 +61,7 @@ class Cards extends \Zotlabs\Web\Controller {
|
||||
$category = (($_REQUEST['cat']) ? escape_tags(trim($_REQUEST['cat'])) : '');
|
||||
|
||||
if($category) {
|
||||
$sql_extra2 .= protect_sprintf(term_item_parent_query(\App::$profile['profile_uid'], 'item', $category, TERM_CATEGORY));
|
||||
$sql_extra2 .= protect_sprintf(term_item_parent_query(App::$profile['profile_uid'], 'item', $category, TERM_CATEGORY));
|
||||
}
|
||||
|
||||
|
||||
@@ -60,11 +69,11 @@ class Cards extends \Zotlabs\Web\Controller {
|
||||
|
||||
$selected_card = ((argc() > 2) ? argv(2) : '');
|
||||
|
||||
$_SESSION['return_url'] = \App::$query_string;
|
||||
$_SESSION['return_url'] = App::$query_string;
|
||||
|
||||
$uid = local_channel();
|
||||
$owner = \App::$profile_uid;
|
||||
$observer = \App::get_observer();
|
||||
$owner = App::$profile_uid;
|
||||
$observer = App::get_observer();
|
||||
|
||||
$ob_hash = (($observer) ? $observer['xchan_hash'] : '');
|
||||
|
||||
@@ -101,8 +110,8 @@ class Cards extends \Zotlabs\Web\Controller {
|
||||
'nickname' => $channel['channel_address'],
|
||||
'lockstate' => (($channel['channel_allow_cid'] || $channel['channel_allow_gid']
|
||||
|| $channel['channel_deny_cid'] || $channel['channel_deny_gid']) ? 'lock' : 'unlock'),
|
||||
'acl' => (($is_owner) ? populate_acl($channel_acl, false,
|
||||
\Zotlabs\Lib\PermissionDescription::fromGlobalPermission('view_pages')) : ''),
|
||||
'acl' => (($is_owner) ? populate_acl($channel_acl, false,
|
||||
PermissionDescription::fromGlobalPermission('view_pages')) : ''),
|
||||
'permissions' => $channel_acl,
|
||||
'showacl' => (($is_owner) ? true : false),
|
||||
'visitor' => true,
|
||||
@@ -124,7 +133,7 @@ class Cards extends \Zotlabs\Web\Controller {
|
||||
if($_REQUEST['body'])
|
||||
$x['body'] = $_REQUEST['body'];
|
||||
|
||||
$editor = status_editor($a, $x);
|
||||
$editor = status_editor($a, $x, false, 'Cards');
|
||||
}
|
||||
else {
|
||||
$editor = '';
|
||||
@@ -132,8 +141,8 @@ class Cards extends \Zotlabs\Web\Controller {
|
||||
|
||||
|
||||
$itemspage = get_pconfig(local_channel(),'system','itemspage');
|
||||
\App::set_pager_itemspage(((intval($itemspage)) ? $itemspage : 20));
|
||||
$pager_sql = sprintf(" LIMIT %d OFFSET %d ", intval(\App::$pager['itemspage']), intval(\App::$pager['start']));
|
||||
App::set_pager_itemspage(((intval($itemspage)) ? $itemspage : 20));
|
||||
$pager_sql = sprintf(" LIMIT %d OFFSET %d ", intval(App::$pager['itemspage']), intval(App::$pager['start']));
|
||||
|
||||
|
||||
$sql_extra = item_permissions_sql($owner);
|
||||
@@ -171,7 +180,7 @@ class Cards extends \Zotlabs\Web\Controller {
|
||||
WHERE item.uid = %d $item_normal
|
||||
AND item.parent IN ( %s )
|
||||
$sql_extra $sql_extra2 ",
|
||||
intval(\App::$profile['profile_uid']),
|
||||
intval(App::$profile['profile_uid']),
|
||||
dbesc($parents_str)
|
||||
);
|
||||
if($items) {
|
||||
|
||||
@@ -1,12 +1,16 @@
|
||||
<?php
|
||||
namespace Zotlabs\Module;
|
||||
|
||||
use App;
|
||||
use Zotlabs\Lib\Apps;
|
||||
use Zotlabs\Web\Controller;
|
||||
|
||||
require_once('include/event.php');
|
||||
|
||||
require_once('include/auth.php');
|
||||
require_once('include/security.php');
|
||||
|
||||
class Cdav extends \Zotlabs\Web\Controller {
|
||||
class Cdav extends Controller {
|
||||
|
||||
function init() {
|
||||
|
||||
@@ -126,8 +130,18 @@ class Cdav extends \Zotlabs\Web\Controller {
|
||||
$auth->setRealm(ucfirst(\Zotlabs\Lib\System::get_platform_name()) . 'CalDAV/CardDAV');
|
||||
|
||||
if (local_channel()) {
|
||||
|
||||
logger('loggedin');
|
||||
$channel = \App::get_channel();
|
||||
|
||||
if((argv(1) == 'calendars') && (!Apps::system_app_installed(local_channel(), 'CalDAV'))) {
|
||||
killme();
|
||||
}
|
||||
|
||||
if((argv(1) == 'addressbooks') && (!Apps::system_app_installed(local_channel(), 'CardDAV'))) {
|
||||
killme();
|
||||
}
|
||||
|
||||
$channel = App::get_channel();
|
||||
$auth->setCurrentUser($channel['channel_address']);
|
||||
$auth->channel_id = $channel['channel_id'];
|
||||
$auth->channel_hash = $channel['channel_hash'];
|
||||
@@ -161,12 +175,15 @@ class Cdav extends \Zotlabs\Web\Controller {
|
||||
$nodes = [
|
||||
// /principals
|
||||
new \Sabre\CalDAV\Principal\Collection($principalBackend),
|
||||
|
||||
// /calendars
|
||||
new \Sabre\CalDAV\CalendarRoot($principalBackend, $caldavBackend),
|
||||
|
||||
// /addressbook
|
||||
new \Sabre\CardDAV\AddressBookRoot($principalBackend, $carddavBackend),
|
||||
new \Sabre\CardDAV\AddressBookRoot($principalBackend, $carddavBackend)
|
||||
];
|
||||
|
||||
|
||||
// The object tree needs in turn to be passed to the server class
|
||||
|
||||
$server = new \Sabre\DAV\Server($nodes);
|
||||
@@ -204,7 +221,15 @@ class Cdav extends \Zotlabs\Web\Controller {
|
||||
if(! local_channel())
|
||||
return;
|
||||
|
||||
$channel = \App::get_channel();
|
||||
if((argv(1) === 'calendar') && (! Apps::system_app_installed(local_channel(), 'CalDAV'))) {
|
||||
return;
|
||||
}
|
||||
|
||||
if((argv(1) === 'addressbook') && (! Apps::system_app_installed(local_channel(), 'CardDAV'))) {
|
||||
return;
|
||||
}
|
||||
|
||||
$channel = App::get_channel();
|
||||
$principalUri = 'principals/' . $channel['channel_address'];
|
||||
|
||||
if(!cdav_principal($principalUri))
|
||||
@@ -807,7 +832,27 @@ class Cdav extends \Zotlabs\Web\Controller {
|
||||
if(!local_channel())
|
||||
return;
|
||||
|
||||
$channel = \App::get_channel();
|
||||
if((argv(1) === 'calendar') && (! Apps::system_app_installed(local_channel(), 'CalDAV'))) {
|
||||
//Do not display any associated widgets at this point
|
||||
App::$pdl = '';
|
||||
|
||||
$o = '<b>' . t('CalDAV App') . ' (' . t('Not Installed') . '):</b><br>';
|
||||
$o .= t('CalDAV capable calendar');
|
||||
return $o;
|
||||
}
|
||||
|
||||
if((argv(1) === 'addressbook') && (! Apps::system_app_installed(local_channel(), 'CardDAV'))) {
|
||||
//Do not display any associated widgets at this point
|
||||
App::$pdl = '';
|
||||
|
||||
$o = '<b>' . t('CardDAV App') . ' (' . t('Not Installed') . '):</b><br>';
|
||||
$o .= t('CalDAV capable addressbook');
|
||||
return $o;
|
||||
}
|
||||
|
||||
App::$profile_uid = local_channel();
|
||||
|
||||
$channel = App::get_channel();
|
||||
$principalUri = 'principals/' . $channel['channel_address'];
|
||||
|
||||
$pdo = \DBA::$dba->db;
|
||||
@@ -862,7 +907,7 @@ class Cdav extends \Zotlabs\Web\Controller {
|
||||
|
||||
$sources = rtrim($sources, ', ');
|
||||
|
||||
$first_day = get_pconfig(local_channel(),'system','cal_first_day');
|
||||
$first_day = feature_enabled(local_channel(), 'cal_first_day');
|
||||
$first_day = (($first_day) ? $first_day : 0);
|
||||
|
||||
$title = ['title', t('Event title')];
|
||||
@@ -874,7 +919,7 @@ class Cdav extends \Zotlabs\Web\Controller {
|
||||
$o .= replace_macros(get_markup_template('cdav_calendar.tpl'), [
|
||||
'$sources' => $sources,
|
||||
'$color' => $color,
|
||||
'$lang' => \App::$language,
|
||||
'$lang' => App::$language,
|
||||
'$first_day' => $first_day,
|
||||
'$prev' => t('Previous'),
|
||||
'$next' => t('Next'),
|
||||
|
||||
@@ -2,19 +2,23 @@
|
||||
|
||||
namespace Zotlabs\Module;
|
||||
|
||||
require_once('include/contact_widgets.php');
|
||||
|
||||
use App;
|
||||
use Zotlabs\Web\Controller;
|
||||
use Zotlabs\Lib\PermissionDescription;
|
||||
|
||||
require_once('include/items.php');
|
||||
require_once("include/bbcode.php");
|
||||
require_once('include/security.php');
|
||||
require_once('include/conversation.php');
|
||||
require_once('include/acl_selectors.php');
|
||||
require_once('include/permissions.php');
|
||||
|
||||
|
||||
/**
|
||||
* @brief Channel Controller
|
||||
*
|
||||
*/
|
||||
class Channel extends \Zotlabs\Web\Controller {
|
||||
|
||||
class Channel extends Controller {
|
||||
|
||||
function init() {
|
||||
|
||||
@@ -26,7 +30,7 @@ class Channel extends \Zotlabs\Web\Controller {
|
||||
$which = argv(1);
|
||||
if(! $which) {
|
||||
if(local_channel()) {
|
||||
$channel = \App::get_channel();
|
||||
$channel = App::get_channel();
|
||||
if($channel && $channel['channel_address'])
|
||||
$which = $channel['channel_address'];
|
||||
}
|
||||
@@ -37,7 +41,7 @@ class Channel extends \Zotlabs\Web\Controller {
|
||||
}
|
||||
|
||||
$profile = 0;
|
||||
$channel = \App::get_channel();
|
||||
$channel = App::get_channel();
|
||||
|
||||
if((local_channel()) && (argc() > 2) && (argv(2) === 'view')) {
|
||||
$which = $channel['channel_address'];
|
||||
@@ -67,11 +71,11 @@ class Channel extends \Zotlabs\Web\Controller {
|
||||
|
||||
function get($update = 0, $load = false) {
|
||||
|
||||
$noscript_content = get_config('system', 'noscript_content', '1');
|
||||
|
||||
if($load)
|
||||
$_SESSION['loadtime'] = datetime_convert();
|
||||
|
||||
$checkjs = new \Zotlabs\Web\CheckJS(1);
|
||||
|
||||
$category = $datequery = $datequery2 = '';
|
||||
|
||||
$mid = ((x($_REQUEST,'mid')) ? $_REQUEST['mid'] : '');
|
||||
@@ -95,22 +99,22 @@ class Channel extends \Zotlabs\Web\Controller {
|
||||
|
||||
if($update) {
|
||||
// Ensure we've got a profile owner if updating.
|
||||
\App::$profile['profile_uid'] = \App::$profile_uid = $update;
|
||||
App::$profile['profile_uid'] = App::$profile_uid = $update;
|
||||
}
|
||||
|
||||
$is_owner = (((local_channel()) && (\App::$profile['profile_uid'] == local_channel())) ? true : false);
|
||||
$is_owner = (((local_channel()) && (App::$profile['profile_uid'] == local_channel())) ? true : false);
|
||||
|
||||
$channel = \App::get_channel();
|
||||
$observer = \App::get_observer();
|
||||
$channel = App::get_channel();
|
||||
$observer = App::get_observer();
|
||||
$ob_hash = (($observer) ? $observer['xchan_hash'] : '');
|
||||
|
||||
$perms = get_all_perms(\App::$profile['profile_uid'],$ob_hash);
|
||||
$perms = get_all_perms(App::$profile['profile_uid'],$ob_hash);
|
||||
|
||||
if(! $perms['view_stream']) {
|
||||
// We may want to make the target of this redirect configurable
|
||||
if($perms['view_profile']) {
|
||||
notice( t('Insufficient permissions. Request redirected to profile page.') . EOL);
|
||||
goaway (z_root() . "/profile/" . \App::$profile['channel_address']);
|
||||
goaway (z_root() . "/profile/" . App::$profile['channel_address']);
|
||||
}
|
||||
notice( t('Permission denied.') . EOL);
|
||||
return;
|
||||
@@ -121,7 +125,7 @@ class Channel extends \Zotlabs\Web\Controller {
|
||||
|
||||
nav_set_selected('Channel Home');
|
||||
|
||||
$static = channel_manual_conv_update(\App::$profile['profile_uid']);
|
||||
$static = channel_manual_conv_update(App::$profile['profile_uid']);
|
||||
|
||||
// search terms header
|
||||
if($search) {
|
||||
@@ -147,16 +151,16 @@ class Channel extends \Zotlabs\Web\Controller {
|
||||
|
||||
$x = array(
|
||||
'is_owner' => $is_owner,
|
||||
'allow_location' => ((($is_owner || $observer) && (intval(get_pconfig(\App::$profile['profile_uid'],'system','use_browser_location')))) ? true : false),
|
||||
'default_location' => (($is_owner) ? \App::$profile['channel_location'] : ''),
|
||||
'nickname' => \App::$profile['channel_address'],
|
||||
'lockstate' => (((strlen(\App::$profile['channel_allow_cid'])) || (strlen(\App::$profile['channel_allow_gid'])) || (strlen(\App::$profile['channel_deny_cid'])) || (strlen(\App::$profile['channel_deny_gid']))) ? 'lock' : 'unlock'),
|
||||
'acl' => (($is_owner) ? populate_acl($channel_acl,true, \Zotlabs\Lib\PermissionDescription::fromGlobalPermission('view_stream'), get_post_aclDialogDescription(), 'acl_dialog_post') : ''),
|
||||
'allow_location' => ((($is_owner || $observer) && (intval(get_pconfig(App::$profile['profile_uid'],'system','use_browser_location')))) ? true : false),
|
||||
'default_location' => (($is_owner) ? App::$profile['channel_location'] : ''),
|
||||
'nickname' => App::$profile['channel_address'],
|
||||
'lockstate' => (((strlen(App::$profile['channel_allow_cid'])) || (strlen(App::$profile['channel_allow_gid'])) || (strlen(App::$profile['channel_deny_cid'])) || (strlen(App::$profile['channel_deny_gid']))) ? 'lock' : 'unlock'),
|
||||
'acl' => (($is_owner) ? populate_acl($channel_acl,true, PermissionDescription::fromGlobalPermission('view_stream'), get_post_aclDialogDescription(), 'acl_dialog_post') : ''),
|
||||
'permissions' => $channel_acl,
|
||||
'showacl' => (($is_owner) ? 'yes' : ''),
|
||||
'bang' => '',
|
||||
'visitor' => (($is_owner || $observer) ? true : false),
|
||||
'profile_uid' => \App::$profile['profile_uid'],
|
||||
'profile_uid' => App::$profile['profile_uid'],
|
||||
'editor_autocomplete' => true,
|
||||
'bbco_autocomplete' => 'bbcode',
|
||||
'bbcode' => true,
|
||||
@@ -164,7 +168,7 @@ class Channel extends \Zotlabs\Web\Controller {
|
||||
'reset' => t('Reset form')
|
||||
);
|
||||
|
||||
$o .= status_editor($a,$x);
|
||||
$o .= status_editor($a,$x,false,'Channel');
|
||||
}
|
||||
|
||||
}
|
||||
@@ -176,14 +180,14 @@ class Channel extends \Zotlabs\Web\Controller {
|
||||
|
||||
$item_normal = item_normal();
|
||||
$item_normal_update = item_normal_update();
|
||||
$sql_extra = item_permissions_sql(\App::$profile['profile_uid']);
|
||||
$sql_extra = item_permissions_sql(App::$profile['profile_uid']);
|
||||
|
||||
if(get_pconfig(\App::$profile['profile_uid'],'system','channel_list_mode') && (! $mid))
|
||||
if(feature_enabled(App::$profile['profile_uid'], 'channel_list_mode') && (! $mid))
|
||||
$page_mode = 'list';
|
||||
else
|
||||
$page_mode = 'client';
|
||||
|
||||
$abook_uids = " and abook.abook_channel = " . intval(\App::$profile['profile_uid']) . " ";
|
||||
$abook_uids = " and abook.abook_channel = " . intval(App::$profile['profile_uid']) . " ";
|
||||
|
||||
$simple_update = (($update) ? " AND item_unseen = 1 " : '');
|
||||
|
||||
@@ -193,7 +197,8 @@ class Channel extends \Zotlabs\Web\Controller {
|
||||
$sql_extra .= term_query('item',substr($search,1),TERM_HASHTAG,TERM_COMMUNITYTAG);
|
||||
}
|
||||
else {
|
||||
$sql_extra .= sprintf(" AND item.body like '%s' ",
|
||||
$sql_extra .= sprintf(" AND (item.body like '%s' OR item.title like '%s') ",
|
||||
dbesc(protect_sprintf('%' . $search . '%')),
|
||||
dbesc(protect_sprintf('%' . $search . '%'))
|
||||
);
|
||||
}
|
||||
@@ -203,7 +208,7 @@ class Channel extends \Zotlabs\Web\Controller {
|
||||
head_add_link([
|
||||
'rel' => 'alternate',
|
||||
'type' => 'application/json+oembed',
|
||||
'href' => z_root() . '/oep?f=&url=' . urlencode(z_root() . '/' . \App::$query_string),
|
||||
'href' => z_root() . '/oep?f=&url=' . urlencode(z_root() . '/' . App::$query_string),
|
||||
'title' => 'oembed'
|
||||
]);
|
||||
|
||||
@@ -221,7 +226,7 @@ class Channel extends \Zotlabs\Web\Controller {
|
||||
$r = q("SELECT parent AS item_id from item where mid like '%s' and uid = %d $item_normal_update
|
||||
AND item_wall = 1 $simple_update $sql_extra limit 1",
|
||||
dbesc($mid . '%'),
|
||||
intval(\App::$profile['profile_uid'])
|
||||
intval(App::$profile['profile_uid'])
|
||||
);
|
||||
$_SESSION['loadtime'] = datetime_convert();
|
||||
}
|
||||
@@ -233,7 +238,7 @@ class Channel extends \Zotlabs\Web\Controller {
|
||||
AND (abook.abook_blocked = 0 or abook.abook_flags is null)
|
||||
$sql_extra
|
||||
ORDER BY created DESC",
|
||||
intval(\App::$profile['profile_uid'])
|
||||
intval(App::$profile['profile_uid'])
|
||||
);
|
||||
$_SESSION['loadtime'] = datetime_convert();
|
||||
}
|
||||
@@ -242,10 +247,10 @@ class Channel extends \Zotlabs\Web\Controller {
|
||||
else {
|
||||
|
||||
if(x($category)) {
|
||||
$sql_extra2 .= protect_sprintf(term_item_parent_query(\App::$profile['profile_uid'],'item', $category, TERM_CATEGORY));
|
||||
$sql_extra2 .= protect_sprintf(term_item_parent_query(App::$profile['profile_uid'],'item', $category, TERM_CATEGORY));
|
||||
}
|
||||
if(x($hashtags)) {
|
||||
$sql_extra2 .= protect_sprintf(term_item_parent_query(\App::$profile['profile_uid'],'item', $hashtags, TERM_HASHTAG, TERM_COMMUNITYTAG));
|
||||
$sql_extra2 .= protect_sprintf(term_item_parent_query(App::$profile['profile_uid'],'item', $hashtags, TERM_HASHTAG, TERM_COMMUNITYTAG));
|
||||
}
|
||||
|
||||
if($datequery) {
|
||||
@@ -267,15 +272,15 @@ class Channel extends \Zotlabs\Web\Controller {
|
||||
|
||||
|
||||
$itemspage = get_pconfig(local_channel(),'system','itemspage');
|
||||
\App::set_pager_itemspage(((intval($itemspage)) ? $itemspage : 20));
|
||||
$pager_sql = sprintf(" LIMIT %d OFFSET %d ", intval(\App::$pager['itemspage']), intval(\App::$pager['start']));
|
||||
App::set_pager_itemspage(((intval($itemspage)) ? $itemspage : 20));
|
||||
$pager_sql = sprintf(" LIMIT %d OFFSET %d ", intval(App::$pager['itemspage']), intval(App::$pager['start']));
|
||||
|
||||
if($load || ($checkjs->disabled())) {
|
||||
if($noscript_content || $load) {
|
||||
if($mid) {
|
||||
$r = q("SELECT parent AS item_id from item where mid like '%s' and uid = %d $item_normal
|
||||
AND item_wall = 1 $sql_extra limit 1",
|
||||
dbesc($mid . '%'),
|
||||
intval(\App::$profile['profile_uid'])
|
||||
intval(App::$profile['profile_uid'])
|
||||
);
|
||||
if (! $r) {
|
||||
notice( t('Permission denied.') . EOL);
|
||||
@@ -289,7 +294,7 @@ class Channel extends \Zotlabs\Web\Controller {
|
||||
AND item.item_wall = 1 AND item.item_thread_top = 1
|
||||
$sql_extra $sql_extra2
|
||||
ORDER BY $ordering DESC $pager_sql ",
|
||||
intval(\App::$profile['profile_uid'])
|
||||
intval(App::$profile['profile_uid'])
|
||||
);
|
||||
}
|
||||
}
|
||||
@@ -306,7 +311,7 @@ class Channel extends \Zotlabs\Web\Controller {
|
||||
WHERE item.uid = %d $item_normal
|
||||
AND item.parent IN ( %s )
|
||||
$sql_extra ",
|
||||
intval(\App::$profile['profile_uid']),
|
||||
intval(App::$profile['profile_uid']),
|
||||
dbesc($parents_str)
|
||||
);
|
||||
|
||||
@@ -329,19 +334,19 @@ class Channel extends \Zotlabs\Web\Controller {
|
||||
// This is ugly, but we can't pass the profile_uid through the session to the ajax updater,
|
||||
// because browser prefetching might change it on us. We have to deliver it with the page.
|
||||
|
||||
$maxheight = get_pconfig(\App::$profile['profile_uid'],'system','channel_divmore_height');
|
||||
$maxheight = get_pconfig(App::$profile['profile_uid'],'system','channel_divmore_height');
|
||||
if(! $maxheight)
|
||||
$maxheight = 400;
|
||||
|
||||
$o .= '<div id="live-channel"></div>' . "\r\n";
|
||||
$o .= "<script> var profile_uid = " . \App::$profile['profile_uid']
|
||||
. "; var netargs = '?f='; var profile_page = " . \App::$pager['page']
|
||||
$o .= "<script> var profile_uid = " . App::$profile['profile_uid']
|
||||
. "; var netargs = '?f='; var profile_page = " . App::$pager['page']
|
||||
. "; divmore_height = " . intval($maxheight) . "; </script>\r\n";
|
||||
|
||||
\App::$page['htmlhead'] .= replace_macros(get_markup_template("build_query.tpl"),array(
|
||||
App::$page['htmlhead'] .= replace_macros(get_markup_template("build_query.tpl"),array(
|
||||
'$baseurl' => z_root(),
|
||||
'$pgtype' => 'channel',
|
||||
'$uid' => ((\App::$profile['profile_uid']) ? \App::$profile['profile_uid'] : '0'),
|
||||
'$uid' => ((App::$profile['profile_uid']) ? App::$profile['profile_uid'] : '0'),
|
||||
'$gid' => '0',
|
||||
'$cid' => '0',
|
||||
'$cmin' => '(-1)',
|
||||
@@ -354,7 +359,7 @@ class Channel extends \Zotlabs\Web\Controller {
|
||||
'$wall' => '1',
|
||||
'$fh' => '0',
|
||||
'$static' => $static,
|
||||
'$page' => ((\App::$pager['page'] != 1) ? \App::$pager['page'] : 1),
|
||||
'$page' => ((App::$pager['page'] != 1) ? App::$pager['page'] : 1),
|
||||
'$search' => $search,
|
||||
'$xchan' => '',
|
||||
'$order' => $order,
|
||||
@@ -405,17 +410,26 @@ class Channel extends \Zotlabs\Web\Controller {
|
||||
|
||||
$mode = (($search) ? 'search' : 'channel');
|
||||
|
||||
if($checkjs->disabled()) {
|
||||
$o .= conversation($items,$mode,$update,'traditional');
|
||||
}
|
||||
else {
|
||||
if($update) {
|
||||
$o .= conversation($items,$mode,$update,$page_mode);
|
||||
}
|
||||
else {
|
||||
|
||||
$o .= '<noscript>';
|
||||
if($noscript_content) {
|
||||
$o .= conversation($items,$mode,$update,'traditional');
|
||||
$o .= alt_pager(count($items));
|
||||
}
|
||||
else {
|
||||
$o .= '<div class="section-content-warning-wrapper">' . t('You must enable javascript for your browser to be able to view this content.') . '</div>';
|
||||
}
|
||||
$o .= '</noscript>';
|
||||
|
||||
$o .= conversation($items,$mode,$update,$page_mode);
|
||||
|
||||
if((! $update) || ($checkjs->disabled())) {
|
||||
$o .= alt_pager(count($items));
|
||||
if ($mid && $items[0]['title'])
|
||||
\App::$page['title'] = $items[0]['title'] . " - " . \App::$page['title'];
|
||||
App::$page['title'] = $items[0]['title'] . " - " . App::$page['title'];
|
||||
|
||||
}
|
||||
|
||||
if($mid)
|
||||
|
||||
@@ -1,13 +1,19 @@
|
||||
<?php /** @file */
|
||||
|
||||
namespace Zotlabs\Module;
|
||||
namespace Zotlabs\Module;
|
||||
|
||||
use App;
|
||||
use Zotlabs\Lib\Apps;
|
||||
use Zotlabs\Web\Controller;
|
||||
use Zotlabs\Lib\Chatroom;
|
||||
use Zotlabs\Access\AccessList;
|
||||
|
||||
|
||||
|
||||
|
||||
require_once('include/bookmarks.php');
|
||||
|
||||
use \Zotlabs\Lib as Zlib;
|
||||
|
||||
class Chat extends \Zotlabs\Web\Controller {
|
||||
class Chat extends Controller {
|
||||
|
||||
function init() {
|
||||
|
||||
@@ -16,7 +22,7 @@ class Chat extends \Zotlabs\Web\Controller {
|
||||
$which = argv(1);
|
||||
if(! $which) {
|
||||
if(local_channel()) {
|
||||
$channel = \App::get_channel();
|
||||
$channel = App::get_channel();
|
||||
if($channel && $channel['channel_address'])
|
||||
$which = $channel['channel_address'];
|
||||
}
|
||||
@@ -27,7 +33,7 @@ class Chat extends \Zotlabs\Web\Controller {
|
||||
}
|
||||
|
||||
$profile = 0;
|
||||
$channel = \App::get_channel();
|
||||
$channel = App::get_channel();
|
||||
|
||||
if((local_channel()) && (argc() > 2) && (argv(2) === 'view')) {
|
||||
$which = $channel['channel_address'];
|
||||
@@ -49,16 +55,16 @@ class Chat extends \Zotlabs\Web\Controller {
|
||||
if((! $room) || (! local_channel()))
|
||||
return;
|
||||
|
||||
$channel = \App::get_channel();
|
||||
$channel = App::get_channel();
|
||||
|
||||
|
||||
if($_POST['action'] === 'drop') {
|
||||
logger('delete chatroom');
|
||||
Zlib\Chatroom::destroy($channel,array('cr_name' => $room));
|
||||
Chatroom::destroy($channel,array('cr_name' => $room));
|
||||
goaway(z_root() . '/chat/' . $channel['channel_address']);
|
||||
}
|
||||
|
||||
$acl = new \Zotlabs\Access\AccessList($channel);
|
||||
$acl = new AccessList($channel);
|
||||
$acl->set_from_array($_REQUEST);
|
||||
|
||||
$arr = $acl->get();
|
||||
@@ -67,7 +73,7 @@ class Chat extends \Zotlabs\Web\Controller {
|
||||
if(intval($arr['expire']) < 0)
|
||||
$arr['expire'] = 0;
|
||||
|
||||
Zlib\Chatroom::create($channel,$arr);
|
||||
Chatroom::create($channel,$arr);
|
||||
|
||||
$x = q("select * from chatroom where cr_name = '%s' and cr_uid = %d limit 1",
|
||||
dbesc($room),
|
||||
@@ -88,26 +94,35 @@ class Chat extends \Zotlabs\Web\Controller {
|
||||
|
||||
|
||||
function get() {
|
||||
|
||||
if(! Apps::system_app_installed(App::$profile_uid, 'Chatrooms')) {
|
||||
//Do not display any associated widgets at this point
|
||||
App::$pdl = '';
|
||||
|
||||
$o = '<b>' . t('Chatrooms App') . ' (' . t('Not Installed') . '):</b><br>';
|
||||
$o .= t('Access Controlled Chatrooms');
|
||||
return $o;
|
||||
}
|
||||
|
||||
if(local_channel()) {
|
||||
$channel = \App::get_channel();
|
||||
nav_set_selected('My Chatrooms');
|
||||
$channel = App::get_channel();
|
||||
nav_set_selected('Chatrooms');
|
||||
}
|
||||
|
||||
$ob = \App::get_observer();
|
||||
$ob = App::get_observer();
|
||||
$observer = get_observer_hash();
|
||||
if(! $observer) {
|
||||
notice( t('Permission denied.') . EOL);
|
||||
return;
|
||||
}
|
||||
|
||||
if(! perm_is_allowed(\App::$profile['profile_uid'],$observer,'chat')) {
|
||||
if(! perm_is_allowed(App::$profile['profile_uid'],$observer,'chat')) {
|
||||
notice( t('Permission denied.') . EOL);
|
||||
return;
|
||||
}
|
||||
|
||||
if((argc() > 3) && intval(argv(2)) && (argv(3) === 'leave')) {
|
||||
Zlib\Chatroom::leave($observer,argv(2),$_SERVER['REMOTE_ADDR']);
|
||||
Chatroom::leave($observer,argv(2),$_SERVER['REMOTE_ADDR']);
|
||||
goaway(z_root() . '/channel/' . argv(1));
|
||||
}
|
||||
|
||||
@@ -160,16 +175,16 @@ class Chat extends \Zotlabs\Web\Controller {
|
||||
$room_id = intval(argv(2));
|
||||
$bookmark_link = get_bookmark_link($ob);
|
||||
|
||||
$x = Zlib\Chatroom::enter($observer,$room_id,'online',$_SERVER['REMOTE_ADDR']);
|
||||
$x = Chatroom::enter($observer,$room_id,'online',$_SERVER['REMOTE_ADDR']);
|
||||
if(! $x)
|
||||
return;
|
||||
$x = q("select * from chatroom where cr_id = %d and cr_uid = %d $sql_extra limit 1",
|
||||
intval($room_id),
|
||||
intval(\App::$profile['profile_uid'])
|
||||
intval(App::$profile['profile_uid'])
|
||||
);
|
||||
|
||||
if($x) {
|
||||
$acl = new \Zotlabs\Access\AccessList(false);
|
||||
$acl = new AccessList(false);
|
||||
$acl->set($x[0]);
|
||||
|
||||
$private = $acl->is_private();
|
||||
@@ -208,19 +223,12 @@ class Chat extends \Zotlabs\Web\Controller {
|
||||
));
|
||||
return $o;
|
||||
}
|
||||
|
||||
|
||||
|
||||
require_once('include/conversation.php');
|
||||
|
||||
//$o = profile_tabs($a,((local_channel() && local_channel() == \App::$profile['profile_uid']) ? true : false),\App::$profile['channel_address']);
|
||||
$o = '';
|
||||
|
||||
if(! feature_enabled(\App::$profile['profile_uid'],'ajaxchat')) {
|
||||
notice( t('Feature disabled.') . EOL);
|
||||
return $o;
|
||||
}
|
||||
|
||||
$acl = new \Zotlabs\Access\AccessList($channel);
|
||||
$acl = new AccessList($channel);
|
||||
$channel_acl = $acl->get();
|
||||
|
||||
$lockstate = (($channel_acl['allow_cid'] || $channel_acl['allow_gid'] || $channel_acl['deny_cid'] || $channel_acl['deny_gid']) ? 'lock' : 'unlock');
|
||||
@@ -244,17 +252,17 @@ class Chat extends \Zotlabs\Web\Controller {
|
||||
));
|
||||
}
|
||||
|
||||
$rooms = Zlib\Chatroom::roomlist(\App::$profile['profile_uid']);
|
||||
$rooms = Chatroom::roomlist(App::$profile['profile_uid']);
|
||||
|
||||
$o .= replace_macros(get_markup_template('chatrooms.tpl'), array(
|
||||
'$header' => sprintf( t('%1$s\'s Chatrooms'), \App::$profile['fullname']),
|
||||
'$header' => sprintf( t('%1$s\'s Chatrooms'), App::$profile['fullname']),
|
||||
'$name' => t('Name'),
|
||||
'$baseurl' => z_root(),
|
||||
'$nickname' => \App::$profile['channel_address'],
|
||||
'$nickname' => App::$profile['channel_address'],
|
||||
'$rooms' => $rooms,
|
||||
'$norooms' => t('No chatrooms available'),
|
||||
'$newroom' => t('Create New'),
|
||||
'$is_owner' => ((local_channel() && local_channel() == \App::$profile['profile_uid']) ? 1 : 0),
|
||||
'$is_owner' => ((local_channel() && local_channel() == App::$profile['profile_uid']) ? 1 : 0),
|
||||
'$chatroom_new' => $chatroom_new,
|
||||
'$expire' => t('Expiration'),
|
||||
'$expire_unit' => t('min') //minutes
|
||||
|
||||
@@ -1,21 +1,21 @@
|
||||
<?php
|
||||
namespace Zotlabs\Module; /** @file */
|
||||
|
||||
|
||||
use App;
|
||||
use Zotlabs\Web\Controller;
|
||||
use Zotlabs\Lib\Apps;
|
||||
|
||||
require_once('include/contact_widgets.php');
|
||||
require_once('include/items.php');
|
||||
|
||||
|
||||
|
||||
class Connect extends \Zotlabs\Web\Controller {
|
||||
class Connect extends Controller {
|
||||
|
||||
function init() {
|
||||
if(argc() > 1)
|
||||
$which = argv(1);
|
||||
else {
|
||||
notice( t('Requested profile is not available.') . EOL );
|
||||
\App::$error = 404;
|
||||
App::$error = 404;
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -24,20 +24,32 @@ class Connect extends \Zotlabs\Web\Controller {
|
||||
);
|
||||
|
||||
if($r)
|
||||
\App::$data['channel'] = $r[0];
|
||||
App::$data['channel'] = $r[0];
|
||||
|
||||
$channel_id = App::$data['channel']['channel_id'];
|
||||
|
||||
if(! Apps::system_app_installed($channel_id, 'Premium Channel')) {
|
||||
return;
|
||||
}
|
||||
|
||||
profile_load($which,'');
|
||||
}
|
||||
|
||||
function post() {
|
||||
|
||||
if(! array_key_exists('channel', \App::$data))
|
||||
if(! array_key_exists('channel', App::$data))
|
||||
return;
|
||||
|
||||
$channel_id = App::$data['channel']['channel_id'];
|
||||
|
||||
if(! Apps::system_app_installed($channel_id, 'Premium Channel')) {
|
||||
return;
|
||||
}
|
||||
|
||||
$edit = ((local_channel() && (local_channel() == \App::$data['channel']['channel_id'])) ? true : false);
|
||||
$edit = ((local_channel() && (local_channel() == $channel_id)) ? true : false);
|
||||
|
||||
if($edit) {
|
||||
$has_premium = ((\App::$data['channel']['channel_pageflags'] & PAGE_PREMIUM) ? 1 : 0);
|
||||
$has_premium = ((App::$data['channel']['channel_pageflags'] & PAGE_PREMIUM) ? 1 : 0);
|
||||
$premium = (($_POST['premium']) ? intval($_POST['premium']) : 0);
|
||||
$text = escape_tags($_POST['text']);
|
||||
|
||||
@@ -48,25 +60,25 @@ class Connect extends \Zotlabs\Web\Controller {
|
||||
intval(local_channel())
|
||||
);
|
||||
|
||||
\Zotlabs\Daemon\Master::Summon(array('Notifier','refresh_all',\App::$data['channel']['channel_id']));
|
||||
\Zotlabs\Daemon\Master::Summon(array('Notifier','refresh_all',$channel_id));
|
||||
}
|
||||
set_pconfig(\App::$data['channel']['channel_id'],'system','selltext',$text);
|
||||
set_pconfig($channel_id,'system','selltext',$text);
|
||||
// reload the page completely to get fresh data
|
||||
goaway(z_root() . '/' . \App::$query_string);
|
||||
goaway(z_root() . '/' . App::$query_string);
|
||||
|
||||
}
|
||||
|
||||
$url = '';
|
||||
$observer = \App::get_observer();
|
||||
$observer = App::get_observer();
|
||||
if(($observer) && ($_POST['submit'] === t('Continue'))) {
|
||||
if($observer['xchan_follow'])
|
||||
$url = sprintf($observer['xchan_follow'],urlencode(channel_reddress(\App::$data['channel'])));
|
||||
$url = sprintf($observer['xchan_follow'],urlencode(channel_reddress(App::$data['channel'])));
|
||||
if(! $url) {
|
||||
$r = q("select * from hubloc where hubloc_hash = '%s' order by hubloc_id desc limit 1",
|
||||
dbesc($observer['xchan_hash'])
|
||||
);
|
||||
if($r)
|
||||
$url = $r[0]['hubloc_url'] . '/follow?f=&url=' . urlencode(channel_reddress(\App::$data['channel']));
|
||||
$url = $r[0]['hubloc_url'] . '/follow?f=&url=' . urlencode(channel_reddress(App::$data['channel']));
|
||||
}
|
||||
}
|
||||
if($url)
|
||||
@@ -79,17 +91,31 @@ class Connect extends \Zotlabs\Web\Controller {
|
||||
|
||||
|
||||
function get() {
|
||||
|
||||
if(! array_key_exists('channel', App::$data))
|
||||
return;
|
||||
|
||||
$channel_id = App::$data['channel']['channel_id'];
|
||||
|
||||
if(! Apps::system_app_installed($channel_id, 'Premium Channel')) {
|
||||
//Do not display any associated widgets at this point
|
||||
App::$pdl = '';
|
||||
|
||||
$o = '<b>' . t('Premium Channel App') . ' (' . t('Not Installed') . '):</b><br>';
|
||||
$o .= t('Allows you to set restrictions and terms on those that connect with your channel');
|
||||
return $o;
|
||||
}
|
||||
|
||||
$edit = ((local_channel() && (local_channel() == \App::$data['channel']['channel_id'])) ? true : false);
|
||||
$edit = ((local_channel() && (local_channel() == $channel_id)) ? true : false);
|
||||
|
||||
$text = get_pconfig(\App::$data['channel']['channel_id'],'system','selltext');
|
||||
$text = get_pconfig($channel_id,'system','selltext');
|
||||
|
||||
if($edit) {
|
||||
|
||||
$o = replace_macros(get_markup_template('sellpage_edit.tpl'),array(
|
||||
'$header' => t('Premium Channel Setup'),
|
||||
'$address' => \App::$data['channel']['channel_address'],
|
||||
'$premium' => array('premium', t('Enable premium channel connection restrictions'),((\App::$data['channel']['channel_pageflags'] & PAGE_PREMIUM) ? '1' : ''),''),
|
||||
'$address' => App::$data['channel']['channel_address'],
|
||||
'$premium' => array('premium', t('Enable premium channel connection restrictions'),((App::$data['channel']['channel_pageflags'] & PAGE_PREMIUM) ? '1' : ''),''),
|
||||
'$lbl_about' => t('Please enter your restrictions or conditions, such as paypal receipt, usage guidelines, etc.'),
|
||||
'$text' => $text,
|
||||
'$desc' => t('This channel may require additional steps or acknowledgement of the following conditions prior to connecting:'),
|
||||
@@ -107,7 +133,7 @@ class Connect extends \Zotlabs\Web\Controller {
|
||||
|
||||
$submit = replace_macros(get_markup_template('sellpage_submit.tpl'), array(
|
||||
'$continue' => t('Continue'),
|
||||
'$address' => \App::$data['channel']['channel_address']
|
||||
'$address' => App::$data['channel']['channel_address']
|
||||
));
|
||||
|
||||
$o = replace_macros(get_markup_template('sellpage_view.tpl'),array(
|
||||
@@ -120,7 +146,7 @@ class Connect extends \Zotlabs\Web\Controller {
|
||||
|
||||
));
|
||||
|
||||
$arr = array('channel' => \App::$data['channel'],'observer' => \App::get_observer(), 'sellpage' => $o, 'submit' => $submit);
|
||||
$arr = array('channel' => App::$data['channel'],'observer' => App::get_observer(), 'sellpage' => $o, 'submit' => $submit);
|
||||
call_hooks('connect_premium', $arr);
|
||||
$o = $arr['sellpage'];
|
||||
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
<?php
|
||||
namespace Zotlabs\Module;
|
||||
|
||||
use App;
|
||||
|
||||
require_once('include/socgraph.php');
|
||||
require_once('include/selectors.php');
|
||||
@@ -12,8 +13,10 @@ class Connections extends \Zotlabs\Web\Controller {
|
||||
|
||||
if(! local_channel())
|
||||
return;
|
||||
|
||||
App::$profile_uid = local_channel();
|
||||
|
||||
$channel = \App::get_channel();
|
||||
$channel = App::get_channel();
|
||||
if($channel)
|
||||
head_set_icon($channel['xchan_photo_s']);
|
||||
|
||||
@@ -43,7 +46,7 @@ class Connections extends \Zotlabs\Web\Controller {
|
||||
$all = false;
|
||||
|
||||
if(! $_REQUEST['aj'])
|
||||
$_SESSION['return_url'] = \App::$query_string;
|
||||
$_SESSION['return_url'] = App::$query_string;
|
||||
|
||||
$search_flags = "";
|
||||
$head = '';
|
||||
@@ -88,14 +91,14 @@ class Connections extends \Zotlabs\Web\Controller {
|
||||
$search_flags = " and abook_pending = 1 ";
|
||||
$head = t('New');
|
||||
$pending = true;
|
||||
\App::$argv[1] = 'pending';
|
||||
App::$argv[1] = 'pending';
|
||||
}
|
||||
else {
|
||||
$head = t('All');
|
||||
$search_flags = '';
|
||||
$all = true;
|
||||
\App::$argc = 1;
|
||||
unset(\App::$argv[1]);
|
||||
App::$argc = 1;
|
||||
unset(App::$argv[1]);
|
||||
}
|
||||
break;
|
||||
// case 'unconnected':
|
||||
@@ -217,7 +220,7 @@ class Connections extends \Zotlabs\Web\Controller {
|
||||
$sql_extra .= (($searching) ? protect_sprintf(" AND xchan_name like '%$search_txt%' ") : "");
|
||||
|
||||
if($_REQUEST['gid']) {
|
||||
$sql_extra .= " and xchan_hash in ( select xchan from group_member where gid = " . intval($_REQUEST['gid']) . " and uid = " . intval(local_channel()) . " ) ";
|
||||
$sql_extra .= " and xchan_hash in ( select xchan from pgrp_member where gid = " . intval($_REQUEST['gid']) . " and uid = " . intval(local_channel()) . " ) ";
|
||||
}
|
||||
|
||||
$r = q("SELECT COUNT(abook.abook_id) AS total FROM abook left join xchan on abook.abook_xchan = xchan.xchan_hash
|
||||
@@ -225,15 +228,15 @@ class Connections extends \Zotlabs\Web\Controller {
|
||||
intval(local_channel())
|
||||
);
|
||||
if($r) {
|
||||
\App::set_pager_total($r[0]['total']);
|
||||
App::set_pager_total($r[0]['total']);
|
||||
$total = $r[0]['total'];
|
||||
}
|
||||
|
||||
$r = q("SELECT abook.*, xchan.* FROM abook left join xchan on abook.abook_xchan = xchan.xchan_hash
|
||||
WHERE abook_channel = %d and abook_self = 0 and xchan_deleted = 0 and xchan_orphan = 0 $sql_extra $sql_extra2 ORDER BY xchan_name LIMIT %d OFFSET %d ",
|
||||
intval(local_channel()),
|
||||
intval(\App::$pager['itemspage']),
|
||||
intval(\App::$pager['start'])
|
||||
intval(App::$pager['itemspage']),
|
||||
intval(App::$pager['start'])
|
||||
);
|
||||
|
||||
$contacts = array();
|
||||
@@ -337,7 +340,7 @@ class Connections extends \Zotlabs\Web\Controller {
|
||||
'$finding' => (($searching) ? t('Connections search') . ": '" . $search . "'" : ""),
|
||||
'$submit' => t('Find'),
|
||||
'$edit' => t('Edit'),
|
||||
'$cmd' => \App::$cmd,
|
||||
'$cmd' => App::$cmd,
|
||||
'$contacts' => $contacts,
|
||||
'$paginate' => paginate($a),
|
||||
|
||||
|
||||
@@ -7,6 +7,7 @@ namespace Zotlabs\Module;
|
||||
*
|
||||
*/
|
||||
|
||||
use Zotlabs\Lib\Apps;
|
||||
|
||||
require_once('include/socgraph.php');
|
||||
require_once('include/selectors.php');
|
||||
@@ -774,7 +775,7 @@ class Connedit extends \Zotlabs\Web\Controller {
|
||||
|
||||
$global_perms = \Zotlabs\Access\Permissions::Perms();
|
||||
|
||||
$existing = get_all_perms(local_channel(),$contact['abook_xchan']);
|
||||
$existing = get_all_perms(local_channel(),$contact['abook_xchan'],false);
|
||||
|
||||
$unapproved = array('pending', t('Approve this connection'), '', t('Accept connection to allow communication'), array(t('No'),('Yes')));
|
||||
|
||||
@@ -851,7 +852,7 @@ class Connedit extends \Zotlabs\Web\Controller {
|
||||
'$autoperms' => array('autoperms',t('Apply these permissions automatically'), ((get_pconfig(local_channel(),'system','autoperms')) ? 1 : 0), t('Connection requests will be approved without your interaction'), $yes_no),
|
||||
'$permcat' => [ 'permcat', t('Permission role'), '', '<span class="loading invisible">' . t('Loading') . '<span class="jumping-dots"><span class="dot-1">.</span><span class="dot-2">.</span><span class="dot-3">.</span></span></span>',$permcats ],
|
||||
'$permcat_new' => t('Add permission role'),
|
||||
'$permcat_enable' => feature_enabled(local_channel(),'permcats'),
|
||||
'$permcat_enable' => Apps::system_app_installed(local_channel(), 'Permission Categories'),
|
||||
'$addr' => unpunify($contact['xchan_addr']),
|
||||
'$primeurl' => unpunify($contact['xchan_url']),
|
||||
'$section' => $section,
|
||||
|
||||
@@ -23,7 +23,7 @@ class Contactgroup extends \Zotlabs\Web\Controller {
|
||||
|
||||
if((argc() > 1) && (intval(argv(1)))) {
|
||||
|
||||
$r = q("SELECT * FROM groups WHERE id = %d AND uid = %d AND deleted = 0 LIMIT 1",
|
||||
$r = q("SELECT * FROM pgrp WHERE id = %d AND uid = %d AND deleted = 0 LIMIT 1",
|
||||
intval(argv(1)),
|
||||
intval(local_channel())
|
||||
);
|
||||
|
||||
@@ -1,14 +1,16 @@
|
||||
<?php
|
||||
namespace Zotlabs\Module;
|
||||
|
||||
use App;
|
||||
use Zotlabs\Lib\Apps;
|
||||
use Zotlabs\Web\Controller;
|
||||
|
||||
require_once('include/socgraph.php');
|
||||
require_once('include/selectors.php');
|
||||
require_once('include/group.php');
|
||||
require_once('include/photos.php');
|
||||
|
||||
|
||||
class Defperms extends \Zotlabs\Web\Controller {
|
||||
class Defperms extends Controller {
|
||||
|
||||
/* @brief Initialize the connection-editor
|
||||
*
|
||||
@@ -19,6 +21,9 @@ class Defperms extends \Zotlabs\Web\Controller {
|
||||
|
||||
if(! local_channel())
|
||||
return;
|
||||
|
||||
if(! Apps::system_app_installed(local_channel(), 'Default Permissions'))
|
||||
return;
|
||||
|
||||
$r = q("SELECT abook.*, xchan.*
|
||||
FROM abook left join xchan on abook_xchan = xchan_hash
|
||||
@@ -26,10 +31,10 @@ class Defperms extends \Zotlabs\Web\Controller {
|
||||
intval(local_channel())
|
||||
);
|
||||
if($r) {
|
||||
\App::$poi = $r[0];
|
||||
App::$poi = $r[0];
|
||||
}
|
||||
|
||||
$channel = \App::get_channel();
|
||||
$channel = App::get_channel();
|
||||
if($channel)
|
||||
head_set_icon($channel['xchan_photo_s']);
|
||||
}
|
||||
@@ -43,12 +48,15 @@ class Defperms extends \Zotlabs\Web\Controller {
|
||||
|
||||
if(! local_channel())
|
||||
return;
|
||||
|
||||
if(! Apps::system_app_installed(local_channel(), 'Default Permissions'))
|
||||
return;
|
||||
|
||||
$contact_id = intval(argv(1));
|
||||
if(! $contact_id)
|
||||
return;
|
||||
|
||||
$channel = \App::get_channel();
|
||||
$channel = App::get_channel();
|
||||
|
||||
$orig_record = q("SELECT * FROM abook WHERE abook_id = %d AND abook_channel = %d LIMIT 1",
|
||||
intval($contact_id),
|
||||
@@ -112,7 +120,7 @@ class Defperms extends \Zotlabs\Web\Controller {
|
||||
intval($contact_id)
|
||||
);
|
||||
if($r) {
|
||||
\App::$poi = $r[0];
|
||||
App::$poi = $r[0];
|
||||
}
|
||||
|
||||
|
||||
@@ -131,22 +139,22 @@ class Defperms extends \Zotlabs\Web\Controller {
|
||||
|
||||
function defperms_clone(&$a) {
|
||||
|
||||
if(! \App::$poi)
|
||||
if(! App::$poi)
|
||||
return;
|
||||
|
||||
$channel = \App::get_channel();
|
||||
$channel = App::get_channel();
|
||||
|
||||
$r = q("SELECT abook.*, xchan.*
|
||||
FROM abook left join xchan on abook_xchan = xchan_hash
|
||||
WHERE abook_channel = %d and abook_id = %d LIMIT 1",
|
||||
intval(local_channel()),
|
||||
intval(\App::$poi['abook_id'])
|
||||
intval(App::$poi['abook_id'])
|
||||
);
|
||||
if($r) {
|
||||
\App::$poi = array_shift($r);
|
||||
App::$poi = array_shift($r);
|
||||
}
|
||||
|
||||
$clone = \App::$poi;
|
||||
$clone = App::$poi;
|
||||
|
||||
unset($clone['abook_id']);
|
||||
unset($clone['abook_account']);
|
||||
@@ -173,9 +181,18 @@ class Defperms extends \Zotlabs\Web\Controller {
|
||||
notice( t('Permission denied.') . EOL);
|
||||
return login();
|
||||
}
|
||||
|
||||
if(! Apps::system_app_installed(local_channel(), 'Default Permissions')) {
|
||||
//Do not display any associated widgets at this point
|
||||
App::$pdl = '';
|
||||
|
||||
$o = '<b>' . t('Default Permissions App') . ' (' . t('Not Installed') . '):</b><br>';
|
||||
$o .= t('Set custom default permissions for new connections');
|
||||
return $o;
|
||||
}
|
||||
|
||||
$section = ((array_key_exists('section',$_REQUEST)) ? $_REQUEST['section'] : '');
|
||||
$channel = \App::get_channel();
|
||||
$channel = App::get_channel();
|
||||
|
||||
$yes_no = array(t('No'),t('Yes'));
|
||||
|
||||
@@ -193,7 +210,7 @@ class Defperms extends \Zotlabs\Web\Controller {
|
||||
}
|
||||
$o .= " }\n</script>\n";
|
||||
|
||||
if(\App::$poi) {
|
||||
if(App::$poi) {
|
||||
|
||||
$sections = [];
|
||||
|
||||
@@ -203,13 +220,12 @@ class Defperms extends \Zotlabs\Web\Controller {
|
||||
|
||||
|
||||
$perms = array();
|
||||
$channel = \App::get_channel();
|
||||
$channel = App::get_channel();
|
||||
|
||||
$contact = \App::$poi;
|
||||
$contact = App::$poi;
|
||||
|
||||
$global_perms = \Zotlabs\Access\Permissions::Perms();
|
||||
|
||||
$existing = get_all_perms(local_channel(),$contact['abook_xchan']);
|
||||
$hidden_perms = [];
|
||||
|
||||
foreach($global_perms as $k => $v) {
|
||||
@@ -239,7 +255,7 @@ class Defperms extends \Zotlabs\Web\Controller {
|
||||
'$autoperms' => array('autoperms',t('Apply these permissions automatically'), ((get_pconfig(local_channel(),'system','autoperms')) ? 1 : 0), t('If enabled, connection requests will be approved without your interaction'), $yes_no),
|
||||
'$permcat' => [ 'permcat', t('Permission role'), '', '<span class="loading invisible">' . t('Loading') . '<span class="jumping-dots"><span class="dot-1">.</span><span class="dot-2">.</span><span class="dot-3">.</span></span></span>',$permcats ],
|
||||
'$permcat_new' => t('Add permission role'),
|
||||
'$permcat_enable' => feature_enabled(local_channel(),'permcats'),
|
||||
'$permcat_enable' => Apps::system_app_installed(local_channel(), 'Permission Categories'),
|
||||
'$section' => $section,
|
||||
'$sections' => $sections,
|
||||
'$autolbl' => t('The permissions indicated on this page will be applied to all new connections.'),
|
||||
|
||||
@@ -12,13 +12,16 @@ class Directory extends \Zotlabs\Web\Controller {
|
||||
function init() {
|
||||
\App::set_pager_itemspage(60);
|
||||
|
||||
if(x($_GET,'ignore')) {
|
||||
if(local_channel() && x($_GET,'ignore')) {
|
||||
q("insert into xign ( uid, xchan ) values ( %d, '%s' ) ",
|
||||
intval(local_channel()),
|
||||
dbesc($_GET['ignore'])
|
||||
);
|
||||
goaway(z_root() . '/directory?f=&suggest=1');
|
||||
}
|
||||
|
||||
if(local_channel())
|
||||
\App::$profile_uid = local_channel();
|
||||
|
||||
$observer = get_observer_hash();
|
||||
$global_changed = false;
|
||||
@@ -55,6 +58,7 @@ class Directory extends \Zotlabs\Web\Controller {
|
||||
if($observer)
|
||||
set_xconfig($observer,'directory','pubforums',$pubforums);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
function get() {
|
||||
|
||||
@@ -12,8 +12,9 @@ class Display extends \Zotlabs\Web\Controller {
|
||||
|
||||
function get($update = 0, $load = false) {
|
||||
|
||||
$module_format = 'html';
|
||||
$noscript_content = (get_config('system', 'noscript_content', '1') && (! $update));
|
||||
|
||||
$module_format = 'html';
|
||||
|
||||
if(argc() > 1) {
|
||||
$module_format = substr(argv(1),strrpos(argv(1),'.') + 1);
|
||||
@@ -21,8 +22,6 @@ class Display extends \Zotlabs\Web\Controller {
|
||||
$module_format = 'html';
|
||||
}
|
||||
|
||||
$checkjs = new \Zotlabs\Web\CheckJS(1);
|
||||
|
||||
if($load)
|
||||
$_SESSION['loadtime'] = datetime_convert();
|
||||
|
||||
@@ -82,7 +81,7 @@ class Display extends \Zotlabs\Web\Controller {
|
||||
);
|
||||
|
||||
$o = '<div id="jot-popup">';
|
||||
$o .= status_editor($a,$x);
|
||||
$o .= status_editor($a,$x,false,'Display');
|
||||
$o .= '</div>';
|
||||
}
|
||||
|
||||
@@ -253,53 +252,44 @@ class Display extends \Zotlabs\Web\Controller {
|
||||
|
||||
$sql_extra = public_permissions_sql($observer_hash);
|
||||
|
||||
if(($update && $load) || ($checkjs->disabled()) || ($module_format !== 'html')) {
|
||||
if($noscript_content || $load) {
|
||||
|
||||
$pager_sql = sprintf(" LIMIT %d OFFSET %d ", intval(\App::$pager['itemspage']),intval(\App::$pager['start']));
|
||||
$r = null;
|
||||
|
||||
if($load || ($checkjs->disabled()) || ($module_format !== 'html')) {
|
||||
require_once('include/channel.php');
|
||||
$sys = get_sys_channel();
|
||||
$sysid = $sys['channel_id'];
|
||||
|
||||
$r = null;
|
||||
|
||||
require_once('include/channel.php');
|
||||
$sys = get_sys_channel();
|
||||
$sysid = $sys['channel_id'];
|
||||
|
||||
if(local_channel()) {
|
||||
$r = q("SELECT item.id as item_id from item
|
||||
WHERE uid = %d
|
||||
and mid = '%s'
|
||||
$item_normal
|
||||
limit 1",
|
||||
intval(local_channel()),
|
||||
dbesc($target_item['parent_mid'])
|
||||
);
|
||||
if($r) {
|
||||
$updateable = true;
|
||||
}
|
||||
if(local_channel()) {
|
||||
$r = q("SELECT item.id as item_id from item WHERE uid = %d and mid = '%s' $item_normal limit 1",
|
||||
intval(local_channel()),
|
||||
dbesc($target_item['parent_mid'])
|
||||
);
|
||||
if($r) {
|
||||
$updateable = true;
|
||||
}
|
||||
}
|
||||
|
||||
if(! $r) {
|
||||
if(! $r) {
|
||||
|
||||
// in case somebody turned off public access to sys channel content using permissions
|
||||
// make that content unsearchable by ensuring the owner uid can't match
|
||||
// in case somebody turned off public access to sys channel content using permissions
|
||||
// make that content unsearchable by ensuring the owner uid can't match
|
||||
|
||||
if(! perm_is_allowed($sysid,$observer_hash,'view_stream'))
|
||||
$sysid = 0;
|
||||
if(! perm_is_allowed($sysid,$observer_hash,'view_stream'))
|
||||
$sysid = 0;
|
||||
|
||||
$r = q("SELECT item.id as item_id from item
|
||||
WHERE mid = '%s'
|
||||
AND (((( item.allow_cid = '' AND item.allow_gid = '' AND item.deny_cid = ''
|
||||
AND item.deny_gid = '' AND item_private = 0 )
|
||||
and uid in ( " . stream_perms_api_uids(($observer_hash) ? (PERMS_NETWORK|PERMS_PUBLIC) : PERMS_PUBLIC) . " ))
|
||||
OR uid = %d )
|
||||
$sql_extra )
|
||||
$item_normal
|
||||
limit 1",
|
||||
dbesc($target_item['parent_mid']),
|
||||
intval($sysid)
|
||||
);
|
||||
}
|
||||
$r = q("SELECT item.id as item_id from item
|
||||
WHERE mid = '%s'
|
||||
AND (((( item.allow_cid = '' AND item.allow_gid = '' AND item.deny_cid = ''
|
||||
AND item.deny_gid = '' AND item_private = 0 )
|
||||
and uid in ( " . stream_perms_api_uids(($observer_hash) ? (PERMS_NETWORK|PERMS_PUBLIC) : PERMS_PUBLIC) . " ))
|
||||
OR uid = %d )
|
||||
$sql_extra )
|
||||
$item_normal
|
||||
limit 1",
|
||||
dbesc($target_item['parent_mid']),
|
||||
intval($sysid)
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -309,7 +299,6 @@ class Display extends \Zotlabs\Web\Controller {
|
||||
require_once('include/channel.php');
|
||||
$sys = get_sys_channel();
|
||||
$sysid = $sys['channel_id'];
|
||||
|
||||
if(local_channel()) {
|
||||
$r = q("SELECT item.parent AS item_id from item
|
||||
WHERE uid = %d
|
||||
@@ -350,7 +339,7 @@ class Display extends \Zotlabs\Web\Controller {
|
||||
else {
|
||||
$r = array();
|
||||
}
|
||||
|
||||
|
||||
if($r) {
|
||||
$parents_str = ids_to_querystr($r,'item_id');
|
||||
if($parents_str) {
|
||||
@@ -373,14 +362,24 @@ class Display extends \Zotlabs\Web\Controller {
|
||||
|
||||
case 'html':
|
||||
|
||||
if ($checkjs->disabled()) {
|
||||
$o .= conversation($items, 'display', $update, 'traditional');
|
||||
if ($items[0]['title'])
|
||||
\App::$page['title'] = $items[0]['title'] . " - " . \App::$page['title'];
|
||||
}
|
||||
else {
|
||||
if ($update) {
|
||||
$o .= conversation($items, 'display', $update, 'client');
|
||||
}
|
||||
else {
|
||||
$o .= '<noscript>';
|
||||
if($noscript_content) {
|
||||
$o .= conversation($items, 'display', $update, 'traditional');
|
||||
}
|
||||
else {
|
||||
$o .= '<div class="section-content-warning-wrapper">' . t('You must enable javascript for your browser to be able to view this content.') . '</div>';
|
||||
}
|
||||
$o .= '</noscript>';
|
||||
|
||||
if ($items[0]['title'])
|
||||
\App::$page['title'] = $items[0]['title'] . " - " . \App::$page['title'];
|
||||
|
||||
$o .= conversation($items, 'display', $update, 'client');
|
||||
}
|
||||
|
||||
break;
|
||||
|
||||
@@ -435,7 +434,7 @@ class Display extends \Zotlabs\Web\Controller {
|
||||
|
||||
$o .= '<div id="content-complete"></div>';
|
||||
|
||||
if((($update && $load) || $checkjs->disabled()) && (! $items)) {
|
||||
if((($update && $load) || $noscript_content) && (! $items)) {
|
||||
|
||||
$r = q("SELECT id, item_deleted FROM item WHERE mid = '%s' LIMIT 1",
|
||||
dbesc($item_hash)
|
||||
|
||||
@@ -132,7 +132,7 @@ class Editblock extends \Zotlabs\Web\Controller {
|
||||
'bbcode' => (($mimetype == 'text/bbcode') ? true : false)
|
||||
);
|
||||
|
||||
$editor = status_editor($a, $x);
|
||||
$editor = status_editor($a, $x, false, 'Editblock');
|
||||
|
||||
$o .= replace_macros(get_markup_template('edpost_head.tpl'), array(
|
||||
'$title' => t('Edit Block'),
|
||||
|
||||
@@ -131,7 +131,7 @@ class Editlayout extends \Zotlabs\Web\Controller {
|
||||
'profile_uid' => intval($owner),
|
||||
);
|
||||
|
||||
$editor = status_editor($a, $x);
|
||||
$editor = status_editor($a, $x, false, 'Editlayout');
|
||||
|
||||
$o .= replace_macros(get_markup_template('edpost_head.tpl'), array(
|
||||
'$title' => t('Edit Layout'),
|
||||
|
||||
@@ -102,7 +102,7 @@ class Editpost extends \Zotlabs\Web\Controller {
|
||||
'bbcode' => true
|
||||
);
|
||||
|
||||
$editor = status_editor($a, $x);
|
||||
$editor = status_editor($a, $x, false, 'Editpost');
|
||||
|
||||
$o .= replace_macros(get_markup_template('edpost_head.tpl'), array(
|
||||
'$title' => t('Edit post'),
|
||||
|
||||
@@ -160,7 +160,7 @@ class Editwebpage extends \Zotlabs\Web\Controller {
|
||||
'bbcode' => (($mimetype == 'text/bbcode') ? true : false)
|
||||
);
|
||||
|
||||
$editor = status_editor($a, $x);
|
||||
$editor = status_editor($a, $x, false, 'Editwebpage');
|
||||
|
||||
$o .= replace_macros(get_markup_template('edpost_head.tpl'), array(
|
||||
'$title' => t('Edit Webpage'),
|
||||
|
||||
@@ -6,7 +6,7 @@ require_once('include/bbcode.php');
|
||||
require_once('include/datetime.php');
|
||||
require_once('include/event.php');
|
||||
require_once('include/items.php');
|
||||
|
||||
require_once('include/html2plain.php');
|
||||
|
||||
class Events extends \Zotlabs\Web\Controller {
|
||||
|
||||
@@ -271,8 +271,10 @@ class Events extends \Zotlabs\Web\Controller {
|
||||
notice( t('Permission denied.') . EOL);
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
\App::$profile_uid = local_channel();
|
||||
nav_set_selected('Events');
|
||||
|
||||
|
||||
if((argc() > 2) && (argv(1) === 'ignore') && intval(argv(2))) {
|
||||
$r = q("update event set dismissed = 1 where id = %d and uid = %d",
|
||||
@@ -288,7 +290,7 @@ class Events extends \Zotlabs\Web\Controller {
|
||||
);
|
||||
}
|
||||
|
||||
$first_day = get_pconfig(local_channel(),'system','cal_first_day');
|
||||
$first_day = feature_enabled(local_channel(), 'events_cal_first_day');
|
||||
$first_day = (($first_day) ? $first_day : 0);
|
||||
|
||||
$htpl = get_markup_template('event_head.tpl');
|
||||
@@ -641,6 +643,7 @@ class Events extends \Zotlabs\Web\Controller {
|
||||
}
|
||||
$html = format_event_html($rr);
|
||||
$rr['desc'] = zidify_links(smilies(bbcode($rr['desc'])));
|
||||
$rr['description'] = htmlentities(html2plain(bbcode($rr['description'])),ENT_COMPAT,'UTF-8',false);
|
||||
$rr['location'] = zidify_links(smilies(bbcode($rr['location'])));
|
||||
$events[] = array(
|
||||
'id'=>$rr['id'],
|
||||
@@ -659,8 +662,6 @@ class Events extends \Zotlabs\Web\Controller {
|
||||
'html'=>$html,
|
||||
'plink' => array($rr['plink'],t('Link to Source'),'',''),
|
||||
);
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -128,7 +128,7 @@ class Filestorage extends \Zotlabs\Web\Controller {
|
||||
}
|
||||
}
|
||||
|
||||
if(json_return)
|
||||
if($json_return)
|
||||
json_return_and_die([ 'success' => true ]);
|
||||
|
||||
goaway(dirname($url));
|
||||
|
||||
@@ -1,11 +1,13 @@
|
||||
<?php
|
||||
namespace Zotlabs\Module;
|
||||
|
||||
use App;
|
||||
use Zotlabs\Web\Controller;
|
||||
use Zotlabs\Lib\Apps;
|
||||
|
||||
require_once('include/group.php');
|
||||
|
||||
|
||||
|
||||
class Group extends \Zotlabs\Web\Controller {
|
||||
class Group extends Controller {
|
||||
|
||||
function init() {
|
||||
if(! local_channel()) {
|
||||
@@ -13,7 +15,11 @@ class Group extends \Zotlabs\Web\Controller {
|
||||
return;
|
||||
}
|
||||
|
||||
\App::$profile_uid = local_channel();
|
||||
if(! Apps::system_app_installed(local_channel(), 'Privacy Groups')) {
|
||||
return;
|
||||
}
|
||||
|
||||
App::$profile_uid = local_channel();
|
||||
|
||||
nav_set_selected('Privacy Groups');
|
||||
}
|
||||
@@ -24,6 +30,10 @@ class Group extends \Zotlabs\Web\Controller {
|
||||
notice( t('Permission denied.') . EOL);
|
||||
return;
|
||||
}
|
||||
|
||||
if(! Apps::system_app_installed(local_channel(), 'Privacy Groups')) {
|
||||
return;
|
||||
}
|
||||
|
||||
if((argc() == 2) && (argv(1) === 'new')) {
|
||||
check_form_security_token_redirectOnErr('/group/new', 'group_edit');
|
||||
@@ -43,7 +53,7 @@ class Group extends \Zotlabs\Web\Controller {
|
||||
if((argc() == 2) && (intval(argv(1)))) {
|
||||
check_form_security_token_redirectOnErr('/group', 'group_edit');
|
||||
|
||||
$r = q("SELECT * FROM groups WHERE id = %d AND uid = %d LIMIT 1",
|
||||
$r = q("SELECT * FROM pgrp WHERE id = %d AND uid = %d LIMIT 1",
|
||||
intval(argv(1)),
|
||||
intval(local_channel())
|
||||
);
|
||||
@@ -57,7 +67,7 @@ class Group extends \Zotlabs\Web\Controller {
|
||||
$public = intval($_POST['public']);
|
||||
|
||||
if((strlen($groupname)) && (($groupname != $group['gname']) || ($public != $group['visible']))) {
|
||||
$r = q("UPDATE groups SET gname = '%s', visible = %d WHERE uid = %d AND id = %d",
|
||||
$r = q("UPDATE pgrp SET gname = '%s', visible = %d WHERE uid = %d AND id = %d",
|
||||
dbesc($groupname),
|
||||
intval($public),
|
||||
intval(local_channel()),
|
||||
@@ -77,13 +87,22 @@ class Group extends \Zotlabs\Web\Controller {
|
||||
|
||||
$change = false;
|
||||
|
||||
logger('mod_group: ' . \App::$cmd,LOGGER_DEBUG);
|
||||
logger('mod_group: ' . App::$cmd,LOGGER_DEBUG);
|
||||
|
||||
if(! local_channel()) {
|
||||
notice( t('Permission denied') . EOL);
|
||||
return;
|
||||
}
|
||||
|
||||
if(! Apps::system_app_installed(local_channel(), 'Privacy Groups')) {
|
||||
//Do not display any associated widgets at this point
|
||||
App::$pdl = '';
|
||||
|
||||
$o = '<b>' . t('Privacy Groups App') . ' (' . t('Not Installed') . '):</b><br>';
|
||||
$o .= t('Management of privacy groups');
|
||||
return $o;
|
||||
}
|
||||
|
||||
// Switch to text mode interface if we have more than 'n' contacts or group members
|
||||
$switchtotext = get_pconfig(local_channel(),'system','groupedit_image_limit');
|
||||
if($switchtotext === false)
|
||||
@@ -96,7 +115,7 @@ class Group extends \Zotlabs\Web\Controller {
|
||||
|
||||
$new = (((argc() == 2) && (argv(1) === 'new')) ? true : false);
|
||||
|
||||
$groups = q("SELECT id, gname FROM groups WHERE deleted = 0 AND uid = %d ORDER BY gname ASC",
|
||||
$groups = q("SELECT id, gname FROM pgrp WHERE deleted = 0 AND uid = %d ORDER BY gname ASC",
|
||||
intval(local_channel())
|
||||
);
|
||||
|
||||
@@ -141,7 +160,7 @@ class Group extends \Zotlabs\Web\Controller {
|
||||
check_form_security_token_redirectOnErr('/group', 'group_drop', 't');
|
||||
|
||||
if(intval(argv(2))) {
|
||||
$r = q("SELECT gname FROM groups WHERE id = %d AND uid = %d LIMIT 1",
|
||||
$r = q("SELECT gname FROM pgrp WHERE id = %d AND uid = %d LIMIT 1",
|
||||
intval(argv(2)),
|
||||
intval(local_channel())
|
||||
);
|
||||
@@ -173,7 +192,7 @@ class Group extends \Zotlabs\Web\Controller {
|
||||
if((argc() > 1) && (intval(argv(1)))) {
|
||||
|
||||
require_once('include/acl_selectors.php');
|
||||
$r = q("SELECT * FROM groups WHERE id = %d AND uid = %d AND deleted = 0 LIMIT 1",
|
||||
$r = q("SELECT * FROM pgrp WHERE id = %d AND uid = %d AND deleted = 0 LIMIT 1",
|
||||
intval(argv(1)),
|
||||
intval(local_channel())
|
||||
);
|
||||
|
||||
@@ -13,14 +13,12 @@ class Home extends \Zotlabs\Web\Controller {
|
||||
$ret = array();
|
||||
|
||||
call_hooks('home_init',$ret);
|
||||
|
||||
|
||||
$splash = ((argc() > 1 && argv(1) === 'splash') ? true : false);
|
||||
|
||||
$channel = \App::get_channel();
|
||||
if(local_channel() && $channel && $channel['xchan_url'] && ! $splash) {
|
||||
$dest = $channel['channel_startpage'];
|
||||
if(! $dest)
|
||||
$dest = get_pconfig(local_channel(),'system','startpage');
|
||||
$dest = (($ret['startpage']) ? $ret['startpage'] : '');
|
||||
if(! $dest)
|
||||
$dest = get_config('system','startpage');
|
||||
if(! $dest)
|
||||
|
||||
@@ -138,7 +138,7 @@ class Hq extends \Zotlabs\Web\Controller {
|
||||
[
|
||||
'$no_messages' => (($target_item) ? false : true),
|
||||
'$no_messages_label' => [ t('Welcome to Hubzilla!'), t('You have got no unseen posts...') ],
|
||||
'$editor' => status_editor($a,$x)
|
||||
'$editor' => status_editor($a,$x,false,'Hq')
|
||||
]
|
||||
);
|
||||
|
||||
|
||||
@@ -426,9 +426,9 @@ class Import extends \Zotlabs\Web\Controller {
|
||||
unset($group['id']);
|
||||
$group['uid'] = $channel['channel_id'];
|
||||
|
||||
create_table_from_array('groups', $group);
|
||||
create_table_from_array('pgrp', $group);
|
||||
}
|
||||
$r = q("select * from groups where uid = %d",
|
||||
$r = q("select * from pgrp where uid = %d",
|
||||
intval($channel['channel_id'])
|
||||
);
|
||||
if($r) {
|
||||
@@ -448,7 +448,7 @@ class Import extends \Zotlabs\Web\Controller {
|
||||
if($x['old'] == $group_member['gid'])
|
||||
$group_member['gid'] = $x['new'];
|
||||
}
|
||||
create_table_from_array('group_member', $group_member);
|
||||
create_table_from_array('pgrp_member', $group_member);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -1,6 +1,10 @@
|
||||
<?php
|
||||
namespace Zotlabs\Module;
|
||||
|
||||
use App;
|
||||
use Zotlabs\Lib\Apps;
|
||||
use Zotlabs\Web\Controller;
|
||||
|
||||
/**
|
||||
* module: invite.php
|
||||
*
|
||||
@@ -9,7 +13,7 @@ namespace Zotlabs\Module;
|
||||
*/
|
||||
|
||||
|
||||
class Invite extends \Zotlabs\Web\Controller {
|
||||
class Invite extends Controller {
|
||||
|
||||
function post() {
|
||||
|
||||
@@ -17,6 +21,10 @@ class Invite extends \Zotlabs\Web\Controller {
|
||||
notice( t('Permission denied.') . EOL);
|
||||
return;
|
||||
}
|
||||
|
||||
if(! Apps::system_app_installed(local_channel(), 'Invite')) {
|
||||
return;
|
||||
}
|
||||
|
||||
check_form_security_token_redirectOnErr('/', 'send_invite');
|
||||
|
||||
@@ -57,7 +65,7 @@ class Invite extends \Zotlabs\Web\Controller {
|
||||
else
|
||||
$nmessage = $message;
|
||||
|
||||
$account = \App::get_account();
|
||||
$account = App::get_account();
|
||||
|
||||
$res = z_mail(
|
||||
[
|
||||
@@ -95,6 +103,15 @@ class Invite extends \Zotlabs\Web\Controller {
|
||||
return;
|
||||
}
|
||||
|
||||
if(! Apps::system_app_installed(local_channel(), 'Invite')) {
|
||||
//Do not display any associated widgets at this point
|
||||
App::$pdl = '';
|
||||
|
||||
$o = '<b>' . t('Invite App') . ' (' . t('Not Installed') . '):</b><br>';
|
||||
$o .= t('Send email invitations to join this network');
|
||||
return $o;
|
||||
}
|
||||
|
||||
nav_set_selected('Invite');
|
||||
|
||||
$tpl = get_markup_template('invite.tpl');
|
||||
@@ -127,11 +144,11 @@ class Invite extends \Zotlabs\Web\Controller {
|
||||
}
|
||||
}
|
||||
|
||||
$ob = \App::get_observer();
|
||||
$ob = App::get_observer();
|
||||
if(! $ob)
|
||||
return $o;
|
||||
|
||||
$channel = \App::get_channel();
|
||||
$channel = App::get_channel();
|
||||
|
||||
$o = replace_macros($tpl, array(
|
||||
'$form_security_token' => get_form_security_token("send_invite"),
|
||||
|
||||
@@ -29,7 +29,7 @@ use \Zotlabs\Lib as Zlib;
|
||||
class Item extends \Zotlabs\Web\Controller {
|
||||
|
||||
function post() {
|
||||
|
||||
|
||||
// This will change. Figure out who the observer is and whether or not
|
||||
// they have permission to post here. Else ignore the post.
|
||||
|
||||
@@ -237,10 +237,12 @@ class Item extends \Zotlabs\Web\Controller {
|
||||
if($parent) {
|
||||
logger('mod_item: item_post parent=' . $parent);
|
||||
$can_comment = false;
|
||||
if((array_key_exists('owner',$parent_item)) && intval($parent_item['owner']['abook_self']))
|
||||
$can_comment = perm_is_allowed($profile_uid,$observer['xchan_hash'],'post_comments');
|
||||
else
|
||||
$can_comment = can_comment_on_post($observer['xchan_hash'],$parent_item);
|
||||
|
||||
$can_comment = can_comment_on_post($observer['xchan_hash'],$parent_item);
|
||||
if (!$can_comment) {
|
||||
if((array_key_exists('owner',$parent_item)) && intval($parent_item['owner']['abook_self'])==1 )
|
||||
$can_comment = perm_is_allowed($profile_uid,$observer['xchan_hash'],'post_comments');
|
||||
}
|
||||
|
||||
if(! $can_comment) {
|
||||
notice( t('Permission denied.') . EOL) ;
|
||||
@@ -533,7 +535,7 @@ class Item extends \Zotlabs\Web\Controller {
|
||||
|
||||
// Look for tags and linkify them
|
||||
$results = linkify_tags($a, $body, ($uid) ? $uid : $profile_uid);
|
||||
logger('linkify: ' . print_r($results,true));
|
||||
|
||||
if($results) {
|
||||
|
||||
// Set permissions based on tag replacements
|
||||
@@ -1163,28 +1165,6 @@ logger('linkify: ' . print_r($results,true));
|
||||
return $ret;
|
||||
}
|
||||
|
||||
// auto-upgrade beginner (techlevel 0) accounts - if they have at least two friends and ten posts
|
||||
// and have uploaded something (like a profile photo), promote them to level 1.
|
||||
|
||||
$a = q("select account_id, account_level from account where account_id = (select channel_account_id from channel where channel_id = %d limit 1)",
|
||||
intval($channel_id)
|
||||
);
|
||||
if((! intval($a[0]['account_level'])) && intval($r[0]['total']) > 10) {
|
||||
$x = q("select count(abook_id) as total from abook where abook_channel = %d",
|
||||
intval($channel_id)
|
||||
);
|
||||
if($x && intval($x[0]['total']) > 2) {
|
||||
$y = q("select count(id) as total from attach where uid = %d",
|
||||
intval($channel_id)
|
||||
);
|
||||
if($y && intval($y[0]['total']) > 1) {
|
||||
q("update account set account_level = 1 where account_id = %d",
|
||||
intval($a[0]['account_id'])
|
||||
);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (!$iswebpage) {
|
||||
$max = engr_units_to_bytes(service_class_fetch($channel_id,'total_items'));
|
||||
if(! service_class_allows($channel_id,'total_items',$r[0]['total'])) {
|
||||
|
||||
@@ -1,13 +1,28 @@
|
||||
<?php
|
||||
namespace Zotlabs\Module;
|
||||
|
||||
use App;
|
||||
use Zotlabs\Lib\Apps;
|
||||
use Zotlabs\Web\Controller;
|
||||
|
||||
class Lang extends \Zotlabs\Web\Controller {
|
||||
class Lang extends Controller {
|
||||
|
||||
function get() {
|
||||
|
||||
if(local_channel()) {
|
||||
if(! Apps::system_app_installed(local_channel(), 'Language')) {
|
||||
//Do not display any associated widgets at this point
|
||||
App::$pdl = '';
|
||||
|
||||
$o = '<b>' . t('Language App') . ' (' . t('Not Installed') . '):</b><br>';
|
||||
$o .= t('Change UI language');
|
||||
return $o;
|
||||
}
|
||||
}
|
||||
|
||||
nav_set_selected('Language');
|
||||
return lang_selector();
|
||||
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
@@ -141,7 +141,7 @@ class Layouts extends \Zotlabs\Web\Controller {
|
||||
if($_REQUEST['pagetitle'])
|
||||
$x['pagetitle'] = $_REQUEST['pagetitle'];
|
||||
|
||||
$editor = status_editor($a,$x);
|
||||
$editor = status_editor($a,$x,false,'Layouts');
|
||||
|
||||
$r = q("select iconfig.iid, iconfig.v, mid, title, body, mimetype, created, edited, item_type from iconfig
|
||||
left join item on iconfig.iid = item.id
|
||||
|
||||
@@ -118,7 +118,7 @@ class Lockview extends \Zotlabs\Web\Controller {
|
||||
}
|
||||
|
||||
if(count($allowed_groups)) {
|
||||
$r = q("SELECT gname FROM groups WHERE hash IN ( " . implode(', ', $allowed_groups) . " )");
|
||||
$r = q("SELECT gname FROM pgrp WHERE hash IN ( " . implode(', ', $allowed_groups) . " )");
|
||||
if($r)
|
||||
foreach($r as $rr)
|
||||
$l[] = '<div class="dropdown-item"><b>' . $rr['gname'] . '</b></div>';
|
||||
@@ -156,7 +156,7 @@ class Lockview extends \Zotlabs\Web\Controller {
|
||||
|
||||
|
||||
if(count($deny_groups)) {
|
||||
$r = q("SELECT gname FROM groups WHERE hash IN ( " . implode(', ', $deny_groups) . " )");
|
||||
$r = q("SELECT gname FROM pgrp WHERE hash IN ( " . implode(', ', $deny_groups) . " )");
|
||||
if($r)
|
||||
foreach($r as $rr)
|
||||
$l[] = '<div class="dropdown-item"><b><strike>' . $rr['gname'] . '</strike></b></div>';
|
||||
|
||||
@@ -146,12 +146,17 @@ class Magic extends \Zotlabs\Web\Controller {
|
||||
$dest = strip_zids($dest);
|
||||
$dest = strip_query_param($dest,'f');
|
||||
|
||||
$data = json_encode([ 'OpenWebAuth' => random_string() ]);
|
||||
|
||||
$headers = [];
|
||||
$headers['Accept'] = 'application/x-zot+json' ;
|
||||
$headers['X-Open-Web-Auth'] = random_string();
|
||||
$headers['Host'] = $parsed['host'];
|
||||
$headers['Digest'] = 'SHA-256=' . \Zotlabs\Web\HTTPSig::generate_digest($data,false);
|
||||
|
||||
$headers = \Zotlabs\Web\HTTPSig::create_sig('',$headers,$channel['channel_prvkey'],
|
||||
'acct:' . $channel['channel_address'] . '@' . \App::get_hostname(),false,true,'sha512');
|
||||
$x = z_fetch_url($basepath . '/owa',false,$redirects,[ 'headers' => $headers ]);
|
||||
$x = z_post_url($basepath . '/owa',$data,$redirects,[ 'headers' => $headers ]);
|
||||
|
||||
if($x['success']) {
|
||||
$j = json_decode($x['body'],true);
|
||||
|
||||
@@ -393,7 +393,7 @@ class Mail extends \Zotlabs\Web\Controller {
|
||||
'delete' => t('Delete message'),
|
||||
'dreport' => t('Delivery report'),
|
||||
'recall' => t('Recall message'),
|
||||
'can_recall' => (($channel['channel_hash'] == $message['from_xchan'] && get_account_techlevel() > 0) ? true : false),
|
||||
'can_recall' => ($channel['channel_hash'] == $message['from_xchan']),
|
||||
'is_recalled' => (intval($message['mail_recalled']) ? t('Message has been recalled.') : ''),
|
||||
'date' => datetime_convert('UTC',date_default_timezone_get(),$message['created'], 'c'),
|
||||
);
|
||||
|
||||
@@ -11,7 +11,7 @@ class Manage extends \Zotlabs\Web\Controller {
|
||||
return;
|
||||
}
|
||||
|
||||
nav_set_selected('Channel Manager');
|
||||
nav_set_selected('Channel Manager', 'settings/manage');
|
||||
|
||||
require_once('include/security.php');
|
||||
|
||||
@@ -129,7 +129,7 @@ class Manage extends \Zotlabs\Web\Controller {
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
$r = q("select count(channel_id) as total from channel where channel_account_id = %d and channel_removed = 0",
|
||||
intval(get_account_id())
|
||||
);
|
||||
@@ -170,7 +170,7 @@ class Manage extends \Zotlabs\Web\Controller {
|
||||
'$header' => t('Channel Manager'),
|
||||
'$msg_selected' => t('Current Channel'),
|
||||
'$selected' => local_channel(),
|
||||
'$desc' => t('Switch to one of your channels by selecting it.'),
|
||||
'$desc' => ((count($channels) > 1 || $delegates) ? t('Switch to one of your channels by selecting it.') : ''),
|
||||
'$msg_default' => t('Default Channel'),
|
||||
'$msg_make_default' => t('Make Default'),
|
||||
'$create' => $create,
|
||||
|
||||
@@ -1,21 +1,29 @@
|
||||
<?php
|
||||
namespace Zotlabs\Module;
|
||||
|
||||
use App;
|
||||
use Zotlabs\Lib\Apps;
|
||||
use Zotlabs\Web\Controller;
|
||||
|
||||
require_once('include/security.php');
|
||||
require_once('include/bbcode.php');
|
||||
require_once('include/items.php');
|
||||
|
||||
|
||||
|
||||
class Mood extends \Zotlabs\Web\Controller {
|
||||
class Mood extends Controller {
|
||||
|
||||
function init() {
|
||||
|
||||
if(! local_channel())
|
||||
return;
|
||||
|
||||
if(! Apps::system_app_installed(local_channel(), 'Mood')) {
|
||||
return;
|
||||
}
|
||||
|
||||
$uid = local_channel();
|
||||
$channel = \App::get_channel();
|
||||
$channel = App::get_channel();
|
||||
$verb = notags(trim($_GET['verb']));
|
||||
|
||||
if(! $verb)
|
||||
@@ -60,7 +68,7 @@ class Mood extends \Zotlabs\Web\Controller {
|
||||
$deny_gid = $channel['channel_deny_gid'];
|
||||
}
|
||||
|
||||
$poster = \App::get_observer();
|
||||
$poster = App::get_observer();
|
||||
|
||||
$mid = item_message_id();
|
||||
|
||||
@@ -117,6 +125,15 @@ class Mood extends \Zotlabs\Web\Controller {
|
||||
return;
|
||||
}
|
||||
|
||||
if(! Apps::system_app_installed(local_channel(), 'Mood')) {
|
||||
//Do not display any associated widgets at this point
|
||||
App::$pdl = '';
|
||||
|
||||
$o = '<b>' . t('Mood App') . ' (' . t('Not Installed') . '):</b><br>';
|
||||
$o .= t('Set your current mood and tell your friends');
|
||||
return $o;
|
||||
}
|
||||
|
||||
nav_set_selected('Mood');
|
||||
|
||||
$parent = ((x($_GET,'parent')) ? intval($_GET['parent']) : '0');
|
||||
|
||||
@@ -1,6 +1,8 @@
|
||||
<?php
|
||||
namespace Zotlabs\Module;
|
||||
|
||||
use App;
|
||||
|
||||
require_once('include/items.php');
|
||||
require_once('include/group.php');
|
||||
require_once('include/contact_widgets.php');
|
||||
@@ -25,8 +27,8 @@ class Network extends \Zotlabs\Web\Controller {
|
||||
goaway('network' . '?f=&' . $network_options);
|
||||
}
|
||||
|
||||
$channel = \App::get_channel();
|
||||
\App::$profile_uid = local_channel();
|
||||
$channel = App::get_channel();
|
||||
App::$profile_uid = local_channel();
|
||||
head_set_icon($channel['xchan_photo_s']);
|
||||
|
||||
}
|
||||
@@ -34,7 +36,7 @@ class Network extends \Zotlabs\Web\Controller {
|
||||
function get($update = 0, $load = false) {
|
||||
|
||||
if(! local_channel()) {
|
||||
$_SESSION['return_url'] = \App::$query_string;
|
||||
$_SESSION['return_url'] = App::$query_string;
|
||||
return login(false);
|
||||
}
|
||||
|
||||
@@ -44,11 +46,11 @@ class Network extends \Zotlabs\Web\Controller {
|
||||
$_SESSION['loadtime'] = datetime_convert();
|
||||
}
|
||||
|
||||
$arr = array('query' => \App::$query_string);
|
||||
$arr = array('query' => App::$query_string);
|
||||
|
||||
call_hooks('network_content_init', $arr);
|
||||
|
||||
$channel = \App::get_channel();
|
||||
$channel = App::get_channel();
|
||||
$item_normal = item_normal();
|
||||
$item_normal_update = item_normal_update();
|
||||
|
||||
@@ -82,20 +84,9 @@ class Network extends \Zotlabs\Web\Controller {
|
||||
|
||||
$search = (($_GET['search']) ? $_GET['search'] : '');
|
||||
if($search) {
|
||||
$_GET['netsearch'] = escape_tags($search);
|
||||
if(strpos($search,'@') === 0) {
|
||||
$r = q("select abook_id from abook left join xchan on abook_xchan = xchan_hash where xchan_name = '%s' and abook_channel = %d limit 1",
|
||||
dbesc(substr($search,1)),
|
||||
intval(local_channel())
|
||||
);
|
||||
if($r) {
|
||||
$_GET['cid'] = $r[0]['abook_id'];
|
||||
$search = $_GET['search'] = '';
|
||||
}
|
||||
}
|
||||
elseif(strpos($search,'#') === 0) {
|
||||
if(strpos($search,'#') === 0) {
|
||||
$hashtags = substr($search,1);
|
||||
$search = $_GET['search'] = '';
|
||||
$search = '';
|
||||
}
|
||||
}
|
||||
|
||||
@@ -106,7 +97,7 @@ class Network extends \Zotlabs\Web\Controller {
|
||||
// filter by collection (e.g. group)
|
||||
|
||||
if($gid) {
|
||||
$r = q("SELECT * FROM groups WHERE id = %d AND uid = %d LIMIT 1",
|
||||
$r = q("SELECT * FROM pgrp WHERE id = %d AND uid = %d LIMIT 1",
|
||||
intval($gid),
|
||||
intval(local_channel())
|
||||
);
|
||||
@@ -141,7 +132,7 @@ class Network extends \Zotlabs\Web\Controller {
|
||||
$deftag = '';
|
||||
|
||||
|
||||
if(x($_GET,'search') || $file || (!$pf && $cid))
|
||||
if(x($_GET,'search') || $file || (!$pf && $cid) || $hashtags || $verb || $category)
|
||||
$nouveau = true;
|
||||
|
||||
if($cid) {
|
||||
@@ -165,17 +156,15 @@ class Network extends \Zotlabs\Web\Controller {
|
||||
}
|
||||
|
||||
if(! $update) {
|
||||
$tabs = ''; //network_tabs();
|
||||
$o .= $tabs;
|
||||
|
||||
// search terms header
|
||||
if($search) {
|
||||
if($search || $hashtags) {
|
||||
$o .= replace_macros(get_markup_template("section_title.tpl"),array(
|
||||
'$title' => t('Search Results For:') . ' ' . htmlspecialchars($search, ENT_COMPAT,'UTF-8')
|
||||
'$title' => t('Search Results For:') . ' ' . (($search) ? htmlspecialchars($search, ENT_COMPAT,'UTF-8') : '#' . htmlspecialchars($hashtags, ENT_COMPAT,'UTF-8'))
|
||||
));
|
||||
}
|
||||
|
||||
nav_set_selected('Grid');
|
||||
nav_set_selected('Network');
|
||||
|
||||
$channel_acl = array(
|
||||
'allow_cid' => $channel['channel_allow_cid'],
|
||||
@@ -207,7 +196,7 @@ class Network extends \Zotlabs\Web\Controller {
|
||||
$x['pretext'] = $deftag;
|
||||
|
||||
|
||||
$status_editor = status_editor($a,$x);
|
||||
$status_editor = status_editor($a,$x,false,'Network');
|
||||
$o .= $status_editor;
|
||||
|
||||
$static = channel_manual_conv_update(local_channel());
|
||||
@@ -254,8 +243,7 @@ class Network extends \Zotlabs\Web\Controller {
|
||||
));
|
||||
}
|
||||
|
||||
$o = $tabs;
|
||||
$o .= $title;
|
||||
$o = $title;
|
||||
$o .= $status_editor;
|
||||
|
||||
}
|
||||
@@ -281,8 +269,7 @@ class Network extends \Zotlabs\Web\Controller {
|
||||
'$title' => '<a href="' . zid($cid_r[0]['xchan_url']) . '" ><img src="' . zid($cid_r[0]['xchan_photo_s']) . '" alt="' . urlencode($cid_r[0]['xchan_name']) . '" /></a> <a href="' . zid($cid_r[0]['xchan_url']) . '" >' . $cid_r[0]['xchan_name'] . '</a>'
|
||||
));
|
||||
|
||||
$o = $tabs;
|
||||
$o .= $title;
|
||||
$o = $title;
|
||||
$o .= $status_editor;
|
||||
}
|
||||
elseif($xchan) {
|
||||
@@ -295,8 +282,8 @@ class Network extends \Zotlabs\Web\Controller {
|
||||
$title = replace_macros(get_markup_template("section_title.tpl"),array(
|
||||
'$title' => '<a href="' . zid($r[0]['xchan_url']) . '" ><img src="' . zid($r[0]['xchan_photo_s']) . '" alt="' . urlencode($r[0]['xchan_name']) . '" /></a> <a href="' . zid($r[0]['xchan_url']) . '" >' . $r[0]['xchan_name'] . '</a>'
|
||||
));
|
||||
$o = $tabs;
|
||||
$o .= $title;
|
||||
|
||||
$o = $title;
|
||||
$o .= $status_editor;
|
||||
|
||||
}
|
||||
@@ -326,10 +313,10 @@ class Network extends \Zotlabs\Web\Controller {
|
||||
|
||||
$o .= '<div id="live-network"></div>' . "\r\n";
|
||||
$o .= "<script> var profile_uid = " . local_channel()
|
||||
. "; var profile_page = " . \App::$pager['page']
|
||||
. "; var profile_page = " . App::$pager['page']
|
||||
. "; divmore_height = " . intval($maxheight) . "; </script>\r\n";
|
||||
|
||||
\App::$page['htmlhead'] .= replace_macros(get_markup_template("build_query.tpl"),array(
|
||||
App::$page['htmlhead'] .= replace_macros(get_markup_template("build_query.tpl"),array(
|
||||
'$baseurl' => z_root(),
|
||||
'$pgtype' => 'network',
|
||||
'$uid' => ((local_channel()) ? local_channel() : '0'),
|
||||
@@ -346,7 +333,7 @@ class Network extends \Zotlabs\Web\Controller {
|
||||
'$wall' => '0',
|
||||
'$static' => $static,
|
||||
'$list' => ((x($_REQUEST,'list')) ? intval($_REQUEST['list']) : 0),
|
||||
'$page' => ((\App::$pager['page'] != 1) ? \App::$pager['page'] : 1),
|
||||
'$page' => ((App::$pager['page'] != 1) ? App::$pager['page'] : 1),
|
||||
'$search' => (($search) ? $search : ''),
|
||||
'$xchan' => $xchan,
|
||||
'$order' => $order,
|
||||
@@ -380,7 +367,8 @@ class Network extends \Zotlabs\Web\Controller {
|
||||
$sql_extra .= term_query('item',substr($search,1),TERM_HASHTAG,TERM_COMMUNITYTAG);
|
||||
}
|
||||
else {
|
||||
$sql_extra .= sprintf(" AND item.body like '%s' ",
|
||||
$sql_extra .= sprintf(" AND (item.body like '%s' OR item.title like '%s') ",
|
||||
dbesc(protect_sprintf('%' . $search . '%')),
|
||||
dbesc(protect_sprintf('%' . $search . '%'))
|
||||
);
|
||||
}
|
||||
@@ -417,8 +405,8 @@ class Network extends \Zotlabs\Web\Controller {
|
||||
}
|
||||
else {
|
||||
$itemspage = get_pconfig(local_channel(),'system','itemspage');
|
||||
\App::set_pager_itemspage(((intval($itemspage)) ? $itemspage : 20));
|
||||
$pager_sql = sprintf(" LIMIT %d OFFSET %d ", intval(\App::$pager['itemspage']), intval(\App::$pager['start']));
|
||||
App::set_pager_itemspage(((intval($itemspage)) ? $itemspage : 20));
|
||||
$pager_sql = sprintf(" LIMIT %d OFFSET %d ", intval(App::$pager['itemspage']), intval(App::$pager['start']));
|
||||
}
|
||||
|
||||
// cmin and cmax are both -1 when the affinity tool is disabled
|
||||
@@ -449,7 +437,7 @@ class Network extends \Zotlabs\Web\Controller {
|
||||
$abook_uids = " and abook.abook_channel = " . local_channel() . " ";
|
||||
$uids = " and item.uid = " . local_channel() . " ";
|
||||
|
||||
if(get_pconfig(local_channel(),'system','network_list_mode'))
|
||||
if(feature_enabled(local_channel(), 'network_list_mode'))
|
||||
$page_mode = 'list';
|
||||
else
|
||||
$page_mode = 'client';
|
||||
|
||||
@@ -142,9 +142,12 @@ class New_channel extends \Zotlabs\Web\Controller {
|
||||
}
|
||||
|
||||
$limit = account_service_class_fetch(get_account_id(),'total_identities');
|
||||
|
||||
$canadd = true;
|
||||
if($r && ($limit !== false)) {
|
||||
$channel_usage_message = sprintf( t("You have created %1$.0f of %2$.0f allowed channels."), $r[0]['total'], $limit);
|
||||
if ($r[0]['total'] >= $limit) {
|
||||
$canadd = false;
|
||||
}
|
||||
}
|
||||
else {
|
||||
$channel_usage_message = '';
|
||||
@@ -168,8 +171,6 @@ class New_channel extends \Zotlabs\Web\Controller {
|
||||
$privacy_role = ((x($_REQUEST,'permissions_role')) ? $_REQUEST['permissions_role'] : "" );
|
||||
|
||||
$perm_roles = \Zotlabs\Access\PermissionRoles::roles();
|
||||
if((get_account_techlevel() < 4) && $privacy_role !== 'custom')
|
||||
unset($perm_roles[t('Other')]);
|
||||
|
||||
$name = array('name', t('Channel name'), ((x($_REQUEST,'name')) ? $_REQUEST['name'] : ''), $name_help, "*");
|
||||
$nickhub = '@' . \App::get_hostname();
|
||||
@@ -186,7 +187,8 @@ class New_channel extends \Zotlabs\Web\Controller {
|
||||
'$nickname' => $nickname,
|
||||
'$validate' => t('Validate'),
|
||||
'$submit' => t('Create'),
|
||||
'$channel_usage_message' => $channel_usage_message
|
||||
'$channel_usage_message' => $channel_usage_message,
|
||||
'$canadd' => $canadd
|
||||
));
|
||||
|
||||
return $o;
|
||||
|
||||
@@ -1,13 +1,19 @@
|
||||
<?php
|
||||
namespace Zotlabs\Module; /** @file */
|
||||
|
||||
use App;
|
||||
use Zotlabs\Web\Controller;
|
||||
use Zotlabs\Lib\Apps;
|
||||
|
||||
class Notes extends \Zotlabs\Web\Controller {
|
||||
class Notes extends Controller {
|
||||
|
||||
function init() {
|
||||
function post() {
|
||||
|
||||
if(! local_channel())
|
||||
return;
|
||||
return EMPTY_STR;
|
||||
|
||||
if(! Apps::system_app_installed(local_channel(), 'Notes'))
|
||||
return EMPTY_STR;
|
||||
|
||||
$ret = array('success' => true);
|
||||
if(array_key_exists('note_text',$_REQUEST)) {
|
||||
@@ -24,17 +30,38 @@ class Notes extends \Zotlabs\Web\Controller {
|
||||
}
|
||||
set_pconfig(local_channel(),'notes','text',$body);
|
||||
}
|
||||
|
||||
|
||||
// push updates to channel clones
|
||||
|
||||
|
||||
if((argc() > 1) && (argv(1) === 'sync')) {
|
||||
require_once('include/zot.php');
|
||||
build_sync_packet();
|
||||
}
|
||||
|
||||
|
||||
logger('notes saved.', LOGGER_DEBUG);
|
||||
json_return_and_die($ret);
|
||||
|
||||
|
||||
}
|
||||
|
||||
function get() {
|
||||
|
||||
if(! local_channel())
|
||||
return EMPTY_STR;
|
||||
|
||||
if(! Apps::system_app_installed(local_channel(), 'Notes')) {
|
||||
//Do not display any associated widgets at this point
|
||||
App::$pdl = EMPTY_STR;
|
||||
|
||||
$o = '<b>' . t('Notes App') . ' (' . t('Not Installed') . '):</b><br>';
|
||||
$o .= t('A simple notes app with a widget (note: notes are not encrypted)');
|
||||
return $o;
|
||||
}
|
||||
|
||||
$w = new \Zotlabs\Widget\Notes;
|
||||
$arr = ['app' => true];
|
||||
|
||||
return $w->widget($arr);
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -1,27 +1,37 @@
|
||||
<?php
|
||||
|
||||
namespace Zotlabs\Module\Settings;
|
||||
namespace Zotlabs\Module;
|
||||
|
||||
use App;
|
||||
use Zotlabs\Lib\Apps;
|
||||
use Zotlabs\Web\Controller;
|
||||
|
||||
class Oauth {
|
||||
class Oauth extends Controller {
|
||||
|
||||
|
||||
function post() {
|
||||
|
||||
if(! local_channel())
|
||||
return;
|
||||
|
||||
|
||||
if(! Apps::system_app_installed(local_channel(), 'OAuth Apps Manager'))
|
||||
return;
|
||||
|
||||
if(x($_POST,'remove')){
|
||||
check_form_security_token_redirectOnErr('/settings/oauth', 'settings_oauth');
|
||||
check_form_security_token_redirectOnErr('/oauth', 'oauth');
|
||||
|
||||
$key = $_POST['remove'];
|
||||
q("DELETE FROM tokens WHERE id='%s' AND uid=%d",
|
||||
dbesc($key),
|
||||
local_channel());
|
||||
goaway(z_root()."/settings/oauth/");
|
||||
goaway(z_root()."/oauth");
|
||||
return;
|
||||
}
|
||||
|
||||
if((argc() > 2) && (argv(2) === 'edit' || argv(2) === 'add') && x($_POST,'submit')) {
|
||||
if((argc() > 1) && (argv(1) === 'edit' || argv(1) === 'add') && x($_POST,'submit')) {
|
||||
|
||||
check_form_security_token_redirectOnErr('/settings/oauth', 'settings_oauth');
|
||||
check_form_security_token_redirectOnErr('oauth', 'oauth');
|
||||
|
||||
$name = ((x($_POST,'name')) ? escape_tags($_POST['name']) : '');
|
||||
$key = ((x($_POST,'key')) ? escape_tags($_POST['key']) : '');
|
||||
@@ -73,17 +83,30 @@ class Oauth {
|
||||
);
|
||||
}
|
||||
}
|
||||
goaway(z_root()."/settings/oauth/");
|
||||
goaway(z_root()."/oauth");
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
function get() {
|
||||
|
||||
if(! local_channel())
|
||||
return;
|
||||
|
||||
if(! Apps::system_app_installed(local_channel(), 'OAuth Apps Manager')) {
|
||||
//Do not display any associated widgets at this point
|
||||
App::$pdl = '';
|
||||
|
||||
$o = '<b>' . t('OAuth Apps Manager App') . ' (' . t('Not Installed') . '):</b><br>';
|
||||
$o .= t('OAuth authentication tokens for mobile and remote apps');
|
||||
return $o;
|
||||
}
|
||||
|
||||
|
||||
if((argc() > 2) && (argv(2) === 'add')) {
|
||||
$tpl = get_markup_template("settings_oauth_edit.tpl");
|
||||
if((argc() > 1) && (argv(1) === 'add')) {
|
||||
$tpl = get_markup_template("oauth_edit.tpl");
|
||||
$o .= replace_macros($tpl, array(
|
||||
'$form_security_token' => get_form_security_token("settings_oauth"),
|
||||
'$form_security_token' => get_form_security_token("oauth"),
|
||||
'$title' => t('Add application'),
|
||||
'$submit' => t('Submit'),
|
||||
'$cancel' => t('Cancel'),
|
||||
@@ -96,9 +119,9 @@ class Oauth {
|
||||
return $o;
|
||||
}
|
||||
|
||||
if((argc() > 3) && (argv(2) === 'edit')) {
|
||||
if((argc() > 2) && (argv(1) === 'edit')) {
|
||||
$r = q("SELECT * FROM clients WHERE client_id='%s' AND uid=%d",
|
||||
dbesc(argv(3)),
|
||||
dbesc(argv(2)),
|
||||
local_channel());
|
||||
|
||||
if (!count($r)){
|
||||
@@ -107,9 +130,9 @@ class Oauth {
|
||||
}
|
||||
$app = $r[0];
|
||||
|
||||
$tpl = get_markup_template("settings_oauth_edit.tpl");
|
||||
$tpl = get_markup_template("oauth_edit.tpl");
|
||||
$o .= replace_macros($tpl, array(
|
||||
'$form_security_token' => get_form_security_token("settings_oauth"),
|
||||
'$form_security_token' => get_form_security_token("oauth"),
|
||||
'$title' => t('Add application'),
|
||||
'$submit' => t('Update'),
|
||||
'$cancel' => t('Cancel'),
|
||||
@@ -122,13 +145,13 @@ class Oauth {
|
||||
return $o;
|
||||
}
|
||||
|
||||
if((argc() > 3) && (argv(2) === 'delete')) {
|
||||
check_form_security_token_redirectOnErr('/settings/oauth', 'settings_oauth', 't');
|
||||
if((argc() > 2) && (argv(1) === 'delete')) {
|
||||
check_form_security_token_redirectOnErr('/oauth', 'oauth', 't');
|
||||
|
||||
$r = q("DELETE FROM clients WHERE client_id='%s' AND uid=%d",
|
||||
dbesc(argv(3)),
|
||||
dbesc(argv(2)),
|
||||
local_channel());
|
||||
goaway(z_root()."/settings/oauth/");
|
||||
goaway(z_root()."/oauth");
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -141,11 +164,11 @@ class Oauth {
|
||||
local_channel());
|
||||
|
||||
|
||||
$tpl = get_markup_template("settings_oauth.tpl");
|
||||
$tpl = get_markup_template("oauth.tpl");
|
||||
$o .= replace_macros($tpl, array(
|
||||
'$form_security_token' => get_form_security_token("settings_oauth"),
|
||||
'$form_security_token' => get_form_security_token("oauth"),
|
||||
'$baseurl' => z_root(),
|
||||
'$title' => t('Connected Apps'),
|
||||
'$title' => t('Connected OAuth Apps'),
|
||||
'$add' => t('Add application'),
|
||||
'$edit' => t('Edit'),
|
||||
'$delete' => t('Delete'),
|
||||
@@ -158,4 +181,4 @@ class Oauth {
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
@@ -1,28 +1,46 @@
|
||||
<?php
|
||||
|
||||
namespace Zotlabs\Module\Settings;
|
||||
namespace Zotlabs\Module;
|
||||
|
||||
use App;
|
||||
use Zotlabs\Lib\Apps;
|
||||
use Zotlabs\Web\Controller;
|
||||
|
||||
class Oauth2 {
|
||||
class Oauth2 extends Controller {
|
||||
|
||||
|
||||
function post() {
|
||||
|
||||
if(! local_channel())
|
||||
return;
|
||||
|
||||
if(! Apps::system_app_installed(local_channel(), 'OAuth2 Apps Manager'))
|
||||
return;
|
||||
|
||||
if(x($_POST,'remove')){
|
||||
check_form_security_token_redirectOnErr('/settings/oauth2', 'settings_oauth2');
|
||||
|
||||
check_form_security_token_redirectOnErr('oauth2', 'oauth2');
|
||||
$name = ((x($_POST,'name')) ? escape_tags(trim($_POST['name'])) : '');
|
||||
logger("REMOVE! ".$name." uid: ".local_channel());
|
||||
$key = $_POST['remove'];
|
||||
q("DELETE FROM tokens WHERE id='%s' AND uid=%d",
|
||||
dbesc($key),
|
||||
q("DELETE FROM oauth_authorization_codes WHERE client_id='%s' AND user_id=%d",
|
||||
dbesc($name),
|
||||
intval(local_channel())
|
||||
);
|
||||
goaway(z_root()."/settings/oauth2/");
|
||||
q("DELETE FROM oauth_access_tokens WHERE client_id='%s' AND user_id=%d",
|
||||
dbesc($name),
|
||||
intval(local_channel())
|
||||
);
|
||||
q("DELETE FROM oauth_refresh_tokens WHERE client_id='%s' AND user_id=%d",
|
||||
dbesc($name),
|
||||
intval(local_channel())
|
||||
);
|
||||
goaway(z_root()."/oauth2");
|
||||
return;
|
||||
}
|
||||
|
||||
if((argc() > 2) && (argv(2) === 'edit' || argv(2) === 'add') && x($_POST,'submit')) {
|
||||
if((argc() > 1) && (argv(1) === 'edit' || argv(1) === 'add') && x($_POST,'submit')) {
|
||||
|
||||
check_form_security_token_redirectOnErr('/settings/oauth2', 'settings_oauth2');
|
||||
check_form_security_token_redirectOnErr('oauth2', 'oauth2');
|
||||
|
||||
$name = ((x($_POST,'name')) ? escape_tags(trim($_POST['name'])) : '');
|
||||
$secret = ((x($_POST,'secret')) ? escape_tags(trim($_POST['secret'])) : '');
|
||||
@@ -45,14 +63,15 @@ class Oauth2 {
|
||||
grant_types = '%s',
|
||||
scope = '%s',
|
||||
user_id = %d
|
||||
WHERE client_id='%s'",
|
||||
WHERE client_id='%s' and user_id = %s",
|
||||
dbesc($name),
|
||||
dbesc($secret),
|
||||
dbesc($redirect),
|
||||
dbesc($grant),
|
||||
dbesc($scope),
|
||||
intval(local_channel()),
|
||||
dbesc($name));
|
||||
dbesc($name),
|
||||
intval(local_channel()));
|
||||
} else {
|
||||
$r = q("INSERT INTO oauth_clients (client_id, client_secret, redirect_uri, grant_types, scope, user_id)
|
||||
VALUES ('%s','%s','%s','%s','%s',%d)",
|
||||
@@ -70,17 +89,29 @@ class Oauth2 {
|
||||
);
|
||||
}
|
||||
}
|
||||
goaway(z_root()."/settings/oauth2/");
|
||||
goaway(z_root()."/oauth2");
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
function get() {
|
||||
|
||||
if(! local_channel())
|
||||
return;
|
||||
|
||||
if(! Apps::system_app_installed(local_channel(), 'OAuth2 Apps Manager')) {
|
||||
//Do not display any associated widgets at this point
|
||||
App::$pdl = '';
|
||||
|
||||
$o = '<b>' . t('OAuth2 Apps Manager App') . ' (' . t('Not Installed') . '):</b><br>';
|
||||
$o .= t('OAuth2 authenticatication tokens for mobile and remote apps');
|
||||
return $o;
|
||||
}
|
||||
|
||||
if((argc() > 2) && (argv(2) === 'add')) {
|
||||
$tpl = get_markup_template("settings_oauth2_edit.tpl");
|
||||
if((argc() > 1) && (argv(1) === 'add')) {
|
||||
$tpl = get_markup_template("oauth2_edit.tpl");
|
||||
$o .= replace_macros($tpl, array(
|
||||
'$form_security_token' => get_form_security_token("settings_oauth2"),
|
||||
'$form_security_token' => get_form_security_token("oauth2"),
|
||||
'$title' => t('Add OAuth2 application'),
|
||||
'$submit' => t('Submit'),
|
||||
'$cancel' => t('Cancel'),
|
||||
@@ -93,9 +124,9 @@ class Oauth2 {
|
||||
return $o;
|
||||
}
|
||||
|
||||
if((argc() > 3) && (argv(2) === 'edit')) {
|
||||
if((argc() > 2) && (argv(1) === 'edit')) {
|
||||
$r = q("SELECT * FROM oauth_clients WHERE client_id='%s' AND user_id= %d",
|
||||
dbesc(argv(3)),
|
||||
dbesc(argv(2)),
|
||||
intval(local_channel())
|
||||
);
|
||||
|
||||
@@ -106,44 +137,57 @@ class Oauth2 {
|
||||
|
||||
$app = $r[0];
|
||||
|
||||
$tpl = get_markup_template("settings_oauth2_edit.tpl");
|
||||
$tpl = get_markup_template("oauth2_edit.tpl");
|
||||
$o .= replace_macros($tpl, array(
|
||||
'$form_security_token' => get_form_security_token("settings_oauth2"),
|
||||
'$form_security_token' => get_form_security_token("oauth2"),
|
||||
'$title' => t('Add application'),
|
||||
'$submit' => t('Update'),
|
||||
'$cancel' => t('Cancel'),
|
||||
'$name' => array('name', t('Name'), $app['client_id'], t('Name of application')),
|
||||
'$secret' => array('secret', t('Consumer Secret'), $app['client_secret'], t('Automatically generated - change if desired. Max length 20')),
|
||||
'$redirect' => array('redirect', t('Redirect'), $app['redirect_uri'], t('Redirect URI - leave blank unless your application specifically requires this')),
|
||||
'$grant' => array('grant', t('Grant Types'), $app['grant_types'], t('leave blank unless your application sepcifically requires this')),
|
||||
'$scope' => array('scope', t('Authorization scope'), $app['scope'], t('leave blank unless your application sepcifically requires this')),
|
||||
'$grant' => array('grant', t('Grant Types'), $app['grant_types'], t('leave blank unless your application specifically requires this')),
|
||||
'$scope' => array('scope', t('Authorization scope'), $app['scope'], t('leave blank unless your application specifically requires this')),
|
||||
));
|
||||
return $o;
|
||||
}
|
||||
|
||||
if((argc() > 3) && (argv(2) === 'delete')) {
|
||||
check_form_security_token_redirectOnErr('/settings/oauth2', 'settings_oauth2', 't');
|
||||
if((argc() > 2) && (argv(1) === 'delete')) {
|
||||
check_form_security_token_redirectOnErr('oauth2', 'oauth2', 't');
|
||||
|
||||
$r = q("DELETE FROM oauth_clients WHERE client_id = '%s' AND user_id = %d",
|
||||
dbesc(argv(3)),
|
||||
dbesc(argv(2)),
|
||||
intval(local_channel())
|
||||
);
|
||||
goaway(z_root()."/settings/oauth2/");
|
||||
$r = q("DELETE FROM oauth_access_tokens WHERE client_id = '%s' AND user_id = %d",
|
||||
dbesc(argv(2)),
|
||||
intval(local_channel())
|
||||
);
|
||||
$r = q("DELETE FROM oauth_authorization_codes WHERE client_id = '%s' AND user_id = %d",
|
||||
dbesc(argv(2)),
|
||||
intval(local_channel())
|
||||
);
|
||||
$r = q("DELETE FROM oauth_refresh_tokens WHERE client_id = '%s' AND user_id = %d",
|
||||
dbesc(argv(2)),
|
||||
intval(local_channel())
|
||||
);
|
||||
goaway(z_root()."/oauth2");
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
$r = q("SELECT oauth_clients.*, oauth_access_tokens.access_token as oauth_token, (oauth_clients.user_id = %d) AS my
|
||||
FROM oauth_clients
|
||||
LEFT JOIN oauth_access_tokens ON oauth_clients.client_id=oauth_access_tokens.client_id
|
||||
LEFT JOIN oauth_access_tokens ON oauth_clients.client_id=oauth_access_tokens.client_id AND
|
||||
oauth_clients.user_id=oauth_access_tokens.user_id
|
||||
WHERE oauth_clients.user_id IN (%d,0)",
|
||||
intval(local_channel()),
|
||||
intval(local_channel())
|
||||
);
|
||||
|
||||
$tpl = get_markup_template("settings_oauth2.tpl");
|
||||
$tpl = get_markup_template("oauth2.tpl");
|
||||
$o .= replace_macros($tpl, array(
|
||||
'$form_security_token' => get_form_security_token("settings_oauth2"),
|
||||
'$form_security_token' => get_form_security_token("oauth2"),
|
||||
'$baseurl' => z_root(),
|
||||
'$title' => t('Connected OAuth2 Apps'),
|
||||
'$add' => t('Add application'),
|
||||
@@ -5,19 +5,17 @@ namespace Zotlabs\Module;
|
||||
|
||||
class Oauthinfo extends \Zotlabs\Web\Controller {
|
||||
|
||||
|
||||
function init() {
|
||||
|
||||
$ret = [
|
||||
'issuer' => z_root(),
|
||||
'authorization_endpoint' => z_root() . '/authorize',
|
||||
'token_endpoint' => z_root() . '/token',
|
||||
'userinfo_endpoint' => z_root() . '/userinfo',
|
||||
'scopes_supported' => [ 'openid', 'profile', 'email' ],
|
||||
'response_types_supported' => [ 'code', 'token', 'id_token', 'code id_token', 'token id_token' ]
|
||||
];
|
||||
|
||||
|
||||
json_return_and_die($ret);
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
@@ -45,7 +45,7 @@ class Owa extends \Zotlabs\Web\Controller {
|
||||
}
|
||||
if($r) {
|
||||
foreach($r as $hubloc) {
|
||||
$verified = \Zotlabs\Web\HTTPSig::verify('',$hubloc['xchan_pubkey']);
|
||||
$verified = \Zotlabs\Web\HTTPSig::verify(file_get_contents('php://input'),$hubloc['xchan_pubkey']);
|
||||
if($verified && $verified['header_signed'] && $verified['header_valid']) {
|
||||
logger('OWA header: ' . print_r($verified,true),LOGGER_DATA);
|
||||
logger('OWA success: ' . $hubloc['hubloc_addr'],LOGGER_DATA);
|
||||
|
||||
@@ -13,14 +13,15 @@ class Pconfig extends \Zotlabs\Web\Controller {
|
||||
return;
|
||||
|
||||
|
||||
if($_SESSION['delegate'])
|
||||
return;
|
||||
if($_SESSION['delegate'])
|
||||
return;
|
||||
|
||||
check_form_security_token_redirectOnErr('/pconfig', 'pconfig');
|
||||
|
||||
$cat = trim(escape_tags($_POST['cat']));
|
||||
$k = trim(escape_tags($_POST['k']));
|
||||
$v = trim($_POST['v']);
|
||||
$aj = intval($_POST['aj']);
|
||||
|
||||
if(in_array(argv(2),$this->disallowed_pconfig())) {
|
||||
notice( t('This setting requires special processing and editing has been blocked.') . EOL);
|
||||
@@ -33,9 +34,12 @@ class Pconfig extends \Zotlabs\Web\Controller {
|
||||
|
||||
set_pconfig(local_channel(),$cat,$k,$v);
|
||||
build_sync_packet();
|
||||
|
||||
goaway(z_root() . '/pconfig/' . $cat . '/' . $k);
|
||||
|
||||
|
||||
if($aj)
|
||||
killme();
|
||||
else
|
||||
goaway(z_root() . '/pconfig/' . $cat . '/' . $k);
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -1,15 +1,20 @@
|
||||
<?php
|
||||
namespace Zotlabs\Module;
|
||||
|
||||
use App;
|
||||
use Zotlabs\Web\Controller;
|
||||
use Zotlabs\Lib\Apps;
|
||||
|
||||
class Pdledit extends \Zotlabs\Web\Controller {
|
||||
class Pdledit extends Controller {
|
||||
|
||||
function post() {
|
||||
if(! local_channel())
|
||||
return;
|
||||
if(! $_REQUEST['module'])
|
||||
|
||||
if(! Apps::system_app_installed(local_channel(), 'PDL Editor'))
|
||||
return;
|
||||
if(! feature_enabled(local_channel(),'advanced_theming'))
|
||||
|
||||
if(! $_REQUEST['module'])
|
||||
return;
|
||||
|
||||
if(! trim($_REQUEST['content'])) {
|
||||
@@ -30,9 +35,13 @@ class Pdledit extends \Zotlabs\Web\Controller {
|
||||
return;
|
||||
}
|
||||
|
||||
if(! feature_enabled(local_channel(),'advanced_theming')) {
|
||||
notice( t('Feature disabled.') . EOL);
|
||||
return;
|
||||
if(! Apps::system_app_installed(local_channel(), 'PDL Editor')) {
|
||||
//Do not display any associated widgets at this point
|
||||
App::$pdl = '';
|
||||
|
||||
$o = '<b>' . t('PDL Editor App') . ' (' . t('Not Installed') . '):</b><br>';
|
||||
$o .= t('Provides the ability to edit system page layouts');
|
||||
return $o;
|
||||
}
|
||||
|
||||
if(argc() > 2 && argv(2) === 'reset') {
|
||||
|
||||
@@ -1,26 +1,31 @@
|
||||
<?php
|
||||
|
||||
namespace Zotlabs\Module\Settings;
|
||||
namespace Zotlabs\Module;
|
||||
|
||||
use App;
|
||||
use Zotlabs\Web\Controller;
|
||||
use Zotlabs\Lib\Apps;
|
||||
|
||||
|
||||
class Permcats {
|
||||
class Permcats extends Controller {
|
||||
|
||||
function post() {
|
||||
|
||||
if(! local_channel())
|
||||
return;
|
||||
|
||||
$channel = \App::get_channel();
|
||||
if(! Apps::system_app_installed(local_channel(), 'Permission Categories'))
|
||||
return;
|
||||
|
||||
check_form_security_token_redirectOnErr('/settings/permcats', 'settings_permcats');
|
||||
$channel = App::get_channel();
|
||||
|
||||
check_form_security_token_redirectOnErr('/permcats', 'permcats');
|
||||
|
||||
|
||||
$all_perms = \Zotlabs\Access\Permissions::Perms();
|
||||
|
||||
$name = escape_tags(trim($_POST['name']));
|
||||
if(! $name) {
|
||||
notice( t('Permission Name is required.') . EOL);
|
||||
notice( t('Permission category name is required.') . EOL);
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -50,13 +55,21 @@ class Permcats {
|
||||
if(! local_channel())
|
||||
return;
|
||||
|
||||
$channel = \App::get_channel();
|
||||
if(! Apps::system_app_installed(local_channel(), 'Permission Categories')) {
|
||||
//Do not display any associated widgets at this point
|
||||
App::$pdl = '';
|
||||
|
||||
$o = '<b>' . t('Permission Categories App') . ' (' . t('Not Installed') . '):</b><br>';
|
||||
$o .= t('Create custom connection permission limits');
|
||||
return $o;
|
||||
}
|
||||
|
||||
if(argc() > 2)
|
||||
$name = hex2bin(argv(2));
|
||||
$channel = App::get_channel();
|
||||
|
||||
if(argc() > 3 && argv(3) === 'drop') {
|
||||
if(argc() > 1)
|
||||
$name = hex2bin(argv(1));
|
||||
|
||||
if(argc() > 2 && argv(2) === 'drop') {
|
||||
\Zotlabs\Lib\Permcat::delete(local_channel(),$name);
|
||||
build_sync_packet();
|
||||
json_return_and_die([ 'success' => true ]);
|
||||
@@ -93,9 +106,9 @@ class Permcats {
|
||||
|
||||
|
||||
|
||||
$tpl = get_markup_template("settings_permcats.tpl");
|
||||
$tpl = get_markup_template("permcats.tpl");
|
||||
$o .= replace_macros($tpl, array(
|
||||
'$form_security_token' => get_form_security_token("settings_permcats"),
|
||||
'$form_security_token' => get_form_security_token("permcats"),
|
||||
'$title' => t('Permission Categories'),
|
||||
'$desc' => $desc,
|
||||
'$desc2' => $desc2,
|
||||
@@ -104,7 +117,7 @@ class Permcats {
|
||||
'$atoken' => $atoken,
|
||||
'$url1' => z_root() . '/channel/' . $channel['channel_address'],
|
||||
'$url2' => z_root() . '/photos/' . $channel['channel_address'],
|
||||
'$name' => array('name', t('Permission Name') . ' <span class="required">*</span>', (($name) ? $name : ''), ''),
|
||||
'$name' => array('name', t('Permission category name') . ' <span class="required">*</span>', (($name) ? $name : ''), ''),
|
||||
'$me' => t('My Settings'),
|
||||
'$perms' => $perms,
|
||||
'$inherited' => t('inherited'),
|
||||
@@ -620,10 +620,7 @@ class Photos extends \Zotlabs\Web\Controller {
|
||||
$o .= "<script> var profile_uid = " . \App::$profile['profile_uid']
|
||||
. "; var netargs = '?f='; var profile_page = " . \App::$pager['page'] . "; </script>\r\n";
|
||||
|
||||
// tabs
|
||||
|
||||
$_is_owner = (local_channel() && (local_channel() == $owner_uid));
|
||||
//$o .= profile_tabs($a,$_is_owner, \App::$data['channel']['channel_address']);
|
||||
|
||||
/**
|
||||
* Display upload form
|
||||
|
||||
@@ -2,6 +2,8 @@
|
||||
|
||||
namespace Zotlabs\Module;
|
||||
|
||||
use Zotlabs\Lib\Apps;
|
||||
|
||||
require_once('include/bbcode.php');
|
||||
|
||||
/**
|
||||
@@ -147,9 +149,12 @@ class Ping extends \Zotlabs\Web\Controller {
|
||||
if(! ($vnotify & VNOTIFY_LIKE))
|
||||
$sql_extra = " AND verb NOT IN ('" . dbesc(ACTIVITY_LIKE) . "', '" . dbesc(ACTIVITY_DISLIKE) . "') ";
|
||||
|
||||
$discover_tab_on = can_view_public_stream();
|
||||
|
||||
$notify_pubs = ((local_channel()) ? ($vnotify & VNOTIFY_PUBS) && $discover_tab_on : $discover_tab_on);
|
||||
if(local_channel()) {
|
||||
$notify_pubs = ($vnotify & VNOTIFY_PUBS) && can_view_public_stream() && Apps::system_app_installed(local_channel(), 'Public Stream');
|
||||
}
|
||||
else {
|
||||
$notify_pubs = can_view_public_stream();
|
||||
}
|
||||
|
||||
if($notify_pubs) {
|
||||
$sys = get_sys_channel();
|
||||
|
||||
@@ -1,6 +1,10 @@
|
||||
<?php
|
||||
namespace Zotlabs\Module; /** @file */
|
||||
|
||||
use App;
|
||||
use Zotlabs\Lib\Apps;
|
||||
use Zotlabs\Web\Controller;
|
||||
|
||||
/**
|
||||
*
|
||||
* Poke, prod, finger, or otherwise do unspeakable things to somebody - who must be a connection in your address book
|
||||
@@ -18,15 +22,19 @@ namespace Zotlabs\Module; /** @file */
|
||||
require_once('include/items.php');
|
||||
|
||||
|
||||
class Poke extends \Zotlabs\Web\Controller {
|
||||
class Poke extends Controller {
|
||||
|
||||
function init() {
|
||||
|
||||
if(! local_channel())
|
||||
return;
|
||||
|
||||
if(! Apps::system_app_installed(local_channel(), 'Poke')) {
|
||||
return;
|
||||
}
|
||||
|
||||
$uid = local_channel();
|
||||
$channel = \App::get_channel();
|
||||
$channel = App::get_channel();
|
||||
|
||||
$verb = notags(trim($_REQUEST['verb']));
|
||||
|
||||
@@ -150,6 +158,15 @@ class Poke extends \Zotlabs\Web\Controller {
|
||||
return;
|
||||
}
|
||||
|
||||
if(! Apps::system_app_installed(local_channel(), 'Poke')) {
|
||||
//Do not display any associated widgets at this point
|
||||
App::$pdl = '';
|
||||
|
||||
$o = '<b>' . t('Poke App') . ' (' . t('Not Installed') . '):</b><br>';
|
||||
$o .= t('Poke somebody in your addressbook');
|
||||
return $o;
|
||||
}
|
||||
|
||||
nav_set_selected('Poke');
|
||||
|
||||
$name = '';
|
||||
|
||||
@@ -1,16 +1,29 @@
|
||||
<?php
|
||||
namespace Zotlabs\Module;
|
||||
|
||||
require_once('include/zot.php');
|
||||
use App;
|
||||
use Zotlabs\Lib\Apps;
|
||||
|
||||
require_once('include/zot.php');
|
||||
|
||||
class Probe extends \Zotlabs\Web\Controller {
|
||||
|
||||
function get() {
|
||||
|
||||
if(local_channel()) {
|
||||
if(! Apps::system_app_installed(local_channel(), 'Remote Diagnostics')) {
|
||||
//Do not display any associated widgets at this point
|
||||
App::$pdl = '';
|
||||
|
||||
$o = '<b>' . t('Remote Diagnostics App') . ' (' . t('Not Installed') . '):</b><br>';
|
||||
$o .= t('Perform diagnostics on remote channels');
|
||||
return $o;
|
||||
}
|
||||
}
|
||||
|
||||
nav_set_selected('Remote Diagnostics');
|
||||
|
||||
$o .= '<h3>Probe Diagnostic</h3>';
|
||||
$o .= '<h3>Remote Diagnostics</h3>';
|
||||
|
||||
$o .= '<form action="probe" method="get">';
|
||||
$o .= 'Lookup address: <input type="text" style="width: 250px;" name="addr" value="' . $_GET['addr'] .'" />';
|
||||
@@ -19,7 +32,7 @@ class Probe extends \Zotlabs\Web\Controller {
|
||||
$o .= '<br /><br />';
|
||||
|
||||
if(x($_GET,'addr')) {
|
||||
$channel = \App::get_channel();
|
||||
$channel = App::get_channel();
|
||||
$addr = trim($_GET['addr']);
|
||||
$do_import = ((intval($_GET['import']) && is_site_admin()) ? true : false);
|
||||
|
||||
@@ -27,12 +40,11 @@ class Probe extends \Zotlabs\Web\Controller {
|
||||
|
||||
$o .= '<pre>';
|
||||
if(! $j['success']) {
|
||||
$o .= sprintf( t('Fetching URL returns error: %1$s'),$res['error'] . "\r\n\r\n");
|
||||
$o .= "<strong>https connection failed. Trying again with auto failover to http.</strong>\r\n\r\n";
|
||||
$j = \Zotlabs\Zot\Finger::run($addr,$channel,true);
|
||||
if(! $j['success'])
|
||||
$o .= sprintf( t('Fetching URL returns error: %1$s'),$res['error'] . "\r\n\r\n");
|
||||
|
||||
if(! $j['success']) {
|
||||
return $o;
|
||||
}
|
||||
}
|
||||
if($do_import && $j)
|
||||
$x = import_xchan($j);
|
||||
|
||||
@@ -8,8 +8,8 @@ require_once('include/selectors.php');
|
||||
class Profiles extends \Zotlabs\Web\Controller {
|
||||
|
||||
function init() {
|
||||
|
||||
nav_set_selected('Profiles');
|
||||
|
||||
nav_set_selected('Profiles', 'settings/profiles');
|
||||
|
||||
if(! local_channel()) {
|
||||
return;
|
||||
|
||||
@@ -1,6 +1,9 @@
|
||||
<?php
|
||||
namespace Zotlabs\Module;
|
||||
|
||||
use App;
|
||||
use Zotlabs\Lib\Apps;
|
||||
|
||||
require_once('include/conversation.php');
|
||||
require_once('include/acl_selectors.php');
|
||||
|
||||
@@ -9,6 +12,17 @@ class Pubstream extends \Zotlabs\Web\Controller {
|
||||
|
||||
function get($update = 0, $load = false) {
|
||||
|
||||
if(local_channel()) {
|
||||
if(! Apps::system_app_installed(local_channel(), 'Public Stream')) {
|
||||
//Do not display any associated widgets at this point
|
||||
App::$pdl = '';
|
||||
|
||||
$o = '<b>' . t('Public Stream App') . ' (' . t('Not Installed') . '):</b><br>';
|
||||
$o .= t('The unmoderated public stream of this hub');
|
||||
return $o;
|
||||
}
|
||||
}
|
||||
|
||||
if($load)
|
||||
$_SESSION['loadtime'] = datetime_convert();
|
||||
|
||||
@@ -81,7 +95,7 @@ class Pubstream extends \Zotlabs\Web\Controller {
|
||||
);
|
||||
|
||||
$o = '<div id="jot-popup">';
|
||||
$o .= status_editor($a,$x);
|
||||
$o .= status_editor($a,$x,false,'Pubstream');
|
||||
$o .= '</div>';
|
||||
}
|
||||
|
||||
|
||||
@@ -1,11 +1,17 @@
|
||||
<?php
|
||||
namespace Zotlabs\Module;
|
||||
|
||||
|
||||
use App;
|
||||
use Zotlabs\Lib\Apps;
|
||||
|
||||
class Randprof extends \Zotlabs\Web\Controller {
|
||||
|
||||
function init() {
|
||||
if(local_channel()) {
|
||||
if(! Apps::system_app_installed(local_channel(), 'Random Channel'))
|
||||
return;
|
||||
}
|
||||
|
||||
$x = random_profile();
|
||||
if($x)
|
||||
goaway(chanlink_hash($x));
|
||||
@@ -13,5 +19,19 @@ class Randprof extends \Zotlabs\Web\Controller {
|
||||
/** FIXME this doesn't work at the moment as a fallback */
|
||||
goaway(z_root() . '/profile');
|
||||
}
|
||||
|
||||
function get() {
|
||||
if(local_channel()) {
|
||||
if(! Apps::system_app_installed(local_channel(), 'Random Channel')) {
|
||||
//Do not display any associated widgets at this point
|
||||
App::$pdl = '';
|
||||
|
||||
$o = '<b>' . t('Random Channel App') . ' (' . t('Not Installed') . '):</b><br>';
|
||||
$o .= t('Visit a random channel in the $Projectname network');
|
||||
return $o;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -227,11 +227,6 @@ class Register extends \Zotlabs\Web\Controller {
|
||||
|
||||
$perm_roles = \Zotlabs\Access\PermissionRoles::roles();
|
||||
|
||||
// A new account will not have a techlevel, but accounts can also be created by the administrator.
|
||||
|
||||
if((get_account_techlevel() < 4) && $privacy_role !== 'custom')
|
||||
unset($perm_roles[t('Other')]);
|
||||
|
||||
// Configurable terms of service link
|
||||
|
||||
$tosurl = get_config('system','tos_url');
|
||||
|
||||
@@ -138,7 +138,7 @@ class Rpost extends \Zotlabs\Web\Controller {
|
||||
'jotnets' => true
|
||||
);
|
||||
|
||||
$editor = status_editor($a,$x);
|
||||
$editor = status_editor($a,$x,false,'Rpost');
|
||||
|
||||
$o .= replace_macros(get_markup_template('edpost_head.tpl'), array(
|
||||
'$title' => t('Edit post'),
|
||||
|
||||
@@ -12,7 +12,6 @@ class Account {
|
||||
$errs = array();
|
||||
|
||||
$email = ((x($_POST,'email')) ? trim(notags($_POST['email'])) : '');
|
||||
$techlevel = ((array_key_exists('techlevel',$_POST)) ? intval($_POST['techlevel']) : 0);
|
||||
|
||||
$account = \App::get_account();
|
||||
if($email != $account['account_email']) {
|
||||
@@ -32,13 +31,6 @@ class Account {
|
||||
$errs[] = t('System failure storing new email. Please try again.');
|
||||
}
|
||||
}
|
||||
if($techlevel != $account['account_level']) {
|
||||
$r = q("update account set account_level = %d where account_id = %d",
|
||||
intval($techlevel),
|
||||
intval($account['account_id'])
|
||||
);
|
||||
info( t('Technical skill level updated') . EOL);
|
||||
}
|
||||
|
||||
if($errs) {
|
||||
foreach($errs as $err)
|
||||
@@ -101,11 +93,6 @@ class Account {
|
||||
|
||||
$email = \App::$account['account_email'];
|
||||
|
||||
$techlevels = \Zotlabs\Lib\Techlevels::levels();
|
||||
|
||||
$def_techlevel = \App::$account['account_level'];
|
||||
$techlock = get_config('system','techlevel_lock');
|
||||
|
||||
$tpl = get_markup_template("settings_account.tpl");
|
||||
$o .= replace_macros($tpl, array(
|
||||
'$form_security_token' => get_form_security_token("settings_account"),
|
||||
@@ -113,8 +100,6 @@ class Account {
|
||||
'$origpass' => array('origpass', t('Current Password'), ' ',''),
|
||||
'$password1'=> array('npassword', t('Enter New Password'), '', ''),
|
||||
'$password2'=> array('confirm', t('Confirm New Password'), '', t('Leave password fields blank unless changing')),
|
||||
'$techlevel' => [ 'techlevel', t('Your technical skill level'), $def_techlevel, t('Used to provide a member experience and additional features consistent with your comfort level'), $techlevels ],
|
||||
'$techlock' => $techlock,
|
||||
'$submit' => t('Submit'),
|
||||
'$email' => array('email', t('Email Address:'), $email, ''),
|
||||
'$removeme' => t('Remove Account'),
|
||||
|
||||
47
Zotlabs/Module/Settings/Calendar.php
Normal file
47
Zotlabs/Module/Settings/Calendar.php
Normal file
@@ -0,0 +1,47 @@
|
||||
<?php
|
||||
|
||||
namespace Zotlabs\Module\Settings;
|
||||
|
||||
|
||||
class Calendar {
|
||||
|
||||
function post() {
|
||||
|
||||
$module = substr(strrchr(strtolower(static::class), '\\'), 1);
|
||||
|
||||
check_form_security_token_redirectOnErr('/settings/' . $module, 'settings_' . $module);
|
||||
|
||||
$features = get_module_features($module);
|
||||
|
||||
process_module_features_post(local_channel(), $features, $_POST);
|
||||
|
||||
build_sync_packet();
|
||||
|
||||
if($_POST['rpath'])
|
||||
goaway($_POST['rpath']);
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
function get() {
|
||||
|
||||
$module = substr(strrchr(strtolower(static::class), '\\'), 1);
|
||||
|
||||
$features = get_module_features($module);
|
||||
$rpath = (($_GET['rpath']) ? $_GET['rpath'] : '');
|
||||
|
||||
$tpl = get_markup_template("settings_module.tpl");
|
||||
|
||||
$o .= replace_macros($tpl, array(
|
||||
'$rpath' => $rpath,
|
||||
'$action_url' => 'settings/' . $module,
|
||||
'$form_security_token' => get_form_security_token('settings_' . $module),
|
||||
'$title' => t('CalDAV Settings'),
|
||||
'$features' => process_module_features_get(local_channel(), $features),
|
||||
'$submit' => t('Submit')
|
||||
));
|
||||
|
||||
return $o;
|
||||
}
|
||||
|
||||
}
|
||||
@@ -2,6 +2,8 @@
|
||||
|
||||
namespace Zotlabs\Module\Settings;
|
||||
|
||||
use Zotlabs\Lib\Apps;
|
||||
|
||||
require_once('include/selectors.php');
|
||||
|
||||
|
||||
@@ -63,7 +65,7 @@ class Channel {
|
||||
}
|
||||
$hide_presence = 1 - (intval($role_permissions['online']));
|
||||
if($role_permissions['default_collection']) {
|
||||
$r = q("select hash from groups where uid = %d and gname = '%s' limit 1",
|
||||
$r = q("select hash from pgrp where uid = %d and gname = '%s' limit 1",
|
||||
intval(local_channel()),
|
||||
dbesc( t('Friends') )
|
||||
);
|
||||
@@ -71,7 +73,7 @@ class Channel {
|
||||
require_once('include/group.php');
|
||||
group_add(local_channel(), t('Friends'));
|
||||
group_add_member(local_channel(),t('Friends'),$channel['channel_hash']);
|
||||
$r = q("select hash from groups where uid = %d and gname = '%s' limit 1",
|
||||
$r = q("select hash from pgrp where uid = %d and gname = '%s' limit 1",
|
||||
intval(local_channel()),
|
||||
dbesc( t('Friends') )
|
||||
);
|
||||
@@ -133,8 +135,6 @@ class Channel {
|
||||
$photo_path = ((x($_POST,'photo_path')) ? escape_tags(trim($_POST['photo_path'])) : '');
|
||||
$attach_path = ((x($_POST,'attach_path')) ? escape_tags(trim($_POST['attach_path'])) : '');
|
||||
|
||||
$channel_menu = ((x($_POST['channel_menu'])) ? htmlspecialchars_decode(trim($_POST['channel_menu']),ENT_QUOTES) : '');
|
||||
|
||||
$expire_items = ((x($_POST,'expire_items')) ? intval($_POST['expire_items']) : 0);
|
||||
$expire_starred = ((x($_POST,'expire_starred')) ? intval($_POST['expire_starred']) : 0);
|
||||
$expire_photos = ((x($_POST,'expire_photos'))? intval($_POST['expire_photos']) : 0);
|
||||
@@ -154,10 +154,7 @@ class Channel {
|
||||
$adult = (($_POST['adult'] == 1) ? 1 : 0);
|
||||
$defpermcat = ((x($_POST,'defpermcat')) ? notags(trim($_POST['defpermcat'])) : 'default');
|
||||
|
||||
$cal_first_day = (((x($_POST,'first_day')) && (intval($_POST['first_day']) == 1)) ? 1: 0);
|
||||
$mailhost = ((array_key_exists('mailhost',$_POST)) ? notags(trim($_POST['mailhost'])) : '');
|
||||
$profile_assign = ((x($_POST,'profile_assign')) ? notags(trim($_POST['profile_assign'])) : '');
|
||||
|
||||
|
||||
$pageflags = $channel['channel_pageflags'];
|
||||
$existing_adult = (($pageflags & PAGE_ADULT) ? 1 : 0);
|
||||
@@ -245,16 +242,13 @@ class Channel {
|
||||
set_pconfig(local_channel(),'system','post_joingroup', $post_joingroup);
|
||||
set_pconfig(local_channel(),'system','post_profilechange', $post_profilechange);
|
||||
set_pconfig(local_channel(),'system','blocktags',$blocktags);
|
||||
set_pconfig(local_channel(),'system','channel_menu',$channel_menu);
|
||||
set_pconfig(local_channel(),'system','vnotify',$vnotify);
|
||||
set_pconfig(local_channel(),'system','always_show_in_notices',$always_show_in_notices);
|
||||
set_pconfig(local_channel(),'system','evdays',$evdays);
|
||||
set_pconfig(local_channel(),'system','photo_path',$photo_path);
|
||||
set_pconfig(local_channel(),'system','attach_path',$attach_path);
|
||||
set_pconfig(local_channel(),'system','cal_first_day',$cal_first_day);
|
||||
set_pconfig(local_channel(),'system','default_permcat',$defpermcat);
|
||||
set_pconfig(local_channel(),'system','email_notify_host',$mailhost);
|
||||
set_pconfig(local_channel(),'system','profile_assign',$profile_assign);
|
||||
set_pconfig(local_channel(),'system','autoperms',$autoperms);
|
||||
|
||||
$r = q("update channel set channel_name = '%s', channel_pageflags = %d, channel_timezone = '%s', channel_location = '%s', channel_notifyflags = %d, channel_max_anon_mail = %d, channel_max_friend_req = %d, channel_expire_days = %d $set_perms where channel_id = %d",
|
||||
@@ -434,7 +428,7 @@ class Channel {
|
||||
'$nickname' => (($intl_nickname === $webbie) ? $webbie : $intl_nickname . ' (' . $webbie . ')'),
|
||||
'$subdir' => $subdir,
|
||||
'$davdesc' => t('Your files/photos are accessible via WebDAV at'),
|
||||
'$davpath' => ((get_account_techlevel() > 3) ? z_root() . '/dav/' . $nickname : ''),
|
||||
'$davpath' => z_root() . '/dav/' . $nickname,
|
||||
'$basepath' => \App::get_hostname()
|
||||
));
|
||||
|
||||
@@ -460,18 +454,6 @@ class Channel {
|
||||
require_once('include/group.php');
|
||||
$group_select = mini_group_select(local_channel(),$channel['channel_default_group']);
|
||||
|
||||
require_once('include/menu.php');
|
||||
$m1 = menu_list(local_channel());
|
||||
$menu = false;
|
||||
if($m1) {
|
||||
$menu = array();
|
||||
$current = get_pconfig(local_channel(),'system','channel_menu');
|
||||
$menu[] = array('name' => '', 'selected' => ((! $current) ? true : false));
|
||||
foreach($m1 as $m) {
|
||||
$menu[] = array('name' => htmlspecialchars($m['menu_name'],ENT_COMPAT,'UTF-8'), 'selected' => (($m['menu_name'] === $current) ? ' selected="selected" ' : false));
|
||||
}
|
||||
}
|
||||
|
||||
$evdays = get_pconfig(local_channel(),'system','evdays');
|
||||
if(! $evdays)
|
||||
$evdays = 3;
|
||||
@@ -492,18 +474,13 @@ class Channel {
|
||||
$permissions_set = (($permissions_role != 'custom') ? true : false);
|
||||
|
||||
$perm_roles = \Zotlabs\Access\PermissionRoles::roles();
|
||||
if((get_account_techlevel() < 4) && $permissions_role !== 'custom')
|
||||
unset($perm_roles[t('Other')]);
|
||||
|
||||
|
||||
|
||||
|
||||
$vnotify = get_pconfig(local_channel(),'system','vnotify');
|
||||
$always_show_in_notices = get_pconfig(local_channel(),'system','always_show_in_notices');
|
||||
if($vnotify === false)
|
||||
$vnotify = (-1);
|
||||
|
||||
$plugin = [ 'basic' => '', 'security' => '', 'notify' => '', 'misc' => '' ];
|
||||
$plugin = [ 'basic' => '', 'security' => '', 'notify' => '' ];
|
||||
call_hooks('channel_settings',$plugin);
|
||||
|
||||
$disable_discover_tab = intval(get_config('system','disable_discover_tab',1)) == 1;
|
||||
@@ -548,8 +525,6 @@ class Channel {
|
||||
'$permissions' => t('Default Privacy Group'),
|
||||
'$permdesc' => t("\x28click to open/close\x29"),
|
||||
'$aclselect' => populate_acl($perm_defaults, false, \Zotlabs\Lib\PermissionDescription::fromDescription(t('Use my default audience setting for the type of object published'))),
|
||||
'$profseltxt' => t('Profile to assign new connections'),
|
||||
'$profselect' => ((feature_enabled(local_channel(),'multi_profiles')) ? contact_profile_assign(get_pconfig(local_channel(),'system','profile_assign','')) : ''),
|
||||
|
||||
'$allow_cid' => acl2json($perm_defaults['allow_cid']),
|
||||
'$allow_gid' => acl2json($perm_defaults['allow_gid']),
|
||||
@@ -558,8 +533,8 @@ class Channel {
|
||||
'$suggestme' => $suggestme,
|
||||
'$group_select' => $group_select,
|
||||
'$role' => array('permissions_role' , t('Channel role and privacy'), $permissions_role, '', $perm_roles),
|
||||
'$defpermcat' => [ 'defpermcat', t('Default Permissions Group'), $default_permcat, '', $permcats ],
|
||||
'$permcat_enable' => feature_enabled(local_channel(),'permcats'),
|
||||
'$defpermcat' => [ 'defpermcat', t('Default permissions category'), $default_permcat, '', $permcats ],
|
||||
'$permcat_enable' => Apps::system_app_installed(local_channel(), 'Permission Categories'),
|
||||
'$profile_in_dir' => $profile_in_dir,
|
||||
'$hide_friends' => $hide_friends,
|
||||
'$hide_wall' => $hide_wall,
|
||||
@@ -587,7 +562,7 @@ class Channel {
|
||||
|
||||
'$lbl_vnot' => t('Show visual notifications including:'),
|
||||
|
||||
'$vnotify1' => array('vnotify1', t('Unseen grid activity'), ($vnotify & VNOTIFY_NETWORK), VNOTIFY_NETWORK, '', $yes_no),
|
||||
'$vnotify1' => array('vnotify1', t('Unseen stream activity'), ($vnotify & VNOTIFY_NETWORK), VNOTIFY_NETWORK, '', $yes_no),
|
||||
'$vnotify2' => array('vnotify2', t('Unseen channel activity'), ($vnotify & VNOTIFY_CHANNEL), VNOTIFY_CHANNEL, '', $yes_no),
|
||||
'$vnotify3' => array('vnotify3', t('Unseen private messages'), ($vnotify & VNOTIFY_MAIL), VNOTIFY_MAIL, t('Recommended'), $yes_no),
|
||||
'$vnotify4' => array('vnotify4', t('Upcoming events'), ($vnotify & VNOTIFY_EVENT), VNOTIFY_EVENT, '', $yes_no),
|
||||
@@ -599,7 +574,7 @@ class Channel {
|
||||
'$vnotify10' => array('vnotify10', t('New connections'), ($vnotify & VNOTIFY_INTRO), VNOTIFY_INTRO, t('Recommended'), $yes_no),
|
||||
'$vnotify11' => ((is_site_admin()) ? array('vnotify11', t('System Registrations'), ($vnotify & VNOTIFY_REGISTER), VNOTIFY_REGISTER, '', $yes_no) : array()),
|
||||
'$vnotify12' => array('vnotify12', t('Unseen shared files'), ($vnotify & VNOTIFY_FILES), VNOTIFY_FILES, '', $yes_no),
|
||||
'$vnotify13' => (($disable_discover_tab && !$site_firehose) ? array() : array('vnotify13', t('Unseen public activity'), ($vnotify & VNOTIFY_PUBS), VNOTIFY_PUBS, '', $yes_no)),
|
||||
'$vnotify13' => ((($disable_discover_tab && !$site_firehose) || !Apps::system_app_installed(local_channel(), 'Public Stream')) ? array() : array('vnotify13', t('Unseen public stream activity'), ($vnotify & VNOTIFY_PUBS), VNOTIFY_PUBS, '', $yes_no)),
|
||||
'$vnotify14' => array('vnotify14', t('Unseen likes and dislikes'), ($vnotify & VNOTIFY_LIKE), VNOTIFY_LIKE, '', $yes_no),
|
||||
'$vnotify15' => array('vnotify15', t('Unseen forum posts'), ($vnotify & VNOTIFY_FORUMS), VNOTIFY_FORUMS, '', $yes_no),
|
||||
'$mailhost' => [ 'mailhost', t('Email notification hub (hostname)'), get_pconfig(local_channel(),'system','email_notify_host',\App::get_hostname()), sprintf( t('If your channel is mirrored to multiple hubs, set this to your preferred location. This will prevent duplicate email notifications. Example: %s'),\App::get_hostname()) ],
|
||||
@@ -609,7 +584,6 @@ class Channel {
|
||||
'$basic_addon' => $plugin['basic'],
|
||||
'$sec_addon' => $plugin['security'],
|
||||
'$notify_addon' => $plugin['notify'],
|
||||
'$misc_addon' => $plugin['misc'],
|
||||
|
||||
'$h_advn' => t('Advanced Account/Page Type Settings'),
|
||||
'$h_descadvn' => t('Change the behaviour of this account for special situations'),
|
||||
@@ -617,12 +591,8 @@ class Channel {
|
||||
'$lbl_misc' => t('Miscellaneous Settings'),
|
||||
'$photo_path' => array('photo_path', t('Default photo upload folder'), get_pconfig(local_channel(),'system','photo_path'), t('%Y - current year, %m - current month')),
|
||||
'$attach_path' => array('attach_path', t('Default file upload folder'), get_pconfig(local_channel(),'system','attach_path'), t('%Y - current year, %m - current month')),
|
||||
'$menus' => $menu,
|
||||
'$menu_desc' => t('Personal menu to display in your channel pages'),
|
||||
'$removeme' => t('Remove Channel'),
|
||||
'$removechannel' => t('Remove this channel.'),
|
||||
'$firefoxshare' => t('Firefox Share $Projectname provider'),
|
||||
'$cal_first_day' => array('first_day', t('Start calendar week on Monday'), ((get_pconfig(local_channel(),'system','cal_first_day')) ? 1 : ''), '', $yes_no),
|
||||
));
|
||||
|
||||
call_hooks('settings_form',$o);
|
||||
|
||||
95
Zotlabs/Module/Settings/Channel_home.php
Normal file
95
Zotlabs/Module/Settings/Channel_home.php
Normal file
@@ -0,0 +1,95 @@
|
||||
<?php
|
||||
|
||||
namespace Zotlabs\Module\Settings;
|
||||
|
||||
require_once('include/menu.php');
|
||||
|
||||
class Channel_home {
|
||||
|
||||
function post() {
|
||||
|
||||
$module = substr(strrchr(strtolower(static::class), '\\'), 1);
|
||||
|
||||
check_form_security_token_redirectOnErr('/settings/' . $module, 'settings_' . $module);
|
||||
|
||||
$features = get_module_features($module);
|
||||
|
||||
process_module_features_post(local_channel(), $features, $_POST);
|
||||
|
||||
$channel_divmore_height = ((x($_POST,'channel_divmore_height')) ? intval($_POST['channel_divmore_height']) : 400);
|
||||
if($channel_divmore_height < 50)
|
||||
$channel_divmore_height = 50;
|
||||
set_pconfig(local_channel(),'system','channel_divmore_height', $channel_divmore_height);
|
||||
|
||||
$channel_menu = ((x($_POST['channel_menu'])) ? htmlspecialchars_decode(trim($_POST['channel_menu']),ENT_QUOTES) : '');
|
||||
set_pconfig(local_channel(),'system','channel_menu',$channel_menu);
|
||||
|
||||
build_sync_packet();
|
||||
|
||||
if($_POST['rpath'])
|
||||
goaway($_POST['rpath']);
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
function get() {
|
||||
|
||||
$module = substr(strrchr(strtolower(static::class), '\\'), 1);
|
||||
|
||||
$features = get_module_features($module);
|
||||
$rpath = (($_GET['rpath']) ? $_GET['rpath'] : '');
|
||||
|
||||
$channel_divmore_height = [
|
||||
'channel_divmore_height',
|
||||
t('Max height of content (in pixels)'),
|
||||
((get_pconfig(local_channel(),'system','channel_divmore_height')) ? get_pconfig(local_channel(),'system','channel_divmore_height') : 400),
|
||||
t('Click to expand content exceeding this height')
|
||||
];
|
||||
|
||||
$menus = menu_list(local_channel());
|
||||
if($menus) {
|
||||
$current = get_pconfig(local_channel(),'system','channel_menu');
|
||||
$menu[] = '';
|
||||
foreach($menus as $m) {
|
||||
$menu[$m['menu_name']] = htmlspecialchars($m['menu_name'],ENT_COMPAT,'UTF-8');
|
||||
}
|
||||
|
||||
$menu_select = [
|
||||
'channel_menu',
|
||||
t('Personal menu to display in your channel pages'),
|
||||
$current,
|
||||
'',
|
||||
$menu
|
||||
];
|
||||
}
|
||||
|
||||
$extra_settings_html = replace_macros(get_markup_template('field_input.tpl'),
|
||||
[
|
||||
'$field' => $channel_divmore_height
|
||||
]
|
||||
);
|
||||
|
||||
if($menu) {
|
||||
$extra_settings_html .= replace_macros(get_markup_template('field_select.tpl'),
|
||||
[
|
||||
'$field' => $menu_select
|
||||
]
|
||||
);
|
||||
}
|
||||
|
||||
$tpl = get_markup_template("settings_module.tpl");
|
||||
|
||||
$o .= replace_macros($tpl, array(
|
||||
'$rpath' => $rpath,
|
||||
'$action_url' => 'settings/' . $module,
|
||||
'$form_security_token' => get_form_security_token('settings_' . $module),
|
||||
'$title' => t('Channel Home Settings'),
|
||||
'$features' => process_module_features_get(local_channel(), $features),
|
||||
'$extra_settings_html' => $extra_settings_html,
|
||||
'$submit' => t('Submit')
|
||||
));
|
||||
|
||||
return $o;
|
||||
}
|
||||
|
||||
}
|
||||
47
Zotlabs/Module/Settings/Connections.php
Normal file
47
Zotlabs/Module/Settings/Connections.php
Normal file
@@ -0,0 +1,47 @@
|
||||
<?php
|
||||
|
||||
namespace Zotlabs\Module\Settings;
|
||||
|
||||
|
||||
class Connections {
|
||||
|
||||
function post() {
|
||||
|
||||
$module = substr(strrchr(strtolower(static::class), '\\'), 1);
|
||||
|
||||
check_form_security_token_redirectOnErr('/settings/' . $module, 'settings_' . $module);
|
||||
|
||||
$features = get_module_features($module);
|
||||
|
||||
process_module_features_post(local_channel(), $features, $_POST);
|
||||
|
||||
build_sync_packet();
|
||||
|
||||
if($_POST['rpath'])
|
||||
goaway($_POST['rpath']);
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
function get() {
|
||||
|
||||
$module = substr(strrchr(strtolower(static::class), '\\'), 1);
|
||||
|
||||
$features = get_module_features($module);
|
||||
$rpath = (($_GET['rpath']) ? $_GET['rpath'] : '');
|
||||
|
||||
$tpl = get_markup_template("settings_module.tpl");
|
||||
|
||||
$o .= replace_macros($tpl, array(
|
||||
'$rpath' => $rpath,
|
||||
'$action_url' => 'settings/' . $module,
|
||||
'$form_security_token' => get_form_security_token('settings_' . $module),
|
||||
'$title' => t('Connections Settings'),
|
||||
'$features' => process_module_features_get(local_channel(), $features),
|
||||
'$submit' => t('Submit')
|
||||
));
|
||||
|
||||
return $o;
|
||||
}
|
||||
|
||||
}
|
||||
60
Zotlabs/Module/Settings/Conversation.php
Normal file
60
Zotlabs/Module/Settings/Conversation.php
Normal file
@@ -0,0 +1,60 @@
|
||||
<?php
|
||||
|
||||
namespace Zotlabs\Module\Settings;
|
||||
|
||||
|
||||
class Conversation {
|
||||
|
||||
function post() {
|
||||
|
||||
$module = substr(strrchr(strtolower(static::class), '\\'), 1);
|
||||
|
||||
check_form_security_token_redirectOnErr('/settings/' . $module, 'settings_' . $module);
|
||||
|
||||
$features = get_module_features($module);
|
||||
|
||||
process_module_features_post(local_channel(), $features, $_POST);
|
||||
|
||||
build_sync_packet();
|
||||
|
||||
if($_POST['aj']) {
|
||||
if($_POST['auto_update'] == 1)
|
||||
info(t('Settings saved.') . EOL);
|
||||
else
|
||||
info(t('Settings saved. Reload page please.') . EOL);
|
||||
|
||||
killme();
|
||||
}
|
||||
else {
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
function get() {
|
||||
|
||||
$aj = ((isset($_GET['aj'])) ? true : false);
|
||||
|
||||
$module = substr(strrchr(strtolower(static::class), '\\'), 1);
|
||||
|
||||
$features = get_module_features($module);
|
||||
|
||||
$tpl = (($aj) ? get_markup_template("settings_module_ajax.tpl") : get_markup_template("settings_module.tpl"));
|
||||
|
||||
$o .= replace_macros($tpl, array(
|
||||
'$action_url' => 'settings/' . $module,
|
||||
'$form_security_token' => get_form_security_token('settings_' . $module),
|
||||
'$title' => t('Conversation Settings'),
|
||||
'$features' => process_module_features_get(local_channel(), $features),
|
||||
'$submit' => t('Submit')
|
||||
));
|
||||
|
||||
if($aj) {
|
||||
echo $o;
|
||||
killme();
|
||||
}
|
||||
else {
|
||||
return $o;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
47
Zotlabs/Module/Settings/Directory.php
Normal file
47
Zotlabs/Module/Settings/Directory.php
Normal file
@@ -0,0 +1,47 @@
|
||||
<?php
|
||||
|
||||
namespace Zotlabs\Module\Settings;
|
||||
|
||||
|
||||
class Directory {
|
||||
|
||||
function post() {
|
||||
|
||||
$module = substr(strrchr(strtolower(static::class), '\\'), 1);
|
||||
|
||||
check_form_security_token_redirectOnErr('/settings/' . $module, 'settings_' . $module);
|
||||
|
||||
$features = get_module_features($module);
|
||||
|
||||
process_module_features_post(local_channel(), $features, $_POST);
|
||||
|
||||
build_sync_packet();
|
||||
|
||||
if($_POST['rpath'])
|
||||
goaway($_POST['rpath']);
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
function get() {
|
||||
|
||||
$module = substr(strrchr(strtolower(static::class), '\\'), 1);
|
||||
|
||||
$features = get_module_features($module);
|
||||
$rpath = (($_GET['rpath']) ? $_GET['rpath'] : '');
|
||||
|
||||
$tpl = get_markup_template("settings_module.tpl");
|
||||
|
||||
$o .= replace_macros($tpl, array(
|
||||
'$rpath' => $rpath,
|
||||
'$action_url' => 'settings/' . $module,
|
||||
'$form_security_token' => get_form_security_token('settings_' . $module),
|
||||
'$title' => t('Directory Settings'),
|
||||
'$features' => process_module_features_get(local_channel(), $features),
|
||||
'$submit' => t('Submit')
|
||||
));
|
||||
|
||||
return $o;
|
||||
}
|
||||
|
||||
}
|
||||
@@ -27,16 +27,8 @@ class Display {
|
||||
$user_scalable = ((x($_POST,'user_scalable')) ? intval($_POST['user_scalable']) : 0);
|
||||
$nosmile = ((x($_POST,'nosmile')) ? intval($_POST['nosmile']) : 0);
|
||||
$title_tosource = ((x($_POST,'title_tosource')) ? intval($_POST['title_tosource']) : 0);
|
||||
$channel_list_mode = ((x($_POST,'channel_list_mode')) ? intval($_POST['channel_list_mode']) : 0);
|
||||
$network_list_mode = ((x($_POST,'network_list_mode')) ? intval($_POST['network_list_mode']) : 0);
|
||||
$manual_update = ((array_key_exists('manual_update',$_POST)) ? intval($_POST['manual_update']) : 0);
|
||||
|
||||
$channel_divmore_height = ((x($_POST,'channel_divmore_height')) ? intval($_POST['channel_divmore_height']) : 400);
|
||||
if($channel_divmore_height < 50)
|
||||
$channel_divmore_height = 50;
|
||||
$network_divmore_height = ((x($_POST,'network_divmore_height')) ? intval($_POST['network_divmore_height']) : 400);
|
||||
if($network_divmore_height < 50)
|
||||
$network_divmore_height = 50;
|
||||
$start_menu = ((x($_POST,'start_menu')) ? intval($_POST['start_menu']) : 0);
|
||||
|
||||
$browser_update = ((x($_POST,'browser_update')) ? intval($_POST['browser_update']) : 0);
|
||||
$browser_update = $browser_update * 1000;
|
||||
@@ -54,12 +46,9 @@ class Display {
|
||||
set_pconfig(local_channel(),'system','itemspage', $itemspage);
|
||||
set_pconfig(local_channel(),'system','no_smilies',1-intval($nosmile));
|
||||
set_pconfig(local_channel(),'system','title_tosource',$title_tosource);
|
||||
set_pconfig(local_channel(),'system','channel_list_mode', $channel_list_mode);
|
||||
set_pconfig(local_channel(),'system','network_list_mode', $network_list_mode);
|
||||
set_pconfig(local_channel(),'system','channel_divmore_height', $channel_divmore_height);
|
||||
set_pconfig(local_channel(),'system','network_divmore_height', $network_divmore_height);
|
||||
set_pconfig(local_channel(),'system','manual_conversation_update', $manual_update);
|
||||
set_pconfig(local_channel(),'system','channel_menu', $channel_menu);
|
||||
set_pconfig(local_channel(),'system','start_menu', $start_menu);
|
||||
|
||||
$newschema = '';
|
||||
if($theme){
|
||||
@@ -150,6 +139,14 @@ class Display {
|
||||
$theme_selected = explode(':', $theme_selected)[0];
|
||||
}
|
||||
|
||||
$account = \App::get_account();
|
||||
|
||||
if($account['account_created'] > datetime_convert('','','now - 60 days')) {
|
||||
$start_menu = get_pconfig(local_channel(), 'system', 'start_menu', 1);
|
||||
}
|
||||
else {
|
||||
$start_menu = get_pconfig(local_channel(), 'system', 'start_menu', 0);
|
||||
}
|
||||
|
||||
$preload_images = get_pconfig(local_channel(),'system','preload_images');
|
||||
$preload_images = (($preload_images===false)? '0': $preload_images); // default if not set: 0
|
||||
@@ -204,15 +201,8 @@ class Display {
|
||||
'$channel_menu' => [ 'channel_menu', t('Provide channel menu in navigation bar'), get_pconfig(local_channel(),'system','channel_menu',get_config('system','channel_menu',0)), t('Default: channel menu located in app menu'),$yes_no ],
|
||||
'$manual_update' => array('manual_update', t('Manual conversation updates'), channel_manual_conv_update(local_channel()), t('Default is on, turning this off may increase screen jumping'), $yes_no),
|
||||
'$title_tosource' => array('title_tosource', t("Link post titles to source"), $title_tosource, '', $yes_no),
|
||||
'$layout_editor' => t('System Page Layout Editor - (advanced)'),
|
||||
'$theme_config' => $theme_config,
|
||||
'$expert' => feature_enabled(local_channel(),'advanced_theming'),
|
||||
'$channel_list_mode' => array('channel_list_mode', t('Use blog/list mode on channel page'), get_pconfig(local_channel(),'system','channel_list_mode'), t('(comments displayed separately)'), $yes_no),
|
||||
'$network_list_mode' => array('network_list_mode', t('Use blog/list mode on grid page'), get_pconfig(local_channel(),'system','network_list_mode'), t('(comments displayed separately)'), $yes_no),
|
||||
'$channel_divmore_height' => array('channel_divmore_height', t('Channel page max height of content (in pixels)'), ((get_pconfig(local_channel(),'system','channel_divmore_height')) ? get_pconfig(local_channel(),'system','channel_divmore_height') : 400), t('click to expand content exceeding this height')),
|
||||
'$network_divmore_height' => array('network_divmore_height', t('Grid page max height of content (in pixels)'), ((get_pconfig(local_channel(),'system','network_divmore_height')) ? get_pconfig(local_channel(),'system','network_divmore_height') : 400) , t('click to expand content exceeding this height')),
|
||||
|
||||
|
||||
'$start_menu' => ['start_menu', t('New Member Links'), $start_menu, t('Display new member quick links menu'), $yes_no]
|
||||
));
|
||||
|
||||
call_hooks('display_settings',$o);
|
||||
|
||||
47
Zotlabs/Module/Settings/Editor.php
Normal file
47
Zotlabs/Module/Settings/Editor.php
Normal file
@@ -0,0 +1,47 @@
|
||||
<?php
|
||||
|
||||
namespace Zotlabs\Module\Settings;
|
||||
|
||||
|
||||
class Editor {
|
||||
|
||||
function post() {
|
||||
|
||||
$module = substr(strrchr(strtolower(static::class), '\\'), 1);
|
||||
|
||||
check_form_security_token_redirectOnErr('/settings/' . $module, 'settings_' . $module);
|
||||
|
||||
$features = get_module_features($module);
|
||||
|
||||
process_module_features_post(local_channel(), $features, $_POST);
|
||||
|
||||
build_sync_packet();
|
||||
|
||||
if($_POST['rpath'])
|
||||
goaway($_POST['rpath']);
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
function get() {
|
||||
|
||||
$module = substr(strrchr(strtolower(static::class), '\\'), 1);
|
||||
|
||||
$features = get_module_features($module);
|
||||
$rpath = (($_GET['rpath']) ? $_GET['rpath'] : '');
|
||||
|
||||
$tpl = get_markup_template("settings_module.tpl");
|
||||
|
||||
$o .= replace_macros($tpl, array(
|
||||
'$rpath' => $rpath,
|
||||
'$action_url' => 'settings/' . $module,
|
||||
'$form_security_token' => get_form_security_token('settings_' . $module),
|
||||
'$title' => t('Editor Settings'),
|
||||
'$features' => process_module_features_get(local_channel(), $features),
|
||||
'$submit' => t('Submit')
|
||||
));
|
||||
|
||||
return $o;
|
||||
}
|
||||
|
||||
}
|
||||
47
Zotlabs/Module/Settings/Events.php
Normal file
47
Zotlabs/Module/Settings/Events.php
Normal file
@@ -0,0 +1,47 @@
|
||||
<?php
|
||||
|
||||
namespace Zotlabs\Module\Settings;
|
||||
|
||||
|
||||
class Events {
|
||||
|
||||
function post() {
|
||||
|
||||
$module = substr(strrchr(strtolower(static::class), '\\'), 1);
|
||||
|
||||
check_form_security_token_redirectOnErr('/settings/' . $module, 'settings_' . $module);
|
||||
|
||||
$features = get_module_features($module);
|
||||
|
||||
process_module_features_post(local_channel(), $features, $_POST);
|
||||
|
||||
build_sync_packet();
|
||||
|
||||
if($_POST['rpath'])
|
||||
goaway($_POST['rpath']);
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
function get() {
|
||||
|
||||
$module = substr(strrchr(strtolower(static::class), '\\'), 1);
|
||||
|
||||
$features = get_module_features($module);
|
||||
$rpath = (($_GET['rpath']) ? $_GET['rpath'] : '');
|
||||
|
||||
$tpl = get_markup_template("settings_module.tpl");
|
||||
|
||||
$o .= replace_macros($tpl, array(
|
||||
'$rpath' => $rpath,
|
||||
'$action_url' => 'settings/' . $module,
|
||||
'$form_security_token' => get_form_security_token('settings_' . $module),
|
||||
'$title' => t('Events Settings'),
|
||||
'$features' => process_module_features_get(local_channel(), $features),
|
||||
'$submit' => t('Submit')
|
||||
));
|
||||
|
||||
return $o;
|
||||
}
|
||||
|
||||
}
|
||||
@@ -26,44 +26,14 @@ class Features {
|
||||
function get() {
|
||||
|
||||
$arr = [];
|
||||
$harr = [];
|
||||
|
||||
if(intval($_REQUEST['techlevel']))
|
||||
$level = intval($_REQUEST['techlevel']);
|
||||
else {
|
||||
$level = get_account_techlevel();
|
||||
}
|
||||
|
||||
if(! intval($level)) {
|
||||
notice( t('Permission denied.') . EOL);
|
||||
return;
|
||||
}
|
||||
|
||||
$techlevels = \Zotlabs\Lib\Techlevels::levels();
|
||||
|
||||
// This page isn't accessible at techlevel 0
|
||||
|
||||
unset($techlevels[0]);
|
||||
|
||||
$def_techlevel = (($level > 0) ? $level : 1);
|
||||
$techlock = get_config('system','techlevel_lock');
|
||||
|
||||
$all_features_raw = get_features(false);
|
||||
|
||||
foreach($all_features_raw as $fname => $fdata) {
|
||||
foreach(array_slice($fdata,1) as $f) {
|
||||
$harr[$f[0]] = ((intval(feature_enabled(local_channel(),$f[0]))) ? "1" : '');
|
||||
}
|
||||
}
|
||||
|
||||
$features = get_features(true,$level);
|
||||
$features = get_features(false);
|
||||
|
||||
foreach($features as $fname => $fdata) {
|
||||
$arr[$fname] = array();
|
||||
$arr[$fname][0] = $fdata[0];
|
||||
foreach(array_slice($fdata,1) as $f) {
|
||||
$arr[$fname][1][] = array('feature_' . $f[0],$f[1],((intval(feature_enabled(local_channel(),$f[0]))) ? "1" : ''),$f[2],array(t('Off'),t('On')));
|
||||
unset($harr[$f[0]]);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -71,10 +41,7 @@ class Features {
|
||||
$o .= replace_macros($tpl, array(
|
||||
'$form_security_token' => get_form_security_token("settings_features"),
|
||||
'$title' => t('Additional Features'),
|
||||
'$techlevel' => [ 'techlevel', t('Your technical skill level'), $def_techlevel, t('Used to provide a member experience and additional features consistent with your comfort level'), $techlevels ],
|
||||
'$techlock' => $techlock,
|
||||
'$features' => $arr,
|
||||
'$hiddens' => $harr,
|
||||
'$baseurl' => z_root(),
|
||||
'$submit' => t('Submit'),
|
||||
));
|
||||
|
||||
47
Zotlabs/Module/Settings/Manage.php
Normal file
47
Zotlabs/Module/Settings/Manage.php
Normal file
@@ -0,0 +1,47 @@
|
||||
<?php
|
||||
|
||||
namespace Zotlabs\Module\Settings;
|
||||
|
||||
|
||||
class Manage {
|
||||
|
||||
function post() {
|
||||
|
||||
$module = substr(strrchr(strtolower(static::class), '\\'), 1);
|
||||
|
||||
check_form_security_token_redirectOnErr('/settings/' . $module, 'settings_' . $module);
|
||||
|
||||
$features = get_module_features($module);
|
||||
|
||||
process_module_features_post(local_channel(), $features, $_POST);
|
||||
|
||||
build_sync_packet();
|
||||
|
||||
if($_POST['rpath'])
|
||||
goaway($_POST['rpath']);
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
function get() {
|
||||
|
||||
$module = substr(strrchr(strtolower(static::class), '\\'), 1);
|
||||
|
||||
$features = get_module_features($module);
|
||||
$rpath = (($_GET['rpath']) ? $_GET['rpath'] : '');
|
||||
|
||||
$tpl = get_markup_template("settings_module.tpl");
|
||||
|
||||
$o .= replace_macros($tpl, array(
|
||||
'$rpath' => $rpath,
|
||||
'$action_url' => 'settings/' . $module,
|
||||
'$form_security_token' => get_form_security_token('settings_' . $module),
|
||||
'$title' => t('Channel Manager Settings'),
|
||||
'$features' => process_module_features_get(local_channel(), $features),
|
||||
'$submit' => t('Submit')
|
||||
));
|
||||
|
||||
return $o;
|
||||
}
|
||||
|
||||
}
|
||||
67
Zotlabs/Module/Settings/Network.php
Normal file
67
Zotlabs/Module/Settings/Network.php
Normal file
@@ -0,0 +1,67 @@
|
||||
<?php
|
||||
|
||||
namespace Zotlabs\Module\Settings;
|
||||
|
||||
|
||||
class Network {
|
||||
|
||||
function post() {
|
||||
|
||||
$module = substr(strrchr(strtolower(static::class), '\\'), 1);
|
||||
|
||||
check_form_security_token_redirectOnErr('/settings/' . $module, 'settings_' . $module);
|
||||
|
||||
$features = get_module_features($module);
|
||||
|
||||
process_module_features_post(local_channel(), $features, $_POST);
|
||||
|
||||
$network_divmore_height = ((x($_POST,'network_divmore_height')) ? intval($_POST['network_divmore_height']) : 400);
|
||||
if($network_divmore_height < 50)
|
||||
$network_divmore_height = 50;
|
||||
|
||||
set_pconfig(local_channel(),'system','network_divmore_height', $network_divmore_height);
|
||||
|
||||
build_sync_packet();
|
||||
|
||||
if($_POST['rpath'])
|
||||
goaway($_POST['rpath']);
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
function get() {
|
||||
|
||||
$module = substr(strrchr(strtolower(static::class), '\\'), 1);
|
||||
|
||||
$features = get_module_features($module);
|
||||
$rpath = (($_GET['rpath']) ? $_GET['rpath'] : '');
|
||||
|
||||
$network_divmore_height = [
|
||||
'network_divmore_height',
|
||||
t('Max height of content (in pixels)'),
|
||||
((get_pconfig(local_channel(),'system','network_divmore_height')) ? get_pconfig(local_channel(),'system','network_divmore_height') : 400),
|
||||
t('Click to expand content exceeding this height')
|
||||
];
|
||||
|
||||
$extra_settings_html = replace_macros(get_markup_template('field_input.tpl'),
|
||||
[
|
||||
'$field' => $network_divmore_height
|
||||
]
|
||||
);
|
||||
|
||||
$tpl = get_markup_template("settings_module.tpl");
|
||||
|
||||
$o .= replace_macros($tpl, array(
|
||||
'$rpath' => $rpath,
|
||||
'$action_url' => 'settings/' . $module,
|
||||
'$form_security_token' => get_form_security_token('settings_' . $module),
|
||||
'$title' => t('Stream Settings'),
|
||||
'$features' => process_module_features_get(local_channel(), $features),
|
||||
'$extra_settings_html' => $extra_settings_html,
|
||||
'$submit' => t('Submit')
|
||||
));
|
||||
|
||||
return $o;
|
||||
}
|
||||
|
||||
}
|
||||
47
Zotlabs/Module/Settings/Photos.php
Normal file
47
Zotlabs/Module/Settings/Photos.php
Normal file
@@ -0,0 +1,47 @@
|
||||
<?php
|
||||
|
||||
namespace Zotlabs\Module\Settings;
|
||||
|
||||
|
||||
class Photos {
|
||||
|
||||
function post() {
|
||||
|
||||
$module = substr(strrchr(strtolower(static::class), '\\'), 1);
|
||||
|
||||
check_form_security_token_redirectOnErr('/settings/' . $module, 'settings_' . $module);
|
||||
|
||||
$features = get_module_features($module);
|
||||
|
||||
process_module_features_post(local_channel(), $features, $_POST);
|
||||
|
||||
build_sync_packet();
|
||||
|
||||
if($_POST['rpath'])
|
||||
goaway($_POST['rpath']);
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
function get() {
|
||||
|
||||
$module = substr(strrchr(strtolower(static::class), '\\'), 1);
|
||||
|
||||
$features = get_module_features($module);
|
||||
$rpath = (($_GET['rpath']) ? $_GET['rpath'] : '');
|
||||
|
||||
$tpl = get_markup_template("settings_module.tpl");
|
||||
|
||||
$o .= replace_macros($tpl, array(
|
||||
'$rpath' => $rpath,
|
||||
'$action_url' => 'settings/' . $module,
|
||||
'$form_security_token' => get_form_security_token('settings_' . $module),
|
||||
'$title' => t('Photos Settings'),
|
||||
'$features' => process_module_features_get(local_channel(), $features),
|
||||
'$submit' => t('Submit')
|
||||
));
|
||||
|
||||
return $o;
|
||||
}
|
||||
|
||||
}
|
||||
56
Zotlabs/Module/Settings/Profiles.php
Normal file
56
Zotlabs/Module/Settings/Profiles.php
Normal file
@@ -0,0 +1,56 @@
|
||||
<?php
|
||||
|
||||
namespace Zotlabs\Module\Settings;
|
||||
|
||||
require_once('include/selectors.php');
|
||||
|
||||
class Profiles {
|
||||
|
||||
function post() {
|
||||
|
||||
$module = substr(strrchr(strtolower(static::class), '\\'), 1);
|
||||
|
||||
check_form_security_token_redirectOnErr('/settings/' . $module, 'settings_' . $module);
|
||||
|
||||
$features = get_module_features($module);
|
||||
|
||||
process_module_features_post(local_channel(), $features, $_POST);
|
||||
|
||||
$profile_assign = ((x($_POST,'profile_assign')) ? notags(trim($_POST['profile_assign'])) : '');
|
||||
set_pconfig(local_channel(),'system','profile_assign',$profile_assign);
|
||||
|
||||
build_sync_packet();
|
||||
|
||||
if($_POST['rpath'])
|
||||
goaway($_POST['rpath']);
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
function get() {
|
||||
|
||||
$module = substr(strrchr(strtolower(static::class), '\\'), 1);
|
||||
|
||||
$features = get_module_features($module);
|
||||
$rpath = (($_GET['rpath']) ? $_GET['rpath'] : '');
|
||||
|
||||
$extra_settings_html = '';
|
||||
if(feature_enabled(local_channel(),'multi_profiles'))
|
||||
$extra_settings_html = contact_profile_assign(get_pconfig(local_channel(),'system','profile_assign',''));
|
||||
|
||||
$tpl = get_markup_template("settings_module.tpl");
|
||||
|
||||
$o .= replace_macros($tpl, array(
|
||||
'$rpath' => $rpath,
|
||||
'$action_url' => 'settings/' . $module,
|
||||
'$form_security_token' => get_form_security_token('settings_' . $module),
|
||||
'$title' => t('Profiles Settings'),
|
||||
'$features' => process_module_features_get(local_channel(), $features),
|
||||
'$extra_settings_html' => $extra_settings_html,
|
||||
'$submit' => t('Submit')
|
||||
));
|
||||
|
||||
return $o;
|
||||
}
|
||||
|
||||
}
|
||||
@@ -526,15 +526,22 @@ class Setup extends \Zotlabs\Web\Controller {
|
||||
$ck_funcs[0]['status'] = false;
|
||||
$ck_funcs[0]['help'] = t('Error: libCURL PHP module required but not installed.');
|
||||
}
|
||||
if(! function_exists('imagecreatefromjpeg')) {
|
||||
if((! function_exists('imagecreatefromjpeg')) && (! class_exists('\\Imagick'))) {
|
||||
$ck_funcs[1]['status'] = false;
|
||||
$ck_funcs[1]['help'] = t('Error: GD graphics PHP module with JPEG support required but not installed.');
|
||||
$ck_funcs[1]['help'] = t('Error: GD PHP module with JPEG support or ImageMagick graphics library required but not installed.');
|
||||
}
|
||||
if(! function_exists('openssl_public_encrypt')) {
|
||||
$ck_funcs[2]['status'] = false;
|
||||
$ck_funcs[2]['help'] = t('Error: openssl PHP module required but not installed.');
|
||||
}
|
||||
if(! class_exists('PDO')) {
|
||||
if(class_exists('\\PDO')) {
|
||||
$x = \PDO::getAvailableDrivers();
|
||||
if((! in_array('mysql',$x)) && (! in_array('pgsql',$x))) {
|
||||
$ck_funcs[3]['status'] = false;
|
||||
$ck_funcs[3]['help'] = t('Error: PDO database PHP module missing a driver for either mysql or pgsql.');
|
||||
}
|
||||
}
|
||||
if(! class_exists('\\PDO')) {
|
||||
$ck_funcs[3]['status'] = false;
|
||||
$ck_funcs[3]['help'] = t('Error: PDO database PHP module required but not installed.');
|
||||
}
|
||||
|
||||
@@ -97,7 +97,6 @@ class Sharedwithme extends \Zotlabs\Web\Controller {
|
||||
|
||||
}
|
||||
|
||||
//$o = profile_tabs($a, $is_owner, $channel['channel_address']);
|
||||
$o = '';
|
||||
|
||||
$o .= replace_macros(get_markup_template('sharedwithme.tpl'), array(
|
||||
|
||||
@@ -32,7 +32,7 @@ class Siteinfo extends \Zotlabs\Web\Controller {
|
||||
'$transport_link' => '<a href="https://zotlabs.com">https://zotlabs.com</a>',
|
||||
|
||||
'$additional_text' => t('Additional federated transport protocols:'),
|
||||
'$additional_fed' => implode(',',$federated),
|
||||
'$additional_fed' => implode(', ', $federated),
|
||||
'$prj_version' => ((get_config('system','hidden_version_siteinfo')) ? '' : sprintf( t('Version %s'), \Zotlabs\Lib\System::get_project_version())),
|
||||
'$prj_linktxt' => t('Project homepage'),
|
||||
'$prj_srctxt' => t('Developer homepage'),
|
||||
|
||||
@@ -1,15 +1,18 @@
|
||||
<?php
|
||||
namespace Zotlabs\Module; /** @file */
|
||||
|
||||
use App;
|
||||
use Zotlabs\Lib\Apps;
|
||||
use Zotlabs\Web\Controller;
|
||||
|
||||
class Sources extends \Zotlabs\Web\Controller {
|
||||
class Sources extends Controller {
|
||||
|
||||
function post() {
|
||||
if(! local_channel())
|
||||
return;
|
||||
|
||||
if(! feature_enabled(local_channel(),'channel_sources'))
|
||||
return '';
|
||||
if(! Apps::system_app_installed(local_channel(), 'Channel Sources'))
|
||||
return;
|
||||
|
||||
$source = intval($_REQUEST['source']);
|
||||
$xchan = escape_tags($_REQUEST['xchan']);
|
||||
@@ -75,12 +78,17 @@ class Sources extends \Zotlabs\Web\Controller {
|
||||
function get() {
|
||||
if(! local_channel()) {
|
||||
notice( t('Permission denied.') . EOL);
|
||||
return '';
|
||||
return;
|
||||
}
|
||||
|
||||
if(! feature_enabled(local_channel(),'channel_sources')) {
|
||||
return '';
|
||||
}
|
||||
if(! Apps::system_app_installed(local_channel(), 'Channel Sources')) {
|
||||
//Do not display any associated widgets at this point
|
||||
App::$pdl = '';
|
||||
|
||||
$o = '<b>' . t('Sources App') . ' (' . t('Not Installed') . '):</b><br>';
|
||||
$o .= t('Automatically import channel content from other channels or feeds');
|
||||
return $o;
|
||||
}
|
||||
|
||||
// list sources
|
||||
if(argc() == 1) {
|
||||
@@ -111,7 +119,7 @@ class Sources extends \Zotlabs\Web\Controller {
|
||||
'$title' => t('New Source'),
|
||||
'$desc' => t('Import all or selected content from the following channel into this channel and distribute it according to your channel settings.'),
|
||||
'$words' => array( 'words', t('Only import content with these words (one per line)'),'',t('Leave blank to import all public content')),
|
||||
'$name' => array( 'name', t('Channel Name'), '', ''),
|
||||
'$name' => array( 'name', t('Channel Name'), '', '', '', 'autocomplete="off"'),
|
||||
'$tags' => array('tags', t('Add the following categories to posts imported from this source (comma separated)'),'',t('Optional')),
|
||||
'$resend' => [ 'resend', t('Resend posts with this channel as author'), 0, t('Copyrights may apply'), [ t('No'), t('Yes') ]],
|
||||
'$submit' => t('Submit')
|
||||
|
||||
@@ -1,15 +1,20 @@
|
||||
<?php
|
||||
namespace Zotlabs\Module;
|
||||
|
||||
use App;
|
||||
use Zotlabs\Lib\Apps;
|
||||
|
||||
require_once('include/socgraph.php');
|
||||
require_once('include/contact_widgets.php');
|
||||
|
||||
|
||||
class Suggest extends \Zotlabs\Web\Controller {
|
||||
|
||||
function init() {
|
||||
if(! local_channel())
|
||||
return;
|
||||
|
||||
if(! Apps::system_app_installed(local_channel(), 'Suggest Channels'))
|
||||
return;
|
||||
|
||||
if(x($_GET,'ignore')) {
|
||||
q("insert into xign ( uid, xchan ) values ( %d, '%s' ) ",
|
||||
@@ -22,13 +27,23 @@ class Suggest extends \Zotlabs\Web\Controller {
|
||||
|
||||
|
||||
function get() {
|
||||
|
||||
$o = '';
|
||||
|
||||
if(! local_channel()) {
|
||||
notice( t('Permission denied.') . EOL);
|
||||
return;
|
||||
}
|
||||
|
||||
if(! Apps::system_app_installed(local_channel(), 'Suggest Channels')) {
|
||||
//Do not display any associated widgets at this point
|
||||
App::$pdl = '';
|
||||
|
||||
$o = '<b>' . t('Suggest Channels App') . ' (' . t('Not Installed') . '):</b><br>';
|
||||
$o .= t('Suggestions for channels in the $Projectname network you might be interested in');
|
||||
return $o;
|
||||
}
|
||||
|
||||
$o = '';
|
||||
|
||||
nav_set_selected('Suggest Channels');
|
||||
|
||||
$_SESSION['return_url'] = z_root() . '/' . \App::$cmd;
|
||||
|
||||
@@ -27,11 +27,11 @@ class Token extends \Zotlabs\Web\Controller {
|
||||
$_SERVER['PHP_AUTH_PW'] = $password;
|
||||
}
|
||||
}
|
||||
|
||||
$s = new \Zotlabs\Identity\OAuth2Server(new OAuth2Storage(\DBA::$dba->db));
|
||||
$storage = new OAuth2Storage(\DBA::$dba->db);
|
||||
$s = new \Zotlabs\Identity\OAuth2Server($storage);
|
||||
$request = \OAuth2\Request::createFromGlobals();
|
||||
$s->handleTokenRequest($request)->send();
|
||||
|
||||
$response = $s->handleTokenRequest($request);
|
||||
$response->send();
|
||||
killme();
|
||||
}
|
||||
|
||||
|
||||
@@ -1,16 +1,24 @@
|
||||
<?php
|
||||
|
||||
namespace Zotlabs\Module\Settings;
|
||||
namespace Zotlabs\Module;
|
||||
|
||||
use App;
|
||||
use Zotlabs\Web\Controller;
|
||||
use Zotlabs\Lib\Apps;
|
||||
|
||||
|
||||
class Tokens {
|
||||
class Tokens extends Controller {
|
||||
|
||||
function post() {
|
||||
|
||||
$channel = \App::get_channel();
|
||||
if(! local_channel())
|
||||
return;
|
||||
|
||||
check_form_security_token_redirectOnErr('/settings/tokens', 'settings_tokens');
|
||||
if(! Apps::system_app_installed(local_channel(), 'Guest Access'))
|
||||
return;
|
||||
|
||||
$channel = App::get_channel();
|
||||
|
||||
check_form_security_token_redirectOnErr('tokens', 'tokens');
|
||||
$token_errs = 0;
|
||||
if(array_key_exists('token',$_POST)) {
|
||||
$atoken_id = (($_POST['atoken_id']) ? intval($_POST['atoken_id']) : 0);
|
||||
@@ -81,13 +89,25 @@ class Tokens {
|
||||
|
||||
function get() {
|
||||
|
||||
$channel = \App::get_channel();
|
||||
if(! local_channel())
|
||||
return;
|
||||
|
||||
if(! Apps::system_app_installed(local_channel(), 'Guest Access')) {
|
||||
//Do not display any associated widgets at this point
|
||||
App::$pdl = '';
|
||||
|
||||
$o = '<b>' . t('Guest Access App') . ' (' . t('Not Installed') . '):</b><br>';
|
||||
$o .= t('Create access tokens so that non-members can access private content');
|
||||
return $o;
|
||||
}
|
||||
|
||||
$channel = App::get_channel();
|
||||
|
||||
$atoken = null;
|
||||
$atoken_xchan = '';
|
||||
|
||||
if(argc() > 2) {
|
||||
$id = argv(2);
|
||||
if(argc() > 1) {
|
||||
$id = argv(1);
|
||||
|
||||
$atoken = q("select * from atoken where atoken_id = %d and atoken_uid = %d",
|
||||
intval($id),
|
||||
@@ -99,7 +119,7 @@ class Tokens {
|
||||
$atoken_xchan = substr($channel['channel_hash'],0,16) . '.' . $atoken['atoken_name'];
|
||||
}
|
||||
|
||||
if($atoken && argc() > 3 && argv(3) === 'drop') {
|
||||
if($atoken && argc() > 2 && argv(2) === 'drop') {
|
||||
atoken_delete($id);
|
||||
$atoken = null;
|
||||
$atoken_xchan = '';
|
||||
@@ -117,7 +137,7 @@ class Tokens {
|
||||
$global_perms = \Zotlabs\Access\Permissions::Perms();
|
||||
$their_perms = [];
|
||||
|
||||
$existing = get_all_perms(local_channel(),(($atoken_xchan) ? $atoken_xchan : ''));
|
||||
$existing = get_all_perms(local_channel(),(($atoken_xchan) ? $atoken_xchan : ''),false);
|
||||
|
||||
if($atoken_xchan) {
|
||||
$theirs = q("select * from abconfig where chan = %d and xchan = '%s' and cat = 'their_perms'",
|
||||
@@ -144,9 +164,9 @@ class Tokens {
|
||||
|
||||
|
||||
|
||||
$tpl = get_markup_template("settings_tokens.tpl");
|
||||
$tpl = get_markup_template("tokens.tpl");
|
||||
$o .= replace_macros($tpl, array(
|
||||
'$form_security_token' => get_form_security_token("settings_tokens"),
|
||||
'$form_security_token' => get_form_security_token("tokens"),
|
||||
'$title' => t('Guest Access Tokens'),
|
||||
'$desc' => $desc,
|
||||
'$desc2' => $desc2,
|
||||
@@ -1,18 +1,24 @@
|
||||
<?php
|
||||
namespace Zotlabs\Module;
|
||||
|
||||
use App;
|
||||
use Zotlabs\Lib\Apps;
|
||||
use Zotlabs\Web\Controller;
|
||||
|
||||
class Uexport extends \Zotlabs\Web\Controller {
|
||||
class Uexport extends Controller {
|
||||
|
||||
function init() {
|
||||
if(! local_channel())
|
||||
killme();
|
||||
|
||||
|
||||
if(! Apps::system_app_installed(local_channel(), 'Channel Export'))
|
||||
return;
|
||||
|
||||
if(argc() > 1) {
|
||||
|
||||
$sections = (($_REQUEST['sections']) ? explode(',',$_REQUEST['sections']) : '');
|
||||
|
||||
$channel = \App::get_channel();
|
||||
$channel = App::get_channel();
|
||||
|
||||
if(argc() > 1 && intval(argv(1)) > 1900) {
|
||||
$year = intval(argv(1));
|
||||
@@ -47,6 +53,15 @@ class Uexport extends \Zotlabs\Web\Controller {
|
||||
}
|
||||
|
||||
function get() {
|
||||
|
||||
if(! Apps::system_app_installed(local_channel(), 'Channel Export')) {
|
||||
//Do not display any associated widgets at this point
|
||||
App::$pdl = '';
|
||||
|
||||
$o = '<b>' . t('Channel Export App') . ' (' . t('Not Installed') . '):</b><br>';
|
||||
$o .= t('Export your channel');
|
||||
return $o;
|
||||
}
|
||||
|
||||
$y = datetime_convert('UTC',date_default_timezone_get(),'now','Y');
|
||||
|
||||
|
||||
17
Zotlabs/Module/Userinfo.php
Normal file
17
Zotlabs/Module/Userinfo.php
Normal file
@@ -0,0 +1,17 @@
|
||||
<?php
|
||||
|
||||
namespace Zotlabs\Module;
|
||||
|
||||
use Zotlabs\Identity\OAuth2Storage;
|
||||
|
||||
|
||||
class Userinfo extends \Zotlabs\Web\Controller {
|
||||
|
||||
function init() {
|
||||
$s = new \Zotlabs\Identity\OAuth2Server(new OAuth2Storage(\DBA::$dba->db));
|
||||
$request = \OAuth2\Request::createFromGlobals();
|
||||
$s->handleUserInfoRequest($request)->send();
|
||||
killme();
|
||||
}
|
||||
|
||||
}
|
||||
@@ -47,7 +47,7 @@ class Viewsrc extends \Zotlabs\Web\Controller {
|
||||
|
||||
|
||||
$content = escape_tags($r[0]['body']);
|
||||
$o = (($json) ? json_encode($content) : str_replace("\n",'<br />',$content));
|
||||
$o = (($json) ? json_encode($content) : $content);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -1,19 +1,25 @@
|
||||
<?php
|
||||
namespace Zotlabs\Module;
|
||||
|
||||
use App;
|
||||
use Zotlabs\Web\Controller;
|
||||
use Zotlabs\Lib\Apps;
|
||||
use Zotlabs\Lib\PermissionDescription;
|
||||
use Zotlabs\Lib\ExtendedZip;
|
||||
use ZipArchive;
|
||||
|
||||
require_once('include/channel.php');
|
||||
require_once('include/conversation.php');
|
||||
require_once('include/acl_selectors.php');
|
||||
|
||||
|
||||
class Webpages extends \Zotlabs\Web\Controller {
|
||||
class Webpages extends Controller {
|
||||
|
||||
function init() {
|
||||
|
||||
if(argc() > 1 && argv(1) === 'sys' && is_site_admin()) {
|
||||
$sys = get_sys_channel();
|
||||
if($sys && intval($sys['channel_id'])) {
|
||||
\App::$is_sys = true;
|
||||
App::$is_sys = true;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -29,23 +35,32 @@ class Webpages extends \Zotlabs\Web\Controller {
|
||||
|
||||
function get() {
|
||||
|
||||
if(! \App::$profile) {
|
||||
if(! App::$profile) {
|
||||
notice( t('Requested profile is not available.') . EOL );
|
||||
\App::$error = 404;
|
||||
App::$error = 404;
|
||||
return;
|
||||
}
|
||||
|
||||
if(! Apps::system_app_installed(App::$profile_uid, 'Webpages')) {
|
||||
//Do not display any associated widgets at this point
|
||||
App::$pdl = '';
|
||||
|
||||
$o = '<b>' . t('Webpages App') . ' (' . t('Not Installed') . '):</b><br>';
|
||||
$o .= t('Provide managed web pages on your channel');
|
||||
return $o;
|
||||
}
|
||||
|
||||
nav_set_selected('Webpages');
|
||||
|
||||
$which = argv(1);
|
||||
|
||||
$_SESSION['return_url'] = \App::$query_string;
|
||||
$_SESSION['return_url'] = App::$query_string;
|
||||
|
||||
$uid = local_channel();
|
||||
$owner = 0;
|
||||
$observer = \App::get_observer();
|
||||
$observer = App::get_observer();
|
||||
|
||||
$channel = \App::get_channel();
|
||||
$channel = App::get_channel();
|
||||
|
||||
switch ($_SESSION['action']) {
|
||||
case 'import':
|
||||
@@ -91,7 +106,7 @@ class Webpages extends \Zotlabs\Web\Controller {
|
||||
}
|
||||
|
||||
|
||||
if(\App::$is_sys && is_site_admin()) {
|
||||
if(App::$is_sys && is_site_admin()) {
|
||||
$sys = get_sys_channel();
|
||||
if($sys && intval($sys['channel_id'])) {
|
||||
$uid = $owner = intval($sys['channel_id']);
|
||||
@@ -127,8 +142,8 @@ class Webpages extends \Zotlabs\Web\Controller {
|
||||
// Nickname is set to the observers xchan, and profile_uid to the owner's.
|
||||
// This lets you post pages at other people's channels.
|
||||
|
||||
if((! $channel) && ($uid) && ($uid == \App::$profile_uid)) {
|
||||
$channel = \App::get_channel();
|
||||
if((! $channel) && ($uid) && ($uid == App::$profile_uid)) {
|
||||
$channel = App::get_channel();
|
||||
}
|
||||
if($channel) {
|
||||
$channel_acl = array(
|
||||
@@ -144,15 +159,15 @@ class Webpages extends \Zotlabs\Web\Controller {
|
||||
|
||||
|
||||
$is_owner = ($uid && $uid == $owner);
|
||||
//$o = profile_tabs($a, $is_owner, \App::$profile['channel_address']);
|
||||
|
||||
$o = '';
|
||||
|
||||
$x = array(
|
||||
'webpage' => ITEM_TYPE_WEBPAGE,
|
||||
'is_owner' => true,
|
||||
'nickname' => \App::$profile['channel_address'],
|
||||
'nickname' => App::$profile['channel_address'],
|
||||
'lockstate' => (($channel['channel_allow_cid'] || $channel['channel_allow_gid'] || $channel['channel_deny_cid'] || $channel['channel_deny_gid']) ? 'lock' : 'unlock'),
|
||||
'acl' => (($is_owner) ? populate_acl($channel_acl,false, \Zotlabs\Lib\PermissionDescription::fromGlobalPermission('view_pages')) : ''),
|
||||
'acl' => (($is_owner) ? populate_acl($channel_acl,false, PermissionDescription::fromGlobalPermission('view_pages')) : ''),
|
||||
'permissions' => $channel_acl,
|
||||
'showacl' => (($is_owner) ? true : false),
|
||||
'visitor' => true,
|
||||
@@ -193,7 +208,7 @@ class Webpages extends \Zotlabs\Web\Controller {
|
||||
if(! $r)
|
||||
$x['pagetitle'] = 'home';
|
||||
|
||||
$editor = status_editor($a,$x);
|
||||
$editor = status_editor($a,$x,false,'Webpages');
|
||||
|
||||
$pages = null;
|
||||
|
||||
@@ -280,7 +295,7 @@ class Webpages extends \Zotlabs\Web\Controller {
|
||||
notice( t('Invalid file type.') . EOL);
|
||||
return;
|
||||
}
|
||||
$zip = new \ZipArchive();
|
||||
$zip = new ZipArchive();
|
||||
if ($zip->open($source) === true) {
|
||||
$tmp_folder_name = random_string(5);
|
||||
$website = dirname($source) . '/' . $tmp_folder_name;
|
||||
@@ -297,7 +312,7 @@ class Webpages extends \Zotlabs\Web\Controller {
|
||||
// Website files are to be imported from the channel cloud files
|
||||
if (($_POST) && array_key_exists('path',$_POST) && isset($_POST['cloudsubmit'])) {
|
||||
|
||||
$channel = \App::get_channel();
|
||||
$channel = App::get_channel();
|
||||
$dirpath = get_dirpath_by_cloudpath($channel, $_POST['path']);
|
||||
if(!$dirpath) {
|
||||
notice( t('Invalid folder path.') . EOL);
|
||||
@@ -343,7 +358,7 @@ class Webpages extends \Zotlabs\Web\Controller {
|
||||
|
||||
case 'importselected':
|
||||
require_once('include/import.php');
|
||||
$channel = \App::get_channel();
|
||||
$channel = App::get_channel();
|
||||
|
||||
// Import layout first so that pages that reference new layouts will find
|
||||
// the mid of layout items in the database
|
||||
@@ -438,7 +453,7 @@ class Webpages extends \Zotlabs\Web\Controller {
|
||||
case 'cloud':
|
||||
case 'zipfile':
|
||||
|
||||
$channel = \App::get_channel();
|
||||
$channel = App::get_channel();
|
||||
|
||||
$tmp_folder_name = random_string(10);
|
||||
$zip_folder_name = random_string(10);
|
||||
@@ -657,7 +672,7 @@ class Webpages extends \Zotlabs\Web\Controller {
|
||||
}
|
||||
if($action === 'zipfile') {
|
||||
// Generate the zip file
|
||||
\Zotlabs\Lib\ExtendedZip::zipTree($tmp_folderpath, $zip_filepath, \ZipArchive::CREATE);
|
||||
ExtendedZip::zipTree($tmp_folderpath, $zip_filepath, ZipArchive::CREATE);
|
||||
// Output the file for download
|
||||
header('Content-disposition: attachment; filename="' . $zip_filename . '"');
|
||||
header("Content-Type: application/zip");
|
||||
@@ -666,7 +681,7 @@ class Webpages extends \Zotlabs\Web\Controller {
|
||||
if(isset($_SESSION['exportcloudpath'])) {
|
||||
require_once('include/attach.php');
|
||||
$cloudpath = urldecode($_SESSION['exportcloudpath']);
|
||||
$channel = \App::get_channel();
|
||||
$channel = App::get_channel();
|
||||
$dirpath = get_dirpath_by_cloudpath($channel, $cloudpath);
|
||||
if(!$dirpath) {
|
||||
$x = attach_mkdirp($channel, $channel['channel_hash'], array('pathname' => $cloudpath));
|
||||
|
||||
@@ -52,6 +52,7 @@ class Well_known extends \Zotlabs\Web\Controller {
|
||||
break;
|
||||
|
||||
case 'oauth-authorization-server':
|
||||
case 'openid-configuration':
|
||||
\App::$argc -= 1;
|
||||
array_shift(\App::$argv);
|
||||
\App::$argv[0] = 'oauthinfo';
|
||||
|
||||
@@ -172,6 +172,11 @@ class Wfinger extends \Zotlabs\Web\Controller {
|
||||
'href' => z_root() . '/hcard/' . $r[0]['channel_address']
|
||||
],
|
||||
|
||||
[
|
||||
'rel' => 'http://openid.net/specs/connect/1.0/issuer',
|
||||
'href' => z_root()
|
||||
],
|
||||
|
||||
|
||||
[
|
||||
'rel' => 'http://webfinger.net/rel/profile-page',
|
||||
|
||||
@@ -2,15 +2,20 @@
|
||||
|
||||
namespace Zotlabs\Module;
|
||||
|
||||
use \Zotlabs\Lib as Zlib;
|
||||
use \Michelf\MarkdownExtra;
|
||||
use App;
|
||||
use Zotlabs\Web\Controller;
|
||||
use Zotlabs\Lib\Apps;
|
||||
use Zotlabs\Lib\PermissionDescription;
|
||||
use Zotlabs\Lib\NativeWiki;
|
||||
use Zotlabs\Lib\NativeWikiPage;
|
||||
use Zotlabs\Lib\MarkdownSoap;
|
||||
use Michelf\MarkdownExtra;
|
||||
|
||||
require_once('include/acl_selectors.php');
|
||||
require_once('include/conversation.php');
|
||||
require_once('include/bbcode.php');
|
||||
|
||||
|
||||
class Wiki extends \Zotlabs\Web\Controller {
|
||||
class Wiki extends Controller {
|
||||
|
||||
private $wiki = null;
|
||||
|
||||
@@ -40,10 +45,14 @@ class Wiki extends \Zotlabs\Web\Controller {
|
||||
return login();
|
||||
}
|
||||
|
||||
if(! feature_enabled(\App::$profile_uid,'wiki')) {
|
||||
notice( t('Not found') . EOL);
|
||||
return;
|
||||
}
|
||||
if(! Apps::system_app_installed(App::$profile_uid, 'Wiki')) {
|
||||
//Do not display any associated widgets at this point
|
||||
App::$pdl = '';
|
||||
|
||||
$o = '<b>' . t('Wiki App') . ' (' . t('Not Installed') . '):</b><br>';
|
||||
$o .= t('Provide a wiki for your channel');
|
||||
return $o;
|
||||
}
|
||||
|
||||
|
||||
if(! perm_is_allowed(\App::$profile_uid,get_observer_hash(),'view_wiki')) {
|
||||
@@ -95,7 +104,7 @@ class Wiki extends \Zotlabs\Web\Controller {
|
||||
$owner['channel_deny_gid'])
|
||||
? 'lock' : 'unlock'
|
||||
),
|
||||
'acl' => populate_acl($owner_acl, false, \Zotlabs\Lib\PermissionDescription::fromGlobalPermission('view_wiki')),
|
||||
'acl' => populate_acl($owner_acl, false, PermissionDescription::fromGlobalPermission('view_wiki')),
|
||||
'allow_cid' => acl2json($owner_acl['allow_cid']),
|
||||
'allow_gid' => acl2json($owner_acl['allow_gid']),
|
||||
'deny_cid' => acl2json($owner_acl['deny_cid']),
|
||||
@@ -109,7 +118,7 @@ class Wiki extends \Zotlabs\Web\Controller {
|
||||
}
|
||||
|
||||
$is_owner = ((local_channel()) && (local_channel() == \App::$profile['profile_uid']) ? true : false);
|
||||
//$o = profile_tabs($a, $is_owner, \App::$profile['channel_address']);
|
||||
|
||||
$o = '';
|
||||
|
||||
// Download a wiki
|
||||
@@ -117,9 +126,9 @@ class Wiki extends \Zotlabs\Web\Controller {
|
||||
if((argc() > 3) && (argv(2) === 'download') && (argv(3) === 'wiki')) {
|
||||
|
||||
$resource_id = argv(4);
|
||||
$w = Zlib\NativeWiki::get_wiki($owner['channel_id'],$observer_hash,$resource_id);
|
||||
$w = NativeWiki::get_wiki($owner['channel_id'],$observer_hash,$resource_id);
|
||||
|
||||
// $w = Zlib\NativeWiki::get_wiki($owner,$observer_hash,$resource_id);
|
||||
// $w = NativeWiki::get_wiki($owner,$observer_hash,$resource_id);
|
||||
if(! $w['htmlName']) {
|
||||
notice(t('Error retrieving wiki') . EOL);
|
||||
}
|
||||
@@ -157,9 +166,9 @@ class Wiki extends \Zotlabs\Web\Controller {
|
||||
$content = html_entity_decode($iv['body'],ENT_COMPAT,'UTF-8');
|
||||
}
|
||||
elseif($iv['mimetype'] === 'text/markdown') {
|
||||
$content = html_entity_decode(Zlib\MarkdownSoap::unescape($iv['body']),ENT_COMPAT,'UTF-8');
|
||||
$content = html_entity_decode(MarkdownSoap::unescape($iv['body']),ENT_COMPAT,'UTF-8');
|
||||
}
|
||||
$fname = get_iconfig($iv['id'],'nwikipage','pagetitle') . Zlib\NativeWikiPage::get_file_ext($iv);
|
||||
$fname = get_iconfig($iv['id'],'nwikipage','pagetitle') . NativeWikiPage::get_file_ext($iv);
|
||||
$zip->addFromString($fname,$content);
|
||||
$pages[] = $iv['mid'];
|
||||
}
|
||||
@@ -190,7 +199,7 @@ class Wiki extends \Zotlabs\Web\Controller {
|
||||
|
||||
switch(argc()) {
|
||||
case 2:
|
||||
$wikis = Zlib\NativeWiki::listwikis($owner, get_observer_hash());
|
||||
$wikis = NativeWiki::listwikis($owner, get_observer_hash());
|
||||
|
||||
if($wikis) {
|
||||
$o .= replace_macros(get_markup_template('wikilist.tpl'), array(
|
||||
@@ -228,7 +237,8 @@ class Wiki extends \Zotlabs\Web\Controller {
|
||||
|
||||
// /wiki/channel/wiki -> No page was specified, so redirect to Home.md
|
||||
|
||||
$wikiUrlName = urlencode(argv(2));
|
||||
//$wikiUrlName = urlencode(argv(2));
|
||||
$wikiUrlName = NativeWiki::name_encode(argv(2));
|
||||
goaway(z_root() . '/' . argv(0) . '/' . argv(1) . '/' . $wikiUrlName . '/Home');
|
||||
|
||||
case 4:
|
||||
@@ -237,7 +247,8 @@ class Wiki extends \Zotlabs\Web\Controller {
|
||||
// GET /wiki/channel/wiki/page
|
||||
// Fetch the wiki info and determine observer permissions
|
||||
|
||||
$wikiUrlName = urldecode(argv(2));
|
||||
//$wikiUrlName = urldecode(argv(2));
|
||||
$wikiUrlName = NativeWiki::name_decode(argv(2));
|
||||
|
||||
$page_name = '';
|
||||
$ignore_language = false;
|
||||
@@ -253,10 +264,11 @@ class Wiki extends \Zotlabs\Web\Controller {
|
||||
$page_name .= argv($x);
|
||||
}
|
||||
|
||||
$pageUrlName = urldecode($page_name);
|
||||
$langPageUrlName = urldecode(\App::$language . '/' . $page_name);
|
||||
//$pageUrlName = urldecode($page_name);
|
||||
$pageUrlName = NativeWiki::name_decode($page_name);
|
||||
$langPageUrlName = \App::$language . '/' . $pageUrlName;
|
||||
|
||||
$w = Zlib\NativeWiki::exists_by_name($owner['channel_id'], $wikiUrlName);
|
||||
$w = NativeWiki::exists_by_name($owner['channel_id'], $wikiUrlName);
|
||||
|
||||
if(! $w['resource_id']) {
|
||||
notice(t('Wiki not found') . EOL);
|
||||
@@ -268,7 +280,7 @@ class Wiki extends \Zotlabs\Web\Controller {
|
||||
if(! $wiki_owner) {
|
||||
// Check for observer permissions
|
||||
$observer_hash = get_observer_hash();
|
||||
$perms = Zlib\NativeWiki::get_permissions($resource_id, intval($owner['channel_id']), $observer_hash);
|
||||
$perms = NativeWiki::get_permissions($resource_id, intval($owner['channel_id']), $observer_hash);
|
||||
if(! $perms['read']) {
|
||||
notice(t('Permission denied.') . EOL);
|
||||
goaway(z_root() . '/' . argv(0) . '/' . argv(1));
|
||||
@@ -280,8 +292,10 @@ class Wiki extends \Zotlabs\Web\Controller {
|
||||
$wiki_editor = true;
|
||||
}
|
||||
|
||||
$wikiheaderName = urldecode($wikiUrlName);
|
||||
$wikiheaderPage = urldecode($pageUrlName);
|
||||
//$wikiheaderName = urldecode($wikiUrlName);
|
||||
$wikiheaderName = NativeWiki::name_decode($wikiUrlName);
|
||||
//$wikiheaderPage = urldecode($pageUrlName);
|
||||
$wikiheaderPage = NativeWiki::name_decode($pageUrlName);
|
||||
|
||||
$renamePage = (($wikiheaderPage === 'Home') ? '' : t('Rename page'));
|
||||
$sharePage = t('Share');
|
||||
@@ -289,10 +303,10 @@ class Wiki extends \Zotlabs\Web\Controller {
|
||||
$p = [];
|
||||
|
||||
if(! $ignore_language) {
|
||||
$p = Zlib\NativeWikiPage::get_page_content(array('channel_id' => $owner['channel_id'], 'observer_hash' => $observer_hash, 'resource_id' => $resource_id, 'pageUrlName' => $langPageUrlName));
|
||||
$p = NativeWikiPage::get_page_content(array('channel_id' => $owner['channel_id'], 'observer_hash' => $observer_hash, 'resource_id' => $resource_id, 'pageUrlName' => $langPageUrlName));
|
||||
}
|
||||
if(! ($p && $p['success'])) {
|
||||
$p = Zlib\NativeWikiPage::get_page_content(array('channel_id' => $owner['channel_id'], 'observer_hash' => $observer_hash, 'resource_id' => $resource_id, 'pageUrlName' => $pageUrlName));
|
||||
$p = NativeWikiPage::get_page_content(array('channel_id' => $owner['channel_id'], 'observer_hash' => $observer_hash, 'resource_id' => $resource_id, 'pageUrlName' => $pageUrlName));
|
||||
}
|
||||
if(! ($p && $p['success'])) {
|
||||
$x = new \Zotlabs\Widget\Wiki_pages();
|
||||
@@ -306,7 +320,7 @@ class Wiki extends \Zotlabs\Web\Controller {
|
||||
//json_return_and_die(array('pages' => $page_list_html, 'message' => '', 'success' => true));
|
||||
notice( t('Error retrieving page content') . EOL);
|
||||
//goaway(z_root() . '/' . argv(0) . '/' . argv(1) );
|
||||
$renderedContent = Zlib\NativeWikiPage::convert_links($html, argv(0) . '/' . argv(1) . '/' . $wikiUrlName);
|
||||
$renderedContent = NativeWikiPage::convert_links($html, argv(0) . '/' . argv(1) . '/' . NativeWiki::name_encode($wikiUrlName));
|
||||
$showPageControls = $wiki_editor;
|
||||
}
|
||||
else {
|
||||
@@ -317,24 +331,31 @@ class Wiki extends \Zotlabs\Web\Controller {
|
||||
$sampleContent = t('New page');
|
||||
|
||||
$content = (($p['content'] == '') ? $sampleContent : $p['content']);
|
||||
|
||||
$hookinfo = ['content' => $content, 'mimetype' => $mimeType];
|
||||
call_hooks('wiki_preprocess',$hookinfo);
|
||||
$content = $hookinfo['content'];
|
||||
|
||||
// Render the Markdown-formatted page content in HTML
|
||||
if($mimeType == 'text/bbcode') {
|
||||
$renderedContent = Zlib\NativeWikiPage::convert_links(zidify_links(smilies(bbcode($content))), argv(0) . '/' . argv(1) . '/' . $wikiUrlName);
|
||||
$renderedContent = zidify_links(smilies(bbcode($content)));
|
||||
$renderedContent = NativeWikiPage::convert_links($renderedContent,argv(0) . '/' . argv(1) . '/' . NativeWiki::name_encode($wikiUrlName));
|
||||
}
|
||||
elseif($mimeType === 'text/plain') {
|
||||
$renderedContent = str_replace(["\n",' ',"\t"],[EOL,' ',' '],htmlentities($content,ENT_COMPAT,'UTF-8',false));
|
||||
}
|
||||
elseif($mimeType === 'text/markdown') {
|
||||
$content = Zlib\MarkdownSoap::unescape($content);
|
||||
$html = Zlib\NativeWikiPage::generate_toc(zidify_text(MarkdownExtra::defaultTransform(Zlib\NativeWikiPage::bbcode($content))));
|
||||
$renderedContent = Zlib\NativeWikiPage::convert_links($html, argv(0) . '/' . argv(1) . '/' . $wikiUrlName);
|
||||
$content = MarkdownSoap::unescape($content);
|
||||
//$html = NativeWikiPage::generate_toc(zidify_text(MarkdownExtra::defaultTransform(NativeWikiPage::bbcode($content))));
|
||||
//$renderedContent = NativeWikiPage::convert_links($html, argv(0) . '/' . argv(1) . '/' . $wikiUrlName);
|
||||
$html = NativeWikiPage::convert_links($content, argv(0) . '/' . argv(1) . '/' . NativeWiki::name_encode($wikiUrlName));
|
||||
$renderedContent = NativeWikiPage::generate_toc(zidify_text(MarkdownExtra::defaultTransform(NativeWikiPage::bbcode($html))));
|
||||
}
|
||||
$showPageControls = $wiki_editor;
|
||||
}
|
||||
break;
|
||||
// default: // Strip the extraneous URL components
|
||||
// goaway('/' . argv(0) . '/' . argv(1) . '/' . $wikiUrlName . '/' . $pageUrlName);
|
||||
// goaway('/' . argv(0) . '/' . argv(1) . '/' . NativeWiki::name_encode($wikiUrlName) . '/' . $pageUrlName);
|
||||
}
|
||||
|
||||
|
||||
@@ -351,13 +372,14 @@ class Wiki extends \Zotlabs\Web\Controller {
|
||||
$currenttype = $types[$mimeType];
|
||||
|
||||
$placeholder = t('Short description of your changes (optional)');
|
||||
|
||||
|
||||
$zrl = urlencode( z_root() . '/wiki/' . argv(1) . '/' . NativeWiki::name_encode($wikiUrlName) . '/' . NativeWiki::name_encode($pageUrlName) );
|
||||
$o .= replace_macros(get_markup_template('wiki.tpl'),array(
|
||||
'$wikiheaderName' => $wikiheaderName,
|
||||
'$wikiheaderPage' => $wikiheaderPage,
|
||||
'$renamePage' => $renamePage,
|
||||
'$sharePage' => $sharePage,
|
||||
'$shareLink' => urlencode('#^[zrl=' . z_root() . '/wiki/' . argv(1) . '/' . $wikiUrlName . '/' . $pageUrlName . ']' . '[ ' . $owner['channel_name'] . ' ] ' . $wikiheaderName . ' - ' . $wikiheaderPage . '[/zrl]'),
|
||||
'$shareLink' => '#^[zrl=' . $zrl . ']' . '[ ' . $owner['channel_name'] . ' ] ' . $wikiheaderName . ' - ' . $wikiheaderPage . '[/zrl]',
|
||||
'$showPageControls' => $showPageControls,
|
||||
'$editOrSourceLabel' => (($showPageControls) ? t('Edit') : t('Source')),
|
||||
'$tools_label' => 'Page Tools',
|
||||
@@ -384,6 +406,8 @@ class Wiki extends \Zotlabs\Web\Controller {
|
||||
'$modalerrorlist' => t('Error getting album list'),
|
||||
'$modalerrorlink' => t('Error getting photo link'),
|
||||
'$modalerroralbum' => t('Error getting album'),
|
||||
'$view_lbl' => t('View'),
|
||||
'$history_lbl' => t('History')
|
||||
));
|
||||
|
||||
if($p['pageMimeType'] === 'text/markdown')
|
||||
@@ -411,23 +435,24 @@ class Wiki extends \Zotlabs\Web\Controller {
|
||||
$content = $_POST['content'];
|
||||
$resource_id = $_POST['resource_id'];
|
||||
|
||||
$w = Zlib\NativeWiki::get_wiki($owner['channel_id'],$observer_hash,$resource_id);
|
||||
$w = NativeWiki::get_wiki($owner['channel_id'],$observer_hash,$resource_id);
|
||||
|
||||
$wikiURL = argv(0) . '/' . argv(1) . '/' . $w['urlName'];
|
||||
|
||||
$mimeType = $_POST['mimetype'];
|
||||
|
||||
if($mimeType === 'text/bbcode') {
|
||||
$html = Zlib\NativeWikiPage::convert_links(zidify_links(smilies(bbcode($content))),$wikiURL);
|
||||
$linkconverted = NativeWikiPage::convert_links($content,$wikiURL);
|
||||
$html = zidify_links(smilies(bbcode($linkconverted)));
|
||||
}
|
||||
elseif($mimeType === 'text/markdown') {
|
||||
$bb = Zlib\NativeWikiPage::bbcode($content);
|
||||
$x = new ZLib\MarkdownSoap($bb);
|
||||
$linkconverted = NativeWikiPage::convert_links($content,$wikiURL);
|
||||
$bb = NativeWikiPage::bbcode($linkconverted);
|
||||
$x = new MarkdownSoap($bb);
|
||||
$md = $x->clean();
|
||||
$md = ZLib\MarkdownSoap::unescape($md);
|
||||
$md = MarkdownSoap::unescape($md);
|
||||
$html = MarkdownExtra::defaultTransform($md);
|
||||
$html = Zlib\NativeWikiPage::generate_toc(zidify_text($html));
|
||||
$html = Zlib\NativeWikiPage::convert_links($html,$wikiURL);
|
||||
$html = NativeWikiPage::generate_toc(zidify_text($html));
|
||||
}
|
||||
elseif($mimeType === 'text/plain') {
|
||||
$html = str_replace(["\n",' ',"\t"],[EOL,' ',' '],htmlentities($content,ENT_COMPAT,'UTF-8',false));
|
||||
@@ -454,7 +479,8 @@ class Wiki extends \Zotlabs\Web\Controller {
|
||||
$wiki['postVisible'] = ((intval($_POST['postVisible'])) ? 1 : 0);
|
||||
$wiki['rawName'] = $name;
|
||||
$wiki['htmlName'] = escape_tags($name);
|
||||
$wiki['urlName'] = urlencode(urlencode($name));
|
||||
//$wiki['urlName'] = urlencode(urlencode($name));
|
||||
$wiki['urlName'] = NativeWiki::name_encode($name);
|
||||
$wiki['mimeType'] = $_POST['mimeType'];
|
||||
$wiki['typelock'] = $_POST['typelock'];
|
||||
|
||||
@@ -464,7 +490,7 @@ class Wiki extends \Zotlabs\Web\Controller {
|
||||
return; //not reached
|
||||
}
|
||||
|
||||
$exists = Zlib\NativeWiki::exists_by_name($owner['channel_id'], $wiki['urlName']);
|
||||
$exists = NativeWiki::exists_by_name($owner['channel_id'], $wiki['urlName']);
|
||||
if($exists['id']) {
|
||||
notice( t('A wiki with this name already exists.') . EOL);
|
||||
goaway('/wiki');
|
||||
@@ -474,16 +500,16 @@ class Wiki extends \Zotlabs\Web\Controller {
|
||||
// Get ACL for permissions
|
||||
$acl = new \Zotlabs\Access\AccessList($owner);
|
||||
$acl->set_from_array($_POST);
|
||||
$r = Zlib\NativeWiki::create_wiki($owner, $observer_hash, $wiki, $acl);
|
||||
$r = NativeWiki::create_wiki($owner, $observer_hash, $wiki, $acl);
|
||||
if($r['success']) {
|
||||
Zlib\NativeWiki::sync_a_wiki_item($owner['channel_id'],$r['item_id'],$r['item']['resource_id']);
|
||||
$homePage = Zlib\NativeWikiPage::create_page($owner['channel_id'],$observer_hash,'Home', $r['item']['resource_id'], $wiki['mimeType']);
|
||||
NativeWiki::sync_a_wiki_item($owner['channel_id'],$r['item_id'],$r['item']['resource_id']);
|
||||
$homePage = NativeWikiPage::create_page($owner['channel_id'],$observer_hash,'Home', $r['item']['resource_id'], $wiki['mimeType']);
|
||||
if(! $homePage['success']) {
|
||||
notice( t('Wiki created, but error creating Home page.'));
|
||||
goaway(z_root() . '/wiki/' . $nick . '/' . $wiki['urlName']);
|
||||
goaway(z_root() . '/wiki/' . $nick . '/' . NativeWiki::name_encode($wiki['urlName']));
|
||||
}
|
||||
Zlib\NativeWiki::sync_a_wiki_item($owner['channel_id'],$homePage['item_id'],$r['item']['resource_id']);
|
||||
goaway(z_root() . '/wiki/' . $nick . '/' . $wiki['urlName'] . '/' . $homePage['page']['urlName']);
|
||||
NativeWiki::sync_a_wiki_item($owner['channel_id'],$homePage['item_id'],$r['item']['resource_id']);
|
||||
goaway(z_root() . '/wiki/' . $nick . '/' . NativeWiki::name_encode($wiki['urlName']) . '/' . NativeWiki::name_encode($homePage['page']['urlName']));
|
||||
}
|
||||
else {
|
||||
notice( t('Error creating wiki'));
|
||||
@@ -503,7 +529,8 @@ class Wiki extends \Zotlabs\Web\Controller {
|
||||
|
||||
$arr = [];
|
||||
|
||||
$arr['urlName'] = urlencode(urlencode($_POST['origRawName']));
|
||||
//$arr['urlName'] = urlencode(urlencode($_POST['origRawName']));
|
||||
$arr['urlName'] = NativeWiki::name_encode($_POST['origRawName']);
|
||||
|
||||
if($_POST['updateRawName'])
|
||||
$arr['updateRawName'] = $_POST['updateRawName'];
|
||||
@@ -514,7 +541,7 @@ class Wiki extends \Zotlabs\Web\Controller {
|
||||
return; //not reached
|
||||
}
|
||||
|
||||
$wiki = Zlib\NativeWiki::exists_by_name($owner['channel_id'], urldecode($arr['urlName']));
|
||||
$wiki = NativeWiki::exists_by_name($owner['channel_id'], $arr['urlName']);
|
||||
|
||||
if($wiki['resource_id']) {
|
||||
|
||||
@@ -523,9 +550,9 @@ class Wiki extends \Zotlabs\Web\Controller {
|
||||
$acl = new \Zotlabs\Access\AccessList($owner);
|
||||
$acl->set_from_array($_POST);
|
||||
|
||||
$r = Zlib\NativeWiki::update_wiki($owner['channel_id'], $observer_hash, $arr, $acl);
|
||||
$r = NativeWiki::update_wiki($owner['channel_id'], $observer_hash, $arr, $acl);
|
||||
if($r['success']) {
|
||||
Zlib\NativeWiki::sync_a_wiki_item($owner['channel_id'],$r['item_id'],$r['item']['resource_id']);
|
||||
NativeWiki::sync_a_wiki_item($owner['channel_id'],$r['item_id'],$r['item']['resource_id']);
|
||||
goaway(z_root() . '/wiki/' . $nick);
|
||||
}
|
||||
else {
|
||||
@@ -547,9 +574,9 @@ class Wiki extends \Zotlabs\Web\Controller {
|
||||
json_return_and_die(array('message' => t('Wiki delete permission denied.'), 'success' => false));
|
||||
}
|
||||
$resource_id = $_POST['resource_id'];
|
||||
$deleted = Zlib\NativeWiki::delete_wiki($owner['channel_id'],$observer_hash,$resource_id);
|
||||
$deleted = NativeWiki::delete_wiki($owner['channel_id'],$observer_hash,$resource_id);
|
||||
if ($deleted['success']) {
|
||||
Zlib\NativeWiki::sync_a_wiki_item($owner['channel_id'],$deleted['item_id'],$resource_id);
|
||||
NativeWiki::sync_a_wiki_item($owner['channel_id'],$deleted['item_id'],$resource_id);
|
||||
json_return_and_die(array('message' => '', 'success' => true));
|
||||
}
|
||||
else {
|
||||
@@ -568,25 +595,25 @@ class Wiki extends \Zotlabs\Web\Controller {
|
||||
// Determine if observer has permission to create a page
|
||||
|
||||
|
||||
$perms = Zlib\NativeWiki::get_permissions($resource_id, intval($owner['channel_id']), $observer_hash, $mimetype);
|
||||
$perms = NativeWiki::get_permissions($resource_id, intval($owner['channel_id']), $observer_hash, $mimetype);
|
||||
if(! $perms['write']) {
|
||||
logger('Wiki write permission denied. ' . EOL);
|
||||
json_return_and_die(array('success' => false));
|
||||
}
|
||||
|
||||
$name = $_POST['pageName']; //Get new page name
|
||||
$name = isset($_POST['pageName']) ? $_POST['pageName'] : $_POST['missingPageName']; //Get new page name
|
||||
|
||||
// backslashes won't work well in the javascript functions
|
||||
$name = str_replace('\\','',$name);
|
||||
|
||||
if(urlencode(escape_tags($name)) === '') {
|
||||
if(NativeWiki::name_encode(escape_tags($name)) === '') {
|
||||
json_return_and_die(array('message' => 'Error creating page. Invalid name (' . print_r($_POST,true) . ').', 'success' => false));
|
||||
}
|
||||
|
||||
$page = Zlib\NativeWikiPage::create_page($owner['channel_id'],$observer_hash, $name, $resource_id, $mimetype);
|
||||
$page = NativeWikiPage::create_page($owner['channel_id'],$observer_hash, $name, $resource_id, $mimetype);
|
||||
|
||||
if($page['item_id']) {
|
||||
$commit = Zlib\NativeWikiPage::commit(array(
|
||||
$commit = NativeWikiPage::commit(array(
|
||||
'commit_msg' => t('New page created'),
|
||||
'resource_id' => $resource_id,
|
||||
'channel_id' => $owner['channel_id'],
|
||||
@@ -595,11 +622,12 @@ class Wiki extends \Zotlabs\Web\Controller {
|
||||
));
|
||||
|
||||
if($commit['success']) {
|
||||
Zlib\NativeWiki::sync_a_wiki_item($owner['channel_id'],$commit['item_id'],$resource_id);
|
||||
json_return_and_die(array('url' => '/' . argv(0) . '/' . argv(1) . '/' . urlencode($page['wiki']['urlName']) . '/' . urlencode($page['page']['urlName']), 'success' => true));
|
||||
NativeWiki::sync_a_wiki_item($owner['channel_id'],$commit['item_id'],$resource_id);
|
||||
//json_return_and_die(array('url' => '/' . argv(0) . '/' . argv(1) . '/' . urlencode($page['wiki']['urlName']) . '/' . urlencode($page['page']['urlName']), 'success' => true));
|
||||
json_return_and_die(array('url' => '/' . argv(0) . '/' . argv(1) . '/' . $page['wiki']['urlName'] . '/' . $page['page']['urlName'], 'success' => true));
|
||||
}
|
||||
else {
|
||||
json_return_and_die(array('message' => 'Error making git commit','url' => '/' . argv(0) . '/' . argv(1) . '/' . urlencode($page['wiki']['urlName']) . '/' . urlencode($page['page']['urlName']),'success' => false));
|
||||
json_return_and_die(array('message' => 'Error making git commit','url' => '/' . argv(0) . '/' . argv(1) . '/' . NativeWiki::name_encode($page['wiki']['urlName']) . '/' . NativeWiki::name_encode($page['page']['urlName']),'success' => false));
|
||||
}
|
||||
|
||||
|
||||
@@ -614,7 +642,7 @@ class Wiki extends \Zotlabs\Web\Controller {
|
||||
if((argc() === 5) && (argv(2) === 'get') && (argv(3) === 'page') && (argv(4) === 'list')) {
|
||||
$resource_id = $_POST['resource_id']; // resource_id for wiki in db
|
||||
|
||||
$perms = Zlib\NativeWiki::get_permissions($resource_id, intval($owner['channel_id']), $observer_hash);
|
||||
$perms = NativeWiki::get_permissions($resource_id, intval($owner['channel_id']), $observer_hash);
|
||||
if(!$perms['read']) {
|
||||
logger('Wiki read permission denied.' . EOL);
|
||||
json_return_and_die(array('pages' => null, 'message' => 'Permission denied.', 'success' => false));
|
||||
@@ -646,16 +674,16 @@ class Wiki extends \Zotlabs\Web\Controller {
|
||||
}
|
||||
|
||||
// Determine if observer has permission to save content
|
||||
$perms = Zlib\NativeWiki::get_permissions($resource_id, intval($owner['channel_id']), $observer_hash);
|
||||
$perms = NativeWiki::get_permissions($resource_id, intval($owner['channel_id']), $observer_hash);
|
||||
if(! $perms['write']) {
|
||||
logger('Wiki write permission denied. ' . EOL);
|
||||
json_return_and_die(array('success' => false));
|
||||
}
|
||||
|
||||
$saved = Zlib\NativeWikiPage::save_page(array('channel_id' => $owner['channel_id'], 'observer_hash' => $observer_hash, 'resource_id' => $resource_id, 'pageUrlName' => $pageUrlName, 'content' => $content));
|
||||
$saved = NativeWikiPage::save_page(array('channel_id' => $owner['channel_id'], 'observer_hash' => $observer_hash, 'resource_id' => $resource_id, 'pageUrlName' => $pageUrlName, 'content' => $content));
|
||||
|
||||
if($saved['success']) {
|
||||
$commit = Zlib\NativeWikiPage::commit(array(
|
||||
$commit = NativeWikiPage::commit(array(
|
||||
'commit_msg' => $commitMsg,
|
||||
'pageUrlName' => $pageUrlName,
|
||||
'resource_id' => $resource_id,
|
||||
@@ -665,8 +693,8 @@ class Wiki extends \Zotlabs\Web\Controller {
|
||||
));
|
||||
|
||||
if($commit['success']) {
|
||||
Zlib\NativeWiki::sync_a_wiki_item($owner['channel_id'],$commit['item_id'],$resource_id);
|
||||
json_return_and_die(array('message' => 'Wiki git repo commit made', 'success' => true));
|
||||
NativeWiki::sync_a_wiki_item($owner['channel_id'],$commit['item_id'],$resource_id);
|
||||
json_return_and_die(array('message' => 'Wiki git repo commit made', 'success' => true , 'content' => $content));
|
||||
}
|
||||
else {
|
||||
json_return_and_die(array('message' => 'Error making git commit','success' => false));
|
||||
@@ -686,7 +714,7 @@ class Wiki extends \Zotlabs\Web\Controller {
|
||||
|
||||
// Determine if observer has permission to read content
|
||||
|
||||
$perms = Zlib\NativeWiki::get_permissions($resource_id, intval($owner['channel_id']), $observer_hash);
|
||||
$perms = NativeWiki::get_permissions($resource_id, intval($owner['channel_id']), $observer_hash);
|
||||
if(! $perms['read']) {
|
||||
logger('Wiki read permission denied.' . EOL);
|
||||
json_return_and_die(array('historyHTML' => '', 'message' => 'Permission denied.', 'success' => false));
|
||||
@@ -718,15 +746,15 @@ class Wiki extends \Zotlabs\Web\Controller {
|
||||
json_return_and_die(array('success' => false));
|
||||
}
|
||||
|
||||
$perms = Zlib\NativeWiki::get_permissions($resource_id, intval($owner['channel_id']), $observer_hash);
|
||||
$perms = NativeWiki::get_permissions($resource_id, intval($owner['channel_id']), $observer_hash);
|
||||
if(! $perms['write']) {
|
||||
logger('Wiki write permission denied. ' . EOL);
|
||||
json_return_and_die(array('success' => false));
|
||||
}
|
||||
|
||||
$deleted = Zlib\NativeWikiPage::delete_page(array('channel_id' => $owner['channel_id'], 'observer_hash' => $observer_hash, 'resource_id' => $resource_id, 'pageUrlName' => $pageUrlName));
|
||||
$deleted = NativeWikiPage::delete_page(array('channel_id' => $owner['channel_id'], 'observer_hash' => $observer_hash, 'resource_id' => $resource_id, 'pageUrlName' => $pageUrlName));
|
||||
if($deleted['success']) {
|
||||
Zlib\NativeWiki::sync_a_wiki_item($owner['channel_id'],$commit['item_id'],$resource_id);
|
||||
NativeWiki::sync_a_wiki_item($owner['channel_id'],$commit['item_id'],$resource_id);
|
||||
json_return_and_die(array('message' => 'Wiki git repo commit made', 'success' => true));
|
||||
}
|
||||
else {
|
||||
@@ -742,13 +770,13 @@ class Wiki extends \Zotlabs\Web\Controller {
|
||||
$commitHash = $_POST['commitHash'];
|
||||
// Determine if observer has permission to revert pages
|
||||
|
||||
$perms = Zlib\NativeWiki::get_permissions($resource_id, intval($owner['channel_id']), $observer_hash);
|
||||
$perms = NativeWiki::get_permissions($resource_id, intval($owner['channel_id']), $observer_hash);
|
||||
if(! $perms['write']) {
|
||||
logger('Wiki write permission denied.' . EOL);
|
||||
json_return_and_die(array('success' => false));
|
||||
}
|
||||
|
||||
$reverted = Zlib\NativeWikiPage::revert_page(array('channel_id' => $owner['channel_id'], 'observer_hash' => $observer_hash, 'commitHash' => $commitHash, 'resource_id' => $resource_id, 'pageUrlName' => $pageUrlName));
|
||||
$reverted = NativeWikiPage::revert_page(array('channel_id' => $owner['channel_id'], 'observer_hash' => $observer_hash, 'commitHash' => $commitHash, 'resource_id' => $resource_id, 'pageUrlName' => $pageUrlName));
|
||||
if($reverted['success']) {
|
||||
json_return_and_die(array('content' => $reverted['content'], 'message' => '', 'success' => true));
|
||||
} else {
|
||||
@@ -764,13 +792,13 @@ class Wiki extends \Zotlabs\Web\Controller {
|
||||
$currentCommit = $_POST['currentCommit'];
|
||||
// Determine if observer has permission to revert pages
|
||||
|
||||
$perms = Zlib\NativeWiki::get_permissions($resource_id, intval($owner['channel_id']), $observer_hash);
|
||||
$perms = NativeWiki::get_permissions($resource_id, intval($owner['channel_id']), $observer_hash);
|
||||
if(!$perms['read']) {
|
||||
logger('Wiki read permission denied.' . EOL);
|
||||
json_return_and_die(array('success' => false));
|
||||
}
|
||||
|
||||
$compare = Zlib\NativeWikiPage::compare_page(array('channel_id' => $owner['channel_id'], 'observer_hash' => $observer_hash, 'currentCommit' => $currentCommit, 'compareCommit' => $compareCommit, 'resource_id' => $resource_id, 'pageUrlName' => $pageUrlName));
|
||||
$compare = NativeWikiPage::compare_page(array('channel_id' => $owner['channel_id'], 'observer_hash' => $observer_hash, 'currentCommit' => $currentCommit, 'compareCommit' => $compareCommit, 'resource_id' => $resource_id, 'pageUrlName' => $pageUrlName));
|
||||
if($compare['success']) {
|
||||
$diffHTML = '<table class="text-center" width="100%"><tr><td class="lead" width="50%">' . t('Current Revision') . '</td><td class="lead" width="50%">' . t('Selected Revision') . '</td></tr></table>' . $compare['diff'];
|
||||
json_return_and_die(array('diff' => $diffHTML, 'message' => '', 'success' => true));
|
||||
@@ -787,29 +815,29 @@ class Wiki extends \Zotlabs\Web\Controller {
|
||||
if ($pageUrlName === 'Home') {
|
||||
json_return_and_die(array('message' => 'Cannot rename Home','success' => false));
|
||||
}
|
||||
if(urlencode(escape_tags($pageNewName)) === '') {
|
||||
if(NativeWiki::name_encode(escape_tags($pageNewName)) === '') {
|
||||
json_return_and_die(array('message' => 'Error renaming page. Invalid name.', 'success' => false));
|
||||
}
|
||||
// Determine if observer has permission to rename pages
|
||||
|
||||
$perms = Zlib\NativeWiki::get_permissions($resource_id, intval($owner['channel_id']), $observer_hash);
|
||||
$perms = NativeWiki::get_permissions($resource_id, intval($owner['channel_id']), $observer_hash);
|
||||
if(! $perms['write']) {
|
||||
logger('Wiki write permission denied. ' . EOL);
|
||||
json_return_and_die(array('success' => false));
|
||||
}
|
||||
|
||||
$renamed = Zlib\NativeWikiPage::rename_page(array('channel_id' => $owner['channel_id'], 'observer_hash' => $observer_hash, 'resource_id' => $resource_id, 'pageUrlName' => $pageUrlName, 'pageNewName' => $pageNewName));
|
||||
$renamed = NativeWikiPage::rename_page(array('channel_id' => $owner['channel_id'], 'observer_hash' => $observer_hash, 'resource_id' => $resource_id, 'pageUrlName' => $pageUrlName, 'pageNewName' => $pageNewName));
|
||||
|
||||
if($renamed['success']) {
|
||||
$commit = Zlib\NativeWikiPage::commit(array(
|
||||
$commit = NativeWikiPage::commit(array(
|
||||
'channel_id' => $owner['channel_id'],
|
||||
'commit_msg' => 'Renamed ' . urldecode($pageUrlName) . ' to ' . $renamed['page']['htmlName'],
|
||||
'commit_msg' => 'Renamed ' . NativeWiki::name_decode($pageUrlName) . ' to ' . $renamed['page']['htmlName'],
|
||||
'resource_id' => $resource_id,
|
||||
'observer_hash' => $observer_hash,
|
||||
'pageUrlName' => $pageNewName
|
||||
));
|
||||
if($commit['success']) {
|
||||
Zlib\NativeWiki::sync_a_wiki_item($owner['channel_id'],$commit['item_id'],$resource_id);
|
||||
NativeWiki::sync_a_wiki_item($owner['channel_id'],$commit['item_id'],$resource_id);
|
||||
json_return_and_die(array('name' => $renamed['page'], 'message' => 'Wiki git repo commit made', 'success' => true));
|
||||
}
|
||||
else {
|
||||
|
||||
@@ -36,10 +36,6 @@ class Zfinger extends \Zotlabs\Web\Controller {
|
||||
|
||||
echo $ret;
|
||||
killme();
|
||||
|
||||
|
||||
|
||||
json_return_and_die($x);
|
||||
|
||||
}
|
||||
|
||||
|
||||
25
Zotlabs/Module/Zot.php
Normal file
25
Zotlabs/Module/Zot.php
Normal file
@@ -0,0 +1,25 @@
|
||||
<?php
|
||||
/**
|
||||
* @file Zotlabs/Module/Zot.php
|
||||
*
|
||||
* @brief Zot endpoint.
|
||||
*
|
||||
*/
|
||||
|
||||
namespace Zotlabs\Module;
|
||||
|
||||
use Zotlabs\Zot6 as ZotProtocol;
|
||||
|
||||
/**
|
||||
* @brief Zot module.
|
||||
*
|
||||
*/
|
||||
|
||||
class Zot extends \Zotlabs\Web\Controller {
|
||||
|
||||
function init() {
|
||||
$zot = new ZotProtocol\Receiver(new ZotProtocol\Zot6Handler());
|
||||
json_return_and_die($zot->run(),'application/x-zot+jzon');
|
||||
}
|
||||
|
||||
}
|
||||
47
Zotlabs/Module/Zot_probe.php
Normal file
47
Zotlabs/Module/Zot_probe.php
Normal file
@@ -0,0 +1,47 @@
|
||||
<?php
|
||||
|
||||
namespace Zotlabs\Module;
|
||||
|
||||
use Zotlabs\Lib\Zotfinger;
|
||||
use Zotlabs\Zot6\HTTPSig;
|
||||
|
||||
class Zot_probe extends \Zotlabs\Web\Controller {
|
||||
|
||||
function get() {
|
||||
|
||||
$o .= '<h3>Zot6 Probe Diagnostic</h3>';
|
||||
|
||||
$o .= '<form action="zot_probe" method="get">';
|
||||
$o .= 'Lookup URI: <input type="text" style="width: 250px;" name="addr" value="' . $_GET['addr'] .'" /><br>';
|
||||
$o .= '<input type="submit" name="submit" value="Submit" /></form>';
|
||||
|
||||
$o .= '<br /><br />';
|
||||
|
||||
if(x($_GET,'addr')) {
|
||||
$addr = $_GET['addr'];
|
||||
|
||||
|
||||
$x = Zotfinger::exec($addr);
|
||||
|
||||
$o .= '<pre>' . htmlspecialchars(print_array($x)) . '</pre>';
|
||||
|
||||
$headers = 'Accept: application/x-zot+json, application/jrd+json, application/json';
|
||||
|
||||
$redirects = 0;
|
||||
$x = z_fetch_url($addr,true,$redirects, [ 'headers' => [ $headers ]]);
|
||||
|
||||
if($x['success']) {
|
||||
|
||||
$o .= '<pre>' . htmlspecialchars($x['header']) . '</pre>' . EOL;
|
||||
|
||||
$o .= 'verify returns: ' . str_replace("\n",EOL,print_r(HTTPSig::verify($x),true)) . EOL;
|
||||
|
||||
$o .= '<pre>' . htmlspecialchars(json_encode(json_decode($x['body']),JSON_PRETTY_PRINT|JSON_UNESCAPED_SLASHES)) . '</pre>' . EOL;
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
return $o;
|
||||
}
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user