X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=diaspora%2Fdiaspora.php;h=599e52239d1c5b0e7a91668ada3325d2a1537c7a;hb=af10b60e97b94ba5e8bf60195038c51433966e08;hp=380a4df8afac96f60780adb5e263ea159637ed70;hpb=471bcc1b6372841856882427bea9b76aed367533;p=friendica-addons.git diff --git a/diaspora/diaspora.php b/diaspora/diaspora.php index 380a4df8..599e5223 100644 --- a/diaspora/diaspora.php +++ b/diaspora/diaspora.php @@ -13,9 +13,12 @@ use Friendica\App; use Friendica\Content\Text\BBCode; use Friendica\Core\Hook; use Friendica\Core\Logger; +use Friendica\Core\Renderer; +use Friendica\Core\Session; use Friendica\Database\DBA; use Friendica\Core\Worker; use Friendica\DI; +use Friendica\Model\Post; function diaspora_install() { @@ -27,16 +30,6 @@ function diaspora_install() Hook::register('connector_settings_post', 'addon/diaspora/diaspora.php', 'diaspora_settings_post'); } -function diaspora_uninstall() -{ - Hook::unregister('hook_fork', 'addon/diaspora/diaspora.php', 'diaspora_hook_fork'); - Hook::unregister('post_local', 'addon/diaspora/diaspora.php', 'diaspora_post_local'); - Hook::unregister('notifier_normal', 'addon/diaspora/diaspora.php', 'diaspora_send'); - Hook::unregister('jot_networks', 'addon/diaspora/diaspora.php', 'diaspora_jot_nets'); - Hook::unregister('connector_settings', 'addon/diaspora/diaspora.php', 'diaspora_settings'); - Hook::unregister('connector_settings_post', 'addon/diaspora/diaspora.php', 'diaspora_settings_post'); -} - function diaspora_jot_nets(App $a, array &$jotnets_fields) { if (!local_user()) { @@ -61,121 +54,81 @@ function diaspora_settings(App $a, &$s) return; } - /* Add our stylesheet to the page so we can make our settings look nice */ - - DI::page()['htmlhead'] .= '' . "\r\n"; - /* Get the current state of our config variables */ $enabled = DI::pConfig()->get(local_user(),'diaspora','post'); - $checked = (($enabled) ? ' checked="checked" ' : ''); - $css = (($enabled) ? '' : '-disabled'); - $def_enabled = DI::pConfig()->get(local_user(),'diaspora','post_by_default'); - $def_checked = (($def_enabled) ? ' checked="checked" ' : ''); - $handle = DI::pConfig()->get(local_user(), 'diaspora', 'handle'); $password = DI::pConfig()->get(local_user(), 'diaspora', 'password'); $aspect = DI::pConfig()->get(local_user(),'diaspora','aspect'); - $status = ""; - - $r = q("SELECT `addr` FROM `contact` WHERE `self` AND `uid` = %d", intval(local_user())); - - if (DBA::isResult($r)) { - $status = DI::l10n()->t("Please remember: You can always be reached from Diaspora with your Friendica handle %s. ", $r[0]['addr']); - $status .= DI::l10n()->t('This connector is only meant if you still want to use your old Diaspora account for some time. '); - $status .= DI::l10n()->t('However, it is preferred that you tell your Diaspora contacts the new handle %s instead.', $r[0]['addr']); + $info = ''; + $error = ''; + if (Session::get('my_address')) { + $info = DI::l10n()->t('Please remember: You can always be reached from Diaspora with your Friendica handle %s. ', Session::get('my_address')); + $info .= DI::l10n()->t('This connector is only meant if you still want to use your old Diaspora account for some time. '); + $info .= DI::l10n()->t('However, it is preferred that you tell your Diaspora contacts the new handle %s instead.', Session::get('my_address')); } - $aspects = false; - + $aspect_select = ''; if ($handle && $password) { $conn = new Diaspora_Connection($handle, $password); $conn->logIn(); - $aspects = $conn->getAspects(); - - if (!$aspects) { - $status = DI::l10n()->t("Can't login to your Diaspora account. Please check handle (in the format user@domain.tld) and password."); - } - } - - /* Add some HTML to the existing form */ - - $s .= ''; - $s .= '

'. DI::l10n()->t('Diaspora Export').'

'; - $s .= '
'; - $s .= ''; - + DI::page()->registerStylesheet('addon/diaspora/diaspora.css'); + + $t = Renderer::getMarkupTemplate('settings.tpl', 'addon/diaspora/'); + $s .= Renderer::replaceMacros($t, [ + '$header' => DI::l10n()->t('Diaspora Export'), + '$info_header' => DI::l10n()->t('Information'), + '$error_header' => DI::l10n()->t('Error'), + '$submit' => DI::l10n()->t('Save Settings'), + '$info' => $info, + '$error' => $error, + '$enabled' => $enabled, + '$enabled_checkbox' => ['enabled', DI::l10n()->t('Enable Diaspora Post Addon'), $enabled], + '$handle' => ['handle', DI::l10n()->t('Diaspora handle'), $handle, null, null, 'placeholder="user@domain.tld"'], + '$password' => ['password', DI::l10n()->t('Diaspora password'), '', DI::l10n()->t('Privacy notice: Your Diaspora password will be stored unencrypted to authenticate you with your Diaspora pod. This means your Friendica node administrator can have access to it.')], + '$aspect_select' => $aspect_select, + '$post_by_default' => ['post_by_default', DI::l10n()->t('Post to Diaspora by default'), $def_enabled], + ]); } function diaspora_settings_post(App $a, &$b) { if (!empty($_POST['diaspora-submit'])) { - DI::pConfig()->set(local_user(),'diaspora', 'post' , intval($_POST['diaspora'])); - DI::pConfig()->set(local_user(),'diaspora', 'post_by_default', intval($_POST['diaspora_bydefault'])); - DI::pConfig()->set(local_user(),'diaspora', 'handle' , trim($_POST['handle'])); - DI::pConfig()->set(local_user(),'diaspora', 'password' , trim($_POST['password'])); - DI::pConfig()->set(local_user(),'diaspora', 'aspect' , trim($_POST['aspect'])); + DI::pConfig()->set(local_user(),'diaspora', 'post' , intval($_POST['enabled'])); + if (intval($_POST['enabled'])) { + if (isset($_POST['handle'])) { + DI::pConfig()->set(local_user(),'diaspora', 'handle' , trim($_POST['handle'])); + DI::pConfig()->set(local_user(),'diaspora', 'password' , trim($_POST['password'])); + } + if (!empty($_POST['aspect'])) { + DI::pConfig()->set(local_user(),'diaspora', 'aspect' , trim($_POST['aspect'])); + DI::pConfig()->set(local_user(),'diaspora', 'post_by_default', intval($_POST['post_by_default'])); + } + } else { + DI::pConfig()->delete(local_user(), 'diaspora', 'password'); + } } } @@ -245,6 +198,8 @@ function diaspora_send(App $a, array &$b) return; } + $b['body'] = Post\Media::addAttachmentsToBody($b['uri-id'], $b['body']); + // Dont't post if the post doesn't belong to us. // This is a check for forum postings $self = DBA::selectFirst('contact', ['id'], ['uid' => $b['uid'], 'self' => true]);