diff options
-rw-r--r-- | include/widgets.php | 7 | ||||
-rw-r--r-- | mod/uexport.php | 39 | ||||
-rw-r--r-- | view/tpl/uexport.tpl | 9 |
3 files changed, 37 insertions, 18 deletions
diff --git a/include/widgets.php b/include/widgets.php index b13be4922..71284f6ad 100644 --- a/include/widgets.php +++ b/include/widgets.php @@ -496,15 +496,10 @@ function widget_settings_menu($arr) { array( 'label' => t('Export channel'), - 'url' => $a->get_baseurl(true) . '/uexport/basic', + 'url' => $a->get_baseurl(true) . '/uexport', 'selected' => '' ), - array( - 'label' => t('Export content'), - 'url' => $a->get_baseurl(true) . '/uexport/complete', - 'selected' => '' - ), ); if($role === false || $role === 'custom') { diff --git a/mod/uexport.php b/mod/uexport.php index 6304115c8..4c1f6bee2 100644 --- a/mod/uexport.php +++ b/mod/uexport.php @@ -4,22 +4,37 @@ function uexport_init(&$a) { if(! local_user()) killme(); - $channel = $a->get_channel(); + if(argc() > 1) { + $channel = $a->get_channel(); - require_once('include/identity.php'); + require_once('include/identity.php'); - header('content-type: application/octet_stream'); - header('content-disposition: attachment; filename="' . $channel['channel_address'] . '.json"' ); + header('content-type: application/octet_stream'); + header('content-disposition: attachment; filename="' . $channel['channel_address'] . '.json"' ); - if(argc() > 1 && argv(1) === 'basic') { - echo json_encode(identity_basic_export(local_user())); - killme(); - } + if(argc() > 1 && argv(1) === 'basic') { + echo json_encode(identity_basic_export(local_user())); + killme(); + } - if(argc() > 1 && argv(1) === 'complete') { - echo json_encode(identity_basic_export(local_user(),true)); - killme(); + // FIXME - this basically doesn't work in the wild with a channel more than a few months old due to memory and execution time limits. + // It probably needs to be built at the CLI and offered to download as a tarball. Maybe stored in the members dav. + + if(argc() > 1 && argv(1) === 'complete') { + echo json_encode(identity_basic_export(local_user(),true)); + killme(); + } } +} -}
\ No newline at end of file +function uexport_content(&$a) { + $o = replace_macros(get_markup_template('uexport.tpl'), array( + '$title' => t('Export Channel'), + '$basictitle' => t('Export Channel'), + '$basic' => t('Export your basic channel information to a small file. This acts as a backup of your connections, permissions, profile and basic data, which can be used to import your data to a new hub, but does not contain your content.'), + '$fulltitle' => t('Export Content'), + '$full' => t('Export your channel information and all the content to a JSON backup. This backs up all of your connections, permissions, profile data and all of your content, but is generally not suitable for importing a channel to a new site as this file may be VERY large. Please be patient - it may take several minutes for this download to begin.') + )); +return $o; +} diff --git a/view/tpl/uexport.tpl b/view/tpl/uexport.tpl new file mode 100644 index 000000000..5de995ba0 --- /dev/null +++ b/view/tpl/uexport.tpl @@ -0,0 +1,9 @@ +<div class="generic-content-wrapper"> +<h1>{{$title}}</h1> +<b><a href="uexport/basic">{{$basictitle}}</a></b></p> +<p>{{$basic}}</p> + +<p><b><a href="uexport/complete">{{$fulltitle}}</a></b></p> +<p>{{$full}}</p> + +</div> |