X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=langfilter%2Flangfilter.php;h=9d7b20a92c7ba9569517531f6dc08b3f382b539b;hb=34437e368f24adbcd418bd82e6de41d839b1bc05;hp=74209cb002c94019fe30a6f372b2978f195ea896;hpb=76ecff195f99c428d437de826c05034e5b53fd1f;p=friendica-addons.git diff --git a/langfilter/langfilter.php b/langfilter/langfilter.php index 74209cb0..9d7b20a9 100644 --- a/langfilter/langfilter.php +++ b/langfilter/langfilter.php @@ -31,7 +31,7 @@ function langfilter_install() * 3rd parse a SMARTY3 template, replacing some translateable strings for the form */ -function langfilter_addon_settings(App $a, &$s) +function langfilter_addon_settings(App $a, array &$data) { if (!local_user()) { return; @@ -40,23 +40,25 @@ function langfilter_addon_settings(App $a, &$s) $enabled = DI::pConfig()->get(local_user(), 'langfilter', 'enable', !DI::pConfig()->get(local_user(), 'langfilter', 'disable')); - $enable_checked = $enabled ? ' checked="checked"' : ''; - $languages = DI::pConfig()->get(local_user(), 'langfilter', 'languages'); - $minconfidence = DI::pConfig()->get(local_user(), 'langfilter', 'minconfidence', 0) * 100; - $minlength = DI::pConfig()->get(local_user(), 'langfilter', 'minlength' , 32); + $languages = DI::pConfig()->get(local_user(), 'langfilter', 'languages'); + $minconfidence = DI::pConfig()->get(local_user(), 'langfilter', 'minconfidence', 0) * 100; + $minlength = DI::pConfig()->get(local_user(), 'langfilter', 'minlength', 32); - $t = Renderer::getMarkupTemplate("settings.tpl", "addon/langfilter/"); - $s .= Renderer::replaceMacros($t, [ - '$title' => DI::l10n()->t("Language Filter"), - '$intro' => DI::l10n()->t('This addon tries to identify the language posts are writen in. If it does not match any language specifed below, posts will be hidden by collapsing them.'), - '$enabled' => ['langfilter_enable', DI::l10n()->t('Use the language filter'), $enable_checked, ''], + $t = Renderer::getMarkupTemplate('settings.tpl', 'addon/langfilter/'); + $html = Renderer::replaceMacros($t, [ + '$intro' => DI::l10n()->t('This addon tries to identify the language posts are written in. If it does not match any language specified below, posts will be hidden by collapsing them.'), + '$enabled' => ['langfilter_enable', DI::l10n()->t('Use the language filter'), $enabled], '$languages' => ['langfilter_languages', DI::l10n()->t('Able to read'), $languages, DI::l10n()->t('List of abbreviations (ISO 639-1 codes) for languages you speak, comma separated. For example "de,it".')], '$minconfidence' => ['langfilter_minconfidence', DI::l10n()->t('Minimum confidence in language detection'), $minconfidence, DI::l10n()->t('Minimum confidence in language detection being correct, from 0 to 100. Posts will not be filtered when the confidence of language detection is below this percent value.')], '$minlength' => ['langfilter_minlength', DI::l10n()->t('Minimum length of message body'), $minlength, DI::l10n()->t('Minimum number of characters in message body for filter to be used. Posts shorter than this will not be filtered. Note: Language detection is unreliable for short content (<200 characters).')], - '$submit' => DI::l10n()->t('Save Settings'), ]); - return; + $data = [ + 'addon' => 'langfilter', + 'title' => DI::l10n()->t('Language Filter'), + 'html' => $html, + 'submit' => ['langfilter-settings-submit' => DI::l10n()->t('Save Settings')], + ]; } /* Save the settings @@ -105,7 +107,7 @@ function langfilter_prepare_body_content_filter(App $a, &$hook_data) // Never filter own messages // TODO: find a better way to extract this - $logged_user_profile = DI::baseUrl()->get() . '/profile/' . $a->user['nickname']; + $logged_user_profile = DI::baseUrl()->get() . '/profile/' . $a->getLoggedInUserNickname(); if ($logged_user_profile == $hook_data['item']['author-link']) { return; } @@ -117,7 +119,13 @@ function langfilter_prepare_body_content_filter(App $a, &$hook_data) return; } - $naked_body = BBCode::toPlaintext($hook_data['item']['body'], false); + $naked_body = strip_tags( + $hook_data['item']['rendered-html'] + ??''?: // Equivalent of !empty() + BBCode::convert($hook_data['item']['body'], false, BBCode::INTERNAL, true) + ); + + $naked_body = preg_replace('#\s+#', ' ', trim($naked_body)); // Don't filter if body lenght is below minimum $minlen = DI::pConfig()->get(local_user(), 'langfilter', 'minlength', 32);