Source of file SetupBase.php
Size: 16,029 Bytes - Last Modified: 2021-12-23T10:41:25+00:00
/var/www/docs.ssmods.com/process/src/app/src/Tasks/SetupBase.php
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397 | <?php namespace Sunnysideup\EcommerceTest\Tasks; use Sunnysideup\EcommerceTest\Tasks\SetUpEcommerceRecordsStep2; use Page; use SilverStripe\Assets\Folder; use SilverStripe\Assets\Image; use SilverStripe\CMS\Model\SiteTree; use SilverStripe\Control\Director; use SilverStripe\Dev\BuildTask; // use ProductAttributeType; // use ProductAttributeValue; // use ProductVariation; use SilverStripe\ORM\ArrayList; // use CombinationProduct; use SilverStripe\ORM\DataList; use SilverStripe\ORM\DB; use SilverStripe\Security\Group; // use EcommerceProductTag; // use ProductGroupWithTags; use SilverStripe\Security\Member; // use ComplexPriceObject; use SilverStripe\SiteConfig\SiteConfig; use SilverStripe\Versioned\Versioned; use Sunnysideup\Ecommerce\Model\Address\BillingAddress; use Sunnysideup\Ecommerce\Model\Address\ShippingAddress; use Sunnysideup\Ecommerce\Model\Config\EcommerceDBConfig; use Sunnysideup\Ecommerce\Model\Extensions\EcommerceRole; use Sunnysideup\Ecommerce\Model\Order; use Sunnysideup\Ecommerce\Model\ProductOrderItem; use Sunnysideup\Ecommerce\Pages\AccountPage; use Sunnysideup\Ecommerce\Pages\CartPage; use Sunnysideup\Ecommerce\Pages\CheckoutPage; use Sunnysideup\Ecommerce\Pages\OrderConfirmationPage; use Sunnysideup\Ecommerce\Pages\Product; use Sunnysideup\Ecommerce\Pages\ProductGroup; use Sunnysideup\Ecommerce\Pages\ProductGroupSearchPage; use Sunnysideup\Ecommerce\Tasks\EcommerceTaskCreateMemberGroups; use Sunnysideup\EcommerceDelivery\Model\PickUpOrDeliveryModifierOptions; use Sunnysideup\EcommerceDiscountCoupon\Model\DiscountCouponOption; use Sunnysideup\EcommerceTax\Model\GSTTaxModifierOptions; use Sunnysideup\EcommerceTest\Model\CompleteSetupRecord; class SetupBase { protected $fruitArray = [ 'Apple', 'Crabapple', 'Hawthorn', 'Pear', 'Apricot', 'Peach', 'Nectarines', 'Plum', 'Cherry', 'Blackberry', 'Raspberry', 'Mulberry', 'Strawberry', 'Cranberry', 'Blueberry', 'Barberry', 'Currant', 'Gooseberry', 'Elderberry', 'Grapes', 'Grapefruit', 'Kiwi fruit', 'Rhubarb', 'Pawpaw', 'Melon', 'Watermelon', 'Figs', 'Dates', 'Olive', 'Jujube', 'Pomegranate', 'Lemon', 'Lime', 'Key Lime', 'Mandarin', 'Orange', 'Sweet Lime', 'Tangerine', 'Avocado', 'Guava', 'Kumquat', 'Lychee', 'Passion Fruit', 'Tomato', 'Banana', 'Gourd', 'Cashew Fruit', 'Cacao', 'Coconut', 'Custard Apple', 'Jackfruit', 'Mango', 'Neem', 'Okra', 'Pineapple', 'Vanilla', 'Carrot' ]; protected $imageArray = []; protected $examplePages = [ 0 => ['Title' => 'Basics', 'List' => []], 1 => ['Title' => 'Products and Product Groups', 'List' => []], 2 => ['Title' => 'Checkout Options', 'List' => []], // 3 => array("Title" => "Stock Control", "List" => array()), 4 => ['Title' => 'Pricing', 'List' => []], 5 => ['Title' => 'Other', 'List' => []], ]; protected function deleteFolder($path) { if (is_dir($path) === true) { $files = array_diff(scandir($path), ['.', '..']); foreach ($files as $file) { if (file_exists(realpath($path) . '/' . $file)) { unlink(realpath($path) . '/' . $file); } } return rmdir($path); } elseif (is_file($path) === true) { return unlink($path); } return false; } protected function MakePage($fields, $parentPage = null) { $page = SiteTree::get() ->where("\"URLSegment\" = '" . $fields['URLSegment'] . "'") ->First(); if (! $page) { if (isset($fields['ClassName'])) { $className = $fields['ClassName']; } else { $className = Page::class; } $page = new $className(); } $children = null; foreach ($fields as $field => $value) { if ($field === 'Children') { $children = $value; } $page->{$field} = $value; } if ($parentPage) { $page->ParentID = $parentPage->ID; } $page->write(); $page->Publish('Stage', 'Live'); $page->flushCache(); DB::alteration_message('Creating / Updating ' . $page->Title, 'created'); if ($children) { foreach ($children as $child) { $this->MakePage($child, $page); } } } protected function addToTitle($page, $toAdd, $save = false) { $title = $page->Title; $newTitle = $title . ' - ' . $toAdd; $page->Title = $newTitle; $page->MenuTitle = $newTitle; if ($save) { $page->write(); $page->Publish('Stage', 'Live'); $page->flushCache(); } } protected function addExamplePages($group, $name, $pages) { $html = '<ul>'; if ($pages instanceof DataList) { foreach ($pages as $page) { $html .= '<li><a href="' . $page->Link() . '">' . $page->Title . '</a></li>'; } } elseif ($pages instanceof SiteTree) { $html .= '<li><a href="' . $pages->Link() . '">' . $pages->Title . '</a></li>'; } else { $html .= '<li>not available yet</li>'; } $html .= '</ul>'; $i = count($this->examplePages[$group]['List']); $this->examplePages[$group]['List'][$i]['Title'] = $name; $this->examplePages[$group]['List'][$i]['List'] = $html; } protected function randomName() { return array_pop($this->fruitArray); } protected function getRandomImageID() { if (! count($this->imageArray)) { $folder = Folder::find_or_make('randomimages'); $images = Image::get() ->where('ParentID = ' . $folder->ID) ->sort('RAND()'); if ($images->count()) { $this->imageArray = $images->map('ID', 'ID')->toArray(); } else { $this->imageArray = [0 => 0]; } } return array_pop($this->imageArray); } protected function lipsum() { $str = ' Suspendisse auctor eros non metus semper vel mattis enim auctor. Maecenas aliquam feugiat lectus, eu pretium neque imperdiet sed. Nullam semper velit quis velit condimentum ut hendrerit felis blandit. Phasellus quis massa vel dolor consectetur ornare vel in justo. Vivamus vel sem lacus, eget auctor nibh. Quisque a massa sit amet odio malesuada placerat. Cras ut nunc leo, eget bibendum diam. // Morbi feugiat leo ac mauris posuere dictum. Integer venenatis augue sit amet lectus auctor auctor. Integer rhoncus velit molestie sem vehicula mattis. Duis condimentum nunc a arcu ornare vitae fermentum ipsum egestas. Ut eget tellus ligula, id convallis dui. Pellentesque ultricies metus at nisi hendrerit ut fringilla sem fringilla. Donec sit amet sem risus, ac rutrum dolor. Maecenas nec elit quam, eget laoreet sem. Donec egestas dui et nibh pharetra in ullamcorper risus aliquet. Fusce vitae nibh quis erat cursus egestas non non turpis. Pellentesque ac nunc sed nisl sollicitudin gravida. Nulla sollicitudin velit consectetur lacus commodo lacinia non non mauris. Quisque dignissim ante et odio dictum sodales euismod eu tellus. Nunc rhoncus nibh vel augue posuere nec suscipit leo sagittis. // Sed et lorem turpis, eu hendrerit nunc. Vivamus varius faucibus orci, a gravida massa varius non. Quisque nec sem sed purus pretium malesuada. Suspendisse eget quam at justo tempus imperdiet eget nec purus. Nullam vel lacus sit amet sem volutpat rutrum vel at dui. Nulla scelerisque lorem a mi commodo vestibulum. Maecenas quis dui sed mauris mattis mollis. Morbi ac tortor id sapien ornare tincidunt ut quis enim. Fusce id nisi vulputate augue dictum volutpat molestie nec metus. Nunc ultricies iaculis ante, sed pellentesque nulla fringilla ut. Duis non nibh in tellus lobortis dapibus. // Vestibulum at est eu purus cursus semper. Ut eu neque et lectus auctor tempus sed vel libero. Donec in lorem at dolor facilisis vestibulum. Vivamus fermentum felis nec nisl accumsan faucibus. Maecenas at tellus ut nulla congue tempor vitae in nisi. Mauris vitae nulla in libero mollis semper. Cras ac eros lorem, in volutpat odio. Nullam tristique egestas turpis, accumsan fermentum turpis feugiat ac. Proin adipiscing turpis non nunc faucibus quis facilisis mauris fermentum. Praesent rhoncus leo sed libero cursus pellentesque. Cras luctus urna in sem scelerisque vestibulum scelerisque velit hendrerit. Maecenas eget diam eu quam congue pulvinar eu non neque. // Quisque consequat tellus quis eros facilisis lacinia. Morbi quis nibh eget elit vehicula vestibulum. Proin rutrum vestibulum dui, viverra rutrum nisl tempor non. Praesent quis nibh nec risus gravida sodales ac eu neque. Integer non leo non lectus convallis semper. Integer viverra sapien eu dui vehicula ultrices. Cras fermentum vulputate justo, ut pretium magna dignissim sed. Nam tristique tellus vel lacus condimentum ac lobortis tortor dapibus. Maecenas quis quam sapien, sed ullamcorper ligula. Sed eu urna quis libero porttitor euismod. // Proin eget enim quis diam rhoncus faucibus a in lorem. Phasellus vulputate volutpat tortor, consectetur convallis nisl mollis a. Vestibulum at turpis quis lacus commodo sollicitudin. Phasellus placerat molestie purus, sed elementum leo congue et. Sed volutpat massa id lacus sollicitudin vel vehicula magna imperdiet. Suspendisse sit amet dui lacus, id scelerisque sem. // Vestibulum bibendum nulla ac odio rutrum aliquet. Fusce pretium felis nec justo semper laoreet. Aenean porta turpis at metus dapibus non rutrum magna ullamcorper. Vivamus non orci risus, id commodo enim. Sed adipiscing felis a dui ultrices ornare. Praesent in risus nisl, id luctus sapien. // Nunc a risus sapien, a aliquet tellus. Cras non nisl non lectus volutpat elementum eu ac nisl. Donec mattis odio nec ante mollis mattis. // Integer auctor interdum nulla, ac semper velit aliquet sit amet. Pellentesque egestas ultrices metus, vehicula malesuada sem viverra a. Morbi blandit metus eu mi egestas imperdiet. Vivamus volutpat turpis et nibh ornare vitae blandit tellus egestas. Integer molestie dolor ut orci semper at luctus urna pharetra. Morbi feugiat dolor eget velit dignissim vel scelerisque ligula aliquam. Cras in lacus magna, sed gravida est. Duis vulputate eleifend erat, pellentesque eleifend purus cursus eget. Vivamus blandit egestas sem, sed gravida velit posuere sit amet. // Nam malesuada sollicitudin erat, eget egestas risus condimentum quis. In dictum sapien ut velit tincidunt lobortis. Nam nec lectus non leo vulputate rutrum et at erat. Nam varius tristique turpis, eget euismod nisl lacinia vitae. Maecenas euismod lorem sed mi dictum aliquam. Phasellus at dui vitae est eleifend dictum a vitae lorem. Fusce quis sapien et enim sollicitudin interdum sit amet imperdiet ligula. Proin egestas sem vel sapien pharetra at varius est malesuada. Quisque et lorem in dolor blandit suscipit. // Nullam congue est eu lectus laoreet euismod. Nulla eu sapien ligula, semper pellentesque neque. Nulla ut enim dui, nec pharetra leo. // Sed placerat ante vel enim convallis consectetur. Sed quis justo auctor arcu sagittis laoreet. Curabitur eu risus a eros ornare ullamcorper. Pellentesque posuere ante quis diam placerat sit amet eleifend purus volutpat. Aenean id tellus et nisl luctus rhoncus. Cras ut velit a diam lobortis tincidunt. Mauris sit amet libero ut magna lacinia suscipit. Nam ut risus nec mauris faucibus posuere pellentesque vitae est. Maecenas dignissim bibendum sapien, id viverra urna sollicitudin id. Aliquam non quam ac nulla convallis viverra quis eget nisi. Sed rhoncus lectus non nisi consequat semper fermentum non ipsum. Aenean tempus mauris ut lectus dictum eu eleifend purus ultrices. Etiam id erat nunc, sed mattis mauris. Suspendisse et metus orci, eget tempus urna. Ut eu ipsum a quam convallis scelerisque. // Nullam a nulla vitae mauris eleifend tristique. Pellentesque nec leo non nisl posuere cursus nec sit amet nisl. Aenean sit amet sapien ut ipsum porta condimentum. Nullam ullamcorper elementum augue, ut suscipit dolor adipiscing sed. Maecenas congue leo a mi faucibus congue. Sed imperdiet pharetra lorem, eget rhoncus sapien feugiat vitae. Nullam mollis nulla ut risus faucibus imperdiet. // Proin eu orci in nunc euismod fermentum et ac dolor. Duis nec risus in sapien tempus posuere sed nec massa. Cras commodo nulla sit amet orci pretium dapibus. Nulla sed elit eu justo hendrerit auctor. Pellentesque ut quam a metus consequat venenatis vitae ut mauris. Ut vulputate luctus arcu, at dapibus risus molestie ac. Etiam euismod est nec est iaculis tristique. Vivamus ornare felis quis leo aliquet elementum. Nunc pretium arcu convallis quam suscipit eu rutrum est auctor. // Phasellus eu ipsum ac lorem euismod vestibulum quis at metus. Donec aliquet condimentum mi, in consequat elit dignissim nec. Etiam eu ante vel libero congue vehicula. Suspendisse volutpat ante eu ligula semper vitae venenatis lectus imperdiet. Pellentesque porttitor nisl quam, a pretium nibh. Pellentesque nec sem in neque suscipit posuere ut id odio. // Integer sollicitudin enim sit amet leo lacinia varius. Fusce fermentum sem vel est iaculis eleifend.'; $array = explode('//', $str); $length = count($array); $rand = rand(0, $length - 1); return $array[$rand]; } // protected function addfilestoelectronicdownloadproduct() // { // $pages = ElectronicDownloadProduct::get(); // $files = File::get()->limit(5)->Sort("Rand()"); // foreach ($pages as $page) { // DB::alteration_message("Adding files to ".$page->Title, "created"); // $page->DownloadFiles()->addMany($files); // } // } } |