From 6578e20c253f384a123907dc2cdf367649ab7630 Mon Sep 17 00:00:00 2001 From: Antonio de la Rosa Date: Sat, 26 Nov 2016 02:10:07 +0100 Subject: [PATCH] Fixes in imagefield,datefield and added support for fulltext indexes --- bin/padmin | 34 +++++++++++++++++++++++++++++++++- src/CoreFields/DateField.php | 13 ++++++++++++- src/CoreFields/ImageField.php | 2 +- src/CoreFields/PhangoField.php | 6 ++++++ src/Webmodel.php | 3 +++ 5 files changed, 55 insertions(+), 3 deletions(-) diff --git a/bin/padmin b/bin/padmin index 7a3e7e0..7007444 100755 --- a/bin/padmin +++ b/bin/padmin @@ -182,6 +182,9 @@ function update_table() Webmodel::$arr_sql_unique=array(); Webmodel::$arr_sql_set_unique=array(); + + Webmodel::$arr_sql_fulltext=array(); + Webmodel::$arr_sql_set_fulltext=array(); $arr_etable=array(); @@ -291,6 +294,16 @@ function update_table() Webmodel::$arr_sql_set_index[$key][$field]=''; } + + //Check if fulltext for mysql + + if(Webmodel::$model[$key]->components[$field]->fulltext==true && $keys[$field]=='') + { + + Webmodel::$arr_sql_fulltext[$key][$field]=' ALTER TABLE `'.$key.'` ADD FULLTEXT (`'.$field.'`)'; + Webmodel::$arr_sql_set_fulltext[$key][$field]=''; + + } //Check if unique @@ -319,7 +332,7 @@ function update_table() } - if(!isset(Webmodel::$model[$key]->components[$field]->related_model) && $keys[$field]!='' && Webmodel::$model[$key]->components[$field]->indexed==false && Webmodel::$model[$key]->components[$field]->unique!=true) + if(!isset(Webmodel::$model[$key]->components[$field]->related_model) && $keys[$field]!='' && Webmodel::$model[$key]->components[$field]->indexed==false && Webmodel::$model[$key]->components[$field]->unique!=true && Webmodel::$model[$key]->components[$field]->fulltext!=true) { echo "---Delete index for ".$field." from ".$key."\n"; @@ -458,6 +471,25 @@ function update_table() } } + + //Create Fulltext index... + + foreach(Webmodel::$arr_sql_fulltext as $model_name => $arr_index) + { + foreach(Webmodel::$arr_sql_fulltext[$model_name] as $key_data => $sql_index) + { + + echo "---Creating fulltext for ".$key_data." on model ".$model_name."\n"; + + $query=SQLClass::webtsys_query($sql_index); + + if(Webmodel::$arr_sql_set_fulltext[$model_name][$key_data]!='') + { + $query=SQLClass::webtsys_query(Webmodel::$arr_sql_set_fulltext[$model_name][$key_data]); + } + + } + } } diff --git a/src/CoreFields/DateField.php b/src/CoreFields/DateField.php index cfdb4b2..985da9f 100644 --- a/src/CoreFields/DateField.php +++ b/src/CoreFields/DateField.php @@ -79,7 +79,18 @@ class DateField extends PhangoField { settype($arr_time[2], 'integer'); //$final_value=PhaTime\DateTime::obtain_timestamp(mktime (0, 0, 0, $arr_time[1], $arr_time[0], $arr_time[2] )); - $value=date(PhaTime\DateTime::$sql_format_time, mktime(0, 0, 0, $arr_time[1], $arr_time[2], $arr_time[0])); + + if(strlen($arr_time[2])==2) + { + + $value=date(PhaTime\DateTime::$sql_format_time, mktime(0, 0, 0, $arr_time[1], $arr_time[2], $arr_time[0])); + } + else + { + + $value=date(PhaTime\DateTime::$sql_format_time, mktime(0, 0, 0, $arr_time[1], $arr_time[0], $arr_time[2])); + + } /* if($final_value===false) diff --git a/src/CoreFields/ImageField.php b/src/CoreFields/ImageField.php index 0be09e6..021d0a7 100644 --- a/src/CoreFields/ImageField.php +++ b/src/CoreFields/ImageField.php @@ -179,7 +179,7 @@ class ImageField extends PhangoField { if($max_size>0) { - $image->fit($max_size); + $image->resize( $max_size, null, function ($constraint) {$constraint->aspectRatio();}); } diff --git a/src/CoreFields/PhangoField.php b/src/CoreFields/PhangoField.php index 9f1768b..3b2be7d 100644 --- a/src/CoreFields/PhangoField.php +++ b/src/CoreFields/PhangoField.php @@ -30,6 +30,12 @@ class PhangoField { */ public $unique=0; + + /** + * Property used for set this field how fulltext value in the database table. + */ + + public $fulltext=0; /** * The name of the model where this component or field live diff --git a/src/Webmodel.php b/src/Webmodel.php index d5e0856..b1323ea 100644 --- a/src/Webmodel.php +++ b/src/Webmodel.php @@ -368,6 +368,9 @@ class Webmodel { static public $arr_sql_unique=array(); static public $arr_sql_set_unique=array(); + + static public $arr_sql_fulltext=array(); + static public $arr_sql_set_fulltext=array(); /** * Simple property for save models in object mode