Skip to content
This repository has been archived by the owner on Dec 27, 2018. It is now read-only.

Commit

Permalink
Restructure code and bug fixes
Browse files Browse the repository at this point in the history
  • Loading branch information
Michał Matyas committed Jan 3, 2012
1 parent 64ffc16 commit ab3c2e5
Showing 1 changed file with 87 additions and 86 deletions.
173 changes: 87 additions & 86 deletions classes/controller/generator.php
Original file line number Original file line Diff line number Diff line change
Expand Up @@ -116,7 +116,6 @@ public function usage()
--save Save to file (by default, generator throws everything up to STDOUT) --save Save to file (by default, generator throws everything up to STDOUT)
--force Force save (ignores if file already exists) --force Force save (ignores if file already exists)
'; ';


exit(1); exit(1);
Expand All @@ -131,86 +130,88 @@ protected function add_element($field)
foreach($field as $k=>$v) $field[$k] = trim($v); foreach($field as $k=>$v) $field[$k] = trim($v);


$options = array(); $options = array();
$_formo['label'] = $field['field_name']; if(in_array($field['field_name'], array('belongs_to', 'has_one', 'has_many')))
{
if(!isset($field['options']))
{
$field['options'] = Inflector::singular($field['field_type']).'_id';
}

$options = array('foreign_key' => $field['options']);

switch($field['field_name'])
{
/* relations */

case 'belongs_to':
$_relations['belongs_to'] = array($field['field_type'] => $options);
$_formo['orm_primary_val'] = 'id';
break;

case 'has_one':
$_relations['has_one'] = array($field['field_type'] => $options);
$_formo['orm_primary_val'] = 'id';
break;

case 'has_many':
$_relations['has_many'] = array($field['field_type'] => $options);
$_formo['orm_primary_val'] = 'id';
break;
}
$_formo['label'] = $field['options'];


switch($field['field_name']) $this->_rules[$field['options']] = array_merge(Arr::get($this->_rules, $field['field_name'], array()), $_rules);
$this->_formo[$field['options']] = array_merge(Arr::get($this->_formo, $field['field_name'], array()), $_formo);
}
else
{ {
/* relations */ switch($field['field_type'])

{
case 'belongs_to': case 'int':
if(isset($field['options'])) $_rules[] = array('digit');
{ break;
$options = array('foreign_key' => $field['options']);
} case 'varchar':

$_rules[] = array('max_length', array(':value', $field['options']));
$_relations['belongs_to'][] = array($field['field_type'] => $options); break;
$_formo['orm_primary_val'] = 'id';
break; case 'text':

$_formo['driver'] = 'textarea';
case 'has_one': break;
if(isset($field['options']))
{ case 'blob':
$options = array('foreign_key' => $field['options']); $_formo['render'] = FALSE;
} break;


$_relations['has_one'][] = array($field['field_type'] => $options); case 'date':
$_formo['orm_primary_val'] = 'id'; case 'datetime':
break; case 'timestamp':

$_rules[] = array('date');
case 'has_many': $_formo['callbacks'] = array('pass' => array( array('Model_'.$this->_name.'::format_date', array(':field'))));
if(isset($field['options'])) $this->_methods['format_date'] = TRUE;
{ break;
$options = array('foreign_key' => $field['options']);
} /* special types */


$_relations['has_many'][] = array($field['field_type'] => $options); case 'primary':
$_formo['orm_primary_val'] = 'id'; $_formo['render'] = FALSE;
break; $_formo['editable'] = FALSE;

break;
default:

case 'file':
switch($field['field_type']) $_formo['driver'] = 'file';
{ $_formo['callbacks'] = array('pass' => array( array('Model_'.$this->_name.'::upload_file', array(':field', ':last_val'))));
case 'int': $this->_methods['upload_file'] = TRUE;
$_rules[] = array('digit'); break;
break; }


case 'varchar': if(Arr::get($_formo, 'render') !== FALSE)
$_rules[] = array('max_length', array(':value', $field['options'])); {
break; $_formo['label'] = $field['field_name'];

}
case 'text':
$_formo['driver'] = 'textarea'; $this->_rules[$field['field_name']] = array_merge(Arr::get($this->_rules, $field['field_name'], array()), $_rules);
break; $this->_formo[$field['field_name']] = array_merge(Arr::get($this->_formo, $field['field_name'], array()), $_formo);

case 'blob':
$_formo['render'] = FALSE;
break;

case 'date':
case 'datetime':
case 'timestamp':
$_rules[] = array('date');
$_formo['callbacks'] = array('pass' => array( array('Model_'.$this->_name.'::format_date', array(':field'))));
$this->_methods['format_date'] = TRUE;
break;

/* special types */

case 'primary':
$_formo['render'] = FALSE;
$_formo['editable'] = FALSE;
break;

case 'file':
$_formo['driver'] = 'file';
$_formo['callbacks'] = array('pass' => array( array('Model_'.$this->_name.'::upload_file', array(':field', ':last_val'))));
$this->_methods['upload_file'] = TRUE;
break;
}
$this->_rules[$field['field_name']] = array_merge(Arr::get($this->_rules, $field['field_name'], array()), $_rules);
$this->_formo[$field['field_name']] = array_merge(Arr::get($this->_formo, $field['field_name'], array()), $_formo);
break;
} }
$this->_relations = array_merge_recursive($this->_relations, $_relations); $this->_relations = array_merge_recursive($this->_relations, $_relations);
} }
Expand Down Expand Up @@ -274,7 +275,13 @@ public function rules()
'. '.
(array_key_exists('upload_file', $this->_methods) ? (array_key_exists('upload_file', $this->_methods) ?
' public static function upload_file($field, $previous_file, $directory = null, $filename = null) ' public static function upload_file($field, $previous_file, $directory = null, $filename = null)
{ {
if(!Upload::not_empty($file))
{
$field->val($field->last_val());
return true;
}
if(!empty($previous_file)) if(!empty($previous_file))
{ {
@unlink($directory ?: Upload::$default_directory . "/" . $previous_file); @unlink($directory ?: Upload::$default_directory . "/" . $previous_file);
Expand All @@ -297,12 +304,6 @@ public function rules()
} }
return false; return false;
} }
if(!Upload::not_empty($file))
{
$field->val(" ");
return true;
}
if($filename === NULL) if($filename === NULL)
{ {
Expand Down

0 comments on commit ab3c2e5

Please sign in to comment.