static public validate ( &$in ) |
static function validate(&$in)
{
$logger = Pommo::$_logger;
$invalid = array();
if (empty($in['name']) || substr($in['name'], 0, 1) == '!' || strpos($in['name'], '|')) {
$invalid[] = 'name';
} else {
switch (strtolower($in['name'])) {
case 'email':
case 'ip':
case 'registered':
$invalid[] = 'name';
break;
default:
break;
}
}
if (empty($in['prompt'])) {
$invalid[] = 'prompt';
}
switch ($in['type']) {
case "checkbox":
case "multiple":
case "text":
case "date":
case "number":
case "comment":
break;
default:
$invalid[] = 'type';
}
switch ($in['required']) {
case "on":
case "off":
break;
default:
$invalid[] = 'required';
}
switch ($in['active']) {
case "on":
case "off":
break;
default:
$invalid[] = 'active';
}
if (!is_numeric($in['ordering'])) {
$invalid[] = 'ordering';
}
if (!is_array($in['array'])) {
$invalid[] = 'array';
}
if (!empty($invalid)) {
$logger->addErr("Field failed validation on; " . implode(',', $invalid), 1);
return false;
}
return true;
}
static function add(&$in) { $dbo =& Pommo::$_dbo; // set the ordering of field if not provided if (!is_numeric($in['ordering'])) { $query = "\n SELECT field_ordering\n FROM " . $dbo->table['fields'] . "\n ORDER BY field_ordering DESC"; $query = $dbo->prepare($query); $in['ordering'] = $dbo->query($query, 0) + 1; } if (!Pommo_Fields::validate($in)) { return false; } $query = "\n INSERT INTO " . $dbo->table['fields'] . "\n SET\n field_active='%s',\n field_ordering=%i,\n field_name='%s',\n field_prompt='%s',\n field_normally='%s',\n field_array='%s',\n field_required='%s',\n field_type='%s'"; $query = $dbo->prepare($query, @array($in['active'], $in['ordering'], $in['name'], $in['prompt'], $in['normally'], serialize($in['array']), $in['required'], $in['type'])); return $dbo->lastId($query); }