使用Magento在函数内部获取Url

时间:2011-06-26 11:20:58

标签: magento

 public function getWelcome()
{
    if (empty($this->_data['welcome'])) {
        if (Mage::isInstalled() && Mage::getSingleton('customer/session')->isLoggedIn()) {
            $this->_data['welcome'] = $this->__('Welcome, %s!', $this->escapeHtml(Mage::getSingleton('customer/session')->getCustomer()->getName()));
        } else {
            $this->_data['welcome'] = $this->__('Welcome, <a href="">Sign in</a> or <a href="">Register</a>');
        }
    }

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

我想知道我是否可以在此函数中使用函数Mage :: getUrl('/ whatever')。 更具体地说,我需要在

中使用一个链接
 else {
            $this->_data['welcome'] = $this->__('Welcome, <a href="">Sign in</a> or <a href="">Register</a>');
        }

感谢。

修改 解决方案:

$this->__('Welcome, <a href="%1$s">Sign in</a> or <a href="%2$s">Register</a>',
             Mage::getUrl('customer/account/login'),
             Mage::getUrl('customer/account/create')

);

1 个答案:

答案 0 :(得分:7)

__()功能的作用类似于sprintf()。你可以使用这样的指令:

$this->__('Welcome, <a href="%1$s">Sign in</a> or <a href="%2$s">Register</a>',
    Mage::getUrl('customer/account/login'),
    Mage::getUrl('customer/account/create')
)

这个整洁的部分是指令可以按任何顺序使用,你可以translate以上内容:

Please <a href="%2$s">sign-up</a> or, if you have an existing account,
<a href="%1$s">login</a>. To justify this example here is the register URL again;
<q>%2$s</q>.