From e72e3d8ac6d8a856d468cd7e4de02b29068b962e Mon Sep 17 00:00:00 2001 From: Cameron Date: Sat, 2 Apr 2016 08:51:59 -0700 Subject: [PATCH] Issue #1483 - Extended User Fields table sync. --- e107_admin/users_extended.php | 96 ++++++++++++++++++++++++++++++++++- 1 file changed, 94 insertions(+), 2 deletions(-) diff --git a/e107_admin/users_extended.php b/e107_admin/users_extended.php index 130cea2b3..f7d45b520 100755 --- a/e107_admin/users_extended.php +++ b/e107_admin/users_extended.php @@ -461,13 +461,58 @@ e107::js('footer-inline', js()); public function beforeCreate($new_data, $old_data) { + + $ue = e107::getUserExt(); + $mes = e107::getMessage(); + + + if($ue->user_extended_field_exist($new_data['user_extended_struct_name'])) + { + $mes->addError("Field name already exists"); + return false; + } + + if($ue->user_extended_reserved($new_data['user_extended_struct_name'])) + { + $mes->addError("Field name is reserved. Please try a different name."); + return false; + } + $new_data = $this->compileData($new_data); + $field_info = $ue->user_extended_type_text($new_data['user_extended_struct_type'], $new_data['user_extended_struct_default']); + // wrong type + if(false === $field_info) + { + e107::getMessage()->addDebug("\$field_info is false ".__METHOD__." ".__LINE__); + return false; + } + else + { + if(e107::getDb()->gen('ALTER TABLE #user_extended ADD user_'.e107::getParser()->toDB($new_data['user_extended_struct_name'], true).' '.$field_info)===false) + { + $mes->addError("Unable to alter table user_extended."); + } + } + + if(empty($new_data['user_extended_struct_order'])) + { + if($max = e107::getDb()->retrieve('user_extended_struct','MAX(user_extended_struct_order) as maxorder','1')) + { + if(is_numeric($max)) + { + $new_data['user_extended_struct_order'] = ($max + 1); + } + } + } return $new_data; + } + + public function afterCreate($new_data, $old_data, $id) { // do something @@ -478,13 +523,60 @@ e107::js('footer-inline', js()); // do something } + public function beforeDelete($data,$id) + { + $mes = e107::getMessage(); + + if(!e107::getUserExt()->user_extended_remove($id, $data['user_extended_struct_name'])) + { + $mes->addError("Unable to delete column from user_extended table."); + return false; + } + else + { + $mes->addDebug("User Extended Column deleted from table"); + } + + } + + + public function afterDelete($data,$id) + { + + + } + // ------- Customize Update -------- public function beforeUpdate($new_data, $old_data, $id) { + + $ue = e107::getUserExt(); + $mes = e107::getMessage(); + + if ($ue->user_extended_field_exist($new_data['user_extended_struct_name'])) + { + $field_info = $ue->user_extended_type_text($new_data['user_extended_struct_type'], $new_data['user_extended_struct_default']); + + if(false === $field_info) // wrong type + { + return false; + } + else + { + if(e107::getDb()->gen("ALTER TABLE #user_extended MODIFY user_".e107::getParser()->toDB($new_data['user_extended_struct_name'], true)." ".$field_info)===false) + { + $mes->addError("Unable to alter table user_extended."); + } + } + + + } + $new_data = $this->compileData($new_data); + return $new_data; } @@ -717,12 +809,12 @@ e107::js('footer-inline', js()); case 'write': // Edit Page - return $this->select('user_required',$opts, varset($curVal,1),'size=xxlarge'); + return $this->select('user_extended_struct_required',$opts, varset($curVal,1),'size=xxlarge'); break; case 'filter': case 'batch': - return array(); + return $opts; break; }