public function run()
 {
     $categories = [['name' => 'Мебель', 'slug' => 'furniture'], ['name' => 'Посуда', 'slug' => 'dishes'], ['name' => 'Аксессуары', 'slug' => 'accessories'], ['name' => 'Кольца', 'slug' => 'rings'], ['name' => 'Заколки', 'slug' => 'hairpins'], ['name' => 'Серьги', 'slug' => 'earrings']];
     $data = [['title' => 'Доска-подставка под горячее', 'content' => ['description' => 'Осина, склейка. Обработка — масло', 'price' => '1000', 'tags' => ['подносы', 'деревяннаяпосуда']], 'categories' => ['dishes'], 'images' => ['cooking_boards_1.jpg', 'cooking_boards_2.jpg']], ['title' => 'Ложки-близняшки', 'content' => ['description' => 'Липа', 'price' => '1000', 'tags' => ['ложкидеревянные', 'деревяннаяпосуда']], 'categories' => ['dishes'], 'images' => ['spoon_1.jpg', 'spoon_2.jpg', 'spoon_3.jpg']], ['title' => 'Серьги «Треугольник»', 'content' => ['description' => 'Орех, хир. сталь', 'price' => '1000', 'tags' => ['серьгиручнойработы', 'серьгииздерева', 'серрежки', 'минимализм']], 'categories' => ['accessories', 'earrings'], 'images' => ['treugolnik_001.jpg']], ['title' => 'Серия сержек «Супрематизм»', 'content' => ['description' => 'Орех, хир. сталь', 'price' => '1000', 'tags' => ['серьгиручнойработы', 'серьгииздерева', 'сережки']], 'categories' => ['accessories', 'earrings'], 'images' => ['kvadro.jpg', 'lisichkini_usgki_1.jpg', 'lisichkini_usgki_2.jpg', 'suprematizm_1.jpg']], ['title' => 'Серьги «Параллелепипед»', 'content' => ['description' => 'Клён, хир. сталь', 'price' => '1000', 'tags' => ['серьгиручнойработы', 'серьгииздерева', 'сережки', 'клен']], 'categories' => ['accessories', 'earrings'], 'images' => ['parallelepiped_1.jpg', 'parallelepiped_2.jpg']], ['title' => 'Серьги «Палочки»', 'content' => ['description' => 'Венге, клён, хир. сталь', 'price' => 'Цена', 'tags' => ['серьгиручнойработы', 'серьгииздерева', 'сережки', 'палочки']], 'categories' => ['accessories', 'earrings'], 'images' => ['palochki.jpg']], ['title' => 'Серьги «Лодочки»', 'content' => ['description' => 'Клён, хир. сталь', 'price' => 'Цена', 'tags' => []], 'categories' => ['accessories', 'earrings'], 'images' => ['lodochki_1.jpg', 'lodochki_2.jpg']], ['title' => 'Серьги «Квадрат»', 'content' => ['description' => 'Орех, хир. сталь', 'price' => '1000', 'tags' => ['серьгиручнойработы', 'серьгииздерева', 'сережки']], 'categories' => ['accessories', 'earrings'], 'images' => ['kvadrat.jpg']], ['title' => 'Серьги «Круг»', 'content' => ['description' => 'Орех, хир. сталь', 'price' => '1000', 'tags' => ['серьгиручнойработы', 'серьгииздерева', 'сережки']], 'categories' => ['accessories', 'earrings'], 'images' => ['krug_1.jpg', 'krug_2.jpg']], ['title' => 'Серьги «Корельская берёза»', 'content' => ['description' => 'Корельская берёза, хир. сталь', 'price' => '1000', 'tags' => ['серьгиручнойработы', 'серьгииздерева', 'сережки']], 'categories' => ['accessories', 'earrings'], 'images' => ['korelskai_bereza_1.jpg', 'korelskai_bereza_2.jpg', 'korelskai_bereza_3.jpg']], ['title' => 'Серьги «Конус»', 'content' => ['description' => 'Орех, хир. сталь', 'price' => '1000', 'tags' => ['серьгиручнойработы', 'серьгииздерева', 'сережки', 'гвоздики']], 'categories' => ['accessories', 'earrings'], 'images' => ['konus_1.jpg', 'konus_2.jpg']], ['title' => 'Серьги «Кленовая коллекция»', 'content' => ['description' => 'Клён, хир. сталь', 'price' => '1000', 'tags' => ['серьгиручнойработы', 'серьгииздерева', 'сережки', 'клен']], 'categories' => ['accessories', 'earrings'], 'images' => ['klen_collection_kolos.jpg']], ['title' => 'Серьги из серии «Геометрия»', 'content' => ['description' => 'Орех, хир. сталь', 'price' => '1000', 'tags' => ['серьгиручнойработы', 'серьгииздерева', 'сережки']], 'categories' => ['accessories', 'earrings'], 'images' => ['geometry_collection_1.jpg', 'geometry_collection_2.jpg']], ['title' => 'Заколка декоративная «Анна»', 'content' => ['description' => 'Красное дерево', 'price' => '1000', 'tags' => ['шпильки', 'деревянныешпильки', 'заколкидляволос', 'заколки', 'заколкииздерева']], 'categories' => ['accessories', 'hairpins'], 'images' => ['anna_kolos.jpg', 'anna_kolos_02.jpg']], ['title' => 'Заколка «Ушки»', 'content' => ['description' => 'Переклейка, венге шпон', 'price' => '1000', 'tags' => ['шпильки', 'деревянныешпильки', 'заколкидляволос', 'заколки', 'заколкииздерева']], 'categories' => ['accessories', 'hairpins'], 'images' => ['shpilky_kolos_01.jpg']], ['title' => 'Заколка «Спутник»', 'content' => ['description' => 'Русский орех', 'price' => '1000', 'tags' => ['шпильки', 'деревянныешпильки', 'заколкидляволос', 'заколки', 'заколкииздерева']], 'categories' => ['accessories', 'hairpins'], 'images' => ['sputnik.jpg', 'sputnik_02.jpg', 'sputnik_03.jpg', 'sputnik_04.jpg']], ['title' => 'Заколка «Биоформа»', 'content' => ['description' => 'Ольха', 'price' => '1000', 'tags' => ['шпильки', 'деревянныешпильки', 'заколкидляволос', 'заколки', 'заколкииздерева']], 'categories' => ['accessories', 'hairpins'], 'images' => ['bio_03.jpg', 'bio_01.jpg', 'bio_02.jpg']], ['title' => 'Кольцо «Грани»', 'content' => ['description' => 'Русский орех, масло', 'price' => '1000', 'tags' => ['кольцо', 'кольцоиздерева', 'граненоекольцо', 'орех', 'дерево']], 'categories' => ['accessories', 'rings'], 'images' => ['grani_001.jpg']], ['title' => 'Кольцо «Костет»', 'content' => ['description' => 'Дуб, масло', 'price' => '1000', 'tags' => ['кольцоиздерева', 'костет', 'костетиздерева', 'дерево', 'дизайнспб', 'дуб']], 'categories' => ['accessories', 'rings'], 'images' => ['ring_kostet_01.jpg', 'ring_kostet_02.jpg', 'ring_kostet_03.jpg']], ['title' => 'Кольца на мизинец', 'content' => ['description' => 'Различные породы деревьев', 'price' => '700', 'tags' => ['кольцоиздерева', 'кольцорунойработы', 'дерево', 'дизайнспб']], 'categories' => ['accessories', 'rings'], 'images' => ['mizinec_001.jpg', 'mizinec_grange_001.jpg', 'mizinec_grange_002.jpg', 'mizinec_tiger_eye.jpg']], ['title' => 'Кольцо «Ольха большая»', 'content' => ['description' => 'Ольха, масло', 'price' => '1000', 'tags' => ['кольцоиздерева', 'кольцоназаказ', 'ольха', 'дизайнспб']], 'categories' => ['accessories', 'rings'], 'images' => ['olxa_001.jpg', 'olxa_002.jpg']], ['title' => 'Кольцо «Ольха круглая»', 'content' => ['description' => 'Ольха, масло', 'price' => '1000', 'tags' => ['кольцоиздерева', 'ольха', 'дизайнспб']], 'categories' => ['accessories', 'rings'], 'images' => ['olxa_kruglai_001.jpg', 'olxa_kruglai_002.jpg']], ['title' => 'Кольцо «Перстень»', 'content' => ['description' => 'Орех, масло', 'price' => '1000', 'tags' => ['кольцоиздерева', 'орех', 'дизайнспб']], 'categories' => ['accessories', 'rings'], 'images' => ['persten_001.jpg', 'persten_002.jpg', 'persten_003.jpg']], ['title' => 'Кольцо «Точечка»', 'content' => ['description' => 'Клен + вставка венге, воск', 'price' => '1000', 'tags' => ['кольцоиздерева', 'точка', 'минимализм', 'дизайниздерева']], 'categories' => ['accessories', 'rings'], 'images' => ['tochechka_001.jpg', 'tochechka_002.jpg', 'tochechka_003.jpg', 'tochechka_004.jpg']], ['title' => 'Кольцо «Тоннель»', 'content' => ['description' => 'Орех, масло', 'price' => '1000', 'tags' => ['кольцоиздерева', 'большоекольцо', 'украшенияручнойработы', 'минимализм', 'хипстота']], 'categories' => ['accessories', 'rings'], 'images' => ['tonnel_001.jpg', 'tonnel_002.jpg', 'tonnel_003.jpg', 'tonnel_004.jpg']], ['title' => 'Кольцо «Трио»', 'content' => ['description' => 'Дуб, масло', 'price' => '1000', 'tags' => ['треугольник', 'круг', 'квадрат', 'триптих', 'трио', 'дуб', 'супрематизм']], 'categories' => ['accessories', 'rings'], 'images' => ['trio_001.jpg', 'trio_002.jpg', 'trio_003.jpg']], ['title' => 'Кольцо «Twix»', 'content' => ['description' => 'Клен и Орех, масло', 'price' => '1000', 'tags' => ['кольцоиздерева', 'twix', 'сладкаяпарочка', 'диптих', 'коллекцияколец']], 'categories' => ['accessories', 'rings'], 'images' => ['twix_black_01.jpg', 'twix_black_02.jpg', 'twix_black_03.jpg', 'twix_collection.jpg', 'twix_whit_01.jpg', 'twix_whit_02.jpg', 'twix_whit_03.jpg', 'twix_whit_04.jpg']], ['title' => 'Кольцо «Усеченный цилиндр»', 'content' => ['description' => 'Ольха, масло', 'price' => '1000', 'tags' => ['кольцоиздерева', 'ручнаработа', 'кольцоручнойработы', 'дизайн']], 'categories' => ['accessories', 'rings'], 'images' => ['usechennii_cilindr_001.jpg', 'usechennii_cilindr_002.jpg']], ['title' => 'Кольцо «Вставка венге»', 'content' => ['description' => 'Клен + вставка шпона венге', 'price' => '1000', 'tags' => ['кольцоиздерева']], 'categories' => ['accessories', 'rings'], 'images' => ['spon_vstavka_kolos.jpg']], ['title' => 'Кольцо «Хребет»', 'content' => ['description' => 'Осина, масло', 'price' => '1000', 'tags' => ['кольцоиздерева', 'осина', 'дизайниздерева', 'минимализм', 'ручнаяработа']], 'categories' => ['accessories', 'rings'], 'images' => ['xrebet_001.jpg', 'xrebet_002.jpg']], ['title' => 'Кольцо «Зебра»', 'content' => ['description' => 'Клен + вставка шпона венге, масло', 'price' => '1000', 'tags' => ['кольцоиздерева', 'зебра', 'клен', 'венге', 'украшениеиздерева', 'дизайн']], 'categories' => ['accessories', 'rings'], 'images' => ['zebra_001.jpg', 'zebra_002.jpg']]];
     foreach ($categories as $key => $category) {
         Category::create($category);
     }
     foreach ($data as $product) {
         if (array_key_exists('images', $product)) {
             $images = $product['images'];
             unset($product['images']);
         }
         if (array_key_exists('categories', $product)) {
             $categories = $product['categories'];
             unset($product['categories']);
         }
         if (array_key_exists('tags', $product['content'])) {
             $tags = $product['content']['tags'];
             unset($product['content']['tags']);
         }
         $product['published'] = true;
         $product['published_at'] = date('Y-m-d H:i:s', rand(strtotime('2015-01-01'), strtotime('2015-09-01')));
         $model = Product::create($product);
         foreach ($categories as $slug) {
             $category = '';
             $category = Category::where('slug', '=', $slug)->first();
             // print_r($category);
             if (!is_null($category)) {
                 $model->categories()->add($category, null);
             }
         }
         foreach ($tags as $name) {
             $tag = '';
             $tag = Tag::where('name', '=', $name)->first();
             // print_r($category);
             if (is_null($tag)) {
                 $tag = Tag::create(['name' => $name]);
             }
             if (!is_null($tag)) {
                 $model->tags()->add($tag, null);
             }
         }
         foreach ($images as $key => $image) {
             $filePath = "./storage/app/images/" . $image;
             if (!file_exists($filePath)) {
                 echo 'File ' . $filePath . ' not exists.' . "\n";
                 continue;
             }
             $file = new File();
             $file->fromFile($filePath);
             $file['title'] = $model->title;
             $file['description'] = $model->content['description'];
             $model->featured_images()->save($file, null);
             // if ($key == 0) {
             //     $model->cover()->save($file, null);
             // }
         }
     }
 }
Пример #2
0
 /**
  * Deleted checked categories.
  */
 public function index_onDelete()
 {
     if (($checkedIds = post('checked')) && is_array($checkedIds) && count($checkedIds)) {
         foreach ($checkedIds as $categoryId) {
             if (!($category = Category::find($categoryId))) {
                 continue;
             }
             $category->delete();
         }
         Flash::success(Lang::get('abnmt.products::lang.categories.delete_selected_success'));
     } else {
         Flash::error(Lang::get('abnmt.products::lang.categories.delete_selected_empty'));
     }
     return $this->listRefresh();
 }
Пример #3
0
 protected function loadCategories()
 {
     $categories = ProductCategory::orderBy('name');
     if (!$this->property('displayEmpty')) {
         $categories->whereExists(function ($query) {
             $query->select(Db::raw(1))->from('abnmt_products_products_categories')->join('abnmt_products_products', 'abnmt_products_products.id', '=', 'abnmt_products_products_categories.product_id')->whereNotNull('abnmt_products_products.published')->where('abnmt_products_products.published', '=', 1)->whereRaw('abnmt_products_categories.id = abnmt_products_products_categories.category_id');
         });
     }
     $categories = $categories->get();
     /*
      * Add a "url" helper attribute for linking to each category
      */
     $categories->each(function ($category) {
         $category->setUrl($this->categoryPage, $this->controller);
     });
     return $categories;
 }
Пример #4
0
 public function boot()
 {
     /*
      * Register menu items for the RainLab.Pages plugin
      */
     Event::listen('pages.menuitem.listTypes', function () {
         return ['products-category' => 'abnmt.products::lang.menu.products_category', 'all-products-categories' => 'abnmt.products::lang.menu.all_products_categories'];
     });
     Event::listen('pages.menuitem.getTypeInfo', function ($type) {
         if ($type == 'products-category' || $type == 'all-products-categories') {
             return Category::getMenuTypeInfo($type);
         }
     });
     Event::listen('pages.menuitem.resolveItem', function ($type, $item, $url, $theme) {
         if ($type == 'products-category' || $type == 'all-products-categories') {
             return Category::resolveMenuItem($item, $url, $theme);
         }
     });
 }
Пример #5
0
 protected function loadCategory()
 {
     if (!($categoryId = $this->property('categoryFilter'))) {
         return null;
     }
     if (!($category = ProductsCategory::whereSlug($categoryId)->first())) {
         return null;
     }
     return $category;
 }