public function updateSiteCMSFields(FieldList $fields)
 {
     $fields->addFieldToTab('Root.Main', $gaCode = new TextField('GACode', 'Google Analytics account'));
     $gaCode->setRightTitle('Account number to be used all across the site (in the format <strong>UA-XXXXX-X</strong>)');
     $fields->addFieldToTab('Root.SocialMedia', $facebookURL = new TextField('FacebookURL', 'Facebook UID or username'));
     $facebookURL->setRightTitle('Facebook link (everything after the "http://facebook.com/", eg http://facebook.com/<strong>username</strong> or http://facebook.com/<strong>pages/108510539573</strong>)');
     $fields->addFieldToTab('Root.SocialMedia', $twitterUsername = new TextField('TwitterUsername', 'Twitter username'));
     $twitterUsername->setRightTitle('Twitter username (eg, http://twitter.com/<strong>username</strong>)');
     $fields->addFieldToTab('Root.SocialMedia', $addThisID = new TextField('AddThisProfileID', 'AddThis Profile ID'));
     $addThisID->setRightTitle('Profile ID to be used all across the site (in the format <strong>ra-XXXXXXXXXXXXXXXX</strong>)');
     $fields->addFieldToTab('Root.Logos/Icons', $favIconField = new UploadField('FavIcon', 'Favicon, in .ico format, dimensions of 16x16, 32x32, or 48x48'));
     $favIconField->getValidator()->setAllowedExtensions(array('ico'));
     $favIconField->setConfig('allowedMaxFileNumber', 1);
     $fields->addFieldToTab('Root.Logos/Icons', $atIcon144 = new UploadField('AppleTouchIcon144', 'Apple Touch Web Clip and Windows 8 Tile Icon (dimensions of 144x144, PNG format)'));
     $atIcon144->getValidator()->setAllowedExtensions(array('png'));
     $atIcon144->setConfig('allowedMaxFileNumber', 1);
     $fields->addFieldToTab('Root.Logos/Icons', $atIcon114 = new UploadField('AppleTouchIcon114', 'Apple Touch Web Clip Icon (dimensions of 114x114, PNG format)'));
     $atIcon114->getValidator()->setAllowedExtensions(array('png'));
     $atIcon114->setConfig('allowedMaxFileNumber', 1);
     $fields->addFieldToTab('Root.Logos/Icons', $atIcon72 = new UploadField('AppleTouchIcon72', 'Apple Touch Web Clip Icon (dimensions of 72x72, PNG format)'));
     $atIcon72->getValidator()->setAllowedExtensions(array('png'));
     $atIcon72->setConfig('allowedMaxFileNumber', 1);
     $fields->addFieldToTab('Root.Logos/Icons', $atIcon57 = new UploadField('AppleTouchIcon57', 'Apple Touch Web Clip Icon (dimensions of 57x57, PNG format)'));
     $atIcon57->getValidator()->setAllowedExtensions(array('png'));
     $atIcon57->setConfig('allowedMaxFileNumber', 1);
 }
Example #2
0
 public function getCMSFields()
 {
     $fields = parent::getCMSFields();
     $fields->removeByName("FlexSliderID");
     // Main
     $field_Picture = new UploadField('Picture', _t("FlexSlider.Picture"));
     $field_Picture->setFolderName("FlexSlides");
     $field_Picture->setConfig('allowedMaxFileNumber', 1);
     $field_Position = new NumericField("Position", _t("FlexSlider.Position"));
     $field_Position->RightTitle(_t("FlexSlider.PositionExplain"));
     $field_SlideTitle = new TextField("SlideTitle", _t("FlexSlider.Title"));
     $field_SlideDescription = new TextField("SlideDescription", _t("FlexSlider.Description"));
     $field_HeadlineLinks = new HeaderField("HeadlineLinks", _t("FlexSlider.HeadlineLinks"));
     $field_InternalLink = new TreeDropdownField("InternalLinkID", _t('FlexSlider.InternalLink'), 'SiteTree');
     $field_removeInternalLink = new CheckboxField("doRemoveInternalLink", _t("FlexSlider.doRemoveInternalLink"));
     $field_ExternalLink = new TextField("ExternalLink", _t("FlexSlider.or") . " " . _t("FlexSlider.ExternalLink"));
     $field_HeadlineEnabled = new HeaderField("HeadlineEnabled", _t("FlexSlider.HeadlineEnabled"));
     $field_isEnabled = new CheckboxField("isEnabled", _t("FlexSlider.isEnabled"));
     $FieldsArray = array($field_Position, $field_Picture, $field_SlideTitle, $field_SlideDescription, $field_InternalLink, $field_removeInternalLink, $field_ExternalLink, $field_HeadlineEnabled, $field_isEnabled);
     $fields->addFieldToTab('Root.Main', $field_Position);
     $fields->addFieldToTab('Root.Main', $field_Picture);
     $fields->addFieldToTab('Root.Main', $field_SlideTitle);
     $fields->addFieldToTab('Root.Main', $field_SlideDescription);
     $fields->addFieldToTab('Root.Main', $field_HeadlineLinks);
     $fields->addFieldToTab('Root.Main', $field_InternalLink);
     $fields->addFieldToTab('Root.Main', $field_removeInternalLink);
     $fields->addFieldToTab('Root.Main', $field_ExternalLink);
     $fields->addFieldToTab('Root.Main', $field_HeadlineEnabled);
     $fields->addFieldToTab('Root.Main', $field_isEnabled);
     return $fields;
 }
 public function updateCMSFields(FieldList $fields)
 {
     // Main
     $fields->addFieldToTab('Root.Main', $gaCode = new TextField('GACode', 'Google Analytics account'));
     $gaCode->setRightTitle('Account number to be used all across the site (in the format <strong>UA-XXXXX-X</strong>)');
     $fields->addFieldToTab('Root.Main', $showTitle = new CheckboxField('ShowTitleInHeader', 'Show title in header'), 'Tagline');
     /* @var $logoField UploadField */
     $logoField = new UploadField('Logo', 'Large logo, to appear in the header.');
     $logoField->setAllowedFileCategories('image');
     $logoField->setConfig('allowedMaxFileNumber', 1);
     $mobileLogoField = new UploadField('LogoMobile', 'Mobile logo, to appear in the header.');
     $mobileLogoField->setAllowedFileCategories('image');
     $mobileLogoField->setConfig('allowedMaxFileNumber', 1);
     $fields->addFieldToTab('Root.Main', $logoField);
     $fields->addFieldToTab('Root.Main', $this->getLogoOffSetField());
     $fields->addFieldToTab('Root.Main', $mobileLogoField);
     $fields->addFieldToTab('Root.Main', $this->getMobileLogoOffSetField());
     //Footer
     $fields->addFieldToTab('Root.Footer', $footerLogoField = new UploadField('FooterLogo', 'Footer logo, to appear in the bottom right.'));
     $footerLogoField->setAllowedFileCategories('image');
     $footerLogoField->setConfig('allowedMaxFileNumber', 1);
     $fields->addFieldToTab('Root.Footer', $footerLink = new TextField('FooterLogoLink', 'Footer Logo link'));
     $footerLink->setRightTitle('Please include the protocol (ie, http:// or https://) unless it is an internal link.');
     $fields->addFieldToTab('Root.Footer', new TextField('FooterLogoDescription', 'Footer Logo description'));
     $fields->addFieldToTab('Root.Footer', new TreeMultiselectField('FooterLinks', 'Footer Links', 'SiteTree'));
     $fields->addFieldToTab('Root.Footer', new TextField('Copyright', 'Copyright'));
 }
 /**
  * @return array
  */
 protected function getProfileFields()
 {
     //TODO gender enum
     $postcode = new RegexTextField('Postcode', _t('Addressable.POSTCODE', 'Postcode'));
     $postcode->setRegex($this->postcodeRegex);
     $fields = array(new HeaderField('ProfileHeader', _t('Profileable.PROFILE', 'Profile')), new OptionsetField('Gender', _t('Profileable.GENDER', 'Gender'), array('m' => _t('Profileable.MASCULINE', 'masculine'), 'f' => _t('Profileable.FEMININE', 'feminine'), 'u' => _t('Profileable.UNKNOWN', 'unknown')), 'u'), new TextField('AcademicTitle', _t('Profileable.ACADEMICTITLE', 'Name')), new TextField('ProfileName', _t('Profileable.NAME', 'Name')), new TextField('Company', _t('Profileable.COMPANY', 'Company')), new TextField('Position', _t('Profileable.POSITION', 'Position')), new TextField('Address', _t('Addressable.ADDRESS', 'Address')), new TextField('AddressAddition', _t('Profileable.ADDRESSADDITION', 'Address Addition')), $postcode, new TextField('City', _t('Profileable.CITY', 'City')), new TextField('Suburb', _t('Addressable.SUBURB', 'Suburb')));
     $label = _t('Addressable.STATE', 'State');
     if (is_array($this->allowedStates)) {
         $fields[] = new DropdownField('State', $label, $this->allowedStates);
     } elseif (!is_string($this->allowedStates)) {
         $fields[] = new TextField('State', $label);
     }
     $label = _t('Addressable.COUNTRY', 'Country');
     if (is_array($this->allowedCountries)) {
         $fields[] = new DropdownField('Country', $label, $this->allowedCountries);
     } elseif (!is_string($this->allowedCountries)) {
         $fields[] = new CountryDropdownField('Country', $label);
     }
     $fields[] = new TextField('Phone', _t('Profileable.PHONE', 'Phone'));
     $fields[] = new TextField('Fax', _t('Profileable.FAX', 'Fax'));
     $fields[] = new EmailField('ProfileEmail', _t('Profileable.EMAIL', 'E-Mail'));
     $fields[] = new TextField('Www', _t('Profileable.WWW', 'Homepage'));
     $profileUpload = new UploadField('ProfilePicture', _t('Profileable.PROFILEPICTURE', 'Profile Picture'));
     $profileUpload->allowedExtensions = self::$ProfilePictureAllowedTypes;
     $profileUpload->setFolderName(self::$ProfilePictureFolder);
     $profileUpload->setConfig('allowedMaxFileNumber', 1);
     $fields[] = $profileUpload;
     $fields[] = new TextareaField('Description', _t('Profileable.DESCRIPTION', 'Description'));
     return $fields;
 }
 public function getCMSFields()
 {
     $fields = parent::getCMSFields();
     // mp4 upload
     $MP4Field = new UploadField('MP4Video', 'MP4 Video');
     $MP4Field->getValidator()->setAllowedExtensions(array('mp4', 'm4v'));
     $MP4Field->setFolderName('Uploads/video');
     $MP4Field->setConfig('allowedMaxFileNumber', 1);
     // ogg upload
     $OggField = new UploadField('OggVideo', 'Ogg Video');
     $OggField->getValidator()->setAllowedExtensions(array('ogv', 'ogg'));
     $OggField->setFolderName('Uploads/video');
     $OggField->setConfig('allowedMaxFileNumber', 1);
     // mp4 upload
     $WebMField = new UploadField('WebMVideo', 'WebM Video');
     $WebMField->getValidator()->setAllowedExtensions(array('webm'));
     $WebMField->setFolderName('Uploads/video');
     $WebMField->setConfig('allowedMaxFileNumber', 1);
     // poster
     $PosterField = new UploadField('Poster', 'Poster Image');
     $PosterField->allowedExtensions = array('jpg', 'gif', 'png');
     $PosterField->setFolderName('Uploads/videoposters');
     $PosterField->setConfig('allowedMaxFileNumber', 1);
     $fields->addFieldsToTab('Root.Video', array($MP4Field, $OggField, $WebMField, $PosterField));
     return $fields;
 }
 function getCMSFields()
 {
     $f = parent::getCMSFields();
     $f->removeByName(array('SortOrder', 'Image'));
     $f->removeByName('SortOrder');
     $f->addFieldsToTab('Root.Main', HtmlEditorField::create("Description")->setRows(15));
     $f->addFieldsToTab('Root.Image', $HeroImage = new UploadField('Image', 'Please upload a Hero image <span>(max. 1 files)</span>'));
     $HeroImage->setAllowedFileCategories('image');
     $HeroImage->setAllowedMaxFileNumber(1);
     $HeroImage->getValidator()->setAllowedExtensions(array('jpg', 'jpeg', 'png', 'gif'));
     $HeroImage->setConfig('allowedMaxFileNumber', 1);
     $HeroImage->setFolderName('Uploads/Distributors/' . $this->URLSegment);
     return $f;
 }
 public function getCMSFields()
 {
     $fields = parent::getCMSFields();
     $ImageField = new UploadField('Image', 'Image');
     $ImageField->getValidator()->allowedExtensions = array('jpg', 'jpeg', 'gif', 'png');
     $ImageField->setFolderName('Uploads/SlideImages');
     $ImageField->setConfig('allowedMaxFileNumber', 1);
     $ImageField->getValidator()->setAllowedMaxFileSize(FLEXSLIDER_IMAGE_FILE_SIZE_LIMIT);
     $fields->removeByName(array('ShowSlide'));
     $fields->addFieldsToTab('Root.Main', array(TextField::create('Name'), TextareaField::create('Description'), TreeDropdownField::create('PageLinkID', 'Choose a page to link to:', 'SiteTree'), $ImageField, CheckboxField::create('ShowSlide')->setTitle('Show Slide')->setDescription('Include this slide in the slider. Uncheck to hide')));
     $fields->removeByName(array('SortOrder', 'PageID'));
     $this->extend('updateCMSFields', $fields);
     return $fields;
 }
Example #8
0
 public function updateCMSFields(FieldList $fields)
 {
     $footerLinks = new GridField('FooterLinks', 'FooterLinks', $this->owner->FooterLinks(), $conf = GridFieldConfig_RelationEditor::create());
     $conf->addComponent(new GridFieldOrderableRows('Sort'));
     $footerLinks->getConfig()->getComponentByType('GridFieldAddNewButton')->setButtonName('Add Link to Footer');
     $fields->addFieldToTab('Root.Footer', $footerLinks);
     $fields->addFieldToTab('Root.Main', $gaCode = new TextField('GACode', 'Google Analytics account'));
     $gaCode->setRightTitle('Account number to be used all across the site (in the format <strong>UA-XXXXX-X</strong>)');
     $fields->addFieldToTab('Root.SocialMedia', $facebookURL = new TextField('FacebookURL', 'Facebook UID or username'));
     $facebookURL->setRightTitle('Facebook link (everything after the "http://facebook.com/", eg http://facebook.com/<strong>username</strong> or http://facebook.com/<strong>pages/108510539573</strong>)');
     $fields->addFieldToTab('Root.SocialMedia', $twitterUsername = new TextField('TwitterUsername', 'Twitter username'));
     $twitterUsername->setRightTitle('Twitter username (eg, http://twitter.com/<strong>username</strong>)');
     $fields->addFieldToTab('Root.Logos', $logoField = new UploadField('Logo', 'Logo'));
     $logoField->getValidator()->setAllowedExtensions(array('jpg', 'jpeg', 'png', 'gif'));
     $logoField->setConfig('allowedMaxFileNumber', 1);
     $fields->addFieldToTab('Root.Logos', new TextField('LogoText', 'Logo Text'));
 }
 /**
  * Returns a form field for uploading a file. 
  *   Attempts to use the Uploadify module if present.
  * @param string $fieldName Form Field Name
  * @param string $fieldTitle Form Field Title
  * @param array|null $fileTypes Array of allowed extensions (e.g. array('gif','jpg'))
  * @param string|null $subfolder Files will be uploaded to this subfolder of the Media Type's $media_upload_folder 
  * @return FormField
  */
 public function getUploadField($fieldName, $fieldTitle = null, $fileTypes = null, $subfolder = null)
 {
     $allowed_file_types = is_array($fileTypes) ? $fileTypes : Config::inst()->get($this->MediaType, 'allowed_file_types');
     $folder = property_exists($this, 'media_upload_folder') ? $this->media_upload_folder : Config::inst()->get($this->MediaType, 'media_upload_folder');
     $folder .= '/' . date('Y-m') . ($subfolder ? '/' . $subfolder : '');
     $field = new UploadField($name = $fieldName, $title = $fieldTitle);
     $field->setFolderName($folder);
     if ($allowed_file_types) {
         $field->getValidator()->setAllowedExtensions($allowed_file_types);
     }
     // determine if we are in admin or front-end, hide attaching existing files if in front-end.
     $admin_base = Config::inst()->get('LeftAndMain', 'url_base');
     if (!substr(Controller::curr()->getRequest()->getURL(), 0, strlen($admin_base) + 1) == $admin_base . '/') {
         $field->setConfig('canAttachExisting', false);
     }
     return $field;
 }
Example #10
0
 public function updateCMSFields(FieldList $fields)
 {
     $footerBanner = new UploadField('FooterBanner', 'Footer Banner');
     $footerBanner->getValidator()->setAllowedExtensions(array('jpg', 'jpeg', 'png', 'gif'));
     $footerBanner->setConfig('allowedMaxFileNumber', 1);
     $footerBannerLink = new TreeDropdownField('FooterBannerLinkID', 'Footer Banner Link', "SiteTree");
     $fields->addFieldToTab('Root.Footer', $footerBanner);
     $fields->addFieldToTab('Root.Footer', $footerBannerLink);
     $fields->addFieldToTab('Root.Main', $gaCode = new TextField('GACode', 'Google Analytics account'));
     $gaCode->setRightTitle('Account number to be used all across the site (in the format <strong>UA-XXXXX-X</strong>)');
     $fields->addFieldToTab('Root.SocialMedia', $facebookURL = new TextField('FacebookURL', 'Facebook UID or username'));
     $facebookURL->setRightTitle('Facebook link (everything after the "http://facebook.com/", eg http://facebook.com/<strong>username</strong> or http://facebook.com/<strong>pages/108510539573</strong>)');
     $fields->addFieldToTab('Root.SocialMedia', $twitterUsername = new TextField('TwitterUsername', 'Twitter username'));
     $twitterUsername->setRightTitle('Twitter username (eg, http://twitter.com/<strong>username</strong>)');
     $fields->addFieldToTab('Root.Logos', $logoField = new UploadField('Logo', 'Logo, to appear in the top left.'));
     $logoField->getValidator()->setAllowedExtensions(array('jpg', 'jpeg', 'png', 'gif'));
     $logoField->setConfig('allowedMaxFileNumber', 1);
     $fields->addFieldToTab('Root.Logos', new TextField('LogoText', 'Logo Text'));
 }
 function updateCMSFields(FieldList $fields)
 {
     $fields->addFieldToTab('Root.Main', $gaCode = new TextField('GACode', 'Google Analytics account'));
     $gaCode->setRightTitle('Account number to be used all across the site (in the format <strong>UA-XXXXX-X</strong>)');
     $fields->addFieldToTab('Root.SocialMedia', $facebookURL = new TextField('FacebookURL', 'Facebook UID or username'));
     $facebookURL->setRightTitle('Facebook link (everything after the "http://facebook.com/", eg http://facebook.com/<strong>username</strong> or http://facebook.com/<strong>pages/108510539573</strong>)');
     $fields->addFieldToTab('Root.SocialMedia', $twitterUsername = new TextField('TwitterUsername', 'Twitter username'));
     $twitterUsername->setRightTitle('Twitter username (eg, http://twitter.com/<strong>username</strong>)');
     $fields->addFieldToTab('Root.SocialMedia', $addThisID = new TextField('AddThisProfileID', 'AddThis Profile ID'));
     $addThisID->setRightTitle('Profile ID to be used all across the site (in the format <strong>ra-XXXXXXXXXXXXXXXX</strong>)');
     $fields->addFieldToTab('Root.Logos', $logoField = new UploadField('Logo', 'Logo, to appear in the top left.'));
     $logoField->getValidator()->setAllowedExtensions(array('jpg', 'jpeg', 'png', 'gif'));
     $logoField->setConfig('allowedMaxFileNumber', 1);
     $fields->addFieldToTab('Root.Logos', $footerLogoField = new UploadField('FooterLogo', 'Footer logo, to appear in the bottom right.'));
     $footerLogoField->getValidator()->setAllowedExtensions(array('jpg', 'jpeg', 'png', 'gif'));
     $footerLogoField->setConfig('allowedMaxFileNumber', 1);
     $fields->addFieldToTab('Root.Logos', $footerLink = new TextField('FooterLogoLink', 'Footer Logo link'));
     $footerLink->setRightTitle('Please include the protocol (ie, http:// or https://) unless it is an internal link.');
     $fields->addFieldToTab('Root.Logos', new TextField('FooterLogoDescription', 'Footer Logo description'));
 }
 public function getCMSFields()
 {
     $fields = parent::getCMSFields();
     $fields->addFieldToTab('Root.Main', new TextField('Author', _t('NewsArticle.AUTHOR', 'Author')), 'Content');
     $fields->addFieldToTab('Root.Main', $dp = new DateField('OriginalPublishedDate', _t('NewsArticle.PUBLISHED_DATE', 'When was this article first published?')), 'Content');
     $dp->setConfig('showcalendar', true);
     $fields->addFieldToTab('Root.Main', new TextField('ExternalURL', _t('NewsArticle.EXTERNAL_URL', 'External URL to article (will automatically redirect to this URL if no article content set)')), 'Content');
     $fields->addFieldToTab('Root.Main', new TextField('Source', _t('NewsArticle.SOURCE', 'News Source')), 'Content');
     $fields->addFieldToTab('Root.Main', $if = new UploadField('Thumbnail', _t('NewsArticle.THUMB', 'Thumbnail')), 'Content');
     $if->setConfig('allowedMaxFileNumber', 1)->setFolderName('news-articles/thumbnails');
     $if->getValidator()->setAllowedExtensions(array('jpg', 'jpeg', 'png', 'gif'));
     if (!$this->OriginalPublishedDate) {
         // @TODO Fix this to be correctly localized!!
         $this->OriginalPublishedDate = date('Y-m-d');
     }
     $fields->addFieldToTab('Root.Main', UploadField::create('InternalFile', _t('NewsArticle.INTERNAL_FILE', 'Select a file containing this news article, if any'))->setFolderName('news'), 'Content');
     $fields->addFieldToTab('Root.Main', $summary = new HtmlEditorField('Summary', _t('NewsArticle.SUMMARY', 'Article Summary (displayed in listings)')), 'Content');
     $summary->addExtraClass('stacked');
     $this->extend('updateArticleCMSFields', $fields);
     return $fields;
 }
 public function updateCMSFields(FieldList $fields)
 {
     //$fields->addFieldToTab(HeaderImageBanner::$hibCMSTab, new DropDownField('hibHeaderImagesType', 'If no header image, select from', $this->dbObject('hibHeaderImagesType')->enumValues()));
     if (HeaderImageBanner::$hibCMSUserEdit) {
         if (isset(HeaderImageBanner::$hibCMSTabs[$this->owner->ClassName])) {
             $tabs = HeaderImageBanner::$hibCMSTabs[$this->owner->ClassName];
         } else {
             if (isset(HeaderImageBanner::$hibCMSTabs["default"])) {
                 $tabs = HeaderImageBanner::$hibCMSTabs["default"];
             } else {
                 $tabs = "Root.HeaderImageBanners";
             }
         }
         $upload = new UploadField('hibImages', HeaderImageBanner::hibGetCMSCaption());
         $upload->setConfig('allowedMaxFileNumber', 25);
         $upload->getValidator()->setAllowedExtensions(array('jpg', 'jpeg', 'gif', 'png'));
         $fields->addFieldToTab($tabs, $upload);
         //	  	$fields->addFieldToTab($tabs, $upload = new UploadField('hibImages', HeaderImageBanner::hibGetCMSCaption()));
         //			$uf->setConfig('allowedMaxFileNumber', 10);
     }
 }
 public function getCMSFields()
 {
     $this->beforeUpdateCMSFields(function ($fields) {
         $datefield = new DateField('Date', 'Date (DD/MM/YYYY)');
         $datefield->setConfig('showcalendar', true);
         $datefield->setConfig('showdropdown', true);
         $datefield->setConfig('dateformat', 'dd/MM/YYYY');
         $fields->addFieldToTab('Root.Main', $datefield, 'Content');
         $image = new UploadField('AttachedImage', 'Main Image');
         $image->getValidator()->setAllowedExtensions(array('jpg', 'jpeg', 'png', 'gif'));
         $image->setConfig('allowedMaxFileNumber', 1);
         $image->setFolderName('Managed/NewsImages');
         $image->setCanPreviewFolder(false);
         $image->setRightTitle("Displayed to the right of the content in the main article, where it can be clicked to enlarge. <br />A thumbnail also appears next to the article summary on the main News page.");
         $fields->addFieldToTab('Root.Main', $image, "Content");
     });
     $fields = parent::getCMSFields();
     $fields->renameField("Title", "Headline");
     $fields->removeFieldFromTab("Root.Main", "MenuTitle");
     return $fields;
 }
Example #15
0
 /**
  * Returns the fields to power the edit screen of files in the CMS.
  * You can modify this FieldList by subclassing folder, or by creating a {@link DataExtension}
  * and implemeting updateCMSFields(FieldList $fields) on that extension.
  * 
  * @return FieldList
  */
 function getCMSFields()
 {
     // Preview
     if ($this instanceof Image) {
         $formattedImage = $this->getFormattedImage('SetWidth', Image::$asset_preview_width);
         $thumbnail = $formattedImage ? $formattedImage->URL : '';
         $previewField = new LiteralField("ImageFull", "<img id='thumbnailImage' class='thumbnail-preview' src='{$thumbnail}?r=" . rand(1, 100000) . "' alt='{$this->Name}' />\n");
     } else {
         $previewField = new LiteralField("ImageFull", $this->CMSThumbnail());
     }
     // Upload
     $uploadField = new UploadField('UploadField', 'Upload Field');
     $uploadField->setConfig('previewMaxWidth', 40);
     $uploadField->setConfig('previewMaxHeight', 30);
     $uploadField->setConfig('allowedMaxFileNumber', 1);
     //$uploadField->setTemplate('FileEditUploadField');
     if ($this->ParentID) {
         $parent = $this->Parent();
         if ($parent) {
             //set the parent that the Upload field should use for uploads
             $uploadField->setFolderName($parent->getFilename());
             $uploadField->setRecord($parent);
         }
     }
     //create the file attributes in a FieldGroup
     $filePreview = CompositeField::create(CompositeField::create($previewField)->setName("FilePreviewImage")->addExtraClass('cms-file-info-preview'), CompositeField::create(CompositeField::create(new ReadonlyField("FileType", _t('AssetTableField.TYPE', 'File type') . ':'), new ReadonlyField("Size", _t('AssetTableField.SIZE', 'File size') . ':', $this->getSize()), $urlField = new ReadonlyField('ClickableURL', _t('AssetTableField.URL', 'URL'), sprintf('<a href="%s" target="_blank">%s</a>', $this->Link(), $this->RelativeLink())), new DateField_Disabled("Created", _t('AssetTableField.CREATED', 'First uploaded') . ':'), new DateField_Disabled("LastEdited", _t('AssetTableField.LASTEDIT', 'Last changed') . ':'), new ReadonlyField('BackLinkCount', _t('AssetTableField.BACKLINKCOUNT', 'Used on:'), $this->BackLinkTracking()->Count() . ' ' . _t('AssetTableField.PAGES', 'page(s)'))))->setName("FilePreviewData")->addExtraClass('cms-file-info-data'))->setName("FilePreview")->addExtraClass('cms-file-info');
     $urlField->dontEscape = true;
     //get a tree listing with only folder, no files
     $folderTree = new TreeDropdownField("ParentID", _t('AssetTableField.FOLDER', 'Folder'), 'Folder');
     $folderTree->setChildrenMethod('ChildFolders');
     $fields = new FieldList(new TabSet('Root', new Tab('Main', $filePreview, new TextField("Title", _t('AssetTableField.TITLE', 'Title')), new TextField("Name", _t('AssetTableField.FILENAME', 'Filename')), new DropdownField("OwnerID", _t('AssetTableField.OWNER', 'Owner'), Member::mapInCMSGroups()), $folderTree)));
     // Folder has its own updateCMSFields hook
     if (!$this instanceof Folder) {
         $this->extend('updateCMSFields', $fields);
     }
     return $fields;
 }
Example #16
0
 public function Form()
 {
     $record = DataObject::get_one('UploadFieldTest_Record', '"Title" = \'Record 1\'');
     $fieldNoRelation = new UploadField('NoRelationField');
     $fieldNoRelation->setFolderName('UploadFieldTest');
     $fieldNoRelation->setRecord($record);
     $fieldHasOne = new UploadField('HasOneFile');
     $fieldHasOne->setFolderName('UploadFieldTest');
     $fieldHasOne->setRecord($record);
     $fieldHasOneExtendedFile = new UploadField('HasOneExtendedFile');
     $fieldHasOneExtendedFile->setFolderName('UploadFieldTest');
     $fieldHasOneExtendedFile->setRecord($record);
     $fieldHasOneMaxOne = new UploadField('HasOneFileMaxOne');
     $fieldHasOneMaxOne->setFolderName('UploadFieldTest');
     $fieldHasOneMaxOne->setConfig('allowedMaxFileNumber', 1);
     $fieldHasOneMaxOne->setRecord($record);
     $fieldHasOneMaxTwo = new UploadField('HasOneFileMaxTwo');
     $fieldHasOneMaxTwo->setFolderName('UploadFieldTest');
     $fieldHasOneMaxTwo->setConfig('allowedMaxFileNumber', 2);
     $fieldHasOneMaxTwo->setRecord($record);
     $fieldHasMany = new UploadField('HasManyFiles');
     $fieldHasMany->setFolderName('UploadFieldTest');
     $fieldHasMany->setRecord($record);
     $fieldHasManyMaxTwo = new UploadField('HasManyFilesMaxTwo');
     $fieldHasManyMaxTwo->setFolderName('UploadFieldTest');
     $fieldHasManyMaxTwo->setConfig('allowedMaxFileNumber', 2);
     $fieldHasManyMaxTwo->setRecord($record);
     $fieldManyMany = new UploadField('ManyManyFiles');
     $fieldManyMany->setFolderName('UploadFieldTest');
     $fieldManyMany->setRecord($record);
     $fieldReadonly = new UploadField('ReadonlyField');
     $fieldReadonly->setFolderName('UploadFieldTest');
     $fieldReadonly->setRecord($record);
     $fieldReadonly = $fieldReadonly->performReadonlyTransformation();
     $fieldDisabled = new UploadField('DisabledField');
     $fieldDisabled->setFolderName('UploadFieldTest');
     $fieldDisabled->setRecord($record);
     $fieldDisabled = $fieldDisabled->performDisabledTransformation();
     $fieldSubfolder = new UploadField('SubfolderField');
     $fieldSubfolder->setFolderName('UploadFieldTest/subfolder1');
     $fieldSubfolder->setRecord($record);
     $form = new Form($this, 'Form', new FieldList($fieldNoRelation, $fieldHasOne, $fieldHasOneMaxOne, $fieldHasOneMaxTwo, $fieldHasOneExtendedFile, $fieldHasMany, $fieldHasManyMaxTwo, $fieldManyMany, $fieldReadonly, $fieldDisabled, $fieldSubfolder), new FieldList(new FormAction('submit')), new RequiredFields('NoRelationField', 'HasOneFile', 'HasOneFileMaxOne', 'HasOneFileMaxTwo', 'HasOneExtendedFile', 'HasManyFiles', 'HasManyFilesMaxTwo', 'ManyManyFiles', 'ReadonlyField', 'DisabledField', 'SubfolderField'));
     return $form;
 }
 public function updateCMSFields(FieldList $fields)
 {
     $fields->push($uploadField = new TextField("Caption", "Text"));
     $fields->push($uploadField = new UploadField("Thumbnail", "Thumbnail"));
     $uploadField->setConfig('canUpload', 'false');
     $uploadField->setFolderName(str_replace(ASSETS_DIR, "", $this->owner->getRelativePath()));
     $uploadField->getValidator()->setAllowedExtensions(array('jpg', 'jpeg', 'png', 'gif'));
     //$fields = new FileField("Thumbnail", "Thumbnail");
     return $fields;
 }