$options = Pommo_Fields::optionAdd($field, $_REQUEST['options']); } if (!options) { $json->fail(Pommo::_T('Error with addition.')); } $json->add('callbackFunction', 'updateOptions'); $json->add('callbackParams', $options); $json->serve(); break; case 'delOption': // validate field ID $field = current(Pommo_Fields::get(array('id' => $_REQUEST['field_id']))); if ($field['id'] != $_REQUEST['field_id']) { die('bad field ID'); } $affected = Pommo_Fields::subscribersAffected($field['id'], $_REQUEST['options']); if (count($affected) > 0 && empty($_REQUEST['confirmed'])) { $msg = sprintf(Pommo::_T('Deleting option %1$s will affect %2$s subscribers who have selected this choice. They will be flagged as needing to update their records.'), '<b>' . $_REQUEST['options'] . '</b>', '<em>' . count($affected) . '</em>'); $msg .= "\n " . Pommo::_T('Are you sure?'); $json->add('callbackFunction', 'confirm'); $json->add('callbackParams', $msg); $json->serve(); } else { require_once Pommo::$_baseDir . 'classes/Pommo_Subscribers.php'; $options = Pommo_Fields::optionDel($field, $_REQUEST['options']); if (!options) { $json->fail(Pommo::_T('Error with deletion.')); } // flag subscribers for update if (count($affected) > 0) { Pommo_Subscribers::flagByID($affected);
$field = Pommo_Fields::make(array('name' => $_POST['field_name'], 'type' => $_POST['field_type'], 'prompt' => 'Field Prompt', 'required' => 'off', 'active' => 'off')); $id = Pommo_Fields::add($field); if ($id) { $view->assign('added', $id); } else { $logger->addMsg(Pommo::_T('Error with addition.')); } } // check for a deletion request if (!empty($_GET['delete'])) { $field = Pommo_Fields::get(array('id' => $_GET['field_id'])); $field =& current($field); if (count($field) === 0) { $logger->addMsg(Pommo::_T('Error with deletion.')); } else { $affected = Pommo_Fields::subscribersAffected($field['id']); if (count($affected) > 0 && empty($_GET['dVal-force'])) { $view->assign('confirm', array('title' => Pommo::_T('Confirm Action'), 'nourl' => $_SERVER['PHP_SELF'] . '?field_id=' . $_GET['field_id'], 'yesurl' => $_SERVER['PHP_SELF'] . '?field_id=' . $_GET['field_id'] . '&delete=TRUE&dVal-force=TRUE', 'msg' => sprintf(Pommo::_T('Currently, %1$s subscribers have a non empty value for %2$s. All Subscriber data relating to this field will be lost.'), '<b>' . count($affected) . '</b>', '<b>' . $field['name'] . '</b>'))); $view->display('admin/confirm'); Pommo::kill(); } else { Pommo_Fields::delete($field['id']) ? Pommo::redirect($_SERVER['PHP_SELF']) : $logger->addMsg(Pommo::_T('Error with deletion.')); } } } // Get array of fields. Key is ID, value is an array of the demo's info $fields = Pommo_Fields::get(array('byName' => FALSE)); if (!empty($fields)) { $view->assign('fields', $fields); } $view->display('admin/setup/setup_fields');