También puede implementar la clase predeterminada Magento para trabajar con múltiples (encabezados y pies de página).
Crea un archivo:
app / local / Mage / Adminhtml / Model / System / Config / Source / Email / Template.php
<?php
/**
* Magento
*
* NOTICE OF LICENSE
*
* This source file is subject to the Open Software License (OSL 3.0)
* that is bundled with this package in the file LICENSE.txt.
* It is also available through the world-wide-web at this URL:
* http://opensource.org/licenses/osl-3.0.php
* If you did not receive a copy of the license and are unable to
* obtain it through the world-wide-web, please send an email
* to license@magento.com so we can send you a copy immediately.
*
* DISCLAIMER
*
* Do not edit or add to this file if you wish to upgrade Magento to newer
* versions in the future. If you wish to customize Magento for your
* needs please refer to http://www.magento.com for more information.
*
* @category Mage
* @package Mage_Adminhtml
* @copyright Copyright (c) 2006-2016 X.commerce, Inc. and affiliates (http://www.magento.com)
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
*/
/**
* Adminhtml config system template source
*
* @category Mage
* @package Mage_Adminhtml
* @author Magento Core Team <core@magentocommerce.com>
*/
class Mage_Adminhtml_Model_System_Config_Source_Email_Template extends Varien_Object
{
/**
* Config xpath to email template node
*
*/
const XML_PATH_TEMPLATE_EMAIL = 'global/template/email/';
/**
* Generate list of email templates
*
* @return array
*/
public function toOptionArray()
{
if(!$collection = Mage::registry('config_system_email_template')) {
$collection = Mage::getResourceModel('core/email_template_collection')
->load();
Mage::register('config_system_email_template', $collection);
}
$options = $collection->toOptionArray();
$templateName = Mage::helper('adminhtml')->__('Default Template from Locale');
$nodeName = str_replace('/', '_', $this->getPath());
// Implementation for various templates config.
$templatesNodes = Mage::app()->getConfig()->getNode('global/template/email');
if(count($templatesNodes)) {
foreach($templatesNodes as $nodes) {
foreach($nodes as $code => $config) {
if(strpos($code, $nodeName) !== false) {
$templateLabelNode = Mage::app()->getConfig()->getNode(self::XML_PATH_TEMPLATE_EMAIL . $code . '/label');
if ($templateLabelNode) {
$templateName = Mage::helper('adminhtml')->__((string)$templateLabelNode);
$templateName = Mage::helper('adminhtml')->__('%s (Default Template from Locale)', $templateName);
}
array_unshift(
$options,
array(
'value'=> str_replace('/', '_', $code),
'label' => $templateName
)
);
}
}
}
}
return $options;
}
}
Luego, en su módulo personalizado, puede usar como en el siguiente ejemplo en su config.xml:
<global>
<template>
<email>
<design_email_header_custom_black translate="label" module="custom_module">
<label>Email - Header (CUSTOM BLACK)</label>
<file>html/header-custom-black.html</file>
<type>text</type>
</design_email_header_custom_black>
<design_email_header_custom_white translate="label" module="custom_module">
<label>Email - Header (CUSTOM WHITE)</label>
<file>html/header-custom-white.html</file>
<type>text</type>
</design_email_header_custom_white>
<design_email_footer_custom_black translate="label" module="custom_module">
<label>Email - Footer (CUSTOM BLACK)</label>
<file>html/footer-custom-black.html</file>
<type>text</type>
</design_email_footer_custom_black>
<design_email_footer_custom_white translate="label" module="custom_module">
<label>Email - Footer (CUSTOM WHITE)</label>
<file>html/footer-custom-white.html</file>
<type>text</type>
</design_email_footer_custom_white>
</email>
</template>
</global>
Entonces tiene estas opciones para seleccionar:
Sistema> Configuración> Diseño> Correo electrónico transaccional
design/email/header2