diff options
Diffstat (limited to 'include')
-rw-r--r-- | include/acl_selectors.php | 37 | ||||
-rw-r--r-- | include/comanche.php | 37 |
2 files changed, 68 insertions, 6 deletions
diff --git a/include/acl_selectors.php b/include/acl_selectors.php index 584a70142..4cc01d15b 100644 --- a/include/acl_selectors.php +++ b/include/acl_selectors.php @@ -213,14 +213,14 @@ function fixacl(&$item) { /** * Builds a modal dialog for editing permissions, using acl_selector.tpl as the template. * -* @param array $default Optional access control list for the initial state of the dialog. +* @param array $default Optional access control list for the initial state of the dialog. * @param boolean $show_jotnets Whether plugins for federated networks should be included in the permissions dialog -* @param string $showall_caption An optional caption to describe the scope of an unrestricted post. e.g. "Public" -* @param string $dialog_description Optional message to include at the top of the dialog. E.g. "Warning: Post permissions cannot be changed once sent". -* @param string $context_help Allows the dialog to present a help icon. E.g. "acl_dialog_post" +* @param string $showall_caption An optional caption to describe the scope of an unrestricted post. e.g. "Public" +* @param string $dialog_description Optional message to include at the top of the dialog. E.g. "Warning: Post permissions cannot be changed once sent". +* @param string $context_help Allows the dialog to present a help icon. E.g. "acl_dialog_post" * @param boolean $readonly Not implemented yet. When implemented, the dialog will use acl_readonly.tpl instead, so that permissions may be viewed for posts that can no longer have their permissions changed. * -* @return string html modal dialog build from acl_selector.tpl +* @return string html modal dialog built from acl_selector.tpl */ function populate_acl($defaults = null,$show_jotnets = true, $showall_caption = '', $dialog_description = '', $context_help = '', $readonly = false) { @@ -273,3 +273,30 @@ function populate_acl($defaults = null,$show_jotnets = true, $showall_caption = } +/** +* Returns a string that's suitable for passing as the $dialog_description argument to a +* populate_acl() call for wall posts or network posts. +* +* This string is needed in 3 different files, and our .po translation system currently +* cannot be used as a string table (because the value is always the key is english) so +* I've centralized the value here (making this function name the "key") until we have a +* better way. +* +* @return string Description to present to user in modal permissions dialog +*/ +function get_post_aclDialogDescription() { + + // I'm trying to make two points in this description text - warn about finality of wall + // post permissions, and try to clear up confusion that these permissions set who is + // *shown* the post, istead of who is able to see the post, i.e. make it clear that clicking + // the "Show" button on a group does not post it to the feed of people in that group, it + // mearly allows those people to view the post if they are viewing/following this channel. + $description = t('Post permissions %s cannot be changed %s after a post is shared.</br />These permissions set who is allowed to view the post.'); + + // Lets keep the emphasis styling seperate from the translation. It may change. + $emphasisOpen = '<b><a href="' . z_root() . '/help/acl_dialog_post" target="hubzilla-help">'; + $emphasisClose = '</a></b>'; + + return sprintf($description, $emphasisOpen, $emphasisClose); +} + diff --git a/include/comanche.php b/include/comanche.php index 4d55aee19..0a52eaf2b 100644 --- a/include/comanche.php +++ b/include/comanche.php @@ -53,6 +53,31 @@ function comanche_parser(&$a, $s, $pass = 0) { } } + $cnt = preg_match_all("/\[if (.*?)\](.*?)\[else\](.*?)\[\/if\]/ism", $s, $matches, PREG_SET_ORDER); + if($cnt) { + foreach($matches as $mtch) { + if(comanche_test_condition($mtch[1])) { + $s = str_replace($mtch[0], $mtch[2], $s); + } + else { + $s = str_replace($mtch[0], $mtch[3], $s); + } + } + } + else { + $cnt = preg_match_all("/\[if (.*?)\](.*?)\[\/if\]/ism", $s, $matches, PREG_SET_ORDER); + if($cnt) { + foreach($matches as $mtch) { + if(comanche_test_condition($mtch[1])) { + $s = str_replace($mtch[0], $mtch[2], $s); + } + else { + $s = str_replace($mtch[0], '', $s); + } + } + } + } + if($pass == 0) { $cnt = preg_match("/\[layout\](.*?)\[\/layout\]/ism", $s, $matches); if($cnt) @@ -86,7 +111,6 @@ function comanche_parser(&$a, $s, $pass = 0) { App::$layout['webpage'] = comanche_webpage($a,$mtch[1]); } } - } else { $cnt = preg_match_all("/\[region=(.*?)\](.*?)\[\/region\]/ism", $s, $matches, PREG_SET_ORDER); @@ -100,6 +124,17 @@ function comanche_parser(&$a, $s, $pass = 0) { } +function comanche_test_condition($s) { + + if(preg_match("/[\$]config[\.](.*?)/",$s,$matches)) { + $x = explode('.',$s); + if(get_config($x[1],$x[2])) + return true; + } + return false; + +} + function comanche_menu($s, $class = '') { |