Source of file CatalogueAdmin.php
Size: 3,334 Bytes - Last Modified: 2021-12-24T05:16:22+00:00
/var/www/docs.ssmods.com/process/src/code/admin/CatalogueAdmin.php
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132 | <?php /** * CatalogueAdmin creates an admin area that allows editing of products * and Product Categories * * @author i-lateral (http://www.i-lateral.com) * @package catalogue */ class CatalogueAdmin extends ModelAdmin { /** * Set the page length for products * * @config */ private static $product_page_length = 20; /** * Set the page length for categories * * @config */ private static $category_page_length = 20; private static $url_segment = 'catalogue'; private static $menu_title = 'Catalogue'; private static $menu_priority = 11; private static $managed_models = array( 'Product' => array('title' => 'Products'), 'Category' => array('title' => 'Categories') ); private static $model_importers = array( 'Product' => 'CatalogueProductCSVBulkLoader', ); public $showImportForm = array('Product'); public function init() { parent::init(); } /** * Expand upon default export fields for products * * @return array */ public function getExportFields() { $fields = parent::getExportFields(); if ($this->modelClass == 'Product') { $fields["URLSegment"] = "URLSegment"; $fields["Content"] = "Content"; $fields["StockID"] = "StockID"; $fields["Images.first.AbsoluteLink"] = "ImageLink"; } $this->extend("updateExportFields", $fields); return $fields; } public function getList() { $list = parent::getList(); // Filter categories if ($this->modelClass == 'Category') { $list = $list->filter('ParentID', 0); } $this->extend('updateList', $list); return $list; } public function getEditForm($id = null, $fields = null) { $form = parent::getEditForm($id, $fields); $fields = $form->Fields(); $params = $this->request->requestVar('q'); $gridField = $form->Fields()->fieldByName($this->modelClass); if ($this->modelClass == 'Product') { $gridField->setConfig(new GridFieldConfig_Catalogue( $this->modelClass, $this->config()->product_page_length )); } // Alterations for Hiarachy on product cataloge if ($this->modelClass == 'Category') { $gridField->setConfig(new GridFieldConfig_Catalogue( $this->modelClass, $this->config()->category_page_length, "Sort" )); } // Update CSV export $exportButton = $gridField ->getConfig() ->getComponentByType("GridFieldExportButton"); if ($exportButton) { $exportButton->setExportColumns($this->getExportFields()); } // Update list of items for subsite (if used) if (class_exists('Subsite')) { $list = $gridField ->getList() ->filter(array( 'SubsiteID' => Subsite::currentSubsiteID() )); $gridField->setList($list); } $this->extend("updateEditForm", $form); return $form; } } |