mirror of
https://codeberg.org/streams/streams.git
synced 2024-09-20 00:55:19 +00:00
improve expiration +cleanup
This commit is contained in:
parent
5a1f198705
commit
bb97dedcdd
6 changed files with 589 additions and 540 deletions
|
@ -8,10 +8,30 @@ use Zotlabs\Web\Controller;
|
|||
|
||||
class Expire extends Controller {
|
||||
|
||||
function post() {
|
||||
|
||||
logger('expire: ' . print_r($_POST,true));
|
||||
|
||||
if(! ( local_channel() && Apps::system_app_installed(local_channel(),'Expire Posts'))) {
|
||||
return;
|
||||
}
|
||||
|
||||
if($_POST['expire-submit']) {
|
||||
$expire = intval($_POST['selfexpiredays']);
|
||||
if($expire < 0)
|
||||
$expire = 0;
|
||||
set_pconfig(local_channel(),'system','selfexpiredays',$expire);
|
||||
info( t('Expiration settings updated.') . EOL);
|
||||
}
|
||||
|
||||
Libsync::build_sync_packet();
|
||||
}
|
||||
|
||||
|
||||
|
||||
function get() {
|
||||
|
||||
$desc = t('This app allows you to set an optional expiration date/time for posts, after which they will be deleted. This must be at least fifteen minutes into the future.');
|
||||
$desc = t('This app allows you to set an optional expiration date/time for posts, after which they will be deleted. This must be at least fifteen minutes into the future. You may also choose to automatically delete all your posts after a set number of days');
|
||||
|
||||
$text = '<div class="section-content-info-wrapper">' . $desc . '</div>';
|
||||
|
||||
|
@ -19,6 +39,27 @@ class Expire extends Controller {
|
|||
return $text;
|
||||
}
|
||||
|
||||
|
||||
|
||||
$setting_fields .= replace_macros(get_markup_template('field_input.tpl'), array(
|
||||
'$field' => array('selfexpiredays', t('Expire and delete all my posts after this many days'), intval(get_pconfig(local_channel(),'system','selfexpiredays',0)), t('Leave at 0 if you wish to manually control expiration of specific posts.'))
|
||||
));
|
||||
|
||||
$s .= replace_macros(get_markup_template('generic_app_settings.tpl'), array(
|
||||
'$addon' => array('expire', t('Automatic Expiration Settings'), '', t('Submit')),
|
||||
'$content' => $setting_fields
|
||||
));
|
||||
|
||||
return $s;
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
|
|
@ -2,10 +2,14 @@
|
|||
|
||||
namespace Zotlabs\Module;
|
||||
|
||||
use App;
|
||||
use URLify;
|
||||
use Zotlabs\Web\Controller;
|
||||
use Zotlabs\Lib\Libzot;
|
||||
use Zotlabs\Daemon\Master;
|
||||
|
||||
require_once('include/channel.php');
|
||||
require_once('include/import.php');
|
||||
require_once('include/photo_factory.php');
|
||||
|
||||
|
||||
/**
|
||||
|
@ -14,7 +18,8 @@ require_once('include/import.php');
|
|||
* Import a channel, either by direct file upload or via
|
||||
* connection to another server.
|
||||
*/
|
||||
class Import extends \Zotlabs\Web\Controller {
|
||||
|
||||
class Import extends Controller {
|
||||
|
||||
/**
|
||||
* @brief Import channel into account.
|
||||
|
@ -23,7 +28,7 @@ class Import extends \Zotlabs\Web\Controller {
|
|||
*/
|
||||
function import_account($account_id) {
|
||||
|
||||
if(! $account_id){
|
||||
if (! $account_id) {
|
||||
logger('No account ID supplied');
|
||||
return;
|
||||
}
|
||||
|
@ -41,30 +46,31 @@ class Import extends \Zotlabs\Web\Controller {
|
|||
$newname = trim(strtolower($_REQUEST['newname']));
|
||||
|
||||
// import channel from file
|
||||
if($src) {
|
||||
if ($src) {
|
||||
|
||||
// This is OS specific and could also fail if your tmpdir isn't very
|
||||
// large mostly used for Diaspora which exports gzipped files.
|
||||
|
||||
if(strpos($filename,'.gz')){
|
||||
if (strpos($filename,'.gz')){
|
||||
@rename($src,$src . '.gz');
|
||||
@system('gunzip ' . escapeshellarg($src . '.gz'));
|
||||
}
|
||||
|
||||
if($filesize) {
|
||||
if ($filesize) {
|
||||
$data = @file_get_contents($src);
|
||||
}
|
||||
unlink($src);
|
||||
}
|
||||
|
||||
// import channel from another server
|
||||
if(! $src) {
|
||||
if (! $src) {
|
||||
$old_address = ((x($_REQUEST,'old_address')) ? $_REQUEST['old_address'] : '');
|
||||
if(! $old_address) {
|
||||
if (! $old_address) {
|
||||
logger('Nothing to import.');
|
||||
notice( t('Nothing to import.') . EOL);
|
||||
return;
|
||||
} else if(strpos($old_address, '@')) {
|
||||
}
|
||||
elseif (strpos($old_address, '@')) {
|
||||
// if you copy the identity address from your profile page, make it work for convenience - WARNING: this is a utf-8 variant and NOT an ASCII ampersand. Please do not edit.
|
||||
$old_address = str_replace('@', '@', $old_address);
|
||||
}
|
||||
|
@ -76,20 +82,20 @@ class Import extends \Zotlabs\Web\Controller {
|
|||
$servername = substr($old_address,strpos($old_address,'@')+1);
|
||||
|
||||
$api_path = probe_api_path($servername);
|
||||
if(! $api_path) {
|
||||
if (! $api_path) {
|
||||
notice( t('Unable to download data from old server') . EOL);
|
||||
return;
|
||||
}
|
||||
|
||||
$api_path .= 'channel/export/basic?f=&channel=' . $channelname;
|
||||
if($import_posts)
|
||||
if ($import_posts) {
|
||||
$api_path .= '&posts=1';
|
||||
|
||||
}
|
||||
$binary = false;
|
||||
$redirects = 0;
|
||||
$opts = array('http_auth' => $email . ':' . $password);
|
||||
$opts = [ 'http_auth' => $email . ':' . $password ];
|
||||
$ret = z_fetch_url($api_path, $binary, $redirects, $opts);
|
||||
if($ret['success']) {
|
||||
if ($ret['success']) {
|
||||
$data = $ret['body'];
|
||||
}
|
||||
else {
|
||||
|
@ -109,49 +115,51 @@ class Import extends \Zotlabs\Web\Controller {
|
|||
//logger('import: data: ' . print_r($data,true));
|
||||
//print_r($data);
|
||||
|
||||
if(! array_key_exists('compatibility',$data)) {
|
||||
if (! array_key_exists('compatibility',$data)) {
|
||||
call_hooks('import_foreign_channel_data',$data);
|
||||
if($data['handled'])
|
||||
if ($data['handled']) {
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
$codebase = ((defined('NOMADIC')) ? 'zap' : 'osada');
|
||||
|
||||
if((! array_path_exists('compatibility/codebase',$data)) || $data['compatibility']['codebase'] !== $codebase) {
|
||||
if ((! array_path_exists('compatibility/codebase',$data)) || $data['compatibility']['codebase'] !== $codebase) {
|
||||
notice('Data export format is not compatible with this software');
|
||||
return;
|
||||
}
|
||||
|
||||
if($moving)
|
||||
if ($moving) {
|
||||
$seize = 1;
|
||||
}
|
||||
|
||||
// import channel
|
||||
|
||||
$relocate = ((array_key_exists('relocate',$data)) ? $data['relocate'] : null);
|
||||
|
||||
if(array_key_exists('channel',$data)) {
|
||||
if (array_key_exists('channel',$data)) {
|
||||
|
||||
$max_identities = account_service_class_fetch($account_id,'total_identities');
|
||||
|
||||
if($max_identities !== false) {
|
||||
if ($max_identities !== false) {
|
||||
$r = q("select channel_id from channel where channel_account_id = %d",
|
||||
intval($account_id)
|
||||
);
|
||||
if($r && count($r) > $max_identities) {
|
||||
if ($r && count($r) > $max_identities) {
|
||||
notice( sprintf( t('Your service plan only allows %d channels.'), $max_identities) . EOL);
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
if($newname) {
|
||||
if ($newname) {
|
||||
$x = false;
|
||||
|
||||
if(get_config('system','unicode_usernames')) {
|
||||
if (get_config('system','unicode_usernames')) {
|
||||
$x = punify(mb_strtolower($newname));
|
||||
}
|
||||
|
||||
if((! $x) || strlen($x) > 64) {
|
||||
$x = strtolower(\URLify::transliterate($newname));
|
||||
if ((! $x) || strlen($x) > 64) {
|
||||
$x = strtolower(URLify::transliterate($newname));
|
||||
}
|
||||
$newname = $x;
|
||||
}
|
||||
|
@ -160,77 +168,37 @@ class Import extends \Zotlabs\Web\Controller {
|
|||
}
|
||||
else {
|
||||
$moving = false;
|
||||
$channel = \App::get_channel();
|
||||
$channel = App::get_channel();
|
||||
}
|
||||
|
||||
if(! $channel) {
|
||||
logger('Channel not found. ', print_r($channel,true));
|
||||
if (! $channel) {
|
||||
logger('Channel not found. ' . print_r($channel,true));
|
||||
notice( t('No channel. Import failed.') . EOL);
|
||||
return;
|
||||
}
|
||||
|
||||
if(is_array($data['config'])) {
|
||||
if (is_array($data['config'])) {
|
||||
import_config($channel,$data['config']);
|
||||
}
|
||||
|
||||
logger('import step 2');
|
||||
|
||||
if(array_key_exists('channel',$data)) {
|
||||
if($data['photo']) {
|
||||
require_once('include/photo_factory.php');
|
||||
if (array_key_exists('channel',$data)) {
|
||||
if ($data['photo']) {
|
||||
import_channel_photo(base64url_decode($data['photo']['data']),$data['photo']['type'],$account_id,$channel['channel_id']);
|
||||
}
|
||||
|
||||
if(is_array($data['profile']))
|
||||
if (is_array($data['profile'])) {
|
||||
import_profiles($channel,$data['profile']);
|
||||
}
|
||||
}
|
||||
|
||||
logger('import step 3');
|
||||
|
||||
if(is_array($data['hubloc'])) {
|
||||
import_hublocs($channel,$data['hubloc'],$seize,$moving);
|
||||
}
|
||||
|
||||
logger('import step 4');
|
||||
|
||||
// create new hubloc for the new channel at this site
|
||||
|
||||
if(array_key_exists('channel',$data)) {
|
||||
$r = hubloc_store_lowlevel(
|
||||
[
|
||||
'hubloc_guid' => $channel['channel_guid'],
|
||||
'hubloc_guid_sig' => $channel['channel_guid_sig'],
|
||||
'hubloc_id_url' => channel_url($channel),
|
||||
'hubloc_hash' => $channel['channel_hash'],
|
||||
'hubloc_addr' => channel_reddress($channel),
|
||||
'hubloc_network' => 'zot6',
|
||||
'hubloc_primary' => (($seize) ? 1 : 0),
|
||||
'hubloc_url' => z_root(),
|
||||
'hubloc_url_sig' => Libzot::sign(z_root(),$channel['channel_prvkey']),
|
||||
'hubloc_site_id' => Libzot::make_xchan_hash(z_root(),get_config('system','pubkey')),
|
||||
'hubloc_host' => \App::get_hostname(),
|
||||
'hubloc_callback' => z_root() . '/zot',
|
||||
'hubloc_sitekey' => get_config('system','pubkey'),
|
||||
'hubloc_updated' => datetime_convert()
|
||||
]
|
||||
);
|
||||
|
||||
// reset the original primary hubloc if it is being seized
|
||||
|
||||
if($seize) {
|
||||
$r = q("update hubloc set hubloc_primary = 0 where hubloc_primary = 1 and hubloc_hash = '%s' and hubloc_url != '%s' ",
|
||||
dbesc($channel['channel_hash']),
|
||||
dbesc(z_root())
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
logger('import step 5');
|
||||
|
||||
|
||||
// import xchans and contact photos
|
||||
// This *must* be done before importing hublocs
|
||||
|
||||
if(array_key_exists('channel',$data) && $seize) {
|
||||
if (array_key_exists('channel',$data) && $seize) {
|
||||
|
||||
// replace any existing xchan we may have on this site if we're seizing control
|
||||
|
||||
|
@ -259,12 +227,12 @@ class Import extends \Zotlabs\Web\Controller {
|
|||
);
|
||||
}
|
||||
|
||||
logger('import step 6');
|
||||
logger('import step 4');
|
||||
|
||||
// import xchans
|
||||
$xchans = $data['xchan'];
|
||||
if($xchans) {
|
||||
foreach($xchans as $xchan) {
|
||||
if ($xchans) {
|
||||
foreach ($xchans as $xchan) {
|
||||
|
||||
$hash = Libzot::make_xchan_hash($xchan['xchan_guid'],$xchan['xchan_pubkey']);
|
||||
|
||||
|
@ -276,14 +244,13 @@ class Import extends \Zotlabs\Web\Controller {
|
|||
$r = q("select xchan_hash from xchan where xchan_hash = '%s' limit 1",
|
||||
dbesc($xchan['xchan_hash'])
|
||||
);
|
||||
if($r)
|
||||
if ($r) {
|
||||
continue;
|
||||
|
||||
}
|
||||
xchan_store_lowlevel($xchan);
|
||||
|
||||
require_once('include/photo_factory.php');
|
||||
|
||||
if($xchan['xchan_hash'] === $channel['channel_hash']) {
|
||||
if ($xchan['xchan_hash'] === $channel['channel_hash']) {
|
||||
$r = q("update xchan set xchan_photo_l = '%s', xchan_photo_m = '%s', xchan_photo_s = '%s' where xchan_hash = '%s'",
|
||||
dbesc(z_root() . '/photo/profile/l/' . $channel['channel_id']),
|
||||
dbesc(z_root() . '/photo/profile/m/' . $channel['channel_id']),
|
||||
|
@ -293,10 +260,12 @@ class Import extends \Zotlabs\Web\Controller {
|
|||
}
|
||||
else {
|
||||
$photos = import_xchan_photo($xchan['xchan_photo_l'],$xchan['xchan_hash']);
|
||||
if($photos[4])
|
||||
if ($photos[4]) {
|
||||
$photodate = NULL_DATE;
|
||||
else
|
||||
}
|
||||
else {
|
||||
$photodate = $xchan['xchan_photo_date'];
|
||||
}
|
||||
|
||||
$r = q("update xchan set xchan_photo_l = '%s', xchan_photo_m = '%s', xchan_photo_s = '%s', xchan_photo_mimetype = '%s', xchan_photo_date = '%s' where xchan_hash = '%s'",
|
||||
dbesc($photos[0]),
|
||||
|
@ -309,22 +278,66 @@ class Import extends \Zotlabs\Web\Controller {
|
|||
}
|
||||
}
|
||||
|
||||
logger('import step 7');
|
||||
logger('import step 5');
|
||||
}
|
||||
|
||||
|
||||
logger('import step 6');
|
||||
|
||||
|
||||
if (is_array($data['hubloc'])) {
|
||||
import_hublocs($channel,$data['hubloc'],$seize,$moving);
|
||||
}
|
||||
|
||||
logger('import step 7');
|
||||
|
||||
// create new hubloc for the new channel at this site
|
||||
|
||||
if (array_key_exists('channel',$data)) {
|
||||
$r = hubloc_store_lowlevel(
|
||||
[
|
||||
'hubloc_guid' => $channel['channel_guid'],
|
||||
'hubloc_guid_sig' => $channel['channel_guid_sig'],
|
||||
'hubloc_id_url' => channel_url($channel),
|
||||
'hubloc_hash' => $channel['channel_hash'],
|
||||
'hubloc_addr' => channel_reddress($channel),
|
||||
'hubloc_network' => 'zot6',
|
||||
'hubloc_primary' => (($seize) ? 1 : 0),
|
||||
'hubloc_url' => z_root(),
|
||||
'hubloc_url_sig' => Libzot::sign(z_root(),$channel['channel_prvkey']),
|
||||
'hubloc_site_id' => Libzot::make_xchan_hash(z_root(),get_config('system','pubkey')),
|
||||
'hubloc_host' => App::get_hostname(),
|
||||
'hubloc_callback' => z_root() . '/zot',
|
||||
'hubloc_sitekey' => get_config('system','pubkey'),
|
||||
'hubloc_updated' => datetime_convert()
|
||||
]
|
||||
);
|
||||
|
||||
// reset the original primary hubloc if it is being seized
|
||||
|
||||
if ($seize) {
|
||||
$r = q("update hubloc set hubloc_primary = 0 where hubloc_primary = 1 and hubloc_hash = '%s' and hubloc_url != '%s' ",
|
||||
dbesc($channel['channel_hash']),
|
||||
dbesc(z_root())
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
$friends = 0;
|
||||
$feeds = 0;
|
||||
|
||||
// import contacts
|
||||
$abooks = $data['abook'];
|
||||
if($abooks) {
|
||||
foreach($abooks as $abook) {
|
||||
if ($abooks) {
|
||||
foreach ($abooks as $abook) {
|
||||
|
||||
$abook_copy = $abook;
|
||||
|
||||
$abconfig = null;
|
||||
if(array_key_exists('abconfig',$abook) && is_array($abook['abconfig']) && count($abook['abconfig']))
|
||||
if (array_key_exists('abconfig',$abook) && is_array($abook['abconfig']) && count($abook['abconfig'])) {
|
||||
$abconfig = $abook['abconfig'];
|
||||
}
|
||||
|
||||
unset($abook['abook_id']);
|
||||
unset($abook['abook_rating']);
|
||||
|
@ -336,16 +349,6 @@ class Import extends \Zotlabs\Web\Controller {
|
|||
|
||||
$abook['abook_account'] = $account_id;
|
||||
$abook['abook_channel'] = $channel['channel_id'];
|
||||
if(! array_key_exists('abook_blocked',$abook)) {
|
||||
$abook['abook_blocked'] = (($abook['abook_flags'] & 0x0001 ) ? 1 : 0);
|
||||
$abook['abook_ignored'] = (($abook['abook_flags'] & 0x0002 ) ? 1 : 0);
|
||||
$abook['abook_hidden'] = (($abook['abook_flags'] & 0x0004 ) ? 1 : 0);
|
||||
$abook['abook_archived'] = (($abook['abook_flags'] & 0x0008 ) ? 1 : 0);
|
||||
$abook['abook_pending'] = (($abook['abook_flags'] & 0x0010 ) ? 1 : 0);
|
||||
$abook['abook_unconnected'] = (($abook['abook_flags'] & 0x0020 ) ? 1 : 0);
|
||||
$abook['abook_self'] = (($abook['abook_flags'] & 0x0080 ) ? 1 : 0);
|
||||
$abook['abook_feed'] = (($abook['abook_flags'] & 0x0100 ) ? 1 : 0);
|
||||
}
|
||||
|
||||
if(array_key_exists('abook_instance',$abook) && $abook['abook_instance'] && strpos($abook['abook_instance'],z_root()) === false) {
|
||||
$abook['abook_not_here'] = 1;
|
||||
|
@ -377,7 +380,12 @@ class Import extends \Zotlabs\Web\Controller {
|
|||
intval($channel['channel_id'])
|
||||
);
|
||||
if($r) {
|
||||
foreach($abook as $k => $v) {
|
||||
$columns = db_columns('abook');
|
||||
|
||||
foreach ($abook as $k => $v) {
|
||||
if (! in_array($k,$columns)) {
|
||||
continue;
|
||||
}
|
||||
$r = q("UPDATE abook SET " . TQUOT . "%s" . TQUOT . " = '%s' WHERE abook_xchan = '%s' AND abook_channel = %d",
|
||||
dbesc($k),
|
||||
dbesc($v),
|
||||
|
@ -390,13 +398,13 @@ class Import extends \Zotlabs\Web\Controller {
|
|||
abook_store_lowlevel($abook);
|
||||
|
||||
$friends ++;
|
||||
if(intval($abook['abook_feed']))
|
||||
if (intval($abook['abook_feed'])) {
|
||||
$feeds ++;
|
||||
}
|
||||
}
|
||||
|
||||
if($abconfig) {
|
||||
/// @FIXME does not handle sync of del_abconfig
|
||||
foreach($abconfig as $abc) {
|
||||
if ($abconfig) {
|
||||
foreach ($abconfig as $abc) {
|
||||
set_abconfig($channel['channel_id'],$abc['xchan'],$abc['cat'],$abc['k'],$abc['v']);
|
||||
}
|
||||
}
|
||||
|
@ -407,11 +415,11 @@ class Import extends \Zotlabs\Web\Controller {
|
|||
|
||||
// import groups
|
||||
$groups = $data['group'];
|
||||
if($groups) {
|
||||
if ($groups) {
|
||||
$saved = array();
|
||||
foreach($groups as $group) {
|
||||
$saved[$group['hash']] = array('old' => $group['id']);
|
||||
if(array_key_exists('name', $group)) {
|
||||
foreach ($groups as $group) {
|
||||
$saved[$group['hash']] = [ 'old' => $group['id'] ];
|
||||
if (array_key_exists('name', $group)) {
|
||||
$group['gname'] = $group['name'];
|
||||
unset($group['name']);
|
||||
}
|
||||
|
@ -432,11 +440,11 @@ class Import extends \Zotlabs\Web\Controller {
|
|||
|
||||
// import group members
|
||||
$group_members = $data['group_member'];
|
||||
if($group_members) {
|
||||
foreach($group_members as $group_member) {
|
||||
if ($group_members) {
|
||||
foreach ($group_members as $group_member) {
|
||||
unset($group_member['id']);
|
||||
$group_member['uid'] = $channel['channel_id'];
|
||||
foreach($saved as $x) {
|
||||
foreach ($saved as $x) {
|
||||
if($x['old'] == $group_member['gid'])
|
||||
$group_member['gid'] = $x['new'];
|
||||
}
|
||||
|
@ -446,67 +454,63 @@ class Import extends \Zotlabs\Web\Controller {
|
|||
|
||||
logger('import step 9');
|
||||
|
||||
if(is_array($data['xign']))
|
||||
if (is_array($data['xign'])) {
|
||||
import_xign($channel,$data['xign']);
|
||||
|
||||
if(is_array($data['obj']))
|
||||
}
|
||||
if (is_array($data['obj'])) {
|
||||
import_objs($channel,$data['obj']);
|
||||
|
||||
if(is_array($data['likes']))
|
||||
}
|
||||
if (is_array($data['likes'])) {
|
||||
import_likes($channel,$data['likes']);
|
||||
|
||||
if(is_array($data['app']))
|
||||
}
|
||||
if (is_array($data['app'])) {
|
||||
import_apps($channel,$data['app']);
|
||||
|
||||
if(is_array($data['sysapp']))
|
||||
}
|
||||
if (is_array($data['sysapp'])) {
|
||||
import_sysapps($channel,$data['sysapp']);
|
||||
|
||||
if(is_array($data['chatroom']))
|
||||
}
|
||||
if (is_array($data['chatroom'])) {
|
||||
import_chatrooms($channel,$data['chatroom']);
|
||||
|
||||
if(is_array($data['conv']))
|
||||
}
|
||||
if (is_array($data['conv'])) {
|
||||
import_conv($channel,$data['conv']);
|
||||
|
||||
if(is_array($data['mail']))
|
||||
}
|
||||
if (is_array($data['mail'])) {
|
||||
import_mail($channel,$data['mail']);
|
||||
|
||||
if(is_array($data['event']))
|
||||
}
|
||||
if (is_array($data['event'])) {
|
||||
import_events($channel,$data['event']);
|
||||
|
||||
if(is_array($data['event_item']))
|
||||
}
|
||||
if (is_array($data['event_item'])) {
|
||||
import_items($channel,$data['event_item'],false,$relocate);
|
||||
|
||||
if(is_array($data['menu']))
|
||||
}
|
||||
if (is_array($data['menu'])) {
|
||||
import_menus($channel,$data['menu']);
|
||||
|
||||
if(is_array($data['wiki']))
|
||||
}
|
||||
if (is_array($data['wiki'])) {
|
||||
import_items($channel,$data['wiki'],false,$relocate);
|
||||
|
||||
if(is_array($data['webpages']))
|
||||
}
|
||||
if (is_array($data['webpages'])) {
|
||||
import_items($channel,$data['webpages'],false,$relocate);
|
||||
|
||||
}
|
||||
$addon = array('channel' => $channel,'data' => $data);
|
||||
call_hooks('import_channel',$addon);
|
||||
|
||||
$saved_notification_flags = notifications_off($channel['channel_id']);
|
||||
|
||||
if($import_posts && array_key_exists('item',$data) && $data['item'])
|
||||
if ($import_posts && array_key_exists('item',$data) && $data['item']) {
|
||||
import_items($channel,$data['item'],false,$relocate);
|
||||
|
||||
}
|
||||
notifications_on($channel['channel_id'],$saved_notification_flags);
|
||||
|
||||
if(array_key_exists('item_id',$data) && $data['item_id'])
|
||||
import_item_ids($channel,$data['item_id']);
|
||||
|
||||
// send out refresh requests
|
||||
// notify old server that it may no longer be primary.
|
||||
|
||||
\Zotlabs\Daemon\Master::Summon(array('Notifier','refresh_all',$channel['channel_id']));
|
||||
Master::Summon( [ 'Notifier','refresh_all',$channel['channel_id'] ] );
|
||||
|
||||
// This will indirectly perform a refresh_all *and* update the directory
|
||||
|
||||
\Zotlabs\Daemon\Master::Summon(array('Directory', $channel['channel_id']));
|
||||
|
||||
Master::Summon( [ 'Directory', $channel['channel_id'] ] );
|
||||
|
||||
notice( t('Import completed.') . EOL);
|
||||
|
||||
|
@ -518,13 +522,14 @@ class Import extends \Zotlabs\Web\Controller {
|
|||
/**
|
||||
* @brief Handle POST action on channel import page.
|
||||
*/
|
||||
|
||||
function post() {
|
||||
$account_id = get_account_id();
|
||||
if(! $account_id)
|
||||
if (! $account_id) {
|
||||
return;
|
||||
}
|
||||
|
||||
check_form_security_token_redirectOnErr('/import', 'channel_import');
|
||||
|
||||
$this->import_account($account_id);
|
||||
}
|
||||
|
||||
|
@ -533,19 +538,19 @@ class Import extends \Zotlabs\Web\Controller {
|
|||
*
|
||||
* @return string with parsed HTML.
|
||||
*/
|
||||
|
||||
function get() {
|
||||
|
||||
if(! get_account_id()) {
|
||||
if (! get_account_id()) {
|
||||
notice( t('You must be logged in to use this feature.') . EOL);
|
||||
return '';
|
||||
return EMPTY_STR;
|
||||
}
|
||||
|
||||
$o = replace_macros(get_markup_template('channel_import.tpl'),array(
|
||||
return replace_macros(get_markup_template('channel_import.tpl'), [
|
||||
'$title' => t('Import Channel'),
|
||||
'$desc' => t('Use this form to import an existing channel from a different server/hub. You may retrieve the channel identity from the old server/hub via the network or provide an export file.'),
|
||||
'$desc' => t('Use this form to import an existing channel from a different server. You may retrieve the channel identity from the old server via the network or provide an export file.'),
|
||||
'$label_filename' => t('File to Upload'),
|
||||
'$choice' => t('Or provide the old server/hub details'),
|
||||
|
||||
'$choice' => t('Or provide the old server details'),
|
||||
'$old_address' => [ 'old_address', t('Your old identity address (xyz@example.com)'), '', ''],
|
||||
'$email' => [ 'email', t('Your old login email address'), '', '' ],
|
||||
'$password' => [ 'password', t('Your old login password'), '', '' ],
|
||||
|
@ -561,9 +566,7 @@ class Import extends \Zotlabs\Web\Controller {
|
|||
|
||||
'$form_security_token' => get_form_security_token('channel_import'),
|
||||
'$submit' => t('Submit')
|
||||
));
|
||||
|
||||
return $o;
|
||||
]);
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -101,10 +101,6 @@ class Import_items extends \Zotlabs\Web\Controller {
|
|||
import_items($channel,$data['item'],false,((array_key_exists('relocate',$data)) ? $data['relocate'] : null));
|
||||
}
|
||||
|
||||
if(array_key_exists('item_id',$data) && $data['item_id']) {
|
||||
import_item_ids($channel,$data['item_id']);
|
||||
}
|
||||
|
||||
info( t('Import completed') . EOL);
|
||||
}
|
||||
|
||||
|
|
|
@ -1314,6 +1314,12 @@ function z_status_editor($a, $x, $popup = false) {
|
|||
$defexpire = ((($z = get_pconfig($x['profile_uid'], 'system', 'default_post_expire')) && (! $webpage)) ? $z : '');
|
||||
if($defexpire)
|
||||
$defexpire = datetime_convert('UTC',date_default_timezone_get(),$defexpire,'Y-m-d H:i');
|
||||
else {
|
||||
$defexpire = ((($z = intval(get_pconfig($x['profile_uid'], 'system', 'selfexpiredays'))) && (! $webpage)) ? $z : '');
|
||||
if($defexpire)
|
||||
$defexpire = datetime_convert('UTC',date_default_timezone_get(),"now + $defexpire days",'Y-m-d H:i');
|
||||
}
|
||||
|
||||
|
||||
$defpublish = ((($z = get_pconfig($x['profile_uid'], 'system', 'default_post_publish')) && (! $webpage)) ? $z : '');
|
||||
if($defpublish)
|
||||
|
|
File diff suppressed because it is too large
Load diff
|
@ -264,7 +264,7 @@
|
|||
</div>
|
||||
<div class="modal-body form-group" style="width:90%">
|
||||
<div class="date">
|
||||
<input type="text" placeholder="yyyy-mm-dd HH:MM" name="start_text" id="expiration-date" class="form-control" />
|
||||
<input type="text" placeholder="yyyy-mm-dd HH:MM" name="start_text" value="{{$defexpire}}" id="expiration-date" class="form-control" />
|
||||
</div>
|
||||
<script>
|
||||
$(function () {
|
||||
|
|
Loading…
Reference in a new issue