private function createtags() { $products = Product::get()->where("ClassName = 'Product'")->sort("Rand()")->limit(4); $this->addExamplePages(1, "Product Tags", $products); foreach ($products as $pos => $product) { $idArray[$pos] = $product->ID; $titleArray[] = $product->MenuTitle; $this->addToTitle($product, "with tag", true); } $page = Page::get()->where("\"URLSegment\" = 'tag-explanation'")->First(); $t1 = new EcommerceProductTag(); $t1->Title = "TAG 1"; $t1->ExplanationPageID = $page->ID; $t1->Explanation = "explains Tag 1"; $t1->write(); $existingProducts = $t1->Products(); $existingProducts->addMany(array($idArray[0], $idArray[1])); DB::alteration_message("Creating tag: " . $t1->Title . " for " . implode(",", $titleArray), "created"); $t2 = new EcommerceProductTag(); $t2->Title = "TAG 2"; $t2->ExplanationPageID = $page->ID; $t2->Explanation = "explains Tag 2"; $t2->write(); $existingProducts = $t2->Products(); $existingProducts->addMany(array($idArray[2], $idArray[3])); DB::alteration_message("Creating tag: " . $t2->Title . " for " . implode(",", $titleArray), "created"); $productGroupWithTags = ProductGroupWithTags::get()->First(); $existingTags = $productGroupWithTags->EcommerceProductTags(); $existingTags->addMany(array($t1->ID, $t2->ID)); }
function submit($data, $form) { $member = Member::currentUser(); if (!$member) { $form->setMessage("You need to be logged in to edit this module.", "bad"); $this->redirectBack(); return; } $data = Convert::raw2sql($data); $page = null; if (isset($data["ModuleProductID"])) { $page = ModuleProduct::get()->byID(intval($data["ModuleProductID"])); } if (!$page) { $page = new ModuleProduct(); } if (isset($page->ParentID)) { $oldParentID = $page->ParentID; } $form->saveInto($page); $page->Title = $data["Title"]; $page->MenuTitle = $data["Title"]; if (!$member->inGroup("ADMIN")) { $page->ShowInMenus = 0; $page->ShowInMenus = 0; $parentPage = AddingModuleProduct::get()->First(); if ($parentPage) { $page->ParentID = $parentPage->ID; } } $page->writeToStage('Stage'); $page->Publish('Stage', 'Live'); $page->Status = "Published"; $page->flushCache(); if ($page->Authors()->count() == 0 && $member) { $page->Authors()->addMany(array($member->ID => $member->ID)); } if (!isset($data["EcommerceProductTags"]) || !is_array($data["EcommerceProductTags"]) || !count($data["EcommerceProductTags"])) { $data["EcommerceProductTags"] = array(-1 => -1); } if (isset($data["AdditionalTags"]) && $data["AdditionalTags"]) { $extraTagsArray = explode(",", $data["AdditionalTags"]); if (is_array($extraTagsArray) && count($extraTagsArray)) { foreach ($extraTagsArray as $tag) { $tag = trim($tag); $obj = EcommerceProductTag::get()->filter(array("Title" => $tag))->first(); if (!$obj) { $obj = new EcommerceProductTag(); $obj->Title = $tag; $obj->write(); } $data["EcommerceProductTags"][$obj->ID] = $obj->ID; } } } DB::query("DELETE FROM \"EcommerceProductTag_Products\" WHERE \"ProductID\" = " . $page->ID . " AND \"EcommerceProductTagID\" NOT IN (" . implode(",", $data["EcommerceProductTags"]) . ")"); if (is_array($data["EcommerceProductTags"]) && count($data["EcommerceProductTags"])) { $page->EcommerceProductTags()->addMany($data["EcommerceProductTags"]); } if (Director::is_ajax()) { return $page->renderWith("ModuleProductInner"); } else { $this->redirect($page->Link()); } }