/**
  * @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;
 }
Beispiel #2
0
 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);
 }