]> git.mxchange.org Git - friendica-addons.git/commitdiff
[blockem] Use content_filter hook
authorHypolite Petovan <mrpetovan@gmail.com>
Sun, 1 Apr 2018 06:31:15 +0000 (02:31 -0400)
committerHypolite Petovan <mrpetovan@gmail.com>
Sun, 1 Apr 2018 06:40:42 +0000 (02:40 -0400)
blockem/blockem.php

index 45272e00628d5dfa6bee3107ddb83a54ed41ebc1..2faa68b6888831445baad217ee778454df38a556 100644 (file)
@@ -12,7 +12,7 @@ use Friendica\Core\PConfig;
 
 function blockem_install()
 {
-       Addon::registerHook('prepare_body', 'addon/blockem/blockem.php', 'blockem_prepare_body');
+       Addon::registerHook('content_filter', 'addon/blockem/blockem.php', 'blockem_content_filter');
        Addon::registerHook('display_item', 'addon/blockem/blockem.php', 'blockem_display_item');
        Addon::registerHook('addon_settings', 'addon/blockem/blockem.php', 'blockem_addon_settings');
        Addon::registerHook('addon_settings_post', 'addon/blockem/blockem.php', 'blockem_addon_settings_post');
@@ -23,6 +23,7 @@ function blockem_install()
 
 function blockem_uninstall()
 {
+       Addon::unregisterHook('content_filter', 'addon/blockem/blockem.php', 'blockem_content_filter');
        Addon::unregisterHook('prepare_body', 'addon/blockem/blockem.php', 'blockem_prepare_body');
        Addon::unregisterHook('display_item', 'addon/blockem/blockem.php', 'blockem_display_item');
        Addon::unregisterHook('addon_settings', 'addon/blockem/blockem.php', 'blockem_addon_settings');
@@ -106,38 +107,33 @@ function blockem_enotify_store(&$a,&$b) {
        }
 }
 
-function blockem_prepare_body(&$a,&$b) {
-
-       if(! local_user())
+function blockem_content_filter(\Friendica\App $a, &$hook_data)
+{
+       if (!local_user()) {
                return;
-
-       $words = null;
-       if(local_user()) {
-               $words = PConfig::get(local_user(),'blockem','words');
        }
-       if($words) {
-               $arr = explode(',',$words);
+
+       $profiles_string = null;
+       if (local_user()) {
+               $profiles_string = PConfig::get(local_user(), 'blockem', 'words');
        }
-       else {
+
+       if ($profiles_string) {
+               $profiles_array = explode(',', $profiles_string);
+       } else {
                return;
        }
 
        $found = false;
-       if(count($arr)) {
-               foreach($arr as $word) {
-                       if(! strlen(trim($word))) {
-                               continue;
-                       }
-
-                       if(link_compare($b['item']['author-link'],$word)) {
-                               $found = true;
-                               break;
-                       }
+       foreach ($profiles_array as $word) {
+               if (link_compare($hook_data['item']['author-link'], trim($word))) {
+                       $found = true;
+                       break;
                }
        }
-       if($found) {
-               $rnd = random_string(8);
-               $b['html'] = '<div id="blockem-wrap-' . $rnd . '" class="fakelink" onclick=openClose(\'blockem-' . $rnd . '\'); >' . L10n::t('Hidden content by %s - Click to open/close', $word) . '</div><div id="blockem-' . $rnd . '" style="display: none; " >' . $b['html'] . '</div>';
+
+       if ($found) {
+               $hook_data['filter_reasons'][] = L10n::t('Filtered user: %s', $hook_data['item']['author-name']);
        }
 }