public function __construct($controller, $name, $fields = null, $actions = null, $validator = null) { if (!$fields) { $helpHtml = _t('ExcelMemberImportForm.Help1', '<p><a href="{link}">Download sample file</a></p>', array('link' => $controller->Link('downloadsample/Member'))); $helpHtml .= _t('ExcelMemberImportForm.Help2', '<ul>' . '<li>Existing users are matched by their unique <em>Email</em> property, and updated with any new values from ' . 'the imported file.</li>' . '<li>Groups can be assigned by the <em>Groups</em> column. Groups are identified by their <em>Code</em> property, ' . 'multiple groups can be separated by comma. Existing group memberships are not cleared.</li>' . '</ul>'); $importer = new MemberCsvBulkLoader(); $importSpec = $importer->getImportSpec(); $helpHtml = sprintf($helpHtml, implode(', ', array_keys($importSpec['fields']))); $extensions = array('csv', 'xls', 'xlsx', 'ods', 'txt'); $fields = new FieldList(new LiteralField('Help', $helpHtml), $fileField = new FileField('File', _t('ExcelMemberImportForm.FileFieldLabel', 'File <small><br/>(allowed extensions: {extensions})</small>', array('extensions' => implode(', ', $extensions))))); $fileField->getValidator()->setAllowedExtensions(ExcelImportExport::getValidExtensions()); } if (!$actions) { $action = new FormAction('doImport', _t('ExcelMemberImportForm.BtnImport', 'Import from file')); $action->addExtraClass('ss-ui-button'); $actions = new FieldList($action); } if (!$validator) { $validator = new RequiredFields('File'); } parent::__construct($controller, $name, $fields, $actions, $validator); $this->addExtraClass('cms'); $this->addExtraClass('import-form'); }
/** * @see SecurityAdmin_MemberImportForm * * @return Form */ public function MemberImportForm() { if (!Permission::check('ADMIN')) { return false; } $group = $this->currentPage(); $form = new MemberImportForm($this, 'MemberImportForm'); $form->setGroup($group); return $form; }
/** * @see SecurityAdmin_MemberImportForm * * @return Form */ public function MemberImportForm() { $group = $this->currentPage(); $form = new MemberImportForm( $this, 'MemberImportForm' ); $form->setGroup($group); return $form; }
function testLoad() { $form = new MemberImportForm(new Controller(), 'Form'); $data = array('CsvFile' => array('tmp_name' => 'cms/tests/MemberImportFormTest.yml')); $form->doImport($data, $form); }