From 5902e0983d8a17e34674855bee36b75a82bff8cb Mon Sep 17 00:00:00 2001 From: friendica Date: Mon, 16 Jul 2012 03:53:11 -0700 Subject: language filtering infrastructure, check owner's language prefs and either translate it or dump it depending on those prefs and the availability of translation plugins. --- include/items.php | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) (limited to 'include/items.php') diff --git a/include/items.php b/include/items.php index 6285e5da5..b66a325a5 100755 --- a/include/items.php +++ b/include/items.php @@ -828,10 +828,6 @@ function item_store($arr,$force_parent = false) { if(! x($arr,'type')) $arr['type'] = 'remote'; - // Shouldn't happen but we want to make absolutely sure it doesn't leak from a plugin. - - if((strpos($arr['body'],'<') !== false) || (strpos($arr['body'],'>') !== false)) - $arr['body'] = strip_tags($arr['body']); $arr['lang'] = detect_language($arr['body']); @@ -840,12 +836,19 @@ function item_store($arr,$force_parent = false) { if((is_array($allowed_languages)) && ($arr['lang']) && (! array_key_exists($arr['lang'],$allowed_languages))) { $translate = array('item' => $arr, 'from' => $arr['lang'], 'to' => $allowed_languages, 'translated' => false); call_hooks('item_translate', $translate); - if(! $translate['translated']) { + if((! $translate['translated']) && (intval(get_pconfig($arr['uid'],'system','reject_disallowed_languages')))) { logger('item_store: language ' . $arr['lang'] . ' not accepted for uid ' . $arr['uid']); return; } + $arr = $translate['item']; } + // Shouldn't happen but we want to make absolutely sure it doesn't leak from a plugin. + + if((strpos($arr['body'],'<') !== false) || (strpos($arr['body'],'>') !== false)) + $arr['body'] = strip_tags($arr['body']); + + $arr['wall'] = ((x($arr,'wall')) ? intval($arr['wall']) : 0); $arr['uri'] = ((x($arr,'uri')) ? notags(trim($arr['uri'])) : random_string()); $arr['extid'] = ((x($arr,'extid')) ? notags(trim($arr['extid'])) : ''); -- cgit v1.2.3