Skip to content

Commit

Permalink
HTMLEditorField undefined $dimensionsField (fixes #7494)
Browse files Browse the repository at this point in the history
Also use fluent API for form field definition to keep field invocations
in one place and thereby reduce these kind of bugs.
  • Loading branch information
chillu committed Jan 21, 2013
1 parent 5d37d55 commit 8717dec
Showing 1 changed file with 63 additions and 62 deletions.
125 changes: 63 additions & 62 deletions forms/HtmlEditorField.php
Original file line number Diff line number Diff line change
Expand Up @@ -596,35 +596,26 @@ protected function getFieldsForOembed($url, $file) {
$thumbnailURL = FRAMEWORK_DIR . '/images/default_media.png';
}

$previewField = new LiteralField("ImageFull",
"<img id='thumbnailImage' class='thumbnail-preview' src='{$thumbnailURL}?r=" . rand(1,100000)
. "' alt='{$file->Name}' />\n"
);

if($file->Width != null){
$dimensionsField = new FieldGroup(_t('HtmlEditorField.IMAGEDIMENSIONS', 'Dimensions'),
$widthField = new TextField('Width', _t('HtmlEditorField.IMAGEWIDTHPX', 'Width'), $file->Width),
$heightField = new TextField('Height', _t('HtmlEditorField.IMAGEHEIGHTPX', 'Height'), $file->Height)
);
}


$fields = new FieldList(
$filePreview = CompositeField::create(
CompositeField::create(
$previewField
new LiteralField(
"ImageFull",
"<img id='thumbnailImage' class='thumbnail-preview' "
. "src='{$thumbnailURL}?r=" . rand(1,100000) . "' alt='{$file->Name}' />\n"
)
)->setName("FilePreviewImage")->addExtraClass('cms-file-info-preview'),
CompositeField::create(
CompositeField::create(
new ReadonlyField("FileType", _t('AssetTableField.TYPE','File type') . ':', $file->Type),
$urlField = new ReadonlyField('ClickableURL', _t('AssetTableField.URL','URL'),
$urlField = ReadonlyField::create('ClickableURL', _t('AssetTableField.URL','URL'),
sprintf('<a href="%s" target="_blank" class="file">%s</a>', $url, $url)
)
)->addExtraClass('text-wrap')
)
)->setName("FilePreviewData")->addExtraClass('cms-file-info-data')
)->setName("FilePreview")->addExtraClass('cms-file-info'),
new TextField('CaptionText', _t('HtmlEditorField.CAPTIONTEXT', 'Caption text')),
$alignment = new DropdownField(
DropdownField::create(
'CSSClass',
_t('HtmlEditorField.CSSCLASS', 'Alignment / style'),
array(
Expand All @@ -633,19 +624,26 @@ protected function getFieldsForOembed($url, $file) {
'right' => _t('HtmlEditorField.CSSCLASSRIGHT', 'On the right, with text wrapping around.'),
'center' => _t('HtmlEditorField.CSSCLASSCENTER', 'Centered, on its own.'),
)
),
$dimensionsField
)->addExtraClass('last')
);
$urlField->addExtraClass('text-wrap');
$urlField->dontEscape = true;
if($dimensionsField){
$dimensionsField->addExtraClass('dimensions last');
$widthField->setMaxLength(5);
$heightField->setMaxLength(5);
}else{
$alignment->addExtraClass('last');
if($file->Width != null){
$fields->push(
FieldGroup::create(
_t('HtmlEditorField.IMAGEDIMENSIONS', 'Dimensions'),
TextField::create(
'Width',
_t('HtmlEditorField.IMAGEWIDTHPX', 'Width'),
$file->Width
)->setMaxLength(5),
TextField::create(
'Height',
_t('HtmlEditorField.IMAGEHEIGHTPX', 'Height'),
$file->Height
)->setMaxLength(5)
)->addExtraClass('dimensions last')
);
}

$urlField->dontEscape = true;

if($file->Type == 'photo') {
$filePreview->FieldList()->insertBefore(new TextField(
Expand All @@ -670,15 +668,20 @@ protected function getFieldsForOembed($url, $file) {
*/
protected function getFieldsForFlash($url, $file) {
$fields = new FieldList(
$dimensionsField = new FieldGroup(_t('HtmlEditorField.IMAGEDIMENSIONS', 'Dimensions'),
$widthField = new TextField('Width', _t('HtmlEditorField.IMAGEWIDTHPX', 'Width'), $file->Width),
$heightField = new TextField('Height', " x " . _t('HtmlEditorField.IMAGEHEIGHTPX', 'Height'),
$file->Height)
)
FieldGroup::create(
_t('HtmlEditorField.IMAGEDIMENSIONS', 'Dimensions'),
TextField::create(
'Width',
_t('HtmlEditorField.IMAGEWIDTHPX', 'Width'),
$file->Width
)->setMaxLength(5),
TextField::create(
'Height',
" x " . _t('HtmlEditorField.IMAGEHEIGHTPX', 'Height'),
$file->Height
)->setMaxLength(5)
)->addExtraClass('dimensions')
);
$dimensionsField->addExtraClass('dimensions');
$widthField->setMaxLength(5);
$heightField->setMaxLength(5);

$this->extend('updateFieldsForFlash', $fields, $url, $file);

Expand All @@ -696,23 +699,14 @@ protected function getFieldsForImage($url, $file) {
$thumbnailURL = $url;
}

$previewField = new LiteralField("ImageFull",
"<img id='thumbnailImage' class='thumbnail-preview' src='{$thumbnailURL}?r=" . rand(1,100000)
. "' alt='{$file->Name}' />\n"
);

if($file->Width != null){
$dimensionsField = new FieldGroup(_t('HtmlEditorField.IMAGEDIMENSIONS', 'Dimensions'),
$widthField = new TextField('Width', _t('HtmlEditorField.IMAGEWIDTHPX', 'Width'), $file->Width),
$heightField = new TextField('Height', " x " . _t('HtmlEditorField.IMAGEHEIGHTPX', 'Height'),
$file->Height)
);
}

$fields = new FieldList(
$filePreview = CompositeField::create(
CompositeField::create(
CompositeField::create(
$previewField
LiteralField::create(
"ImageFull",
"<img id='thumbnailImage' class='thumbnail-preview' "
. "src='{$thumbnailURL}?r=" . rand(1,100000) . "' alt='{$file->Name}' />\n"
)
)->setName("FilePreviewImage")->addExtraClass('cms-file-info-preview'),
CompositeField::create(
CompositeField::create(
Expand Down Expand Up @@ -745,7 +739,7 @@ protected function getFieldsForImage($url, $file) {
_t('HtmlEditorField.IMAGETITLETEXTDESC', 'For additional information about the image')),

new TextField('CaptionText', _t('HtmlEditorField.CAPTIONTEXT', 'Caption text')),
$alignment = new DropdownField(
DropdownField::create(
'CSSClass',
_t('HtmlEditorField.CSSCLASS', 'Alignment / style'),
array(
Expand All @@ -754,18 +748,25 @@ protected function getFieldsForImage($url, $file) {
'right' => _t('HtmlEditorField.CSSCLASSRIGHT', 'On the right, with text wrapping around.'),
'center' => _t('HtmlEditorField.CSSCLASSCENTER', 'Centered, on its own.'),
)
),
$dimensionsField
)->addExtraClass('last')
);
$urlField->dontEscape = true;
if($dimensionsField){
$dimensionsField->addExtraClass('dimensions last');
$widthField->setMaxLength(5);
$heightField->setMaxLength(5);
}else{
$alignment->addExtraClass('last');
if($file->Width != null){
$fields->push(
FieldGroup::create(_t('HtmlEditorField.IMAGEDIMENSIONS', 'Dimensions'),
TextField::create(
'Width',
_t('HtmlEditorField.IMAGEWIDTHPX', 'Width'),
$file->Width
)->setMaxLength(5),
TextField::create(
'Height',
" x " . _t('HtmlEditorField.IMAGEHEIGHTPX', 'Height'),
$file->Height
)->setMaxLength(5)
)->addExtraClass('dimensions last')
);
}

$urlField->dontEscape = true;

$this->extend('updateFieldsForImage', $fields, $url, $file);

Expand Down

0 comments on commit 8717dec

Please sign in to comment.