Magento – How to change the welcome message in Magento 1.9+ the proper way

blocksce-1.9.0.1header

I would like to change the welcome message to just show initials. Clearly I can do something in the template, however, I would like to extend/over-ride Mage_Page_Block_Html_Welcome to do this 'the proper way'.

I have tried doing this however I cannot get it to work – I just get a blank line. I am expecting the normal line with 'TEST' written in there too:

Here is my config.xml entry:

<global>
    <blocks>
        <page>
            <rewrite>
                <html_welcome>MyCompany_Mymodule_Page_Block_Html_Welcome</html_welcome>
            </rewrite>
        </page>
    </blocks>

My code, just copied from the original file with a small change for test porpoises:

app/code/local/MyCompany/Mymodule/Block/Page/Html/Welcome.php

<?php class MyCompany_Mymodule_Page_Block_Html_Welcome extends Mage_Page_Block_Html_Welcome {

    /**
     * Get block messsage
     *
     * @return string
     */
    protected function _toHtml()
    {
        if (empty($this->_data['welcome'])) {
            if (Mage::isInstalled() && Mage::getSingleton('customer/session')->isLoggedIn()) {
                $this->_data['welcome'] = $this->__('TEST Welcome, %s!', $this->escapeHtml(Mage::getSingleton('customer/session')->getCustomer()->getName()));
            } else {
                $this->_data['welcome'] = Mage::getStoreConfig('design/header/welcome');
            }
        }

        return $this->_data['welcome'];
    }

    /**
     * Get tags array for saving cache
     *
     * @return array
     */
    public function getCacheTags()
    {
        if (Mage::getSingleton('customer/session')->isLoggedIn()) {
            $this->addModelTags(Mage::getSingleton('customer/session')->getCustomer());
        }

        return parent::getCacheTags();
    }
}

Best Answer

No code is needed for this.

Go to System - Configuration - General - Design - Header and voila!

Related Topic