/** * @param $parts * @return static */ private function importClipping($parts) { $created_at = Carbon::createFromFormat('m/d/Y H:i:s', $parts[0]); $published_at = Carbon::createFromFormat('m/d/Y', $parts[1]); if ($author = $parts[7]) { $author = ClippingAuthor::firstOrCreate(['name' => $author]); } if ($vehicle = $parts[6]) { $vehicle = ClippingVehicle::firstOrCreate(['name' => $vehicle]); } if ($category = $parts[5]) { $category = ClippingCategory::firstOrCreate(['name' => $category]); } if ($locality = $parts[8]) { $locality = ClippingLocality::firstOrCreate(['name' => $locality]); } $clipping = Clipping::create(['heading' => $parts[2], 'subheading' => $parts[3], 'body' => $parts[4], 'author_id' => $author ? $author->id : null, 'vehicle_id' => $vehicle ? $vehicle->id : null, 'category_id' => $category ? $category->id : null, 'locality_id' => $locality ? $locality->id : null, 'url' => $parts[10], 'article_preview_url' => isset($parts[17]) ? $parts[17] : null, 'published_at' => $published_at, 'created_at' => $created_at]); foreach ($tags = explode(',', $parts[9]) as $key => $tag) { if ($tag = Tag::findOrCreateTag($tag)) { ClippingTag::firstOrCreate(['clipping_id' => $clipping->id, 'tag_id' => $tag->id]); } } $clippingFile = app()->make(ClippingFile::class); if (isset($parts[11]) && !empty($parts[11])) { $clippingFile->createFor($clipping, false, false, true, $parts[11], ClippingFileType::firstorCreate(['name' => 'video'])); } $isMainFile = true; for ($counter = 11; $counter <= 16; $counter++) { if (isset($parts[$counter]) && !empty($parts[$counter])) { $file = $clippingFile->createFor($clipping, $isMainFile, false, false, $parts[$counter], ClippingFileType::firstorCreate(['name' => 'image'])); $isMainFile = $file->file_name_id ? false : $isMainFile; } } if (isset($parts[17]) && !empty($parts[17])) { $file = str_replace('?dl=0', '?dl=1', $parts[17]); $clippingFile->createFor($clipping, false, true, false, $file, ClippingFileType::firstorCreate(['name' => 'image'])); return $clipping; } return $clipping; }
public function create() { $tags = Tag::orderBy('name')->get()->lists('name'); return view('admin.clipping.create')->with('today_date', Carbon::now()->format('d-m-Y'))->with('tags', $tags); }