/** * Prepares any stage 2 areas of the form * * @param Varien_Data_Form_Element_Fieldset $stage1Fieldset * @throws Exception */ protected function prepareStage2(Varien_Data_Form_Element_Fieldset $stage1Fieldset) { // Get current event $event = $this->getEvent($this->currentData['event_id']); $defaultMessageTemplate = $this->getMessageTemplate($this->currentData['store_id'], $this->currentData['event_id']); //if there is not a message already set (eg when we are editing) //set it as the default message if (!isset($this->currentData['message_template'])) { $this->currentData['message_template'] = $defaultMessageTemplate; } $message = 'This is who your message will show as being from on the receiving handset e.g. Mystore.'; $note = Mage::helper('esendex_sms')->__($message); $vmn = $this->getAccountVirtualMobileNumber(); if ($vmn) { $note .= '<br><br>' . $vmn; } // Add senders select $stage1Fieldset->addField('sender', 'text', array('label' => Mage::helper('esendex_sms')->__('From'), 'name' => 'sender', 'required' => true, 'class' => 'required-entry validate-sender-format', 'note' => $note, 'value' => 'Esendex')); /** @var Esendex_Sms_Model_Resource_Event $event */ $model = $event->getEventProcessor(); $vars = array_map(function (Esendex_Sms_Model_Variable $var) { return $var->getReplaceName(); }, $model->getVariables()); //sort alphabetically sort($vars); $variables = sprintf('<li>%s</li>', Mage::helper('esendex_sms')->__('No Available Vars')); if (count($vars)) { $variables = '<li>' . implode("</li>\n<li>", $vars) . '</li>'; } $link = 'http://support.esendex.co.uk/magento?i=magentosupport&ls=magento&sc=magentotriggervariables&sd=v1'; $variableHelpLink = '<p class="note" id="variable-help-link"><small>'; $variableHelpLink .= Mage::helper('esendex_sms')->__('For more information about using variables please visit our <a target="_blank" href="%s">support page</a>', $link); $variableHelpLink .= '</a></small></p>'; $afterElementHtml = sprintf('<p class="note"><small>%s</small></p>', Mage::helper('esendex_sms')->__('These counts do not include variables.')); // Build html for message template textarea variables $afterElementHtml .= sprintf('<td class="value"><h4>%s</h4><div id="available-variables-container""><ul id="available-variables">%s</ul></div>%s</td>', Mage::helper('esendex_sms')->__('Available Variables'), $variables, $variableHelpLink); //add default message template, for JavaScript to pickup $afterElementHtml .= sprintf('<td class="hidden" id="default-message-template">%s</td>', $defaultMessageTemplate); // Add message template textarea with available areas html $stage1Fieldset->addField('message_template', 'textarea', array('label' => Mage::helper('esendex_sms')->__('Message'), 'class' => 'validate-message-count validate-variables', 'name' => 'message_template', 'required' => true, 'after_element_html' => $afterElementHtml)); // Add description field $stage1Fieldset->addField('description', 'text', array('label' => Mage::helper('esendex_sms')->__('Description'), 'name' => 'description', 'required' => false)); // Add status select $stage1Fieldset->addField('status', 'select', array('label' => Mage::helper('esendex_sms')->__('Status'), 'name' => 'status', 'required' => true, 'class' => 'required-entry', 'values' => array(array('value' => 1, 'label' => Mage::helper('esendex_sms')->__('Enabled')), array('value' => 0, 'label' => Mage::helper('esendex_sms')->__('Disabled'))))); // Stage 2 fieldset legend $legend = Mage::helper('esendex_sms')->__("'%s' specific fields", $event->getName()); // Create stage 2 fieldset $stage2Fieldset = new Varien_Data_Form_Element_Fieldset(array('legend' => $legend, 'html_id' => 'form_additional')); // Add the form to the fieldset so the fields set their form correctly. $stage2Fieldset->setForm($this->getForm()); // Dispatch Event With Empty Form Field set // This lets more complex event types can add their own fields $this->dispatchStage2Event($stage2Fieldset, $this->getSelectedEventName($event)); // Add the field set to the form if it has been extended if (count($stage2Fieldset->getSortedElements())) { $this->getForm()->addElement($stage2Fieldset); } }