aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--include/conversation.php9
-rw-r--r--include/identity.php21
-rw-r--r--mod/item.php41
-rw-r--r--mod/rpost.php1
-rw-r--r--version.inc2
-rw-r--r--view/tpl/channel_id_select.tpl7
-rwxr-xr-xview/tpl/jot.tpl6
7 files changed, 68 insertions, 19 deletions
diff --git a/include/conversation.php b/include/conversation.php
index af41e8fa7..880639bf4 100644
--- a/include/conversation.php
+++ b/include/conversation.php
@@ -1052,6 +1052,13 @@ function status_editor($a,$x,$popup=false) {
}
+ if(array_key_exists('channel_select',$x) && $x['channel_select']) {
+ require_once('include/identity.php');
+ $id_select = identity_selector();
+ }
+ else
+ $id_select = '';
+
$webpage = ((x($x,'webpage')) ? $x['webpage'] : '');
@@ -1098,6 +1105,8 @@ function status_editor($a,$x,$popup=false) {
'$webpage' => $webpage,
'$placeholdpagetitle' => ((x($x,'ptlabel')) ? $x['ptlabel'] : t('Page link title')),
'$pagetitle' => (x($x,'pagetitle') ? $x['pagetitle'] : ''),
+ '$id_select' => $id_select,
+ '$id_seltext' => t('Post as'),
'$upload' => t('Upload photo'),
'$shortupload' => t('upload photo'),
'$attach' => t('Attach file'),
diff --git a/include/identity.php b/include/identity.php
index d15f3861e..e773bb314 100644
--- a/include/identity.php
+++ b/include/identity.php
@@ -1257,3 +1257,24 @@ function get_channel_by_nick($nick) {
return(($r) ? $r[0] : false);
}
+
+
+function identity_selector() {
+ if(local_user()) {
+ $r = q("select channel.*, xchan.* from channel left join xchan on channel.channel_hash = xchan.xchan_hash where channel.channel_account_id = %d and not ( channel_pageflags & %d ) order by channel_name ",
+ intval(get_account_id()),
+ intval(PAGE_REMOVED)
+ );
+ if(count($r) > 1) {
+ $selected_channel = null;
+ $account = get_app()->get_account();
+ $o = replace_macros(get_markup_template('channel_id_select.tpl'),array(
+ '$channels' => $r,
+ '$selected' => local_user()
+ ));
+ return $o;
+ }
+ }
+
+ return '';
+} \ No newline at end of file
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'],
diff --git a/version.inc b/version.inc
index 408d50356..ca09188f7 100644
--- a/version.inc
+++ b/version.inc
@@ -1 +1 @@
-2014-04-04.637
+2014-04-05.638
diff --git a/view/tpl/channel_id_select.tpl b/view/tpl/channel_id_select.tpl
new file mode 100644
index 000000000..ecebd4bc0
--- /dev/null
+++ b/view/tpl/channel_id_select.tpl
@@ -0,0 +1,7 @@
+{{if $channels}}
+<select name="dest_channel" id="dest-channel-select">
+{{foreach $channels as $c}}
+<option {{if $c.channel_id == $selected}}selected="selected"{{/if}} value="{{$c.channel_id}}">{{$c.channel_name}}</option>
+{{/foreach}}
+</select>
+{{/if}} \ No newline at end of file
diff --git a/view/tpl/jot.tpl b/view/tpl/jot.tpl
index eea586ceb..5f79b4d88 100755
--- a/view/tpl/jot.tpl
+++ b/view/tpl/jot.tpl
@@ -13,7 +13,11 @@
<input type="hidden" name="preview" id="jot-preview" value="0" />
{{$mimeselect}}
{{$layoutselect}}
-
+ {{if $id_select}}
+ <div class="channel-id-select-div">
+ <span class="channel-id-select-desc">{{$id_seltext}}</span> {{$id_select}}
+ </div>
+ {{/if}}
<div id="jot-title-wrap">
<input name="title" id="jot-title" type="text" placeholder="{{$placeholdertitle}}" value="{{$title}}" class="jothidden" style="display:none">
</div>