2011-06-26 34 views
4
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')。 更具体地说,我需要使用在函数里面使用Magento的getUrl

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

谢谢。

EDIT 解决办法:

$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') 

);

+2

你* *试试吧.. 。? –

+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以上到:

+0

当我添加这个时出现错误:\t Mage :: getUrl('customer/account/login'), Mage :: getUrl('customer/account/create') –

+0

对不起。我错过了一个逗号。 – clockworkgeek

+0

啊,我应该采取更强的目光找到失踪的逗号! –