aboutsummaryrefslogtreecommitdiffstats
path: root/mod
diff options
context:
space:
mode:
Diffstat (limited to 'mod')
-rw-r--r--mod/item.php41
-rw-r--r--mod/rpost.php1
2 files changed, 25 insertions, 17 deletions
diff --git a/mod/item.php b/mod/item.php
index c1feb5c96..86ed4fda8 100644
--- a/mod/item.php
+++ b/mod/item.php
@@ -169,6 +169,25 @@ function item_post(&$a) {
}
$observer = $a->get_observer();
+ $channel = null;
+
+ $dest_channel = ((array_key_exists('dest_channel',$_REQUEST) && intval($_REQUEST['dest_channel'])) ? intval($_REQUEST['dest_channel']) : 0);
+
+ if(local_user() && $dest_channel && $dest_channel != local_user()) {
+ // posting as another channel which you control
+ $account = $a->get_account();
+ $r = q("select * from channel left join account on channel_account_id = account_id where account_id = %d and channel_id = %d limit 1",
+ intval($account['account_id']),
+ intval($dest_channel)
+ );
+ if($r) {
+ $channel = $r[0];
+ $profile_uid = $dest_channel;
+ }
+ }
+
+
+
if($parent) {
logger('mod_item: item_post parent=' . $parent);
@@ -219,34 +238,22 @@ function item_post(&$a) {
$orig_post = $i[0];
}
- $channel = null;
- if(local_user() && local_user() == $profile_uid) {
- $channel = $a->get_channel();
- }
- else {
- $dest_channel = ((array_key_exists('dest_channel',$_REQUEST) && intval($_REQUEST['dest_channel'])) ? intval($_REQUEST['dest_channel']) : 0);
-
- if(local_user() && $dest_channel) {
- // posting as another channel which you control
- $account = $a->get_account();
- $r = q("select * from channel left join account on channel_account_id = account_id where account_d = %d and channel_id = %d limit 1",
- intval($account['account_id']),
- intval($dest_channel)
- );
- if($r)
- $channel = $r[0];
+ if(! $channel) {
+ if(local_user() && local_user() == $profile_uid) {
+ $channel = $a->get_channel();
}
else {
// posting as yourself but not necessarily to a channel you control
$r = q("select * from channel left join account on channel_account_id = account_id where channel_id = %d LIMIT 1",
intval($profile_uid)
);
- if(count($r))
+ if($r)
$channel = $r[0];
}
}
+
if(! $channel) {
logger("mod_item: no channel.");
if(x($_REQUEST,'return'))
diff --git a/mod/rpost.php b/mod/rpost.php
index 18d4c86cd..a9a864d5e 100644
--- a/mod/rpost.php
+++ b/mod/rpost.php
@@ -106,6 +106,7 @@ function rpost_content(&$a) {
|| $channel['channel_deny_cid'] || $channel['channel_deny_gid']) ? 'lock' : 'unlock'),
'acl' => populate_acl($channel, $false),
'bang' => '',
+// 'channel_select' => true,
'visitor' => 'block',
'profile_uid' => local_user(),
'title' => $_REQUEST['title'],