Advertisement
Guest User

Untitled

a guest
Oct 27th, 2014
4
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PHP 3.74 KB | None | 0 0
  1. <?php
  2.  
  3. /**
  4.  * Toolbar shared by all instances of {@link HTMLEditorField}, to avoid too much markup duplication.
  5.  *  Needs to be inserted manually into the template in order to function - see {@link LeftAndMain->EditorToolbar()}.
  6.  *
  7.  * @package forms
  8.  * @subpackage fields-formattedinput
  9.  */
  10. class HtmlEditorField_Toolbar extends RequestHandler {
  11.     /**
  12.      * @return FieldList
  13.      */
  14.     protected function getFieldsForImage($url, $file) {
  15.         if($file->File instanceof Image) {
  16.             $formattedImage = $file->File->generateFormattedImage('SetWidth',
  17.                 Config::inst()->get('Image', 'asset_preview_width'));
  18.             $thumbnailURL = Convert::raw2att($formattedImage ? $formattedImage->URL : $url);
  19.         } else {
  20.             $thumbnailURL = Convert::raw2att($url);
  21.         }
  22.  
  23.         $fileName = Convert::raw2att($file->Name);
  24.  
  25.         $fields = new FieldList(
  26.             CompositeField::create(
  27.                 CompositeField::create(
  28.                     LiteralField::create(
  29.                         "ImageFull",
  30.                         "<img id='thumbnailImage' class='thumbnail-preview' "
  31.                             . "src='{$thumbnailURL}?r=" . rand(1,100000) . "' alt='$fileName' />\n"
  32.                     )
  33.                 )->setName("FilePreviewImage")->addExtraClass('cms-file-info-preview'),
  34.                 CompositeField::create(
  35.                     CompositeField::create(
  36.                         new ReadonlyField("FileType", _t('AssetTableField.TYPE','File type'), $file->FileType),
  37.                         new ReadonlyField("Size", _t('AssetTableField.SIZE','File size'), $file->getSize()),
  38.                         $urlField = new ReadonlyField(
  39.                             'ClickableURL',
  40.                             _t('AssetTableField.URL','URL'),
  41.                             sprintf(
  42.                                 '<a href="%s" title="%s" target="_blank" class="file-url">%s</a>',
  43.                                 Convert::raw2att($file->Link()),
  44.                                 Convert::raw2att($file->Link()),
  45.                                 Convert::raw2att($file->RelativeLink())
  46.                             )
  47.                         ),
  48.                         new DateField_Disabled("Created", _t('AssetTableField.CREATED','First uploaded'),
  49.                             $file->Created),
  50.                         new DateField_Disabled("LastEdited", _t('AssetTableField.LASTEDIT','Last changed'),
  51.                             $file->LastEdited)
  52.                     )
  53.                 )->setName("FilePreviewData")->addExtraClass('cms-file-info-data')
  54.             )->setName("FilePreview")->addExtraClass('cms-file-info'),
  55.  
  56.             TextField::create(
  57.                 'AltText',
  58.                 _t('HtmlEditorField.IMAGEALT', 'Alternative text (alt)'),
  59.                 $file->Title,
  60.                 80
  61.             )->setDescription(
  62.                 _t('HtmlEditorField.IMAGEALTTEXTDESC', 'Shown to screen readers or if image can not be displayed')),
  63.  
  64.             TextField::create(
  65.                 'Title',
  66.                 _t('HtmlEditorField.IMAGETITLETEXT', 'Title text (tooltip)')
  67.             )->setDescription(
  68.                 _t('HtmlEditorField.IMAGETITLETEXTDESC', 'For additional information about the image')),
  69.  
  70.             new TextField('CaptionText', _t('HtmlEditorField.CAPTIONTEXT', 'Caption text')),
  71.             DropdownField::create(
  72.                 'CSSClass',
  73.                 _t('HtmlEditorField.CSSCLASS', 'Alignment / style'),
  74.                 array(
  75.                     'leftAlone' => _t('HtmlEditorField.CSSCLASSLEFTALONE', 'On the left, on its own.'),
  76.                     'center' => _t('HtmlEditorField.CSSCLASSCENTER', 'Centered, on its own.'),
  77.                     'left' => _t('HtmlEditorField.CSSCLASSLEFT', 'On the left, with text wrapping around.'),
  78.                     'right' => _t('HtmlEditorField.CSSCLASSRIGHT', 'On the right, with text wrapping around.')
  79.                 )
  80.             )->addExtraClass('last')
  81.         );
  82.  
  83.         if($file->Width != null){
  84.             $fields->push(
  85.                 FieldGroup::create(_t('HtmlEditorField.IMAGEDIMENSIONS', 'Dimensions'),
  86.                     TextField::create(
  87.                         'Width',
  88.                         _t('HtmlEditorField.IMAGEWIDTHPX', 'Width'),
  89.                         $file->InsertWidth
  90.                     )->setMaxLength(5),
  91.                     TextField::create(
  92.                         'Height',
  93.                         " x " . _t('HtmlEditorField.IMAGEHEIGHTPX', 'Height'),
  94.                         $file->InsertHeight
  95.                     )->setMaxLength(5)
  96.                 )->addExtraClass('dimensions last')
  97.             );
  98.         }
  99.         $urlField->dontEscape = true;
  100.  
  101.         $this->extend('updateFieldsForImage', $fields, $url, $file);
  102.  
  103.         return $fields;
  104.     }
  105. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement