diff options
author | friendica <info@friendica.com> | 2012-07-16 03:53:11 -0700 |
---|---|---|
committer | friendica <info@friendica.com> | 2012-07-16 03:53:11 -0700 |
commit | 5902e0983d8a17e34674855bee36b75a82bff8cb (patch) | |
tree | f7a1e76e36e55e950222d7ab02e8700f9c40e885 /mod | |
parent | a047c5b1c38e601df051b1c6b0165f94d7d265ba (diff) | |
download | volse-hubzilla-5902e0983d8a17e34674855bee36b75a82bff8cb.tar.gz volse-hubzilla-5902e0983d8a17e34674855bee36b75a82bff8cb.tar.bz2 volse-hubzilla-5902e0983d8a17e34674855bee36b75a82bff8cb.zip |
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.
Diffstat (limited to 'mod')
-rw-r--r-- | mod/item.php | 20 |
1 files changed, 20 insertions, 0 deletions
diff --git a/mod/item.php b/mod/item.php index 1593d179b..2a34f7d82 100644 --- a/mod/item.php +++ b/mod/item.php @@ -221,6 +221,11 @@ function item_post(&$a) { logger('detected language: ' . $language); + + + + + $private = ((strlen($str_group_allow) || strlen($str_contact_allow) || strlen($str_group_deny) || strlen($str_contact_deny)) ? 1 : 0); // If this is a comment, set the permissions from the parent. @@ -601,6 +606,21 @@ function item_post(&$a) { killme(); } + // post owner can post in any language they wish; others however are subject to the owner's whims about language acceptance + + if($profile_uid != local_user()) { + $allowed_languages = get_pconfig($profile_uid,'system','allowed_languages'); + + if((is_array($allowed_languages)) && ($datarray['lang']) && (! array_key_exists($datarray['lang'],$allowed_languages))) { + $translate = array('item' => $datarray, 'from' => $datarray['lang'], 'to' => $allowed_languages, 'translated' => false); + call_hooks('item_translate', $translate); + if((! $translate['translated']) && (intval(get_pconfig($profile_uid,'system','reject_disallowed_languages')))) { + logger('item_store: language ' . $datarray['lang'] . ' not accepted for uid ' . $datarray['uid']); + return; + } + $datarray = $translate['item']; + } + } call_hooks('post_local',$datarray); |