static function validateDate($field, $request) { $req = $field->required; $start = FieldController::getFieldOption($field, 'Start'); $end = FieldController::getFieldOption($field, 'End'); $month = $request->input('month_' . $field->flid, ''); $day = $request->input('day_' . $field->flid, ''); $year = $request->input('year_' . $field->flid, ''); if ($req == 1 && $month == '' && $day == '' && $year == '') { return $field->name . ' field is required.'; } if ($year < $start | $year > $end && $month != '' | $day != '') { return 'Year supplied for field ' . $field->name . ' is not in the range of ' . $start . ' and ' . $end . '.'; } if (!FieldController::validateDate($month, $day, $year)) { return 'Invalid date for field ' . $field->name . '. Either day given w/ no month provided, or day and month are impossible.'; } return ''; }
@endforeach @elseif($field->type=='Rich Text') @foreach($record->richtextfields as $rtf) @if($rtf->flid == $field->flid) <?php echo $rtf->rawtext; ?> @endif @endforeach @elseif($field->type=='Number') @foreach($record->numberfields as $nf) @if($nf->flid == $field->flid) <?php echo $nf->number; if ($nf->number != '') { echo ' ' . \App\Http\Controllers\FieldController::getFieldOption($field, 'Unit'); } ?> @endif @endforeach @elseif($field->type=='List') @foreach($record->listfields as $lf) @if($lf->flid == $field->flid) {{ $lf->option }} @endif @endforeach @elseif($field->type=='Multi-Select List') @foreach($record->multiselectlistfields as $mslf) @if($mslf->flid == $field->flid) @foreach(explode('[!]',$mslf->options) as $opt) <div>{{ $opt }}</div>
while ($i <= 31) { if (explode('[D]', $field->default)[1] == $i) { echo "<option value=" . $i . " selected>" . $i . "</option>"; } else { echo "<option value=" . $i . ">" . $i . "</option>"; } $i++; } ?> </select> {!! Form::label('default_year','Year: ') !!} <select name="default_year" class="form-control"> <option value=""></option> <?php $i = \App\Http\Controllers\FieldController::getFieldOption($field, 'Start'); $j = \App\Http\Controllers\FieldController::getFieldOption($field, 'End'); while ($i <= $j + 1) { if (explode('[Y]', $field->default)[1] == $i) { echo "<option value=" . $i . " selected>" . $i . "</option>"; } else { echo "<option value=" . $i . ">" . $i . "</option>"; } $i++; } ?> </select> </div> <div class="form-group"> {!! Form::submit("Update Default",['class' => 'btn btn-primary form-control']) !!} </div> {!! Form::close() !!}
<input type="number" name="value" class="form-control" step="1" value="{{ \App\Http\Controllers\FieldController::getFieldOption($field, "MaxFiles") }}" min="0"> </div> <div class="form-group"> {!! Form::submit("Update Max File Amount",['class' => 'btn btn-primary form-control']) !!} </div> {!! Form::close() !!} {!! Form::model($field, ['method' => 'PATCH', 'action' => ['FieldController@updateOptions', $field->pid, $field->fid, $field->flid]]) !!} @include('fields.options.hiddens') {!! Form::hidden('option','FileTypes') !!} <div class="form-group"> {!! Form::label('value','Allowed File (MIME) Types: ') !!} <?php $values = array(); foreach (explode('[!]', \App\Http\Controllers\FieldController::getFieldOption($field, "FileTypes")) as $opt) { $values[$opt] = $opt; } ?> {!! Form::select('value'.'[]',$values, explode('[!]',\App\Http\Controllers\FieldController::getFieldOption($field, "FileTypes")), ['class' => 'form-control filetypes', 'Multiple', 'id' => 'list'.$field->flid]) !!} </div> <div class="form-group"> {!! Form::submit("Update File Types",['class' => 'btn btn-primary form-control']) !!} </div> {!! Form::close() !!} @include('errors.list') @stop
/** * Builds up an array that functions similarly to the field object. Json encoded for storage. * * @param Record $record * @return string */ public static function buildDataArray(Record $record) { $data = array(); if (!is_null($record->textfields()->first())) { $text = array(); $textfields = $record->textfields()->get(); foreach ($textfields as $textfield) { $name = Field::where('flid', '=', $textfield->flid)->first()->name; $text[$textfield->flid]['name'] = $name; $text[$textfield->flid]['data'] = $textfield->text; } $data['textfields'] = $text; } else { $data['textfields'] = null; } if (!is_null($record->richtextfields()->first())) { $richtext = array(); $rtfields = $record->richtextfields()->get(); foreach ($rtfields as $rtfield) { $name = Field::where('flid', '=', $rtfield->flid)->first()->name; $richtext[$rtfield->flid]['name'] = $name; $richtext[$rtfield->flid]['data'] = $rtfield->rawtext; } $data['richtextfields'] = $richtext; } else { $data['richtextfields'] = null; } if (!is_null($record->numberfields()->first())) { $number = array(); $numberfields = $record->numberfields()->get(); foreach ($numberfields as $numberfield) { $fieldactual = Field::where('flid', '=', $numberfield->flid)->first(); $name = $fieldactual->name; $numberdata = array(); $numberdata['number'] = $numberfield->number; if ($numberfield->number != '') { $numberdata['unit'] = FieldController::getFieldOption($fieldactual, 'Unit'); } else { $numberdata['unit'] = ''; } $number[$numberfield->flid]['name'] = $name; $number[$numberfield->flid]['data'] = $numberdata; } $data['numberfields'] = $number; } else { $data['numberfields'] = null; } if (!is_null($record->listfields()->first())) { $list = array(); $listfields = $record->listfields()->get(); foreach ($listfields as $listfield) { $name = Field::where('flid', '=', $listfield->flid)->first()->name; $list[$listfield->flid]['name'] = $name; $list[$listfield->flid]['data'] = $listfield->option; } $data['listfields'] = $list; } else { $data['listfields'] = null; } if (!is_null($record->multiselectlistfields()->first())) { $msl = array(); $mslfields = $record->multiselectlistfields()->get(); foreach ($mslfields as $mslfield) { $name = Field::where('flid', '=', $mslfield->flid)->first()->name; $msl[$mslfield->flid]['name'] = $name; $msl[$mslfield->flid]['data'] = $mslfield->options; } $data['multiselectlistfields'] = $msl; } else { $data['multiselectlistfields'] = null; } if (!is_null($record->generatedlistfields()->first())) { $genlist = array(); $genlistfields = $record->generatedlistfields()->get(); foreach ($genlistfields as $genlistfield) { $name = Field::where('flid', '=', $genlistfield->flid)->first()->name; $genlist[$genlistfield->flid]['name'] = $name; $genlist[$genlistfield->flid]['data'] = $genlistfield->options; } $data['generatedlistfields'] = $genlist; } else { $data['generatedlistfields'] = null; } if (!is_null($record->datefields()->first())) { $date = array(); $datefields = $record->datefields()->get(); foreach ($datefields as $datefield) { $fieldactual = Field::where('flid', '=', $datefield->flid)->first(); $name = $fieldactual->name; $datedata = array(); $datedata['format'] = FieldController::getFieldOption($fieldactual, 'Format'); if (FieldController::getFieldOption($fieldactual, 'Circa') == 'Yes') { $datedata['circa'] = $datefield->circa; } else { $datedata['circa'] = ''; } $datedata['day'] = $datefield->day; $datedata['month'] = $datefield->month; $datedata['year'] = $datefield->year; if (FieldController::getFieldOption($fieldactual, 'Era') == 'Yes') { $datedata['era'] = $datefield->era; } else { $datedata['era'] = ''; } $date[$datefield->flid]['name'] = $name; $date[$datefield->flid]['data'] = $datedata; } $data['datefields'] = $date; } else { $data['datefields'] = null; } if (!is_null($record->schedulefields()->first())) { $schedule = array(); $schedulefields = $record->schedulefields()->get(); foreach ($schedulefields as $schedulefield) { $name = Field::where('flid', '=', $schedulefield->flid)->first()->name; $schedule[$schedulefield->flid]['name'] = $name; $schedule[$schedulefield->flid]['data'] = $schedulefield->events; } $data['schedulefields'] = $schedule; } else { $data['schedulefields'] = null; } /* Have to see which method is better, for now we'll use json_encode (remember to use json_decode($array, true)). Alternative method is presented here. The base64_encode method might end up working better for data other than simple text and lists. $revision->data = base64_encode(serialize($record)); To decode: $decode = unserialize(base64_decode(serialize($revision->data))); */ return json_encode($data); }
{!! Form::label('value_x','Small Thumbnail Size (X): ') !!} <input type="number" name="value_x" class="form-control" step="any" value="{{$thumbSmCurr[0]}}" min="50" max="700"> {!! Form::label('value_y','Small Thumbnail Size (Y): ') !!} <input type="number" name="value_y" class="form-control" step="any" value="{{$thumbSmCurr[1]}}" min="50" max="700"> </div> <div class="form-group"> {!! Form::submit("Update Small Thumbnail Size",['class' => 'btn btn-primary form-control']) !!} </div> {!! Form::close() !!} {!! Form::model($field, ['method' => 'PATCH', 'action' => ['FieldController@updateOptions', $field->pid, $field->fid, $field->flid]]) !!} @include('fields.options.hiddens') {!! Form::hidden('option','ThumbLarge') !!} <div class="form-group"> <?php $thumbLrgCurr = explode('x', \App\Http\Controllers\FieldController::getFieldOption($field, "ThumbLarge")); ?> {!! Form::label('value_x','Large Thumbnail Size (X): ') !!} <input type="number" name="value_x" class="form-control" step="1" value="{{$thumbLrgCurr[0]}}" min="50" max="700"> {!! Form::label('value_y','Large Thumbnail Size (Y): ') !!} <input type="number" name="value_y" class="form-control" step="1" value="{{$thumbLrgCurr[1]}}" min="50" max="700"> </div> <div class="form-group"> {!! Form::submit("Update Large Thumbnail Size",['class' => 'btn btn-primary form-control']) !!} </div> {!! Form::close() !!} {!! Form::model($field, ['method' => 'PATCH', 'action' => ['FieldController@updateOptions', $field->pid, $field->fid, $field->flid]]) !!} @include('fields.options.hiddens') {!! Form::hidden('option','MaxFiles') !!} <div class="form-group">
public function saveTmpFile($flid, Request $request) { $field = FieldController::getField($flid); $uid = \Auth::user()->id; $dir = env('BASE_PATH') . 'storage/app/tmpFiles/f' . $flid . 'u' . $uid; $maxFileNum = FieldController::getFieldOption($field, 'MaxFiles'); $fileNumRequest = sizeof($_FILES['file' . $flid]['name']); if (glob($dir . '/*.*') != false) { $fileNumDisk = count(glob($dir . '/*.*')); } else { $fileNumDisk = 0; } $maxFieldSize = FieldController::getFieldOption($field, 'FieldSize') * 1024; //conversion of kb to bytes $fileSizeRequest = 0; foreach ($_FILES['file' . $flid]['size'] as $size) { $fileSizeRequest += $size; } $fileSizeDisk = 0; if (file_exists($dir)) { foreach (new \DirectoryIterator($dir) as $file) { if ($file->isFile()) { $fileSizeDisk += $file->getSize(); } } } $smThumbs = explode('x', FieldController::getFieldOption($field, 'ThumbSmall')); $lgThumbs = explode('x', FieldController::getFieldOption($field, 'ThumbLarge')); $validTypes = true; $fileTypes = explode('[!]', FieldController::getFieldOption($field, 'FileTypes')); $fileTypesRequest = $_FILES['file' . $flid]['type']; if (sizeof($fileTypes) != 1 | $fileTypes[0] != '') { foreach ($fileTypesRequest as $type) { if (!in_array($type, $fileTypes)) { $validTypes = false; } } } else { if ($field->type == 'Gallery') { foreach ($fileTypesRequest as $type) { if (!in_array($type, ['image/jpeg', 'image/gif', 'image/png'])) { $validTypes = false; } } } } $options = array(); $options['flid'] = 'f' . $flid . 'u' . $uid; $options['image_versions']['thumbnail']['max_width'] = $smThumbs[0]; $options['image_versions']['thumbnail']['max_height'] = $smThumbs[1]; $options['image_versions']['medium']['max_width'] = $lgThumbs[0]; $options['image_versions']['medium']['max_height'] = $lgThumbs[1]; if (!$validTypes) { echo 'InvalidType'; } else { if ($maxFileNum != 0 && $fileNumRequest + $fileNumDisk > $maxFileNum) { echo 'TooManyFiles'; } else { if ($maxFieldSize != 0 && $fileSizeRequest + $fileSizeDisk > $maxFieldSize) { echo 'MaxSizeReached'; } else { $upload_handler = new UploadHandler($options); } } } }