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; }
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;
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"); } } }