aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--include/conversation.php4
-rw-r--r--mod/editpost.php6
-rw-r--r--mod/rpost.php90
3 files changed, 96 insertions, 4 deletions
diff --git a/include/conversation.php b/include/conversation.php
index a8b3150b4..497c2fda7 100644
--- a/include/conversation.php
+++ b/include/conversation.php
@@ -1096,7 +1096,7 @@ function status_editor($a,$x,$popup=false) {
'$shortsetloc' => t('set location'),
'$noloc' => t('Clear browser location'),
'$shortnoloc' => t('clear location'),
- '$title' => "",
+ '$title' => ((x($x,'title')) ? htmlspecialchars($x['title']) : ''),
'$placeholdertitle' => t('Set title'),
'$catsenabled' => ((feature_enabled($x['profile_uid'],'categories') && (! $webpage)) ? 'categories' : ''),
'$category' => "",
@@ -1105,7 +1105,7 @@ function status_editor($a,$x,$popup=false) {
'$permset' => t('Permission settings'),
'$shortpermset' => t('permissions'),
'$ptyp' => (($notes_cid) ? 'note' : 'wall'),
- '$content' => '',
+ '$content' => ((x($x,'body')) ? htmlspecialchars($x['body']) : ''),
'$post_id' => '',
'$baseurl' => $a->get_baseurl(true),
'$defloc' => $x['default_location'],
diff --git a/mod/editpost.php b/mod/editpost.php
index 8d510ce05..161e8f301 100644
--- a/mod/editpost.php
+++ b/mod/editpost.php
@@ -1,4 +1,4 @@
-<?php
+<?php /** @file */
require_once('acl_selectors.php');
require_once('include/crypto.php');
@@ -36,6 +36,8 @@ function editpost_content(&$a) {
if(feature_enabled(local_user(),'richtext'))
$plaintext = false;
+ $channel = $a->get_channel();
+
$o .= replace_macros(get_markup_template('edpost_head.tpl'), array(
'$title' => t('Edit post')
));
@@ -46,7 +48,7 @@ function editpost_content(&$a) {
'$editselect' => (($plaintext) ? 'none' : '/(profile-jot-text|prvmail-text)/'),
'$ispublic' => '&nbsp;', // t('Visible to <strong>everybody</strong>'),
'$geotag' => $geotag,
- '$nickname' => $a->user['nickname']
+ '$nickname' => $channel['channel_address']
));
diff --git a/mod/rpost.php b/mod/rpost.php
new file mode 100644
index 000000000..78adb5e34
--- /dev/null
+++ b/mod/rpost.php
@@ -0,0 +1,90 @@
+<?php /** @file */
+
+require_once('acl_selectors.php');
+require_once('include/crypto.php');
+require_once('include/items.php');
+require_once('include/taxonomy.php');
+require_once('include/conversation.php');
+
+/**
+ * remote post
+ *
+ * https://yoursite/rpost?f=&title=&body=&remote_return=
+ *
+ * This can be called via either GET or POST, use POST for long body content as suhosin often limits GET parameter length
+ *
+ * f= placeholder, often required
+ * title= Title of post
+ * body= Body of post
+ * remote_return= absolute URL to return after posting is finished
+ *
+ * currently content type is Red Matrix bbcode, though HTML is possible. This is left as an exercise for future developers
+ */
+
+
+
+function rpost_content(&$a) {
+
+ $o = '';
+
+ if(! local_user()) {
+ // FIXME
+ // probably need to figure out how to preserve the $_REQUEST variables in the session
+ // in case you aren't currently logged in. Otherwise you'll have to go back to
+ // the site that sent you here and try again.
+ return login();
+ }
+
+ if($_REQUEST['remote_return']) {
+ $_SESSION['remote_return'] = $_REQUEST['remote_return'];
+ }
+ if(argc() > 1 && argv(1) === 'return' && $_SESSION['remote_return']) {
+ goaway($_SESSION['remote_return']);
+ }
+
+ $plaintext = true;
+ if(feature_enabled(local_user(),'richtext'))
+ $plaintext = false;
+
+
+ $channel = $a->get_channel();
+
+ $o .= replace_macros(get_markup_template('edpost_head.tpl'), array(
+ '$title' => t('Edit post')
+ ));
+
+
+ $a->page['htmlhead'] .= replace_macros(get_markup_template('jot-header.tpl'), array(
+ '$baseurl' => $a->get_baseurl(),
+ '$editselect' => (($plaintext) ? 'none' : '/(profile-jot-text|prvmail-text)/'),
+ '$ispublic' => '&nbsp;', // t('Visible to <strong>everybody</strong>'),
+ '$geotag' => $geotag,
+ '$nickname' => $channel['channel_address']
+ ));
+
+
+
+ $x = array(
+ 'is_owner' => true,
+ 'allow_location' => ((intval(get_pconfig($channel['channel_id'],'system','use_browser_location'))) ? '1' : ''),
+ 'default_location' => $channel['channel_location'],
+ 'nickname' => $channel['channel_address'],
+ 'lockstate' => (($channel['channel_allow_cid'] || $channel['channel_allow_gid']
+ || $channel['channel_deny_cid'] || $channel['channel_deny_gid']) ? 'lock' : 'unlock'),
+ 'acl' => populate_acl($channel, $false),
+ 'bang' => '',
+ 'visitor' => 'block',
+ 'profile_uid' => local_user(),
+ 'title' => $_REQUEST['title'],
+ 'body' => $_REQUEST['body'],
+ 'return_path' => 'rpost/return'
+ );
+
+
+ $o .= status_editor($a,$x);
+
+ return $o;
+
+}
+
+