/** * customize backend fields * * @return FieldList the form fields for the backend * * @author Roland Lehmann <*****@*****.**>, Sebastian Diel <sdiel@πixeltricks.de> * @since 28.01.2013 */ public function getCMSFields() { $this->markAsSeen(); $fields = SilvercartDataObject::getCMSFields($this); //add the shipping/invloice address fields as own tab $address = singleton('SilvercartAddress'); $fields->findOrMakeTab('Root.ShippingAddressTab', $this->fieldLabel('ShippingAddressTab')); $fields->findOrMakeTab('Root.InvoiceAddressTab', $this->fieldLabel('InvoiceAddressTab')); $fields->addFieldToTab('Root.ShippingAddressTab', new LiteralField('sa__Preview', '<p>' . Convert::raw2xml($this->getShippingAddressSummary(true)) . '</p>')); $fields->addFieldToTab('Root.ShippingAddressTab', new TextField('sa__TaxIdNumber', $address->fieldLabel('TaxIdNumber'), $this->SilvercartShippingAddress()->TaxIdNumber)); $fields->addFieldToTab('Root.ShippingAddressTab', new TextField('sa__Company', $address->fieldLabel('Company'), $this->SilvercartShippingAddress()->Company)); $fields->addFieldToTab('Root.ShippingAddressTab', new TextField('sa__FirstName', $address->fieldLabel('FirstName'), $this->SilvercartShippingAddress()->FirstName)); $fields->addFieldToTab('Root.ShippingAddressTab', new TextField('sa__Surname', $address->fieldLabel('Surname'), $this->SilvercartShippingAddress()->Surname)); $fields->addFieldToTab('Root.ShippingAddressTab', new TextField('sa__Addition', $address->fieldLabel('Addition'), $this->SilvercartShippingAddress()->Addition)); $fields->addFieldToTab('Root.ShippingAddressTab', new TextField('sa__Street', $address->fieldLabel('Street'), $this->SilvercartShippingAddress()->Street)); $fields->addFieldToTab('Root.ShippingAddressTab', new TextField('sa__StreetNumber', $address->fieldLabel('StreetNumber'), $this->SilvercartShippingAddress()->StreetNumber)); $fields->addFieldToTab('Root.ShippingAddressTab', new CheckboxField('sa__IsPackstation', $address->fieldLabel('IsPackstation'), $this->SilvercartShippingAddress()->IsPackstation)); $fields->addFieldToTab('Root.ShippingAddressTab', new TextField('sa__PostNumber', $address->fieldLabel('PostNumber'), $this->SilvercartShippingAddress()->PostNumber)); $fields->addFieldToTab('Root.ShippingAddressTab', new TextField('sa__Packstation', $address->fieldLabel('PackstationPlain'), $this->SilvercartShippingAddress()->Packstation)); $fields->addFieldToTab('Root.ShippingAddressTab', new TextField('sa__Postcode', $address->fieldLabel('Postcode'), $this->SilvercartShippingAddress()->Postcode)); $fields->addFieldToTab('Root.ShippingAddressTab', new TextField('sa__City', $address->fieldLabel('City'), $this->SilvercartShippingAddress()->City)); $fields->addFieldToTab('Root.ShippingAddressTab', new DropdownField('sa__Country', $address->fieldLabel('Country'), SilvercartCountry::get_active()->map()->toArray(), $this->SilvercartShippingAddress()->SilvercartCountry()->ID)); $fields->addFieldToTab('Root.ShippingAddressTab', new TextField('sa__PhoneAreaCode', $address->fieldLabel('PhoneAreaCode'), $this->SilvercartShippingAddress()->PhoneAreaCode)); $fields->addFieldToTab('Root.ShippingAddressTab', new TextField('sa__Phone', $address->fieldLabel('Phone'), $this->SilvercartShippingAddress()->Phone)); $fields->addFieldToTab('Root.InvoiceAddressTab', new LiteralField('ia__Preview', '<p>' . Convert::raw2xml($this->getInvoiceAddressSummary(true)) . '</p>')); $fields->addFieldToTab('Root.InvoiceAddressTab', new TextField('ia__TaxIdNumber', $address->fieldLabel('TaxIdNumber'), $this->SilvercartInvoiceAddress()->TaxIdNumber)); $fields->addFieldToTab('Root.InvoiceAddressTab', new TextField('ia__Company', $address->fieldLabel('Company'), $this->SilvercartInvoiceAddress()->Company)); $fields->addFieldToTab('Root.InvoiceAddressTab', new TextField('ia__FirstName', $address->fieldLabel('FirstName'), $this->SilvercartInvoiceAddress()->FirstName)); $fields->addFieldToTab('Root.InvoiceAddressTab', new TextField('ia__Surname', $address->fieldLabel('Surname'), $this->SilvercartInvoiceAddress()->Surname)); $fields->addFieldToTab('Root.InvoiceAddressTab', new TextField('ia__Addition', $address->fieldLabel('Addition'), $this->SilvercartInvoiceAddress()->Addition)); $fields->addFieldToTab('Root.InvoiceAddressTab', new TextField('ia__Street', $address->fieldLabel('Street'), $this->SilvercartInvoiceAddress()->Street)); $fields->addFieldToTab('Root.InvoiceAddressTab', new TextField('ia__StreetNumber', $address->fieldLabel('StreetNumber'), $this->SilvercartInvoiceAddress()->StreetNumber)); $fields->addFieldToTab('Root.InvoiceAddressTab', new CheckboxField('ia__IsPackstation', $address->fieldLabel('IsPackstation'), $this->SilvercartInvoiceAddress()->IsPackstation)); $fields->addFieldToTab('Root.InvoiceAddressTab', new TextField('ia__PostNumber', $address->fieldLabel('PostNumber'), $this->SilvercartInvoiceAddress()->PostNumber)); $fields->addFieldToTab('Root.InvoiceAddressTab', new TextField('ia__Packstation', $address->fieldLabel('PackstationPlain'), $this->SilvercartInvoiceAddress()->Packstation)); $fields->addFieldToTab('Root.InvoiceAddressTab', new TextField('ia__Postcode', $address->fieldLabel('Postcode'), $this->SilvercartInvoiceAddress()->Postcode)); $fields->addFieldToTab('Root.InvoiceAddressTab', new TextField('ia__City', $address->fieldLabel('City'), $this->SilvercartInvoiceAddress()->City)); $fields->addFieldToTab('Root.InvoiceAddressTab', new DropdownField('ia__Country', $address->fieldLabel('Country'), SilvercartCountry::get_active()->map()->toArray(), $this->SilvercartInvoiceAddress()->SilvercartCountry()->ID)); $fields->addFieldToTab('Root.InvoiceAddressTab', new TextField('ia__PhoneAreaCode', $address->fieldLabel('PhoneAreaCode'), $this->SilvercartInvoiceAddress()->PhoneAreaCode)); $fields->addFieldToTab('Root.InvoiceAddressTab', new TextField('ia__Phone', $address->fieldLabel('Phone'), $this->SilvercartInvoiceAddress()->Phone)); //add print preview $fields->findOrMakeTab('Root.PrintPreviewTab', $this->fieldLabel('PrintPreview')); $printPreviewField = new LiteralField('PrintPreviewField', sprintf('<iframe width="100%%" height="100%%" border="0" src="%s" class="print-preview"></iframe>', SilvercartPrint::getPrintInlineURL($this))); $fields->addFieldToTab('Root.PrintPreviewTab', $printPreviewField); return $fields; }