Example #1
0
 public function createGroupItem()
 {
     $dataArr = ['sorter' => 99, 'show' => true, 'stringfields' => [], 'textfields' => [], 'numbs' => [], 'bools' => [], 'pdatetimes' => [], 'images' => []];
     $blockname = $this->name;
     $groupstruct = config('landing')[$this->name]['group'];
     $newGroupItem = new \Prehistorical\Landing\Group();
     $newGroupItem->block_name = $blockname;
     $newGroupItem->save();
     $dataArr['id'] = $newGroupItem->id;
     if (array_key_exists('stringfields', $groupstruct)) {
         foreach ($groupstruct['stringfields'] as $fieldname) {
             $stringfield = Stringfield::create(['block_name' => $blockname, 'name' => $fieldname, 'group_id' => $newGroupItem->id]);
             $newGroupItem->stringfields()->save($stringfield);
             $dataArr['stringfields'][$fieldname] = '';
         }
     }
     if (array_key_exists('textfields', $groupstruct)) {
         foreach ($groupstruct['textfields'] as $fieldname) {
             $textfield = Textfield::firstOrNew(['block_name' => $blockname, 'name' => $fieldname, 'group_id' => $newGroupItem->id]);
             $newGroupItem->textfields()->save($textfield);
             $dataArr['textfields'][$fieldname] = '';
         }
     }
     if (array_key_exists('numbs', $groupstruct)) {
         foreach ($groupstruct['numbs'] as $fieldname) {
             $numb = Numb::firstOrNew(['block_name' => $blockname, 'name' => $fieldname, 'group_id' => $newGroupItem->id]);
             $newGroupItem->numbs()->save($numb);
             $dataArr['numbs'][$fieldname] = '';
         }
     }
     if (array_key_exists('bools', $groupstruct)) {
         foreach ($groupstruct['bools'] as $fieldname) {
             $boolitem = Bool::firstOrNew(['block_name' => $blockname, 'name' => $fieldname, 'group_id' => $newGroupItem->id]);
             $newGroupItem->bools()->save($boolitem);
             $dataArr['bools'][$fieldname] = '';
         }
     }
     if (array_key_exists('pdatetimes', $groupstruct)) {
         foreach ($groupstruct['pdatetimes'] as $fieldname) {
             $dtitem = Pdatetime::firstOrNew(['block_name' => $blockname, 'name' => $fieldname, 'group_id' => $newGroupItem->id]);
             $dtitem->value = new \DateTime();
             $newGroupItem->pdatetimes()->save($dtitem);
             $dataArr['pdatetimes'][$fieldname] = $dtitem->value->format('d.m.Y H:i:s');
         }
     }
     if (array_key_exists('images', $groupstruct)) {
         foreach ($groupstruct['images'] as $fieldname) {
             $image = Imageitem::firstOrNew(['block_name' => $blockname, 'name' => $fieldname, 'group_id' => $newGroupItem->id]);
             $newGroupItem->images()->save($image);
             $dataArr['images'][$fieldname] = ['alt' => '', 'primary_link' => '', 'secondary_link' => '', 'icon_link' => '', 'preview_link' => ''];
         }
     }
     $newGroupItem->save();
     return $dataArr;
 }