File: D:/HostingSpaces/SBogers10/vangogh.komma.pro/app/Komma/Shop/seeds/SampleCategories.php
<?php
namespace App\Komma\Shop\seeds;
use App\Komma\Globalization\Languages\Models\Language;
use App\Komma\Shop\Categories\Models\Category;
use App\Komma\Shop\Categories\Models\CategoryTranslation;
use Illuminate\Database\Seeder;
class SampleCategories extends Seeder
{
public function run()
{
$root = new Category(['active' => '0', 'site_id' => null]); //Null for the default site
$root->makeRoot();
$root->save();
$categories = [
[
'code_name' => 'gereedschap',
'nl' => "Gereedschap",
'de' => "Werkzeuge",
'en' => "Tools",
'children' => [
[
'code_name' => 'slijpen_schuren',
'nl' => 'Slijpen/schuren',
'de' => 'Schleifen / Scheuern',
'en' => 'Grinding / sanding'
],
[
'code_name' => 'borstels_polijsten',
'nl' => 'Borstels/polijsten',
'de' => 'Bürsten / Polieren',
'en' => 'Brushes / polishing'
],
[
'code_name' => 'boren',
'nl' => 'Boren',
'de' => 'Bohren',
'en' => 'Drill sets'
],
[
'code_name' => 'tap_en_snijsets',
'nl' => 'Tap en snijsets',
'de' => 'Klopfen und Schneiden Sätze',
'en' => 'Tap and cutting sets'
],
[
'code_name' => 'tangen',
'nl' => 'Tangen',
'de' => 'Zangen',
'en' => 'Pliers'
],
[
'code_name' => 'hamers_koevoet',
'nl' => 'Hamers / koevoet',
'de' => 'Hämmer / Brecheisen',
'en' => 'Hammers / crowbar'
],
[
'code_name' => 'bijlen',
'nl' => 'Bijlen',
'de' => 'Achsen',
'en' => 'Axes'
],
[
'code_name' => 'klemmen_en_haken',
'nl' => 'Klemmen en haken',
'de' => 'Klammern und Haken',
'en' => 'Clamps and hooks'
],
[
'code_name' => 'schroevendraaiers_en_bits',
'nl' => 'Schroevendraaiers en bits',
'de' => 'Schraubendreher und Bits',
'en' => 'Screwdrivers and bits'
],
[
'code_name' => 'imbus_torx',
'nl' => 'Inbus / Torx',
'de' => 'Inbus / Torx',
'en' => 'Allen keys / Torx'
],
[
'code_name' => 'dop_bitsets',
'nl' => 'Dop/bitsets',
'de' => 'Stecklüssels / Bit-Satz',
'en' => 'Wrenches / Bitsets'
],
[
'code_name' => 'zagen',
'nl' => 'Zagen',
'de' => 'Säge',
'en' => 'Saw'
],
[
'code_name' => 'meten',
'nl' => 'Meten',
'de' => 'Messen',
'en' => 'Measure'
],
[
'code_name' => 'steek_ring_en_sleutels',
'nl' => 'Steek/ring en moersleutels',
'de' => 'Stich / Ring und Schraubenschlüssel',
'en' => 'Stitch / ring and wrenches'
],
[
'code_name' => 'assortimentsdozen',
'nl' => 'Assortimentsdozen',
'de' => 'Sortimentskästen',
'en' => 'Assortment boxes'
],
[
'code_name' => 'ratels_en_toebehoren',
'nl' => 'Ratels & toebehoren',
'de' => 'Ratsche & Zubehör',
'en' => 'Ratchets & Accessories'
],
[
'code_name' => 'gereedschapsets',
'nl' => 'Gereedschapsets',
'de' => 'Werkzeug-Sätze',
'en' => 'Tool sets'
],
[
'code_name' => 'diversen',
'nl' => 'Diversen',
'de' => 'Verschiedenes',
'en' => 'Miscellaneous'
],
]
],
[
'code_name' => 'wielen_banden',
'nl' => "Wielen & banden",
'de' => "Räder und reifen",
'en' => "Wheels & tires",
'children' => [
[
'code_name' => 'bok_en_zwenkwielen',
'nl' => 'Bok & zwenkwielen',
'de' => 'Lenkrollen/ Schwenkräder',
'en' => 'Swivel / castor wheels'
],
[
'code_name' => 'lucht_en_pu_banden',
'nl' => 'Lucht & PU banden',
'de' => 'Air Räder und PU-Räder',
'en' => 'Air & PU wheels'
],
[
'code_name' => 'diversen',
'nl' => 'Diversen',
'de' => 'Verschiedenes',
'en' => 'Miscellaneous'
]
]
],
[
'code_name' => 'auto',
'nl' => "Auto",
'de' => "Auto",
'en' => "Auto",
'children' => [
[
'code_name' => 'automotive_gereedschap',
'nl' => 'Automotive gereedschap',
'de' => 'Kfz-Werkzeuge',
'en' => 'Automotive tools'
],
[
'code_name' => 'spanbanden',
'nl' => 'Spanbanden',
'de' => 'Spanngurte',
'en' => 'Tension belts'
],
[
'code_name' => 'aanhangwagenonderdelen',
'nl' => 'Aanhangwagenonderdelen',
'de' => 'Anhänger Teile',
'en' => 'Trailer parts'
],
[
'code_name' => 'luchtgereedschap',
'nl' => 'Luchtgereedschap',
'de' => 'Luftwerkzeuge',
'en' => 'Air tools'
],
[
'code_name' => 'werkplaatsuitrusting',
'nl' => 'Werkplaatsuitrusting',
'de' => 'Werkstattausrüstung',
'en' => 'Workshop equipment'
],
[
'code_name' => 'diversen',
'nl' => 'Diversen',
'de' => 'Verschiedenes',
'en' => 'Miscellaneous'
],
]
],
[
'code_name' => 'in_en_om_het_huis',
'nl' => "In en om het huis",
'de' => "In und um das Haus",
'en' => "In and around the house",
'children' => [
[
'code_name' => 'electra',
'nl' => 'Elecktra',
'de' => 'Elektra',
'en' => 'Electricity'
],
[
'code_name' => 'tuin',
'nl' => 'Tuin',
'de' => 'Garten',
'en' => 'Garden'
],
[
'code_name' => 'douce_en_bad',
'nl' => 'Douche & bad',
'de' => 'Dusche & Bad',
'en' => 'Shower & bath'
],
[
'code_name' => 'diversen',
'nl' => 'Diversen',
'de' => 'Verschiedenes',
'en' => 'Miscellaneous'
]
]
],
[
'code_name' => 'vrije_tijd_hobby',
'nl' => "Vrije tijd & hobby",
'de' => "Freizeit & hobby",
'en' => "Leisure & hobby",
'children' => [
[
'code_name' => 'fiets',
'nl' => 'Fiets',
'de' => 'Fahrrad',
'en' => 'Bicycle'
],
[
'code_name' => 'mensen_en_scharen',
'nl' => 'Messen & scharen',
'de' => 'Messer & Schere',
'en' => 'Knives & Scissors'
],
[
'code_name' => 'lampen',
'nl' => 'Lampen',
'de' => 'Lampen',
'en' => 'Lamps'
],
[
'code_name' => 'diversen',
'nl' => 'Diversen',
'de' => 'Verschiedenes',
'en' => 'Miscellaneous'
]
]
]
];
foreach ($categories as $mainCategoryData) {
$mainCategory = $this->createCategory($mainCategoryData, $root);
}
}
/**
* Create a category from the array data you pass it.
*
* @param $categoryData
* @return Category
*/
private function createCategory($categoryData, $parent)
{
$category = new Category();
$category->code_name = $categoryData['code_name'];
$category->active = 1;
$category->makeLastChildOf($parent); //Also saves
foreach ($categoryData as $key => $value) {
switch ($key) {
case 'code_name':
break;
case 'children':
foreach ($value as $childCategoryData) {
$this->createCategory($childCategoryData, $category);
}
break;
default:
$language = Language::where('iso_2', '=', $key)->first();
if (!$language) {
break;
}
$translation = new CategoryTranslation();
$translation->language()->associate($language);
$translation->translatable()->associate($category);
$translation->slug = str_slug($value);
$translation->name = $value;
$translation->meta_title = $value;
$translation->save();
}
}
return $category;
}
}