aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--Zotlabs/Lib/Apps.php3
-rw-r--r--Zotlabs/Module/Poke.php96
-rw-r--r--Zotlabs/Module/Pubstream.php66
-rw-r--r--Zotlabs/Module/Randprof.php14
-rw-r--r--app/bugreport.apd3
-rw-r--r--app/poke.apd3
-rw-r--r--app/post.apd3
-rw-r--r--app/probe.apd3
-rw-r--r--app/pubstream.apd3
-rw-r--r--app/randprof.apd3
10 files changed, 99 insertions, 98 deletions
diff --git a/Zotlabs/Lib/Apps.php b/Zotlabs/Lib/Apps.php
index ba854197f..3c09adaa5 100644
--- a/Zotlabs/Lib/Apps.php
+++ b/Zotlabs/Lib/Apps.php
@@ -78,7 +78,8 @@ class Apps {
'Search',
'Help',
'Profile Photo',
- 'HQ'
+ 'HQ',
+ 'Post'
]);
/**
diff --git a/Zotlabs/Module/Poke.php b/Zotlabs/Module/Poke.php
index 1f1edfa18..d60a7f426 100644
--- a/Zotlabs/Module/Poke.php
+++ b/Zotlabs/Module/Poke.php
@@ -9,11 +9,11 @@ use Zotlabs\Web\Controller;
*
* Poke, prod, finger, or otherwise do unspeakable things to somebody - who must be a connection in your address book
* This function can be invoked with the required arguments (verb and cid and private and possibly parent) silently via ajax or
- * other web request. You must be logged in and connected to a channel.
+ * other web request. You must be logged in and connected to a channel.
* If the required arguments aren't present, we'll display a simple form to choose a recipient and a verb.
* parent is a special argument which let's you attach this activity as a comment to an existing conversation, which
* may have started with somebody else poking (etc.) somebody, but this isn't necessary. This can be used in the adult
- * plugin version to have entire conversations where Alice poked Bob, Bob fingered Alice, Alice hugged Bob, etc.
+ * plugin version to have entire conversations where Alice poked Bob, Bob fingered Alice, Alice hugged Bob, etc.
*
* private creates a private conversation with the recipient. Otherwise your channel's default post privacy is used.
*
@@ -25,41 +25,41 @@ require_once('include/items.php');
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();
-
+
$verb = notags(trim($_REQUEST['verb']));
-
- if(! $verb)
+
+ if(! $verb)
return;
-
+
$verbs = get_poke_verbs();
-
+
if(! array_key_exists($verb,$verbs))
return;
-
+
$activity = ACTIVITY_POKE . '#' . urlencode($verbs[$verb][0]);
-
+
$contact_id = intval($_REQUEST['cid']);
$xchan = trim($_REQUEST['xchan']);
if(! ($contact_id || $xchan))
return;
-
+
$parent = ((x($_REQUEST,'parent')) ? intval($_REQUEST['parent']) : 0);
-
+
logger('poke: verb ' . $verb . ' contact ' . $contact_id, LOGGER_DEBUG);
-
-
+
+
if($contact_id) {
$r = q("SELECT * FROM abook left join xchan on xchan_hash = abook_xchan where abook_id = %d and abook_channel = %d LIMIT 1",
intval($contact_id),
@@ -71,17 +71,17 @@ class Poke extends Controller {
dbesc($xchan . '%')
);
}
-
+
if(! $r) {
logger('poke: no target.');
return;
}
-
+
$target = $r[0];
$parent_item = null;
-
+
if($parent) {
- $r = q("select mid, item_private, owner_xchan, allow_cid, allow_gid, deny_cid, deny_gid
+ $r = q("select mid, item_private, owner_xchan, allow_cid, allow_gid, deny_cid, deny_gid
from item where id = %d and parent = %d and uid = %d limit 1",
intval($parent),
intval($parent),
@@ -98,18 +98,18 @@ class Poke extends Controller {
}
}
elseif($contact_id) {
-
+
$item_private = ((x($_GET,'private')) ? intval($_GET['private']) : 0);
-
+
$allow_cid = (($item_private) ? '<' . $target['abook_xchan']. '>' : $channel['channel_allow_cid']);
$allow_gid = (($item_private) ? '' : $channel['channel_allow_gid']);
$deny_cid = (($item_private) ? '' : $channel['channel_deny_cid']);
$deny_gid = (($item_private) ? '' : $channel['channel_deny_gid']);
}
-
-
+
+
$arr = array();
-
+
$arr['item_wall'] = 1;
@@ -124,7 +124,7 @@ class Poke extends Controller {
$arr['item_private'] = $item_private;
$arr['obj_type'] = ACTIVITY_OBJ_PERSON;
$arr['body'] = '[zrl=' . $channel['xchan_url'] . ']' . $channel['xchan_name'] . '[/zrl]' . ' ' . t($verbs[$verb][0]) . ' ' . '[zrl=' . $target['xchan_url'] . ']' . $target['xchan_name'] . '[/zrl]';
-
+
$obj = array(
'type' => ACTIVITY_OBJ_PERSON,
'title' => $target['xchan_name'],
@@ -134,25 +134,25 @@ class Poke extends Controller {
array('rel' => 'photo', 'type' => $target['xchan_photo_mimetype'], 'href' => $target['xchan_photo_l'])
),
);
-
+
$arr['obj'] = json_encode($obj);
-
+
$arr['item_origin'] = 1;
$arr['item_wall'] = 1;
$arr['item_unseen'] = 1;
if(! $parent_item)
$item['item_thread_top'] = 1;
-
-
+
+
post_activity_item($arr);
-
+
return;
}
-
-
-
+
+
+
function get() {
-
+
if(! local_channel()) {
notice( t('Permission denied.') . EOL);
return;
@@ -161,19 +161,17 @@ class Poke extends Controller {
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;
+ $papp = Apps::get_papp('Poke');
+ return Apps::app_render($papp, 'module');
}
nav_set_selected('Poke');
-
+
$name = '';
$id = '';
-
+
if(intval($_REQUEST['c'])) {
- $r = q("select abook_id, xchan_name from abook left join xchan on abook_xchan = xchan_hash
+ $r = q("select abook_id, xchan_name from abook left join xchan on abook_xchan = xchan_hash
where abook_id = %d and abook_channel = %d limit 1",
intval($_REQUEST['c']),
intval(local_channel())
@@ -183,17 +181,17 @@ class Poke extends Controller {
$id = $r[0]['abook_id'];
}
}
-
+
$parent = ((x($_REQUEST,'parent')) ? intval($_REQUEST['parent']) : '0');
-
+
$verbs = get_poke_verbs();
-
+
$shortlist = array();
foreach($verbs as $k => $v)
if($v[1] !== 'NOTRANSLATION')
$shortlist[] = array($k,$v[1]);
-
-
+
+
$poke_basic = get_config('system','poke_basic');
if($poke_basic) {
$title = t('Poke');
@@ -203,7 +201,7 @@ class Poke extends Controller {
$title = t('Poke/Prod');
$desc = t('Poke, prod or do other things to somebody');
}
-
+
$o = replace_macros(get_markup_template('poke_content.tpl'),array(
'$title' => $title,
'$poke_basic' => $poke_basic,
@@ -218,8 +216,8 @@ class Poke extends Controller {
'$name' => $name,
'$id' => $id
));
-
+
return $o;
-
+
}
}
diff --git a/Zotlabs/Module/Pubstream.php b/Zotlabs/Module/Pubstream.php
index 9c63c735d..32023d6cc 100644
--- a/Zotlabs/Module/Pubstream.php
+++ b/Zotlabs/Module/Pubstream.php
@@ -16,10 +16,8 @@ class Pubstream extends \Zotlabs\Web\Controller {
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;
+ $papp = Apps::get_papp('Public Stream');
+ return Apps::app_render($papp, 'module');
}
}
@@ -65,15 +63,15 @@ class Pubstream extends \Zotlabs\Web\Controller {
$o = (($hashtags) ? $title : '');
if(local_channel() && (! $update)) {
-
+
$channel = \App::get_channel();
$channel_acl = array(
- 'allow_cid' => $channel['channel_allow_cid'],
- 'allow_gid' => $channel['channel_allow_gid'],
- 'deny_cid' => $channel['channel_deny_cid'],
+ 'allow_cid' => $channel['channel_allow_cid'],
+ 'allow_gid' => $channel['channel_allow_gid'],
+ 'deny_cid' => $channel['channel_deny_cid'],
'deny_gid' => $channel['channel_deny_gid']
- );
+ );
$x = array(
'is_owner' => true,
@@ -94,12 +92,12 @@ class Pubstream extends \Zotlabs\Web\Controller {
'jotnets' => true,
'reset' => t('Reset form')
);
-
+
$o .= '<div id="jot-popup">';
$o .= status_editor($a,$x,false,'Pubstream');
$o .= '</div>';
}
-
+
if(! $update && !$load) {
nav_set_selected(t('Public Stream'));
@@ -110,13 +108,13 @@ class Pubstream extends \Zotlabs\Web\Controller {
$maxheight = get_config('system','home_divmore_height');
if(! $maxheight)
$maxheight = 400;
-
+
$o .= '<div id="live-pubstream"></div>' . "\r\n";
- $o .= "<script> var profile_uid = " . ((intval(local_channel())) ? local_channel() : (-1))
- . "; var profile_page = " . \App::$pager['page']
+ $o .= "<script> var profile_uid = " . ((intval(local_channel())) ? local_channel() : (-1))
+ . "; var profile_page = " . \App::$pager['page']
. "; divmore_height = " . intval($maxheight) . "; </script>\r\n";
-
- //if we got a decoded hash we must encode it again before handing to javascript
+
+ //if we got a decoded hash we must encode it again before handing to javascript
if($decoded)
$mid = 'b64.' . base64url_encode($mid);
@@ -151,7 +149,7 @@ class Pubstream extends \Zotlabs\Web\Controller {
'$dbegin' => ''
));
}
-
+
if($update && ! $load) {
// only setup pagination on initial page view
$pager_sql = '';
@@ -160,10 +158,10 @@ class Pubstream extends \Zotlabs\Web\Controller {
\App::set_pager_itemspage(10);
$pager_sql = sprintf(" LIMIT %d OFFSET %d ", intval(\App::$pager['itemspage']), intval(\App::$pager['start']));
}
-
+
require_once('include/channel.php');
require_once('include/security.php');
-
+
if($site_firehose) {
$uids = " and item.uid in ( " . stream_perms_api_uids(PERMS_PUBLIC) . " ) and item_private = 0 and item_wall = 1 ";
}
@@ -173,7 +171,7 @@ class Pubstream extends \Zotlabs\Web\Controller {
$sql_extra = item_permissions_sql($sys['channel_id']);
\App::$data['firehose'] = intval($sys['channel_id']);
}
-
+
if(get_config('system','public_list_mode'))
$page_mode = 'list';
else
@@ -184,7 +182,7 @@ class Pubstream extends \Zotlabs\Web\Controller {
$sql_extra .= protect_sprintf(term_query('item', $hashtags, TERM_HASHTAG, TERM_COMMUNITYTAG));
}
- $net_query = (($net) ? " left join xchan on xchan_hash = author_xchan " : '');
+ $net_query = (($net) ? " left join xchan on xchan_hash = author_xchan " : '');
$net_query2 = (($net) ? " and xchan_network = '" . protect_sprintf(dbesc($net)) . "' " : '');
$abook_uids = " and abook.abook_channel = " . intval(\App::$profile['profile_uid']) . " ";
@@ -196,13 +194,13 @@ class Pubstream extends \Zotlabs\Web\Controller {
//logger('update: ' . $update . ' load: ' . $load);
if($update) {
-
+
$ordering = get_config('system', 'pubstream_ordering', 'commented');
-
+
if($load) {
if($mid) {
$r = q("SELECT parent AS item_id FROM item
- left join abook on item.author_xchan = abook.abook_xchan
+ left join abook on item.author_xchan = abook.abook_xchan
$net_query
WHERE mid = '%s' $uids $item_normal
and (abook.abook_blocked = 0 or abook.abook_flags is null)
@@ -212,7 +210,7 @@ class Pubstream extends \Zotlabs\Web\Controller {
}
else {
// Fetch a page full of parent items for this page
- $r = q("SELECT item.id AS item_id FROM item
+ $r = q("SELECT item.id AS item_id FROM item
left join abook on ( item.author_xchan = abook.abook_xchan $abook_uids )
$net_query
WHERE true $uids and item.item_thread_top = 1 $item_normal
@@ -247,20 +245,20 @@ class Pubstream extends \Zotlabs\Web\Controller {
// Then fetch all the children of the parents that are on this page
$parents_str = '';
-
+
if($r) {
-
+
$parents_str = ids_to_querystr($r,'item_id');
-
+
$items = q("SELECT item.*, item.id AS item_id FROM item
WHERE true $uids $item_normal
AND item.parent IN ( %s )
$sql_extra ",
dbesc($parents_str)
);
-
+
// use effective_uid param of xchan_query to help sort out comment permission
- // for sys_channel owned items.
+ // for sys_channel owned items.
xchan_query($items,true,(($sys) ? local_channel() : 0));
$items = fetch_post_tags($items,true);
@@ -269,9 +267,9 @@ class Pubstream extends \Zotlabs\Web\Controller {
else {
$items = array();
}
-
+
}
-
+
// fake it
$mode = (($hashtags) ? 'search' : 'pubstream');
@@ -279,13 +277,13 @@ class Pubstream extends \Zotlabs\Web\Controller {
if($mid)
$o .= '<div id="content-complete"></div>';
-
+
if(($items) && (! $update))
$o .= alt_pager(count($items));
$_SESSION['loadtime'] = datetime_convert();
return $o;
-
+
}
}
diff --git a/Zotlabs/Module/Randprof.php b/Zotlabs/Module/Randprof.php
index c38b07ead..1753af4c9 100644
--- a/Zotlabs/Module/Randprof.php
+++ b/Zotlabs/Module/Randprof.php
@@ -15,7 +15,7 @@ class Randprof extends \Zotlabs\Web\Controller {
$x = random_profile();
if($x)
goaway(chanlink_hash($x));
-
+
/** FIXME this doesn't work at the moment as a fallback */
goaway(z_root() . '/profile');
}
@@ -23,15 +23,13 @@ class Randprof extends \Zotlabs\Web\Controller {
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;
+ //Do not display any associated widgets at this point
+ App::$pdl = '';
+ $papp = Apps::get_papp('Random Channel');
+ return Apps::app_render($papp, 'module');
}
}
}
-
+
}
diff --git a/app/bugreport.apd b/app/bugreport.apd
index f1f328013..52a2ba19c 100644
--- a/app/bugreport.apd
+++ b/app/bugreport.apd
@@ -1,5 +1,6 @@
-version: 2
+version: 3
url: https://framagit.org/hubzilla/core/issues
name: Report Bug
photo: icon:bug
categories: System
+desc: Provides a link to the Hubzilla bug tracker.
diff --git a/app/poke.apd b/app/poke.apd
index cf23c29b4..490f98740 100644
--- a/app/poke.apd
+++ b/app/poke.apd
@@ -1,6 +1,7 @@
-version: 2
+version: 3
url: $baseurl/poke
requires: local_channel
name: Poke
photo: icon:hand-o-right
categories: Social
+desc: Poke somebody in your addressbook.
diff --git a/app/post.apd b/app/post.apd
index d3ce88454..d5ea7ce88 100644
--- a/app/post.apd
+++ b/app/post.apd
@@ -1,6 +1,7 @@
-version: 2
+version: 3
url: $baseurl/rpost?f=&body=
requires: observer
name: Post
photo: icon:pencil-square
categories: Productivity
+desc: A separate post editor.
diff --git a/app/probe.apd b/app/probe.apd
index 1cc8bd991..9a78f4cde 100644
--- a/app/probe.apd
+++ b/app/probe.apd
@@ -1,6 +1,7 @@
-version: 3
+version: 4
url: $baseurl/zot_probe
requires: local_channel
name: Remote Diagnostics
photo: icon:user-md
categories: Developer
+desc: A diagnose tool useful for developers.
diff --git a/app/pubstream.apd b/app/pubstream.apd
index 4447ca750..9631a19fd 100644
--- a/app/pubstream.apd
+++ b/app/pubstream.apd
@@ -1,6 +1,7 @@
-version: 2
+version: 3
url: $baseurl/pubstream
requires: public_stream
name: Public Stream
photo: icon:globe
categories: Social, nav_featured_app
+desc: View the unmoderated public content known to this hub.
diff --git a/app/randprof.apd b/app/randprof.apd
index 60281d909..4979a15c1 100644
--- a/app/randprof.apd
+++ b/app/randprof.apd
@@ -1,6 +1,7 @@
-version: 2
+version: 3
url: $baseurl/randprof
name: Random Channel
target: randprof
photo: icon:random
categories: Networking
+desc: Visit a random channel in the network.