Added new fields and forms
This commit is contained in:
parent
52d75b8029
commit
9db16a5edd
27 changed files with 832 additions and 34 deletions
|
|
@ -24,7 +24,7 @@ class BooleanField extends PhangoField {
|
|||
{
|
||||
|
||||
$this->size=1;
|
||||
$this->form=public $form='PhangoApp\PhaModels\Forms\SelectForm';
|
||||
$this->form='PhangoApp\PhaModels\Forms\SelectForm';
|
||||
|
||||
}
|
||||
|
||||
|
|
@ -50,7 +50,7 @@ class BooleanField extends PhangoField {
|
|||
|
||||
//Int for simple compatibility with sql dbs.
|
||||
|
||||
return 'INT('.$this->size.') NOT NULL';
|
||||
return 'INT('.$this->size.') NOT NULL DEFAULT "0"';
|
||||
|
||||
}
|
||||
|
||||
|
|
@ -83,9 +83,9 @@ class BooleanField extends PhangoField {
|
|||
function get_parameters_default()
|
||||
{
|
||||
|
||||
$arr_values=array($this->default_value, I18n::lang('common', 'no', 'No'), 0, I18n::lang('common', 'yes', 'Yes'), 1);;
|
||||
$this->form_loaded->arr_select=array(0 => I18n::lang('common', 'no', 'No'), 1 => I18n::lang('common', 'yes', 'Yes'));
|
||||
|
||||
return array($this->name_component, '', $arr_values);
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -99,13 +99,13 @@ class ChoiceField extends PhangoField {
|
|||
|
||||
case 'integer':
|
||||
|
||||
return 'INT('.$this->size.') NOT NULL';
|
||||
return 'INT('.$this->size.') NOT NULL DEFAULT "0"';
|
||||
|
||||
break;
|
||||
|
||||
case 'string':
|
||||
|
||||
return 'VARCHAR('.$this->size.') NOT NULL';
|
||||
return 'VARCHAR('.$this->size.') NOT NULL DEFAULT ""';
|
||||
|
||||
break;
|
||||
|
||||
|
|
|
|||
|
|
@ -106,7 +106,7 @@ class DateField extends PhangoField {
|
|||
function get_type_sql()
|
||||
{
|
||||
|
||||
return 'INT('.$this->size.') NOT NULL';
|
||||
return 'INT('.$this->size.') NOT NULL DEFAULT "0"';
|
||||
|
||||
|
||||
}
|
||||
|
|
|
|||
85
src/CoreFields/DateTimeField.php
Normal file
85
src/CoreFields/DateTimeField.php
Normal file
|
|
@ -0,0 +1,85 @@
|
|||
<?php
|
||||
|
||||
/**
|
||||
*
|
||||
* @author Antonio de la Rosa <webmaster@web-t-sys.com>
|
||||
* @file
|
||||
* @package ExtraFields
|
||||
*
|
||||
*/
|
||||
|
||||
namespace PhangoApp\PhaModels\CoreFields;
|
||||
|
||||
class DateTimeField extends DateField
|
||||
{
|
||||
|
||||
public function __construct()
|
||||
{
|
||||
|
||||
$this->form='DateTimeForm';
|
||||
|
||||
}
|
||||
|
||||
public function check($value)
|
||||
{
|
||||
|
||||
$timestamp=parent::check($value);
|
||||
|
||||
return date('YmdHis', $timestamp);
|
||||
|
||||
}
|
||||
|
||||
public function search_field($value)
|
||||
{
|
||||
|
||||
$value_check=$this->check($value);
|
||||
|
||||
return substr($value_check, 0, 8);
|
||||
|
||||
}
|
||||
|
||||
public function show_formatted($value)
|
||||
{
|
||||
|
||||
$timestamp=$this->obtain_timestamp_datefield($value);
|
||||
|
||||
return parent::show_formatted($timestamp);
|
||||
|
||||
}
|
||||
|
||||
public function get_type_sql()
|
||||
{
|
||||
|
||||
return 'VARCHAR(14) NOT NULL DEFAULT ""';
|
||||
|
||||
|
||||
}
|
||||
|
||||
static public function obtain_timestamp_datefield($value)
|
||||
{
|
||||
|
||||
$year=substr($value, 0, 4);
|
||||
$month=substr($value, 4, 2);
|
||||
$day=substr($value, 6, 2);
|
||||
$hour=substr($value, 8, 2);
|
||||
$minute=substr($value, 10, 2);
|
||||
$second=substr($value, 12, 2);
|
||||
|
||||
settype($year, 'integer');
|
||||
settype($month, 'integer');
|
||||
settype($day, 'integer');
|
||||
settype($hour, 'integer');
|
||||
settype($minute, 'integer');
|
||||
settype($second, 'integer');
|
||||
|
||||
$timestamp=mktime($hour, $minute, $second, $month, $day, $year);
|
||||
|
||||
return $timestamp;
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
?>
|
||||
|
|
@ -38,7 +38,7 @@ class DoubleField extends PhangoField {
|
|||
function get_type_sql()
|
||||
{
|
||||
|
||||
return 'DOUBLE NOT NULL';
|
||||
return 'DOUBLE NOT NULL DEFAULT "0"';
|
||||
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -62,7 +62,7 @@ class EmailField extends PhangoField {
|
|||
function get_type_sql()
|
||||
{
|
||||
|
||||
return 'VARCHAR('.$this->size.') NOT NULL';
|
||||
return 'VARCHAR('.$this->size.') NOT NULL DEFAULT ""';
|
||||
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -109,7 +109,7 @@ class FileField extends PhangoField {
|
|||
function get_type_sql()
|
||||
{
|
||||
|
||||
return 'VARCHAR(255) NOT NULL';
|
||||
return 'VARCHAR(255) NOT NULL DEFAULT ""';
|
||||
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -38,6 +38,7 @@ class ForeignKeyField extends IntegerField{
|
|||
$this->default_id=$default;
|
||||
$this->quot_open='';
|
||||
$this->quot_close='';
|
||||
$this->protected=1;
|
||||
|
||||
}
|
||||
|
||||
|
|
|
|||
143
src/CoreFields/I18nField.php
Normal file
143
src/CoreFields/I18nField.php
Normal file
|
|
@ -0,0 +1,143 @@
|
|||
<?php
|
||||
|
||||
/**
|
||||
*
|
||||
* @author Antonio de la Rosa <webmaster@web-t-sys.com>
|
||||
* @file i18n_fields.php
|
||||
* @package ExtraFields\I18nFields
|
||||
*
|
||||
*
|
||||
*/
|
||||
|
||||
namespace PhangoApp\PhaModels\CoreFields;
|
||||
|
||||
use PhangoApp\PhaI18n\I18n;
|
||||
use PhangoApp\PhaModels\Forms\MultiLangForm;
|
||||
|
||||
/**
|
||||
* Multilanguage fields.
|
||||
*
|
||||
* With this field you can create fields for i18n sites.
|
||||
*/
|
||||
|
||||
class I18nField extends PhangoField {
|
||||
|
||||
public $value="";
|
||||
public $label="";
|
||||
public $required=0;
|
||||
public $form="PhangoApp\PhaModels\Forms\MultiLangForm";
|
||||
public $quot_open='\'';
|
||||
public $quot_close='\'';
|
||||
public $std_error='';
|
||||
public $related_field='';
|
||||
public $type_field='';
|
||||
|
||||
//This method is used for check all members from serialize
|
||||
|
||||
function __construct($type_field)
|
||||
{
|
||||
|
||||
$this->type_field=&$type_field;
|
||||
|
||||
}
|
||||
|
||||
function check($value)
|
||||
{
|
||||
|
||||
settype($value, 'array');
|
||||
|
||||
foreach(PhangoVar::$arr_i18n as $lang_item)
|
||||
{
|
||||
|
||||
settype($value[$lang_item], 'string');
|
||||
|
||||
$value[$lang_item]=$this->type_field->check($value[$lang_item]);
|
||||
|
||||
}
|
||||
|
||||
if($this->required==1 && $value[I18n::$language]=='')
|
||||
{
|
||||
|
||||
$this->std_error=PhangoVar::$lang['common']['error_you_need_this_language_field'].' '.I18n::$language;
|
||||
|
||||
return '';
|
||||
|
||||
}
|
||||
|
||||
$ser_value=addslashes(serialize($value));
|
||||
|
||||
return $ser_value;
|
||||
|
||||
}
|
||||
|
||||
|
||||
function get_type_sql()
|
||||
{
|
||||
|
||||
return 'TEXT NOT NULL DEFAULT ""';
|
||||
|
||||
|
||||
}
|
||||
|
||||
static function show_formatted($value)
|
||||
{
|
||||
|
||||
$arr_lang=@unserialize($value);
|
||||
|
||||
settype($arr_lang, 'array');
|
||||
|
||||
settype($arr_lang[I18n::$language], 'string');
|
||||
|
||||
settype($arr_lang[I18n::$language], 'string');
|
||||
|
||||
if($arr_lang[I18n::$language]=='' && $arr_lang[I18n::$language]=='')
|
||||
{
|
||||
|
||||
//Need view var with text...
|
||||
|
||||
//$arr_lang_first=array_unique($arr_lang);
|
||||
foreach($arr_lang as $key_lang => $val_lang)
|
||||
{
|
||||
|
||||
if($val_lang!='')
|
||||
{
|
||||
|
||||
return $val_lang;
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
else if($arr_lang[I18n::$language]=='')
|
||||
{
|
||||
|
||||
return $arr_lang[I18n::$language];
|
||||
|
||||
}
|
||||
|
||||
return $arr_lang[I18n::$language];
|
||||
|
||||
}
|
||||
|
||||
function add_slugify_i18n_post($field, $post)
|
||||
{
|
||||
|
||||
|
||||
foreach(PhangoVar::$arr_i18n as $lang_field)
|
||||
{
|
||||
|
||||
$post[$field.'_'.$lang_field]=SlugifyField::check($post[$field][$lang_field]);
|
||||
|
||||
}
|
||||
|
||||
return $post;
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
?>
|
||||
|
|
@ -31,6 +31,7 @@ class ImageField extends PhangoField {
|
|||
public $img_minimal_height=array();
|
||||
public $func_token='Utils::get_token';
|
||||
public $move_file_func='move_uploaded_file';
|
||||
public $size=255;
|
||||
|
||||
function __construct($name_file, $path, $url_path, $type, $thumb=0, $img_width=array('mini' => 150), $quality_jpeg=85)
|
||||
{
|
||||
|
|
@ -371,7 +372,7 @@ class ImageField extends PhangoField {
|
|||
function get_type_sql()
|
||||
{
|
||||
|
||||
return 'VARCHAR(255) NOT NULL';
|
||||
return 'VARCHAR('.$this->size.') NOT NULL DEFAULT ""';
|
||||
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -64,7 +64,7 @@ class IntegerField extends PhangoField {
|
|||
function get_type_sql()
|
||||
{
|
||||
|
||||
return 'INT('.$this->size.') NOT NULL';
|
||||
return 'INT('.$this->size.') NOT NULL DEFAULT "0"';
|
||||
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -43,7 +43,7 @@ class KeyField extends PhangoField {
|
|||
function get_type_sql()
|
||||
{
|
||||
|
||||
return 'INT('.$this->size.') NOT NULL';
|
||||
return 'INT('.$this->size.') NOT NULL DEFAULT "0"';
|
||||
|
||||
}
|
||||
|
||||
|
|
|
|||
26
src/CoreFields/MoneyField.php
Normal file
26
src/CoreFields/MoneyField.php
Normal file
|
|
@ -0,0 +1,26 @@
|
|||
<?php
|
||||
|
||||
namespace PhangoApp\PhaModels\CoreFields;
|
||||
|
||||
class MoneyField extends DoubleField{
|
||||
|
||||
|
||||
function show_formatted($value)
|
||||
{
|
||||
|
||||
return $this->currency_format($value);
|
||||
|
||||
}
|
||||
|
||||
|
||||
static function currency_format($value, $symbol_currency='€')
|
||||
{
|
||||
|
||||
|
||||
return number_format($value, 2).' '.$symbol_currency;
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
?>
|
||||
51
src/CoreFields/NormalizeField.php
Normal file
51
src/CoreFields/NormalizeField.php
Normal file
|
|
@ -0,0 +1,51 @@
|
|||
<?php
|
||||
|
||||
/**
|
||||
*
|
||||
* @author Antonio de la Rosa <webmaster@web-t-sys.com>
|
||||
* @file
|
||||
* @package ExtraFields
|
||||
*
|
||||
*/
|
||||
|
||||
namespace PhangoApp\PhaModels\CoreFields;
|
||||
|
||||
class NormalizeField extends TextField {
|
||||
|
||||
|
||||
public $form='HiddenForm';
|
||||
|
||||
public function check($value)
|
||||
{
|
||||
|
||||
|
||||
return $this->check_text($value);
|
||||
|
||||
|
||||
}
|
||||
|
||||
function search_field($value)
|
||||
{
|
||||
|
||||
return $this->check_text($value);
|
||||
|
||||
}
|
||||
|
||||
static public function check_text($value, $separator='-')
|
||||
{
|
||||
|
||||
$str_normalize=slugify(strip_tags($value));
|
||||
|
||||
$arr_normalize=explode($separator, $str_normalize);
|
||||
|
||||
sort($arr_normalize);
|
||||
|
||||
$value=implode('%', $arr_normalize);
|
||||
|
||||
return $value;
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
?>
|
||||
33
src/CoreFields/PercentField.php
Normal file
33
src/CoreFields/PercentField.php
Normal file
|
|
@ -0,0 +1,33 @@
|
|||
<?php
|
||||
|
||||
namespace PhangoApp\PhaModels\CoreFields;
|
||||
|
||||
class PercentField extends IntegerField{
|
||||
|
||||
|
||||
function check($value)
|
||||
{
|
||||
|
||||
|
||||
settype($value, "integer");
|
||||
|
||||
//Reload related model if not exists, if exists, only check cache models...
|
||||
|
||||
if($value>100 || $value<0)
|
||||
{
|
||||
|
||||
$this->std_error=i18n_lang('common', 'the_value_can_not_be_greater_than_100', 'The value cannot be greater than 100');
|
||||
|
||||
return 0;
|
||||
|
||||
}
|
||||
|
||||
return $value;
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
?>
|
||||
|
|
@ -90,6 +90,12 @@ class PhangoField {
|
|||
|
||||
public $form='PhangoApp\PhaModels\Forms\BaseForm';
|
||||
|
||||
/**
|
||||
* Variable where save a copy of form created from this Field
|
||||
*/
|
||||
|
||||
public $form_loaded;
|
||||
|
||||
/**
|
||||
* Array for create initial parameters for form..
|
||||
*/
|
||||
|
|
@ -109,6 +115,7 @@ class PhangoField {
|
|||
public $default_value='';
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* Method used for internal tasks related with searchs. You can overwrite this method in your PhangoField object if you need translate the value that the user want search to a real value into the database.
|
||||
*/
|
||||
|
|
@ -140,7 +147,7 @@ class PhangoField {
|
|||
public function get_type_sql()
|
||||
{
|
||||
|
||||
return 'VARCHAR('.$this->size.') NOT NULL';
|
||||
return 'VARCHAR('.$this->size.') NOT NULL DEFAULT "0"';
|
||||
|
||||
}
|
||||
|
||||
|
|
@ -151,7 +158,7 @@ class PhangoField {
|
|||
public function get_parameters_default()
|
||||
{
|
||||
|
||||
return array($this->name_component, '', '');
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
|
|
|||
34
src/CoreFields/PhoneField.php
Normal file
34
src/CoreFields/PhoneField.php
Normal file
|
|
@ -0,0 +1,34 @@
|
|||
<?php
|
||||
|
||||
/**
|
||||
*
|
||||
* @author Antonio de la Rosa <webmaster@web-t-sys.com>
|
||||
* @file
|
||||
* @package ExtraFields
|
||||
*
|
||||
*/
|
||||
|
||||
namespace PhangoApp\PhaModels\CoreFields;
|
||||
|
||||
class PhoneField extends CharField{
|
||||
|
||||
|
||||
public function check($value)
|
||||
{
|
||||
|
||||
if(!preg_match('/^[0-9]+$/', $value))
|
||||
{
|
||||
|
||||
return '';
|
||||
|
||||
}
|
||||
|
||||
return $value;
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
?>
|
||||
|
|
@ -78,7 +78,7 @@ class SerializeField extends PhangoField {
|
|||
function get_type_sql()
|
||||
{
|
||||
|
||||
return 'TEXT NOT NULL';
|
||||
return 'TEXT NOT NULL DEFAULT ""';
|
||||
|
||||
|
||||
}
|
||||
|
|
|
|||
49
src/CoreFields/SlugifyField.php
Normal file
49
src/CoreFields/SlugifyField.php
Normal file
|
|
@ -0,0 +1,49 @@
|
|||
<?php
|
||||
|
||||
namespace PhangoApp\PhaModels\CoreFields;
|
||||
|
||||
/** This class can be used for create orders or searchs in mysql if you need other thing distinct to default search of default order (default order don't work fine with serializefields how i18nfield). The programmer have the responsability of update this fields via update or insert method.
|
||||
*
|
||||
*/
|
||||
|
||||
class SlugifyField extends PhangoField {
|
||||
|
||||
|
||||
public $value="";
|
||||
public $label="";
|
||||
public $required=0;
|
||||
public $form="TextForm";
|
||||
public $quot_open='\'';
|
||||
public $quot_close='\'';
|
||||
public $std_error='';
|
||||
public $type='TEXT';
|
||||
|
||||
static function check($value)
|
||||
{
|
||||
|
||||
return slugify($value);
|
||||
}
|
||||
|
||||
function get_type_sql()
|
||||
{
|
||||
|
||||
return $this->type.' NOT NULL DEFAULT ""';
|
||||
|
||||
|
||||
}
|
||||
|
||||
static function add_slugify_i18n_fields($model_name, $field)
|
||||
{
|
||||
|
||||
foreach(PhangoVar::$arr_i18n as $lang_field)
|
||||
{
|
||||
|
||||
PhangoVar::$model[$model_name]->components[$field.'_'.$lang_field]=new SlugifyField();
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
?>
|
||||
|
|
@ -41,7 +41,7 @@ class TextField extends PhangoField {
|
|||
function get_type_sql()
|
||||
{
|
||||
|
||||
return 'TEXT NOT NULL';
|
||||
return 'TEXT NOT NULL DEFAULT ""';
|
||||
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -85,7 +85,7 @@ class TextHTMLField extends PhangoField {
|
|||
function get_type_sql()
|
||||
{
|
||||
|
||||
return 'TEXT NOT NULL';
|
||||
return 'TEXT NOT NULL DEFAULT ""';
|
||||
|
||||
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue