예제 #1
0
 public function getModelParents()
 {
     if (!is_null($this->gtcmsModelParents)) {
         return $this->gtcmsModelParents;
     }
     $parents = array();
     foreach (\AdminHelper::modelConfigs() as $modelConfig) {
         if ($modelConfig->name != $this->name && $modelConfig->relatedModels) {
             foreach ($modelConfig->relatedModels as $relatedModel) {
                 if ($relatedModel->name == $this->name) {
                     $parents[] = $modelConfig->id;
                 }
             }
         }
     }
     $this->gtcmsModelParents = $parents;
     return $parents;
 }
예제 #2
0
 public static function input($modelConfig)
 {
     $input = \Request::all();
     if (is_array($input) && !empty($input)) {
         $formFields = array();
         foreach ($modelConfig->formFields as $field) {
             $formFields[$field->property] = $field;
         }
         $userRole = \Auth::user()->role;
         foreach ($input as $property => &$value) {
             //set parent IDs to NULL if no value was selected from dropdown
             foreach (AdminHelper::modelConfigs() as $currentModelConfig) {
                 if (!is_array($property) && $property == $currentModelConfig->id && !$value) {
                     $value = NULL;
                 }
             }
             if ($modelConfig) {
                 if (isset($formFields[$property])) {
                     $field = $formFields[$property];
                     //unset property if user isn't allowed to edit it
                     if ($field->restrictedAccess && !$field->restrictedAccess->{$userRole}) {
                         unset($input[$property]);
                     } else {
                         //format DateTime / Date
                         if (in_array($field->type, array('date', 'dateTime'))) {
                             if (Tools::validateDate($value)) {
                                 if ($field->type == "date") {
                                     $value = date("Y-m-d", strtotime($value));
                                 } else {
                                     if ($field->type == "dateTime") {
                                         $value = date("Y-m-d H:i:s", strtotime($value));
                                     } else {
                                         $value = "";
                                     }
                                 }
                             } else {
                                 $value = "";
                             }
                         }
                         //set null when empty
                         if ($field->setNullWhenEmpty && !$value && $value !== 0 && $value !== "0") {
                             $value = null;
                         }
                     }
                 }
             }
         }
     }
     if ($modelConfig->name == "User" && isset($input['is_superadmin']) && !\Auth::user()->is_superadmin) {
         $input['is_superadmin'] = 0;
     }
     return $input;
 }