function getCMSFields() { $_REQUEST["CompanyId"] = $this->ID; $large_logo = new UploadField('BigLogo', 'Large Company Logo'); $large_logo->setFolderName('companies/main_logo'); $large_logo->setAllowedFileCategories('image'); $small_logo = new UploadField('Logo', 'Small Company Logo'); $small_logo->setAllowedFileCategories('image'); //logo validation rules $large_logo_validator = new Upload_Image_Validator(); $large_logo_validator->setAllowedExtensions(array('jpg', 'png', 'jpeg')); $large_logo_validator->setAllowedMaxImageWidth(500); $large_logo->setValidator($large_logo_validator); $small_logo_validator = new Upload_Image_Validator(); $small_logo_validator->setAllowedExtensions(array('jpg', 'png', 'jpeg')); $small_logo_validator->setAllowedMaxImageWidth(200); $small_logo->setValidator($small_logo_validator); $fields = new FieldList(new TabSet($name = "Root", new Tab($title = 'Company', new HeaderField("Company Data"), new TextField('Name', 'Company Name'), new TextField('URLSegment', 'Unique page name for this company profile (ie: company-name)'), new TextField('URL', 'Company Web Address (URL)'), $level = new DropDownField('MemberLevel', 'OpenStack Foundation Member Level', $this->dbObject('MemberLevel')->enumValues()), new ColorField("Color", "Company Color"), new CheckboxField('DisplayOnSite', 'List this company on openstack.org'), new CheckboxField('Featured', 'Include this company in featured companies area'), new LiteralField('Break', '<hr/>'), $this->canEditLogo() ? $large_logo : new LiteralField('Space', '<br/>'), $this->canEditLogo() ? $small_logo : new LiteralField('Space', '<br/>'), new TextField('Industry', 'Industry (<4 Words)'), new HtmlEditorField('Description', 'Company Description'), new HtmlEditorField('Contributions', 'How you are contributing to OpenStack (<150 words)'), new HtmlEditorField('Products', 'Products/Services Related to OpenStack (<100 words)'), new HtmlEditorField('Overview', 'Company Overview'), new TextField('CommitmentAuthor', 'Commitment Author (Optional)'), new HtmlEditorField('Commitment', "OpenStack Commitment"), new LiteralField('Break', '<hr/>'), new TextField('ContactEmail', 'Best Contact email address (optional)')))); $level->setEmptyString('-- Choose One --'); if ($this->ID > 0) { $admin_list = $this->Administrators()->sort('ID'); $query = $admin_list->dataQuery(); $query->groupby('MemberID'); $admin_list = $admin_list->setDataQuery($query); $config = GridFieldConfig_RelationEditor::create(); $config->removeComponentsByType('GridFieldEditButton'); $config->removeComponentsByType('GridFieldAddNewButton'); $config->getComponentByType('GridFieldDataColumns')->setDisplayFields(array('FirstName' => 'First Name', 'Surname' => 'Last Name', 'Email' => 'Email', 'DDLAdminSecurityGroup' => 'Security Group')); $admins = new GridField('Administrators', 'Company Administrators', $admin_list, $config); $contracts = new GridField("Contracts", "Contracts", $this->Contracts(), GridFieldConfig_RecordEditor::create(10)); $fields->addFieldsToTab('Root.Administrators', array(new HeaderField("Companies Administrators"), $admins)); $fields->addFieldsToTab('Root.Contracts', array(new HeaderField("Companies Contracts"), $contracts)); } return $fields; }
/** * FormHandler::uploadField() * * Create a uploadField on the form * * @param string $title: The title of the field * @param string $name: The name of the field * @param array $config: The configuration used for the field * @param string $validator: The validator which should be used to validate the value of the field * @param string $extra: CSS, Javascript or other which are inserted into the HTML tag * @param string $alertOverwrite: Do we have to alert the user when he/she is going to overwrite a file? * @return void * @access public * @author Teye Heimans */ function uploadField($title, $name, $config = array(), $validator = null, $extra = null, $alertOverwrite = null) { require_once FH_INCLUDE_DIR . 'fields/class.UploadField.php'; // create a new uploadfield $fld = new UploadField($this, $name, $config); if (!empty($validator)) { $fld->setValidator($validator); } if (!empty($extra)) { $fld->setExtra($extra); } if (!is_null($alertOverwrite)) { $fld->setAlertOverwrite($alertOverwrite); } // register the field $this->_registerField($name, $fld, $title); // set that this form is using uploadfields $this->_upload[] = $name; }