switch ($_REQUEST['logic']) { case 'is_in': case 'not_in': PommoRules::addGroupRule($state['group'], $_REQUEST['field'], $_REQUEST['logic']); break; case 'true': case 'false': PommoRules::addBoolRule($state['group'], $_REQUEST['field'], $_REQUEST['logic']); break; case 'is': case 'not': case 'less': case 'greater': $values = array_unique($_REQUEST['match']); $type = $_REQUEST['type'] == 'or' ? 'or' : 'and'; PommoRules::addFieldRule($state['group'], $_REQUEST['field'], $_REQUEST['logic'], $values, $type); break; } $json->add('callbackFunction', 'redirect'); $json->add('callbackParams', $pommo->_baseUrl . 'admin/subscribers/groups_edit.php'); $json->serve(); break; case 'updateRule': Pommo::requireOnce($pommo->_baseDir . 'inc/classes/sql.gen.php'); $group =& current(PommoGroup::get(array('id' => $state['group']))); $rules = PommoSQL::sortRules($group['rules']); switch ($_REQUEST['request']) { case 'update': if ($_REQUEST['type'] == 'or' && count($rules['and']) < 2) { $json->add('callbackFunction', 'resume'); $json->success(Pommo::_T('At least 1 "and" rule must exist before an "or" rule takes effect.'));