Pommo_Fields::validate PHP Method

validate() static public method

returns true if field ($in) is valid, false if not
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;
    }

Usage Example

Example #1
0
 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);
 }