provide the ability for rpost to post as another of your channels. This does not yet work, so the functionality has not been enabled.

This commit is contained in:
friendica 2014-04-05 02:32:07 -07:00
parent 32e71cf06b
commit 4901ef8faf
7 changed files with 68 additions and 19 deletions

View File

@ -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'),

View File

@ -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 '';
}

View File

@ -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'))

View File

@ -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'],

View File

@ -1 +1 @@
2014-04-04.637
2014-04-05.638

View File

@ -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}}

View File

@ -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>