protected function _prepareForm() { $form = new Varien_Data_Form(array('id' => 'edit_form', 'action' => $this->getData('action'), 'method' => 'post')); $form->setHtmlIdPrefix("template"); $form->setFieldNameSuffix("template"); /* @var $template Mzax_Emarketing_Model_Template */ $template = Mage::registry('current_template'); if ($template->getId()) { $form->addField('template_id', 'hidden', array('name' => 'template_id', 'value' => $template->getId())); } $fieldset = $form->addFieldset('base_fieldset', array('legend' => $this->__('Template Option'), 'class' => 'fieldset-wide'))->addType('editor', Mage::getConfig()->getModelClassName('mzax_emarketing/form_element_templateEditor'))->addType('credits', Mage::getConfig()->getModelClassName('mzax_emarketing/form_element_credits')); $fieldset->addField('credits', 'credits', array('name' => 'credits', 'required' => true)); $fieldset->addField('name', 'text', array('name' => 'name', 'required' => true, 'label' => $this->__('Template Name'), 'title' => $this->__('Template Name'))); $fieldset->addField('description', 'textarea', array('name' => 'description', 'required' => true, 'label' => $this->__('Description'), 'title' => $this->__('Description'), 'style' => 'height:4em;', 'note' => "For internal use only")); $snippets = new Mzax_Emarketing_Model_Medium_Email_Snippets(); Mage::getSingleton('mzax_emarketing/medium_email')->prepareSnippets($snippets); $editorConfig = new Varien_Object(); $editorConfig->setFilesBrowserWindowUrl($this->getUrl('adminhtml/cms_wysiwyg_images/index')); $editorConfig->setWidgetWindowUrl($this->getUrl('adminhtml/widget/index')); $editorConfig->setSnippets($snippets); $editor = $fieldset->addField('body', 'editor', array('name' => 'body', 'required' => true, 'label' => $this->__('Template HTML'), 'title' => $this->__('Template HTML'), 'logo' => $this->getSkinUrl('images/logo.gif'), 'fullscreen_title' => $this->__('Template %s', $template->getName()), 'style' => 'height:50em;', 'value' => '', 'config' => $editorConfig)); // Setting custom renderer for content field to remove label column $renderer = $this->getLayout()->createBlock('adminhtml/widget_form_renderer_fieldset_element')->setTemplate('cms/page/edit/form/renderer/content.phtml'); $editor->setRenderer($renderer); $form->addValues($template->getData()); $this->setForm($form); $form->setUseContainer(true); return parent::_prepareForm(); }
/** * Prepare form before rendering HTML * * @return Mage_Adminhtml_Block_Widget_Form */ protected function _prepareForm() { $form = $this->getForm(); $campaign = $this->getCampaign(); $content = $this->getContent(); $data = $content->getMediumData(); $fieldset = $form->addFieldset('email_fieldset', array('legend' => $this->__('Email'), 'class' => 'fieldset-wide')); $fieldset->addType('editor', Mage::getConfig()->getModelClassName('mzax_emarketing/form_element_emailEditor')); $templateOptions = $this->getTemplateOptions(); /* Stop if no template exist */ if (count($templateOptions) === 1) { $fieldset->addField('template_note', 'note', array('label' => $this->__('Template'), 'class' => 'mzax-template-select', 'text' => $this->__("Before you can create an email campaign, you need to setup at least one email template."), 'after_element_html' => $this->__(' <a href="%s" target="_blank">Edit Templates</a>', $this->getUrl('*/admin_template')))); return; } $fieldset->addField('designmode', 'select', array('label' => $this->__('Design Mode'), 'note' => $this->__("If design mode is disabled the WYSIWYG editor will be disabled and will not mess with your html code."), 'name' => 'designmode', 'options' => array('1' => $this->__('Enabled'), '0' => $this->__('Disabled')), 'value' => '1')); $template = $fieldset->addField('template_id', 'select', array('name' => 'template_id', 'required' => true, 'label' => $this->__('Template'), 'title' => $this->__('Template'), 'values' => $templateOptions, 'class' => 'mzax-template-select', 'note' => $this->__("A template is required for sending out emails"), 'after_element_html' => $this->__(' <a href="%s" target="_blank">Edit Templates</a>', $this->getUrl('*/admin_template')))); $subject = $fieldset->addField('subject', 'text', array('name' => 'subject', 'required' => true, 'label' => $this->__('Email Subject'), 'title' => $this->__('Email Subject'))); $urlParams = array('id' => $campaign->getId()); if ($content instanceof Mzax_Emarketing_Model_Campaign_Variation) { $contentName = $content->getName(); $urlParams['variation'] = $content->getId(); } else { $contentName = $this->__('Original'); } $quickSaveUrl = $this->getUrl('*/*/quicksave', $urlParams); $previewUrl = $this->getUrl('*/*/preview', $urlParams); $editorConfig = new Varien_Object(); $editorConfig->setTranslator($this); $editorConfig->setFilesBrowserWindowUrl($this->getUrl('adminhtml/cms_wysiwyg_images/index')); $editorConfig->setWidgetWindowUrl($this->getUrl('adminhtml/widget/index')); $editorConfig->setTemplateLoadUrl($this->getUrl('*/*/templateHtml')); $editorConfig->setQuicksaveUrl($quickSaveUrl); $editorConfig->setQuicksaveFields(array($subject, $template)); $editorConfig->setTemplateField($template); $editorConfig->setEnableCkeditor($data->getDataSetDefault('designmode', 1)); if ($campaign->getId()) { $editorConfig->setButtons(array(array('title' => $this->__('Quick Save'), 'onclick' => "{editor}.quicksave(); return false;", 'class' => 'mzax-quicksave', 'style' => 'margin-left: 20px; float: right;'), array('title' => $this->__('Preview'), 'onclick' => "popWin('{$previewUrl}', '_blank', 'width=800,height=700,resizable=1,scrollbars=1'); return false;", 'class' => '', 'style' => 'margin-left: 10px; float: right;'))); } $editorConfig->setSnippets($campaign->getSnippets()); $editor = $fieldset->addField('body', 'editor', array('name' => 'body', 'label' => $this->__('Email Body'), 'title' => $this->__('Email Body'), 'style' => 'height:36em', 'required' => true, 'logo' => $this->getSkinUrl('images/logo.gif'), 'fullscreen_title' => $this->__('Email Campaign %s / %s', $campaign->getName(), $contentName), 'config' => $editorConfig, 'template' => Mage::getModel('mzax_emarketing/template')->load($data->getTemplateId()))); // Setting custom renderer for content field to remove label column $renderer = $this->getLayout()->createBlock('adminhtml/widget_form_renderer_fieldset_element')->setTemplate('cms/page/edit/form/renderer/content.phtml'); $editor->setRenderer($renderer); $fieldset = $form->addFieldset('email_delay', array('legend' => $this->__('Only send out emails at certain times'), 'class' => 'fieldset-wide mzax-checkboxes')); $fieldset->addType('info', Mage::getConfig()->getModelClassName('mzax_emarketing/form_element_info')); $hourOptions = array(); for ($i = 0; $i < 24; $i++) { $hourOptions[$i] = $this->__("%'.02d:00h", $i); } $fieldset->addField('info', 'info', array('text' => $this->__('Keep in mind that this option can significantly delay an email from getting send out. Depending on your campaign this may not be a problem, but sometimes it can. You may want to double check the expire time under "Settings" and make sure it is high enough.')))->setRenderer($renderer); $fieldset->addField('day_filter', 'checkboxes', array('name' => 'day_filter[]', 'label' => $this->__('Send only on selected weekdays'), 'values' => Mage::app()->getLocale()->getOptionWeekdays(), 'note' => $this->__("If nothing select, this filter is disabled."))); $fieldset->addField('time_filter', 'checkboxes', array('name' => 'time_filter[]', 'label' => $this->__('Send only at selected hours'), 'options' => $hourOptions, 'note' => $this->__("If nothing select, this filter is disabled."))); /* $fieldset = $form->addFieldset('email_advanced', array( 'legend' => $this->__('Advanced Options'), 'class' => 'fieldset-wide', )); $fieldset->addField('prerender', 'select', array( 'label' => $this->__('Pre-Render'), 'note' => $this->__("If enabled, email will get pre rendered, cached and then only the basic {{var}} expressions will get parsed. If your content is static or only uses var expressions. Enabling this can increase the render performance by a factor of 10."), 'name' => 'prerender', 'options' => array( '0' => $this->__('Disabled'), '1' => $this->__('Enabled'), ), 'value' => '0' )); if($campaign === $content) { $subject = $fieldset->addField('forward_emails', 'text', array( 'name' => 'forward_emails', 'label' => $this->__('Forward Email'), 'note' => $this->__("All non-auto email replies will get forward to this email address."), )); } */ $form->addValues($data->getData()); return $this; }