X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=src%2FModule%2FSettings%2FUserExport.php;h=132505371ecbd8477d91d68812c2e545cacb3d69;hb=c6b45a958e3b09bc8f3950a718c181dfc9e0b910;hp=1b7c723a7277a8012af31b32d64cf50efefb0689;hpb=b9dba631aadf6c25a97b679808c684276b3dd76a;p=friendica.git diff --git a/src/Module/Settings/UserExport.php b/src/Module/Settings/UserExport.php index 1b7c723a72..132505371e 100644 --- a/src/Module/Settings/UserExport.php +++ b/src/Module/Settings/UserExport.php @@ -1,23 +1,38 @@ . + * */ namespace Friendica\Module\Settings; use Friendica\App; use Friendica\Core\Hook; -use Friendica\Core\L10n; use Friendica\Core\Renderer; use Friendica\Database\DBA; use Friendica\Database\DBStructure; use Friendica\DI; -use Friendica\Module\BaseSettingsModule; +use Friendica\Module\BaseSettings; /** * Module to export user data **/ -class UserExport extends BaseSettingsModule +class UserExport extends BaseSettings { /** * Handle the request to export data. @@ -39,15 +54,15 @@ class UserExport extends BaseSettingsModule * list of array( 'link url', 'link text', 'help text' ) */ $options = [ - ['settings/userexport/account', L10n::t('Export account'), L10n::t('Export your account info and contacts. Use this to make a backup of your account and/or to move it to another server.')], - ['settings/userexport/backup', L10n::t('Export all'), L10n::t("Export your accout info, contacts and all your items as json. Could be a very big file, and could take a lot of time. Use this to make a full backup of your account \x28photos are not exported\x29")], - ['settings/userexport/contact', L10n::t('Export Contacts to CSV'), L10n::t("Export the list of the accounts you are following as CSV file. Compatible to e.g. Mastodon.")], + ['settings/userexport/account', DI::l10n()->t('Export account'), DI::l10n()->t('Export your account info and contacts. Use this to make a backup of your account and/or to move it to another server.')], + ['settings/userexport/backup', DI::l10n()->t('Export all'), DI::l10n()->t("Export your account info, contacts and all your items as json. Could be a very big file, and could take a lot of time. Use this to make a full backup of your account \x28photos are not exported\x29")], + ['settings/userexport/contact', DI::l10n()->t('Export Contacts to CSV'), DI::l10n()->t("Export the list of the accounts you are following as CSV file. Compatible to e.g. Mastodon.")], ]; Hook::callAll('uexport_options', $options); $tpl = Renderer::getMarkupTemplate("settings/userexport.tpl"); return Renderer::replaceMacros($tpl, [ - '$title' => L10n::t('Export personal data'), + '$title' => DI::l10n()->t('Export personal data'), '$options' => $options ]); } @@ -99,14 +114,11 @@ class UserExport extends BaseSettingsModule $rows = DBA::p($query); while ($row = DBA::fetch($rows)) { $p = []; - foreach ($row as $k => $v) { - switch ($dbStructure[$table]['fields'][$k]['type']) { - case 'datetime': - $p[$k] = $v ?? DBA::NULL_DATETIME; - break; - default: - $p[$k] = $v; - break; + foreach ($dbStructure[$table]['fields'] as $column => $field) { + if ($field['type'] == 'datetime') { + $p[$column] = $v ?? DBA::NULL_DATETIME; + } else { + $p[$column] = $v; } } $result[] = $p; @@ -168,7 +180,11 @@ class UserExport extends BaseSettingsModule $profile = self::exportMultiRow( - sprintf("SELECT * FROM `profile` WHERE `uid` = %d ", intval(local_user())) + sprintf("SELECT *, 'default' AS `profile_name`, 1 AS `is-default` FROM `profile` WHERE `uid` = %d ", intval(local_user())) + ); + + $profile_fields = self::exportMultiRow( + sprintf("SELECT * FROM `profile_field` WHERE `uid` = %d ", intval(local_user())) ); $photo = self::exportMultiRow( @@ -197,6 +213,7 @@ class UserExport extends BaseSettingsModule 'user' => $user, 'contact' => $contact, 'profile' => $profile, + 'profile_fields' => $profile_fields, 'photo' => $photo, 'pconfig' => $pconfig, 'group' => $group, @@ -210,7 +227,7 @@ class UserExport extends BaseSettingsModule * echoes account data and items as separated json, one per line * * @param App $a - * @throws Exception + * @throws \Exception */ private static function exportAll(App $a) {