function HasManyForm() { $team = DataObject::get_one('ComplexTableFieldTest_Team', "\"Name\" = 'The Awesome People'"); $sponsorsField = new ComplexTableField($this, 'Sponsors', 'ComplexTableFieldTest_Sponsor', ComplexTableFieldTest_Sponsor::$summary_fields, 'getCMSFields'); $sponsorsField->setParentClass('ComplexTableFieldTest_Team'); $form = new Form($this, 'HasManyForm', new FieldSet(new HiddenField('ID', '', $team->ID), $sponsorsField), new FieldSet(new FormAction('doSubmit', 'Submit'))); $form->disableSecurityToken(); return $form; }
function getCMSFields() { $fields = parent::getCMSFields(); $categories = DataObject::get("NewsletterCategory"); $fields->addFieldsToTab('Root.Content.Newsletter', array(new TextField("Name", _t("Newsletter.Campaign.Name", "Name of the Newsletter Campaign")), new EmailField("SendFrom", _t("Newsletter.Campaign.SendFrom", "Send from eMail")), new TextField("TemplateFilename", _t("Newsletter.Campaign.TemplateFilename", "Name of template (no .ss)")), new TextField("BodyStyle", _t("Newsletter.Campaign.BodyStyle", "Body StyleSheet")), new TextField("ContentStyle", _t("Newsletter.Campaign.Content", "Content StyleSheet")), new TextField("LinkStyle", _t("Newsletter.Campaign.LinkStyle", "Style for every link [a]")), new TextField("ImageStyle", _t("Newsletter.Campaign.ImageStyle", "Style for every image [img]")), new TextField("ParagraphStyle", _t("Newsletter.Campaign.ParagraphStyle", "Style for every paragraph [p]")), new TextField("HeadingStyle", _t("Newsletter.Campaign.HeadingStyle", "Style for heading [h2]")), new TextField("HorizontalRuleStyle", _t("Newsletter.Campaign.HorizontalRuleStyle", "Style for every [hr]")), new TextField("TableStyle", _t("Newsletter.Campaign.TableStyle", "Style for every table [table]")), new TextField("TableCellAttribute", _t("Newsletter.Campaign.TabelCellAttribute", "[td] CellAtribute")), new TextField("TableCellStyle", _t("Newsletter.Campaign.Style", "[td] Stylesheet")), new DropdownField('NewsletterCategoryID', _t("Newsletter.Campaign.NewsletterCategory", "Belongs to this newsletter category"), $categories->toDropdownMap('ID', 'Title', 'Bitte Newsletterkategorie eintragen', true)))); $tablefield = new ComplexTableField($controller = $this, $name = 'Recievers', 'NewsletterReciever', $fieldList = array('FirstName' => _t("Newsletter.Member.FirstName", "FirstName"), 'Surname' => _t("Newsletter.Member.Surname", "Surame"), 'Email' => _t("Newsletter.Member.Email", "eMail"), 'Send' => _t("Newsletter.Admin.MailSended", "eMail sended (0=no/1=yes)")), null, $sourceFilter = "NewsletterID = '{$this->ID}'"); $tablefield->setPermissions(array("show", "edit", "delete")); $tablefield->setParentClass(false); $fields->addFieldToTab("Root.Content." . _t("Newsletter.Admin.RecieverList", "List of recievers"), $tablefield); //Blacklist $tablefield = new ComplexTableField($controller = $this, $name = 'Blacklist', 'NewsletterBlacklist', $fieldList = array('Email' => _t("Newsletter.Member.Email", "eMail"), 'NewsletterCategory.Title' => _t("Newsletter.NewsletterCategory", "Newsletter Category")), null, $sourceFilter = "NewsletterCategoryID = {$this->NewsletterCategoryID}"); $tablefield->setPermissions(array("show", "edit", "delete", "add")); $tablefield->setParentClass(false); $fields->addFieldToTab("Root.Content." . _t("Newsletter.Admin.BlackList", "Blacklist"), $tablefield); //Subscribers $tablefield = new ComplexTableField($controller = $this, $name = 'Subscribers', 'NewsletterMember', $fieldList = array('Email' => _t("Newsletter.Member.Email", "eMail"), 'NewsletterCategory.Title' => _t("Newsletter.NewsletterCategory", "Newsletter Category")), null, $sourceFilter = "NewsletterCategoryID = {$this->NewsletterCategoryID}"); $tablefield->setPermissions(array("show", "edit", "delete", "add")); $tablefield->setParentClass(false); $fields->addFieldToTab("Root.Content." . _t("Newsletter.Admin.Subscribers", "Subscribers"), $tablefield); return $fields; }