/** * Standard SS variable. */ function getCMSFields() { //prevent calling updateCMSFields extend function too early $siteTreeFieldExtensions = $this->get_static('SiteTree', 'runCMSFieldsExtensions'); $this->disableCMSFieldsExtensions(); $fields = parent::getCMSFields(); if ($siteTreeFieldExtensions) { $this->enableCMSFieldsExtensions(); } $fields->replaceField('Root.Content.Main', new HTMLEditorField('Content', _t('Product.DESCRIPTION', 'Product Description'), 3)); //NOTE: IMAGE FIELD WAS GIVING ERRORS IN ModelAdmin //$fields->addFieldToTab('Root.Content.Images', new TreeDropdownField('ImageID', _t('Product.IMAGE', 'Product Image'), "Image")); $fields->addFieldToTab('Root.Content.Images', new ImageField('Image', _t('Product.IMAGE', 'Product Image'))); $fields->addFieldToTab('Root.Content.Details', new ReadonlyField('FullName', _t('Product.FULLNAME', 'Full Name'))); $fields->addFieldToTab('Root.Content.Details', new CheckboxField('AllowPurchase', _t('Product.ALLOWPURCHASE', 'Allow product to be purchased'), 1)); $fields->addFieldToTab('Root.Content.Details', new CheckboxField('FeaturedProduct', _t('Product.FEATURED', 'Featured Product'))); $fields->addFieldToTab('Root.Content.Details', new NumericField('Price', _t('Product.PRICE', 'Price'), '', 12)); $fields->addFieldToTab('Root.Content.Details', new TextField('InternalItemID', _t('Product.CODE', 'Product Code'), '', 30)); if ($this->EcomConfig()->ProductsHaveWeight) { $fields->addFieldToTab('Root.Content.Details', new NumericField('Weight', _t('Product.WEIGHT', 'Weight'))); } if ($this->EcomConfig()->ProductsHaveModelNames) { $fields->addFieldToTab('Root.Content.Details', new TextField('Model', _t('Product.MODEL', 'Model'))); } if ($this->EcomConfig()->ProductsHaveQuantifiers) { $fields->addFieldToTab('Root.Content.Details', new TextField('Quantifier', _t('Product.QUANTIFIER', 'Quantifier (e.g. per kilo, per month, per dozen, each)'))); } if ($this->EcomConfig()->ProductsAlsoInOtherGroups) { $fields->addFieldsToTab('Root.Content.AlsoShowHere', array(new HeaderField('ProductGroupsHeader', _t('Product.ALSOSHOWSIN', 'Also shows in ...')), $this->getProductGroupsTable())); } $orderTableField = new ComplexTableField($this, 'OrderItems', 'OrderItem', array('Order.ID' => '#', 'Order.Created' => 'When', 'Quantity' => 'Quantity'), new FieldSet(), "\"BuyableID\" = '" . $this->ID . "' AND \"BuyableClassName\" = '" . $this->ClassName . "'", "\"Created\" DESC"); $orderTableField->setPermissions(array("show")); $orderTableField->setShowPagination(true); $orderTableField->setRelationAutoSetting(true); /* $orderTableField->addSummary( _t("Product.TOTALCOUNT", "Total Count"), array("TotalCount" => array("sum","Quantity->Nice")) ); */ $fields->addFieldToTab('Root.Content.Orders', $orderTableField); if ($siteTreeFieldExtensions) { $this->extend('updateCMSFields', $fields); } return $fields; }
/** * Get products table * @return ComplexTableField */ public function getCMSProductsTable() { $table = new ComplexTableField($this, 'OrderItems', 'RepeatOrder_OrderItem', array('Product.Title' => 'Title', 'Quantity' => 'Qty')); $table->setShowPagination(false); $table->setAddTitle('Product'); $table->setPermissions(array('add', 'edit', 'delete')); return $table; }