HEX
Server: Microsoft-IIS/8.5
System: Windows NT YDAWBH120 6.3 build 9600 (Windows Server 2012 R2 Standard Edition) AMD64
User: tentjecom_web (0)
PHP: 7.4.14
Disabled: NONE
Upload Files
File: D:/HostingSpaces/SBogers64/klimroosbudel.nl/wwwroot/kms/lib/form/form_block.class.php
<?php

/**
 * form_blocks.class.php
 * Created by Komma Mediadesign.
 * Author: mike
 * Date: 4/3/13
 */
class Form_Block
{
    /*
     * Info (for example name, width, extra classes
     */
    private $_data;

    /*
     * Blocks inside this block
     */
    private $_children;

    /*
     * Fields inside this block
     */
    private $_fields;

    /*
     * Construct
     */
    public function construct()
    {
    }

    /*
     * Add a child block to this block
     */
    public function addChild($string)
    {
        if (! empty($string)) {
            $this->_children[] = $string;
        }
    }

    /*
     * Add a child field to this block
     */
    public function addField($Field)
    {
        if (! empty($Field)) {
            $this->_fields[] = $Field;
        }
    }

    /*
     * Configure Block
     */
    public function setData($key, $value)
    {
        if (! empty($key)) {
            $this->_data[$key] = $value;
        }
    }

    /*
     * Return output block
     */
    public function display()
    {
        $output = '';
        $output .= '<div class="column';
        if (isset($this->_data['last'])) {
            $output .= ' last';
        }
        if (isset($this->_data['width'])) {
            switch($this->_data['width']) {
                case 2: $output .= ' double';
                    break;
                case 3: $output .= ' triple';
                    break;
                case 4: $output .= ' quadruple';
                    break;
            }
        }
        $output .= '">';

        if (isset($this->_children) && count($this->_children) > 0) {
            // check if this block has children blocks
            foreach ($this->_children as $child) {
                $output .= $child;
            }
        }

        // check if this block contains any fields

        foreach ($this->_fields as $Field) {
            //  Get field data

            $data = $Field->get();

            if (! empty($data['name'])) {
                $output .= '<div class="input_holder';

                // Get errors
                $errorKey = [$data['form_name'].'_errors', $data['name']];
                $error = '';
                $error .= Session::get($errorKey);
                if (! empty($error)) {
                    $output .= ' input_error';
                    // clean up error
                    Session::destroy($errorKey);
                }
                $output .= '">';

                // Label
                $output .= '<label for="'.$data['id'].'">'.$data['label'];
                if (isset($data['validation'][1])) {
                    if (is_object($data['validation'][1])) {
                        $validation = $data['validation'][1]->getName();
                        if ($validation == 'required') {
                            $output .= ' *';
                        }
                    }
                }
                $output .= '</label>';

                // Get specified object
                isset($data['object']) ? $object = $data['object'] : $object = 'Field_Type_Text_Field';
                $file = DOCUMENT_ROOT.'lib/form/types/'.$object.'.class.php';
                if (is_file($file)) {
                    if (! class_exists($object)) {
                        require $file;
                    }
                    $TypeObject = new $object($data['label']);
                    $TypeObject->set($data);
                    $output .= $TypeObject->createInput();
                }
                $output .= '</div>';
            }
        }
        $output .= '</div>';
        if (isset($this->_data['clear'])) {
            $output .= '<div class="clear"></div>';
        }

        return $output;
    }
}