X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=showmore%2Fshowmore.php;h=f7bb0c505e9ae2e05ad5ba3d9fec19373bf87ec3;hb=f3804ee7ddcaf1d6edee2b1fcc235f024aacee0b;hp=af158a55a3006aa9410df296d6d175acf8f5e4e0;hpb=639a32fe19fb2b1943f9ac657ff86b658732b10e;p=friendica-addons.git diff --git a/showmore/showmore.php b/showmore/showmore.php old mode 100755 new mode 100644 index af158a55..f7bb0c50 --- a/showmore/showmore.php +++ b/showmore/showmore.php @@ -7,78 +7,83 @@ * based upon NSFW from Mike Macgirvin * */ - +use Friendica\Core\Hook; +use Friendica\Core\L10n; use Friendica\Core\PConfig; +use Friendica\Util\Strings; -function showmore_install() { - register_hook('prepare_body', 'addon/showmore/showmore.php', 'showmore_prepare_body'); - register_hook('plugin_settings', 'addon/showmore/showmore.php', 'showmore_addon_settings'); - register_hook('plugin_settings_post', 'addon/showmore/showmore.php', 'showmore_addon_settings_post'); +function showmore_install() +{ + Hook::register('prepare_body', 'addon/showmore/showmore.php', 'showmore_prepare_body'); + Hook::register('addon_settings', 'addon/showmore/showmore.php', 'showmore_addon_settings'); + Hook::register('addon_settings_post', 'addon/showmore/showmore.php', 'showmore_addon_settings_post'); } -function showmore_uninstall() { - unregister_hook('prepare_body', 'addon/showmore/showmore.php', 'showmore_prepare_body'); - unregister_hook('plugin_settings', 'addon/showmore/showmore.php', 'showmore_addon_settings'); - unregister_hook('plugin_settings_post', 'addon/showmore/showmore.php', 'showmore_addon_settings_post'); +function showmore_uninstall() +{ + Hook::unregister('prepare_body', 'addon/showmore/showmore.php', 'showmore_prepare_body'); + Hook::unregister('addon_settings', 'addon/showmore/showmore.php', 'showmore_addon_settings'); + Hook::unregister('addon_settings_post', 'addon/showmore/showmore.php', 'showmore_addon_settings_post'); } -function showmore_addon_settings(&$a,&$s) { - - if(! local_user()) +function showmore_addon_settings(&$a, &$s) +{ + if (!local_user()) { return; + } /* Add our stylesheet to the page so we can make our settings look nice */ - $a->page['htmlhead'] .= ''."\r\n"; + $a->page['htmlhead'] .= ''."\r\n"; - $enable_checked = (intval(PConfig::get(local_user(),'showmore','disable')) ? '' : ' checked="checked"'); - $chars = PConfig::get(local_user(),'showmore','chars'); - if(!$chars) - $chars = '1100'; + $enable_checked = (intval(PConfig::get(local_user(), 'showmore', 'disable')) ? '' : ' checked="checked"'); + $chars = PConfig::get(local_user(), 'showmore', 'chars', 1100); $s .= ''; - $s .= '

' . t('"Show more" Settings').'

'; + $s .= '

' . L10n::t('"Show more" Settings').'

'; $s .= '
'; $s .= ''; return; } -function showmore_addon_settings_post(&$a,&$b) { - - if(! local_user()) +function showmore_addon_settings_post(&$a, &$b) +{ + if (!local_user()) { return; + } - if($_POST['showmore-submit']) { - PConfig::set(local_user(),'showmore','chars',trim($_POST['showmore-chars'])); - $enable = ((x($_POST,'showmore-enable')) ? intval($_POST['showmore-enable']) : 0); + if (!empty($_POST['showmore-submit'])) { + PConfig::set(local_user(), 'showmore', 'chars', trim($_POST['showmore-chars'])); + $enable = (!empty($_POST['showmore-enable']) ? intval($_POST['showmore-enable']) : 0); $disable = 1-$enable; - PConfig::set(local_user(),'showmore','disable', $disable); - info( t('Show More Settings saved.') . EOL); + PConfig::set(local_user(), 'showmore', 'disable', $disable); + info(L10n::t('Show More Settings saved.') . EOL); } } -function get_body_length($body) { +function get_body_length($body) +{ $string = trim($body); // DomDocument doesn't like empty strings - if(! strlen($string)) { + if (!strlen($string)) { return 0; } @@ -93,8 +98,8 @@ function get_body_length($body) { * So we just get any element with a style attribute, and check them with a regexp */ $xr = $xpath->query('//*[@style]'); - foreach($xr as $node) { - if(preg_match('/.*display: *none *;.*/',$node->getAttribute('style'))) { + foreach ($xr as $node) { + if (preg_match('/.*display: *none *;.*/',$node->getAttribute('style'))) { // Hidden, remove it from its parent $node->parentNode->removeChild($node); } @@ -106,30 +111,36 @@ function get_body_length($body) { return strlen($string); } -function showmore_prepare_body(&$a,&$b) { +function showmore_prepare_body(\Friendica\App $a, &$hook_data) +{ + // No combination with content filters + if (!empty($hook_data['filter_reasons'])) { + return; + } - $words = null; - if(PConfig::get(local_user(),'showmore','disable')) + if (PConfig::get(local_user(), 'showmore', 'disable')) { return; + } - $chars = (int)PConfig::get(local_user(),'showmore','chars'); - if(!$chars) - $chars = 1100; + $chars = (int) PConfig::get(local_user(), 'showmore', 'chars', 1100); - if (get_body_length($b['html']) > $chars) { + if (get_body_length($hook_data['html']) > $chars) { $found = true; - $shortened = trim(showmore_cutitem($b['html'], $chars))."..."; + $shortened = trim(showmore_cutitem($hook_data['html'], $chars)) . "..."; + } else { + $found = false; } - if($found) { - $rnd = random_string(8); - $b['html'] = ''.$shortened." ". - ''.sprintf(t('show more')).''. - ''; + if ($found) { + $rnd = Strings::getRandomHex(8); + $hook_data['html'] = '' . $shortened . " " . + '' . L10n::t('show more') . '' . + ''; } } -function showmore_cutitem($text, $limit) { +function showmore_cutitem($text, $limit) +{ $text = trim($text); $text = mb_convert_encoding($text, 'HTML-ENTITIES', "UTF-8"); @@ -156,7 +167,7 @@ function showmore_cutitem($text, $limit) { @$doc->loadHTML($doctype."".$text.""); $text = $doc->saveHTML(); - $text = str_replace(array("", "", $doctype), array("", "", ""), $text); + $text = str_replace(["", "", $doctype], ["", "", ""], $text); - return($text); + return $text; }