Beispiel #1
0
 public function move($params)
 {
     $modelConfig = $params['modelConfig'];
     $objectClass = $modelConfig->name;
     $parentName = $params['parentName'];
     $aboveItemId = $params['aboveItemId'];
     $belowItemId = $params['belowItemId'];
     $direction = $params['direction'];
     /** @var BaseModel $this */
     /** @var BaseModel $objectClass */
     /** @var BaseModel $fullObjectClass */
     $fullObjectClass = ModelConfig::fullEntityName($objectClass);
     $belowItem = $belowItemId ? $fullObjectClass::find($belowItemId) : false;
     $aboveItem = $aboveItemId ? $fullObjectClass::find($aboveItemId) : false;
     if (!$belowItem && !$aboveItem) {
         Dbar::error("no below or above item");
         return false;
     }
     $positionProperty = 'position';
     $positionInParent = false;
     $parentIdProperty = false;
     if ($parentName) {
         $parentModelConfig = AdminHelper::modelExists($parentName);
         $parentIdProperty = $parentModelConfig->id;
         $positionInParent = true;
         $modelConfigInParent = $this->getRelatedModelConfigurationInParentModel($modelConfig, $parentName);
         $positionProperty = $modelConfigInParent['positionProperty'];
         $directionField = $modelConfigInParent['direction'];
         if ($directionField == 'desc') {
             if ($direction == 'move-down') {
                 $direction = 'move-up';
             } else {
                 if ($direction == 'move-up') {
                     $direction = 'move-down';
                 }
             }
             $tempItem = $belowItem;
             $belowItem = $aboveItem;
             $aboveItem = $tempItem;
         }
     } else {
         if ($modelConfig->direction == 'desc') {
             if ($direction == 'move-down') {
                 $direction = 'move-up';
             } else {
                 if ($direction == 'move-up') {
                     $direction = 'move-down';
                 }
             }
             $tempItem = $belowItem;
             $belowItem = $aboveItem;
             $aboveItem = $tempItem;
         }
     }
     $oldPosition = $this->{$positionProperty};
     //moved down
     if ($aboveItem && $direction == 'move-down') {
         $newPosition = $aboveItem->{$positionProperty};
         //moved up
     } else {
         if ($belowItem && $direction == 'move-up') {
             $newPosition = $belowItem->{$positionProperty};
         } else {
             return false;
         }
     }
     $this->{$positionProperty} = $newPosition;
     if ($direction == 'move-down') {
         $this->{$positionProperty} = $newPosition;
         $object =& $this;
         \DB::transaction(function () use($parentIdProperty, &$object, $positionInParent, $fullObjectClass, $positionProperty, $oldPosition, $newPosition) {
             $object->save();
             if ($positionInParent) {
                 $fullObjectClass::where($parentIdProperty, $object->{$parentIdProperty})->where('id', '<>', $object->id)->where($positionProperty, '>', $oldPosition)->where($positionProperty, '<=', $newPosition)->decrement($positionProperty);
             } else {
                 $fullObjectClass::where('id', '<>', $object->id)->where('position', '>', $oldPosition)->where('position', '<=', $newPosition)->decrement('position');
             }
         });
     } else {
         if ($direction == 'move-up') {
             $object =& $this;
             \DB::transaction(function () use($parentIdProperty, &$object, $positionInParent, $fullObjectClass, $positionProperty, $oldPosition, $newPosition) {
                 $object->save();
                 if ($positionInParent) {
                     $fullObjectClass::where($parentIdProperty, $object->{$parentIdProperty})->where('id', '<>', $object->id)->where($positionProperty, '>=', $newPosition)->where($positionProperty, '<', $oldPosition)->increment($positionProperty);
                 } else {
                     $fullObjectClass::where('id', '<>', $object->id)->where('position', '>=', $newPosition)->where('position', '<', $oldPosition)->increment('position');
                 }
             });
         }
     }
     return true;
 }
Beispiel #2
0
 public function getFormFields($fieldType, $parseFromTo = false)
 {
     if ($parseFromTo && !$this->fromToParsed) {
         $formFields = array();
         foreach ($this->formFields as $field) {
             if ($field->fromTo && $field->search) {
                 $newField = AdminHelper::objectToArray($field);
                 $newField['hidden'] = array('add' => true, 'edit' => true, 'view' => true);
                 $fromField = $newField;
                 $fromField['property'] = $field->property . "_fieldFrom";
                 $fromField['label'] = $newField['label'] . " " . trans('gtcms.from');
                 if (isset($fromField['search']['label'])) {
                     $fromField['search']['label'] = $fromField['search']['label'] . " " . trans('gtcms.from');
                 }
                 $fromField['search']['fieldFrom'] = true;
                 $fromField['table'] = false;
                 $fromField['sideTable'] = false;
                 $fromField = AdminHelper::arrayToObject($fromField);
                 $toField = $newField;
                 $toField['property'] = $field->property . "_fieldTo";
                 $toField['label'] = $newField['label'] . " " . trans('gtcms.to');
                 if (isset($toField['search']['label'])) {
                     $toField['search']['label'] = $toField['search']['label'] . " " . trans('gtcms.to');
                 }
                 $toField['search']['fieldTo'] = true;
                 $toField['table'] = false;
                 $toField['sideTable'] = false;
                 $toField = AdminHelper::arrayToObject($toField);
                 $formFields[] = $fromField;
                 $formFields[] = $toField;
                 $field->search = false;
                 $formFields[] = $field;
             } else {
                 $formFields[] = $field;
             }
         }
         $this->fromToParsed = true;
         $this->formFields = $formFields;
     }
     if ($fieldType == 'all') {
         return $this->formFields;
     } else {
         if ($fieldType == 'regular') {
             $fields = array();
             foreach ($this->formFields as $field) {
                 if (!$field->langDependent) {
                     $fields[] = $field;
                 }
             }
             return $fields;
         } else {
             if ($fieldType == 'langDependent') {
                 $fields = array();
                 foreach ($this->formFields as $field) {
                     if (config('gtcms.premium') && $field->langDependent) {
                         $fields[] = $field;
                     }
                 }
                 return $fields;
             } else {
                 Dbar::error("ModelConfig - getFormFields: fieldType is incorrect! - " . $fieldType);
             }
         }
     }
     return false;
 }
            $labelClass = " control-label col-sm-" . $modelConfig->form->labelWidth;
            $infoWidthClass = " col-sm-offset-" . $modelConfig->form->labelWidth . " col-sm-" . $modelConfig->form->inputWidth;
        }
        if ($field->viewField) {
            try {
                $label = AdminHelper::getModelConfigFieldValue($modelConfig, clone $field, $object, $trueCurrentLanguage, true);
                $value = " - ";
                if ($edit) {
                    $value = AdminHelper::getModelConfigFieldValue($modelConfig, clone $field, $object, $trueCurrentLanguage);
                    if (!$value) {
                        $value = " - ";
                    }
                }
            } catch (Exception $e) {
                $value = " --- error --- ";
                Dbar::error("View Field Error (EditContentFormFields): " . $field->property);
            }
            echo '
				<div class="form-group disabledInput">
				<label for="disabledSelect" class="' . $labelClass . '">' . $label . '</label>';
            if ($modelConfig->form && $modelConfig->form->horizontal) {
                echo "<div class='col-sm-" . $modelConfig->form->inputWidth . "'>";
            }
            echo '<input class="form-control disabledInput readOnly " type="text" readonly="readonly" value="' . $value . '">';
            if ($modelConfig->form && $modelConfig->form->horizontal) {
                echo "</div>";
            }
            echo '</div>';
            continue;
        }
        $containerClass = $field->containerClass;
Beispiel #4
0
 public static function handleException(\Exception $e, $message = null, $preventException = false)
 {
     $requestIsAjax = \Request::ajax() && \Request::get('getIgnore_isAjax') ? true : false;
     if (config('gtcms.throwExceptions') && !$preventException) {
         if ($requestIsAjax) {
             Dbar::error($e->getMessage());
             Dbar::critical($e);
         }
         throw $e;
     } else {
         if ($requestIsAjax) {
             Dbar::error($e->getMessage());
             Dbar::critical($e);
             $data = array('success' => false, 'exception' => is_null($message) ? "Error: " . $e->getMessage() : $message);
             return \Response::json($data);
         } else {
             $message = is_null($message) ? "Error: " . $e->getMessage() : $message;
             MessageManager::setException($message);
             return \Redirect::to("/admin");
         }
     }
 }