Merge branch 'master' of git://github.com/friendica/friendica-addons

This commit is contained in:
Tobias Hößl 2012-07-25 17:13:14 +00:00
commit ef8a46da2c
3 changed files with 30 additions and 3 deletions

View File

@ -10,7 +10,7 @@
*/
function nsfw_install() {
register_hook('prepare_body', 'addon/nsfw/nsfw.php', 'nsfw_prepare_body');
register_hook('prepare_body', 'addon/nsfw/nsfw.php', 'nsfw_prepare_body', 10);
register_hook('plugin_settings', 'addon/nsfw/nsfw.php', 'nsfw_addon_settings');
register_hook('plugin_settings_post', 'addon/nsfw/nsfw.php', 'nsfw_addon_settings_post');

View File

@ -66,6 +66,33 @@ function showmore_addon_settings_post(&$a,&$b) {
}
}
function get_body_length($body) {
$string = trim($body);
// We need to get rid of hidden tags (display: none)
// Get rid of the warning. It would be better to have some valid html as input
$dom = @DomDocument::loadHTML($body);
$xpath = new DOMXPath($dom);
/*
* Checking any possible syntax of the style attribute with xpath is impossible
* 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'))) {
// Hidden, remove it from its parent
$node->parentNode->removeChild($node);
}
}
// Now we can get the body of our HTML DomDocument, it contains only what is visible
$string = $dom->saveHTML();
$string = strip_tags($string);
return strlen($string);
}
function showmore_prepare_body(&$a,&$b) {
$words = null;
@ -76,7 +103,7 @@ function showmore_prepare_body(&$a,&$b) {
if(!$chars)
$chars = 1100;
if (strlen(strip_tags(trim($b['html']))) > $chars) {
if (get_body_length($b['html']) > $chars) {
$found = true;
$shortened = trim(showmore_cutitem($b['html'], $chars))."...";
}

View File

@ -209,7 +209,7 @@ function twitter_settings(&$a,&$s) {
$s .= '<div class="settings-submit-wrapper" ><input type="submit" name="twitter-submit" class="settings-submit" value="' . t('Submit') . '" /></div>';
}
}
$s .= '</div><div class="clear"></div></div>';
$s .= '</div><div class="clear"></div>';
}