<?php
namespace Nibble\NibbleForms\Field;

use Nibble\NibbleForms\Field;

abstract class BaseOptions extends Field
{

    protected $label, $options = array();
    protected $required = true;
    protected $false_values = array();
    public $error = array();

    public function __construct($label, $attributes = array())
    {
        $this->label = $label;
        if (isset($attributes["choices"])) {
            $this->options = $attributes["choices"];
        }
        if (isset($attributes['required'])) {
            $this->required = $attributes['required'];
        }
        if (isset($attributes['false_values'])) {
            $this->false_values = $attributes['false_values'];
        }
    }

    public function getAttributeString($val)
    {
        $attribute_string = '';
        if (is_array($val)) {
            $attributes = $val;
            $val = $val[0];
            unset($attributes[0]);
            foreach ($attributes as $attribute => $arg) {
                $attribute_string .= $arg ? ' ' . ($arg === true ? $attribute : "$attribute=\"$arg\"") : '';
            }
        }

        return array('val' => $val, 'string' => $attribute_string);
    }

}