public function getParentData($modelConfig = NULL) { $parentIdProperty = NULL; $parentId = NULL; $parent = NULL; $parentObject = NULL; $parentFound = false; $allParents = NULL; $reflection = new \ReflectionClass($this); $objectClass = $reflection->getShortName(); if (!$modelConfig) { $modelConfig = AdminHelper::modelExists($objectClass); } if ($modelConfig->getModelParents() || $modelConfig->parent) { $parentIdProperties = AdminHelper::objectToArray($modelConfig->getModelParents()); if (!$parentIdProperties) { $parentIdProperties = array($modelConfig->parent->property); } if (!empty($_GET)) { foreach ($_GET as $parentIdProperty => $id) { if (in_array($parentIdProperty, $parentIdProperties) && is_numeric($id)) { /** @var ModelConfig $parentModelConfig */ $parentModelConfig = AdminHelper::modelExists($parentIdProperty, 'id'); /** @var BaseModel $parentModel */ $parentModel = $parentModelConfig->myFullEntityName(); $parentObject = $parentModel::find($id); if ($parentObject) { $parentId = $id; $parentFound = true; if ($modelConfig->standalone === false || isset($_GET['addToParent'])) { $allParents[$parentIdProperty] = $id; } } else { $parentIdProperty = NULL; $parentObject = NULL; } } else { $parentIdProperty = NULL; } // Break after first iteration because first $_GET must be the parent break; } } if (!empty($_POST)) { foreach ($_POST as $parentIdPropertyFromPost => $idFromPost) { if (in_array($parentIdPropertyFromPost, $parentIdProperties) && is_numeric($idFromPost)) { /** @var ModelConfig $parentModelConfig */ $parentModelConfig = AdminHelper::modelExists($parentIdPropertyFromPost, 'id'); $parentModel = $parentModelConfig->myFullEntityName(); /** @var BaseModel $parentModel */ $parentObject = $parentModel::find($idFromPost); if ($parentObject) { $allParents[$parentIdPropertyFromPost] = $idFromPost; } } } } } if (!$parentFound && $modelConfig->index == 'tree') { $parentIdProperty = $modelConfig->parent->property; $parentId = $this->{$parentIdProperty}; } $data = array('parentIdProperty' => $parentIdProperty, 'parentId' => $parentId, 'parent' => $parent, 'parentObject' => $parentObject, 'allParents' => $allParents); return $data; }
if ($dimensions[2] == 'minWidth') { $infoSpans .= "<span class='info " . $infoWidthClass . "'>" . trans('gtcms.minimumDimensions') . ": <strong>" . $dimensions[0] . "px width</strong></span>"; } else { if ($dimensions[2] == 'minHeight') { $infoSpans .= "<span class='info " . $infoWidthClass . "'>" . trans('gtcms.minimumDimensions') . ": <strong>" . $dimensions[1] . "px height</strong></span>"; } else { $infoSpans .= "<span class='info " . $infoWidthClass . "'>" . trans('gtcms.minimumDimensions') . ": <strong>" . $dimensions[0] . "px</strong> x <strong>" . $dimensions[1] . "px</strong></span>"; } } } } else { if ($type == 'image' && $modelConfig->name != 'ModelImage') { foreach ($field->sizes as $size) { break; } $dimensions = AdminHelper::objectToArray($size); if ($dimensions[2] == 'resize') { $infoSpans .= "<span class='info " . $infoWidthClass . "'>" . trans('gtcms.minimumDimensions') . ": <strong>" . (is_null($dimensions[0]) ? 1 : $dimensions[0]) . "px width</strong> OR <strong>" . (is_null($dimensions[1]) ? 1 : $dimensions[1]) . "px height</strong></span>"; } else { $infoSpans .= "<span class='info " . $infoWidthClass . "'>" . trans('gtcms.minimumDimensions') . ": <strong>" . (is_null($dimensions[0]) ? 1 : $dimensions[0]) . "px</strong> x <strong>" . (is_null($dimensions[1]) ? 1 : $dimensions[1]) . "px</strong></span>"; } } } } if ($field->specialInfo) { $infoSpans .= "<span class='info specialInfo " . $infoWidthClass . "'>" . $field->specialInfo . "</span>"; } $ctrlGroup = " " . $containerClass; $property = $field->property; if ($add && $field->default) { $originalValue = $field->default;
public static function firstParamIsParent(ModelConfig $modelConfig, $returnParentIdValue = false) { if ($modelConfig->getModelParents() || $modelConfig->parent) { $parentIdProperties = AdminHelper::objectToArray($modelConfig->getModelParents()); if (!$parentIdProperties) { $parentIdProperties = array($modelConfig->parent->property); } if (!empty($_GET)) { foreach ($_GET as $parentIdProperty => $id) { if (in_array($parentIdProperty, $parentIdProperties) && is_numeric($id)) { if ($returnParentIdValue) { return $id; } return $parentIdProperty; } // Break after first iteration because first $_GET must be the parent break; } } } return false; }
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; }
public static function process($modelConfig, $imageFields, $parentProperty) { $imageData = array(); $counter = 0; foreach ($imageFields as $imageField) { $imageData[$counter]['property'] = $imageField->property; if (\Request::hasFile($imageField->property)) { $ext = \Request::file($imageField->property)->getClientOriginalExtension(); if (!in_array(strtolower($ext), array('jpg', 'jpeg', 'gif', 'png'))) { throw new \Exception("File is not an image"); } else { $basePath = public_path() . "/img/modelImages/" . $modelConfig->name . "/"; $dirs = [public_path("img"), public_path("img/modelImages"), public_path("img/modelImages/" . $modelConfig->name), public_path("img/modelImages/" . $modelConfig->name . "/original"), public_path("img/modelImages/" . $modelConfig->name . "/gtcmsThumb")]; foreach ($dirs as $dir) { if (!is_dir($dir)) { mkdir($dir, 0755); } } //here check if file exists do { $name = str_random(32) . "." . $ext; } while (file_exists($basePath . "original/" . $name)); //end check //copy the image to the original folder \Image::make(\Request::file($imageField->property)->getRealPath())->save($basePath . "original/" . $name); $img = \Image::make($basePath . "original/" . $name); if ($parentProperty && $modelConfig->name == 'ModelImage') { $parentModelConfig = AdminHelper::modelExists($parentProperty, 'id'); if (config('gtcms.premium') && $parentModelConfig->keyBasedSizes) { $sizes = GtcmsPremium::getKeyBasedImageSizes($parentModelConfig); } else { $sizes = $parentModelConfig->imageSizes; } } else { $sizes = $imageField->sizes; } if (!$sizes) { throw new \Exception("Sizes not found!"); } // Get the first size, which has the min/max dimensions foreach ($sizes as $size) { break; } $size = AdminHelper::objectToArray($size); $minWidth = $size[0]; $minHeight = $size[1]; $transformMethod = $size[2]; if (in_array($transformMethod, array('resizeCanvas', 'resize'))) { if ($img->width() < $minWidth && $img->height() < $minHeight) { throw new \Exception(trans('gtcms.imageTooSmall'), self::DIM_ERROR); } } if (in_array($transformMethod, array('minWidth'))) { if ($img->width() < $minWidth) { throw new \Exception(trans('gtcms.imageTooSmall'), self::DIM_ERROR); } } if (in_array($transformMethod, array('minHeight'))) { if ($img->height() < $minHeight) { throw new \Exception(trans('gtcms.imageTooSmall'), self::DIM_ERROR); } } else { if ($img->width() < $minWidth || $img->height() < $minHeight) { throw new \Exception(trans('gtcms.imageTooSmall'), self::DIM_ERROR); } } $returnFolder = 'gtcmsThumb'; $gtcmsSize = array(80, 80, 'resizeCanvas', 'gtcmsThumb', 100); $sizes = AdminHelper::objectToArray($sizes); array_unshift($sizes, $gtcmsSize); foreach ($sizes as $size) { $newImg = clone $img; $size = AdminHelper::objectToArray($size); if (!is_dir($basePath . $size[3])) { mkdir($basePath . $size[3], 0755); } if ($size[2] == 'crop') { $newImg->fit($size[0], $size[1])->save($basePath . $size[3] . "/" . $name, $size[4]); } else { if (in_array($size[2], array('resize', 'minWidth', 'minHeight'))) { $newImg->resize($size[0], $size[1], function ($constraint) { $constraint->aspectRatio(); $constraint->upsize(); })->save($basePath . $size[3] . "/" . $name, $size[4]); } else { if ($size[2] == 'resizeCanvas') { $newImg->resize($size[0], null, function ($constraint) { $constraint->aspectRatio(); $constraint->upsize(); }); $newImg->resize(null, $size[1], function ($constraint) { $constraint->aspectRatio(); $constraint->upsize(); }); if ($newImg->width() < $size[0] || $newImg->height() < $size[1]) { $newImg = \Image::canvas($size[0], $size[1], '#FFFFFF')->insert($newImg, 'center'); } $newImg->save($basePath . $size[3] . "/" . $name, $size[4]); } else { $newImg->save($basePath . $size[3] . "/" . $name, $size[4]); } } } } $imageData[$counter]['filename'] = $name; $imageData[$counter]['returnFolder'] = $returnFolder; $counter++; } } } return $imageData; }