Perforce Chronicle 2012.2/486814
API Documentation
|
This is the image widget configuration form. More...
Public Member Functions | |
init () | |
Defines the elements that make up the image form. | |
isValid ($data) | |
Extend parent to additionally validate image source data. | |
setDefaults (array $defaults) | |
Override parent to expand macros in the image url. | |
Public Attributes | |
const | E_EMPTY_IMAGE_CONTENT = "Please select an image from the content" |
const | E_EMPTY_IMAGE_SOURCE = "Image source type is required" |
const | E_EMPTY_IMAGE_URL = "Please enter a URL of the remote image" |
This is the image widget configuration form.
Widget_Form_ImageWidget::init | ( | ) |
Defines the elements that make up the image form.
Called automatically when the form object is created.
{ // define associate dijit for this form, which will handle all javascript // such as selecting an image from the content, autodetecting dimensions etc. $this->setAttrib('dojoType', 'p4cms.widget.ImageForm'); // add field to hold content entry id value $this->addElement('hidden', 'contentId'); // add field to specify content source $this->addElement( 'radio', 'imageSource', array( 'label' => 'Content Source', 'multiOptions' => array( 'content' => 'Content', 'remote' => 'External' ) ) ); // add field to specify content title $this->addElement( 'text', 'contentTitle', array( 'label' => 'Content' ) ); // add field to specify remote image url $this->addElement( 'text', 'imageUrl', array( 'label' => 'URL', 'value' => 'http://' ) ); // add field to specify image size options $this->addElement( 'select', 'sizeType', array( 'label' => 'Size', 'multiOptions' => array( 'full' => 'Full Size', 'custom' => 'Custom Size' ) ) ); // add field to specify image width $this->addElement( 'text', 'imageWidth', array( 'label' => 'Width' ) ); // add field to specify image height $this->addElement( 'text', 'imageHeight', array( 'label' => 'Height' ) ); // add field to specify lock image size ratio option $this->addElement( 'checkbox', 'lockRatio', array( 'label' => 'Scale Proportionally' ) ); // put the checkbox input before its labels P4Cms_Form::moveCheckboxLabel($this->getElement('lockRatio')); // add field to specify image margin $this->addElement( 'text', 'margin', array( 'label' => 'Margin' ) ); // add field to specify image alternate text $this->addElement( 'text', 'imageAlt', array( 'label' => 'Alt Text' ) ); // add field to collect optional link href $this->addElement( 'text', 'link', array( 'label' => 'Link', 'description' => 'Enter a url to visit when the image is clicked.' ) ); $this->addElement( 'select', 'linkTarget', array( 'label' => 'Open Link In', 'multiOptions' => array( '_self' => 'Current Window', '_blank' => 'A New Window', '_lightbox' => 'A Light Box' ) ) ); // add field to specify image alignment $this->addElement( 'radio', 'alignment', array( 'label' => 'Alignment', 'multiOptions' => array( 'none' => 'None', 'left' => 'Left', 'center' => 'Center', 'right' => 'Right', ), 'value' => 'none' ) ); }
Widget_Form_ImageWidget::isValid | ( | $ | data | ) |
Extend parent to additionally validate image source data.
array | $data | form data to validate |
{ $valid = parent::isValid($data); $belongsTo = $this->getElementsBelongTo(); $data = $belongsTo && isset($data[$belongsTo]) ? $data[$belongsTo] : $data; // ensure image source is specified: // - image source radio value is present // - image url is specified either via the content or by the remote url $imageSource = $data['imageSource']; if ($imageSource === 'content' && !$data['contentTitle']) { $this->getElement('contentTitle')->addError(self::E_EMPTY_IMAGE_CONTENT); $valid = false; } else if ($imageSource === 'remote' && !$data['imageUrl']) { $this->getElement('imageUrl')->addError(self::E_EMPTY_IMAGE_URL); $valid = false; } else if (!$imageSource) { $this->getElement('imageUrl')->addError(self::E_EMPTY_IMAGE_SOURCE); $valid = false; } return $valid; }
Widget_Form_ImageWidget::setDefaults | ( | array $ | defaults | ) |
Override parent to expand macros in the image url.
array | $defaults | form values to set |
{ parent::setDefaults($defaults); // replace umage url with fully qualified image source path by expanding // macros it may contain $imageUrlElement = $this->getElement('imageUrl'); if ($imageUrlElement) { $filter = new P4Cms_Filter_Macro; $imageUrlElement->setValue( $filter->filter($imageUrlElement->getValue()) ); } return $this; }
const Widget_Form_ImageWidget::E_EMPTY_IMAGE_CONTENT = "Please select an image from the content" |
const Widget_Form_ImageWidget::E_EMPTY_IMAGE_SOURCE = "Image source type is required" |
const Widget_Form_ImageWidget::E_EMPTY_IMAGE_URL = "Please enter a URL of the remote image" |