<?php
namespace Bekanntmacher\BoxmakerBundle\Classes;
use Bekanntmacher\BoxmakerBundle\Model\FarbeModel;
use Bekanntmacher\BoxmakerBundle\Model\TypeOptionModel;
class UserInput
{
/**
* Parameters
* @var array
*/
protected $arrUserInput = array();
public function __construct($objConfig, $idStandardwelle=null)
{
if(!is_array($objConfig))
{
// Farbe
$objFarbe = FarbeModel::findByPk((int) \Input::get('farbe'));
$this->arrUserInput = array
(
'type' => (int) \Input::get('type'),
'laenge' => ((int) \Input::get('laenge') > 0) ? (int) \Input::get('laenge') : $objConfig->laenge,
'breite' => ((int) \Input::get('breite') > 0) ? (int) \Input::get('breite') : $objConfig->breite,
'hoehe' => ((int) \Input::get('hoehe') > 0) ? (int) \Input::get('hoehe') : $objConfig->hoehe,
'stk' => ((int) \Input::get('stk') > 0) ? (int) \Input::get('stk') : $objConfig->stk,
'farbe' => ($objFarbe !== null) ? $objFarbe->id : $objConfig->farbe,
'welle' => ((int) \Input::get('welle') > 0) ? (int) \Input::get('welle') : $idStandardwelle,
'druckfarben' => (\Input::get('druckfarben')) ? \Input::get('druckfarben') : null,
'druckverfahren' => (\Input::get('druckverfahren')) ? \Input::get('druckverfahren') : null,
'seite' => (\Input::get('seite')) ? \Input::get('seite') : '1s',
'stw' => $this->objType->type_standardwelle
);
$objOptionen = TypeOptionModel::findAll(array('order' => 'sorting'));
$arrOpts = array();
foreach ($objOptionen as $option)
{
if(!(\Input::get('o_'.$option->id))) continue;
$arrOpts[$option->id] = $option;
}
$this->arrUserInput['options'] = $arrOpts;
} else {
$this->arrUserInput = $objConfig;
}
}
public function __get($key)
{
return $this->get($key);
}
public function __set($key, $value)
{
$this->set($key, $value);
}
public function get($key)
{
if(key_exists($key, $this->arrUserInput) !== false)
{
return $this->arrUserInput[$key];
}
return false;
}
public function set($key, $value)
{
$this->arrUserInput[$key] = $value;
}
public function getAll()
{
return $this->arrUserInput;
}
public function merge(array $arr)
{
if(is_array($arr) === false)
{
return false;
}
foreach ($arr as $key => $value)
{
if(key_exists($key, $this->arrUserInput))
{
continue;
}
$this->set($key, $value);
}
}
}