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); // } } } }
/** * 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(); }
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; }
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); } }); }
protected function loadCategory() { if (!($categoryId = $this->property('categoryFilter'))) { return null; } if (!($category = ProductsCategory::whereSlug($categoryId)->first())) { return null; } return $category; }