EMLTemplateSeeder.php
1 <?php 2 3 namespace Database\Seeders; 4 5 use Carbon\Carbon; 6 use Illuminate\Database\Console\Seeds\WithoutModelEvents; 7 use Illuminate\Database\Seeder; 8 use Illuminate\Support\Facades\DB; 9 use RecursiveDirectoryIterator; 10 use RecursiveTreeIterator; 11 12 class EMLTemplateSeeder extends Seeder 13 { 14 15 /** 16 * Run the database seeds. 17 * 18 * @return void 19 */ 20 public function run() 21 { 22 DB::table('eml_templates')->insert($this->getTemplatesByLanguage('es')); 23 DB::table('eml_templates')->insert($this->getTemplatesByLanguage('en')); 24 } 25 26 public static function getTemplatesByLanguage(string $locale): array 27 { 28 $data = []; 29 $it = new RecursiveTreeIterator(new RecursiveDirectoryIterator(database_path('data/EML_Templates/' . $locale), \FilesystemIterator::SKIP_DOTS)); 30 foreach ($it as $path) { 31 $info = pathinfo($path); 32 $content = file_get_contents(explode('-', $path)[1]); 33 $values = preg_split('/\r\n|\r|\n/', $content); 34 35 $data[] = [ 36 'title' => explode('.', $info['filename'])[0], 37 'subject' => array_shift($values), 38 'body' => implode("\n", $values), 39 'isInternal' => false, 40 'language' => $locale, 41 'created_at' => Carbon::now(), 42 'updated_at' => Carbon::now(), 43 ]; 44 } 45 return $data; 46 } 47 }