/**
  * Render Media Chooser HTML (buttons and image preview) and set it after the form element HTML
  *
  * @param Varien_Data_Form_Element_Abstract $element
  *
  * @return Varien_Data_Form_Element_Abstract
  */
 public function render(Varien_Data_Form_Element_Abstract $element)
 {
     if (Mage::getSingleton('admin/session')->isAllowed('cms/media_gallery')) {
         $layout = Mage::app()->getLayout();
         $id = $element->getHtmlId();
         if ($url = $element->getValue()) {
             $linkStyle = "display:inline;";
             if (!preg_match("/^http\\:\\/\\/|https\\:\\/\\//", $url)) {
                 $url = Mage::getBaseUrl('media') . $url;
             }
         } else {
             $linkStyle = "display:none;";
             $url = "#";
         }
         $imagePreview = '<a id="' . $id . '_link" href="' . $url . '" style="text-decoration: none; ' . $linkStyle . '"' . ' onclick="imagePreview(\'' . $id . '_image\'); return false;">' . ' <img src="' . $url . '" id="' . $id . '_image" title="' . $element->getValue() . '"' . ' alt="' . $element->getValue() . '" height="30" class="small-image-preview v-middle"/>' . ' </a>';
         $selectButtonId = 'add-image-' . mt_rand();
         $chooserUrl = Mage::getUrl('adminhtml/cms_wysiwyg_images_chooser/index', array('target_element_id' => $id));
         $label = $element->getValue() ? $this->__('Change Image') : $this->__('Select Image');
         // Select/Change Image Button
         $chooseButton = $layout->createBlock('adminhtml/widget_button')->setType('button')->setClass('add-image')->setId($selectButtonId)->setLabel($label)->setOnclick('MediabrowserUtility.openDialog(\'' . $chooserUrl . '\')')->setDisabled($element->getReadonly())->setStyle('display:inline;margin-top:7px');
         // Remove Image Button
         $onclickJs = '
             document.getElementById(\'' . $id . '\').value=\'\';
             if(document.getElementById(\'' . $id . '_image\')){
                 document.getElementById(\'' . $id . '_image\').parentNode.style.display = \'none\';
             }
             document.getElementById(\'' . $selectButtonId . '\').innerHTML=\'<span><span><span>' . addslashes($this->__('Select Image')) . '</span></span></span>\';
         ';
         $removeButton = $layout->createBlock('adminhtml/widget_button')->setType('button')->setClass('delete')->setLabel($this->__('Remove Image'))->setOnclick($onclickJs)->setDisabled($element->getReadonly())->setStyle('margin-top:7px');
         $wrapperStart = '<div id="buttons_' . $id . '" class="buttons-set" style=" width: 325px;">';
         $wrapperEnd = '</div>';
         $wrapperEnd .= '
             <script type="text/javascript">
                 //<![CDATA[
                     varienGlobalEvents.clearEventHandlers(\'mediachooserChange' . $id . '\');
                     varienGlobalEvents.attachEventHandler(\'mediachooserChange' . $id . '\', function(url){
                         document.getElementById(\'' . $id . '_image\').src = \'' . Mage::getBaseUrl('media') . '\' + url;
                         document.getElementById(\'' . $id . '_image\').title = url;
                         document.getElementById(\'' . $id . '_image\').alt = url;
                         document.getElementById(\'' . $id . '_link\').href = \'' . Mage::getBaseUrl('media') . '\' + url;
                         document.getElementById(\'' . $id . '_link\').style.display = \'inline\';
                         document.getElementById(\'' . $selectButtonId . '\').innerHTML=\'<span><span><span>' . addslashes($this->__('Change Image')) . '</span></span></span>\';
                     });
                 //]]>
             </script>
         ';
         // Add our custom HTML after the form element
         $element->setAfterElementHtml($wrapperStart . $imagePreview . $chooseButton->toHtml() . $removeButton->toHtml() . $wrapperEnd);
     }
     return $element;
 }
Example #2
0
 /**
  * Return js code for fieldset:
  * - observe fieldset rows;
  * - apply collapse;
  *
  * @param Varien_Data_Form_Element_Abstract $element
  * @param bool $tooltipsExist Init tooltips observer or not
  * @return string
  */
 protected function _getExtraJs($element, $tooltipsExist = false)
 {
     $id = $element->getHtmlId();
     $js = "Fieldset.applyCollapse('{$id}');";
     /* To support Sales Rules Conditionnal */
     $js .= "var {$element->getHtmlId()} = new VarienRulesForm('{$element->getHtmlId()}', '{$this->getUrl('*/promo_quote/newConditionHtml/form/rule_conditions_fieldset')}');";
     if ($element->getReadonly()) {
         $js .= "{$element->getHtmlId()}.setReadonly(true);";
     }
     return Mage::helper('adminhtml/js')->getScript($js);
 }
 /**
  * Render element.
  *
  * @param Varien_Data_Form_Element_Abstract $element
  * @return string
  */
 public function render(Varien_Data_Form_Element_Abstract $element)
 {
     $previewHtml = '';
     if ($element->getValue()) {
         // Add image preview.
         $url = $element->getValue();
         if (!preg_match("/^http\\:\\/\\/|https\\:\\/\\//", $url)) {
             $url = Mage::getBaseUrl('media') . $url;
         }
         $previewHtml = '<a href="' . $url . '"' . ' onclick="imagePreview(\'' . $element->getHtmlId() . '_image\'); return false;">' . '<img src="' . $url . '" id="' . $element->getHtmlId() . '_image" title="' . $element->getValue() . '"' . ' alt="' . $element->getValue() . '" height="40" class="small-image-preview v-middle"' . ' style="margin-top:7px; border:1px solid grey" />' . '</a> ';
     }
     $prefix = $element->getForm()->getHtmlIdPrefix();
     $elementId = $prefix . $element->getId();
     $chooserUrl = $this->getUrl('*/cms_wysiwyg_images_chooser/index', array('target_element_id' => $elementId));
     $label = $element->getValue() ? $this->__('Change Image') : $this->__('Insert Image');
     $chooseButton = $this->getLayout()->createBlock('adminhtml/widget_button')->setType('button')->setClass('btn-chooser')->setLabel($label)->setOnclick('MediabrowserUtility.openDialog(\'' . $chooserUrl . '\')')->setDisabled($element->getReadonly())->setStyle('display:inline;margin-top:7px');
     // Add delete button.
     $removeButton = $this->getLayout()->createBlock('adminhtml/widget_button')->setType('button')->setClass('delete')->setLabel($this->__('Remove Image'))->setOnclick('document.getElementById(\'' . $elementId . '\').value=\'\';if(document.getElementById(\'' . $elementId . '_image\'))document.getElementById(\'' . $elementId . '_image\').parentNode.remove()')->setDisabled($element->getReadonly())->setStyle('margin-left:10px;margin-top:7px');
     $element->setData('after_element_html', $previewHtml . $chooseButton->toHtml() . $removeButton->toHtml());
     $this->_element = $element;
     return $this->toHtml();
 }
Example #4
0
 public function renderMediaChooser(Varien_Data_Form_Element_Abstract $element)
 {
     if (Mage::getSingleton('admin/session')->isAllowed('cms/media_gallery')) {
         $layout = $element->getForm()->getParent()->getLayout();
         $id = $element->getHtmlId();
         if ($url = $element->getValue()) {
             $linkStyle = "display:inline;";
             if (!preg_match("/^http\\:\\/\\/|https\\:\\/\\//", $url)) {
                 $url = Mage::getBaseUrl('media') . $url;
             }
         } else {
             $linkStyle = "display:none;";
             $url = "#";
         }
         $hiddenField = '<input type="hidden" name="hidden_file" id="hidden_file_' . $id . '" class="hidden-file-path" value=""/>';
         $imagePreview = '<a id="' . $id . '_link" class="image-preview-link" href="' . $url . '" style="text-decoration: none; ' . $linkStyle . '"' . ' onclick="imagePreview(\'' . $id . '_image\'); return false;">' . ' <img src="' . $url . '" id="' . $id . '_image" title="' . $element->getValue() . '"' . ' alt="' . $element->getValue() . '" height="30" class="small-image-preview v-middle"/>' . ' </a>';
         $selectButtonId = 'add-image-' . mt_rand();
         $chooserUrl = Mage::getUrl('adminhtml/cms_wysiwyg_images_chooser/index', array('target_element_id' => $id));
         $label = $element->getValue() ? $this->__('Change Image') : $this->__('Select Image');
         // Select/Change Image Button
         $chooseButton = $layout->createBlock('adminhtml/widget_button')->setType('button')->setClass('add-image')->setId($selectButtonId)->setLabel($label)->setOnclick('openEfinder(this, \'hidden_file_' . $id . '\', \'#' . $id . '\', changeElFieldImage)')->setDisabled($element->getReadonly())->setStyle('display:inline;margin-top:7px');
         // Remove Image Button
         $onclickJs = '
             document.getElementById(\'' . $id . '\').value=\'\';
             document.getElementById(\'hidden_file_' . $id . '\').value=\'\';
             if(document.getElementById(\'' . $id . '_image\')){
                 document.getElementById(\'' . $id . '_image\').parentNode.style.display = \'none\';
             }
             document.getElementById(\'' . $selectButtonId . '\').innerHTML=\'<span><span><span>' . addslashes($this->__('Select Image')) . '</span></span></span>\';
         ';
         $removeButton = $layout->createBlock('adminhtml/widget_button')->setType('button')->setClass('delete')->setLabel($this->__('Remove Image'))->setOnclick($onclickJs)->setDisabled($element->getReadonly())->setStyle('margin-top:7px');
         $wrapperStart = '<div id="buttons_' . $id . '" class="buttons-set" style=" width: 325px;">';
         $wrapperEnd = '</div>';
         // Add our custom HTML after the form element
         $element->setAfterElementHtml($wrapperStart . $hiddenField . $imagePreview . $chooseButton->toHtml() . $removeButton->toHtml() . $wrapperEnd);
     }
     return $element;
 }
Example #5
0
 public function prepareElementHtml(Varien_Data_Form_Element_Abstract $element)
 {
     $config = $this->getConfig();
     $chooseButton = $this->getLayout()->createBlock('adminhtml/widget_button')->setType('button')->setClass('scalable btn-chooser')->setLabel($config['button']['open'])->setOnclick('MediabrowserUtility.openDialog(\'' . $this->getUrl('*/cms_wysiwyg_images/index', array('target_element_id' => $element->getName())) . '\')')->setDisabled($element->getReadonly());
     $text = new Varien_Data_Form_Element_Text();
     $text->setForm($element->getForm())->setId($element->getName())->setName($element->getName())->setClass('widget-option input-text');
     if ($element->getRequired()) {
         $text->addClass('required-entry');
     }
     if ($element->getValue()) {
         $text->setValue($element->getValue());
     }
     $element->setData('after_element_html', $text->getElementHtml() . $chooseButton->toHtml());
     return $element;
 }