adding zend project folders into old campcaster.
This commit is contained in:
parent
56abfaf28e
commit
7ef0c18b26
4045 changed files with 1054952 additions and 0 deletions
122
library/propel/contrib/pat/patForms/Definition.php
Normal file
122
library/propel/contrib/pat/patForms/Definition.php
Normal file
|
@ -0,0 +1,122 @@
|
|||
<?
|
||||
|
||||
class patForms_Definition {
|
||||
|
||||
private $data = array();
|
||||
|
||||
public function __construct($name, $autoValidate = '') {
|
||||
|
||||
$this->data['name'] = $name;
|
||||
$this->data['mtime'] = time();
|
||||
if ($autoValidate) {
|
||||
$this->data['autoValidate'] = $autoValidate;
|
||||
}
|
||||
}
|
||||
|
||||
static public function create($conf) {
|
||||
// TODO
|
||||
}
|
||||
|
||||
public function __get($name) {
|
||||
|
||||
if (isset($this->data[$name])) {
|
||||
return $this->data[$name];
|
||||
}
|
||||
}
|
||||
|
||||
// TODO change protocol to addElement(array $element)
|
||||
public function addElement($name, $type, $attributes = array(), $rules = array()) {
|
||||
|
||||
if (is_array($type)) {
|
||||
extract($type);
|
||||
}
|
||||
|
||||
$this->data['elements'][$name]['name'] = $name;
|
||||
$this->data['elements'][$name]['type'] = $type;
|
||||
|
||||
foreach ($attributes as $key => $value) {
|
||||
$value = $this->cast($value);
|
||||
$this->data['elements'][$name]['attributes'][$key] = $value;
|
||||
}
|
||||
foreach ($rules as $key => $rule) {
|
||||
$this->data['elements'][$name]['rules'][$key] = $rule;
|
||||
}
|
||||
}
|
||||
|
||||
public function load($filename) {
|
||||
|
||||
$data = $this->read($filename);
|
||||
|
||||
foreach ($data as $key => $value) {
|
||||
if ($key == 'elements') {
|
||||
foreach ($value as $name => $element) {
|
||||
$this->addElement($name, $element);
|
||||
}
|
||||
} else {
|
||||
$this->data[$key] = $this->cast($value);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public function save($filename) {
|
||||
|
||||
$this->write($filename, $this->data);
|
||||
}
|
||||
|
||||
protected function read($filename) {
|
||||
|
||||
$xml = file_get_contents($filename);
|
||||
$unserializer = new XML_Unserializer();
|
||||
$unserializer->unserialize($xml);
|
||||
return $unserializer->getUnserializedData();
|
||||
}
|
||||
|
||||
protected function write($filename, $data) {
|
||||
|
||||
$serializer = new XML_Serializer(array (
|
||||
'addDecl' => true,
|
||||
'encoding' => 'ISO-8859-1',
|
||||
'indent' => ' ',
|
||||
'rootName' => 'form',
|
||||
'defaultTagName' => 'tag'
|
||||
));
|
||||
$serializer->serialize($data);
|
||||
$xml = $serializer->getSerializedData();
|
||||
|
||||
$fp = fopen($filename, 'w+');
|
||||
fputs($fp, $xml);
|
||||
fclose($fp);
|
||||
}
|
||||
|
||||
protected function cast($value) {
|
||||
|
||||
return $value;
|
||||
|
||||
// seems as if patForms_Element(s) are broken here
|
||||
// e.g. in patForms_Element_Text::serializeHtmlDefault()
|
||||
// at line 245 if ( $this->attributes['display'] == 'no' )
|
||||
// will result to true if the display attribute is set
|
||||
// to (php boolean) true
|
||||
// so casting the 'true'/'false' and 'yes'/'no' values
|
||||
// would break intended behaviour here
|
||||
|
||||
if (is_array($value) OR is_bool($value)) {
|
||||
return $value;
|
||||
}
|
||||
if ($value === 'true') {
|
||||
return true;
|
||||
}
|
||||
if ($value === 'false') {
|
||||
return false;
|
||||
}
|
||||
if (preg_match('/^[+-]?[0-9]+$/', $value)) {
|
||||
settype($value, 'int');
|
||||
return $value;
|
||||
}
|
||||
if (preg_match('/^[+-]?[0-9]*\.[0-9]+$/', $value)) {
|
||||
settype($value, 'double');
|
||||
return $value;
|
||||
}
|
||||
return $value;
|
||||
}
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue