2012-04-10 185 views

回答

1

标题实际上是在该页面的XML中设置的。你应该在app/design/frontend/packagename/themename/layout/目录中打开checkout.xml文件并将其放置在XML节点的内部验证码:

<reference name="head"> 
    <action method="setTitle"><title>My New Checkout Title</title></action> 
</reference> 

默认情况下,我相信它抓住手柄的相关标签如果页面标题是不是明确指定(现在标签是“购物车”,这就是为什么你得到那个标题)。

这里是我的代码如下所示:其他

<checkout_cart_index translate="label"> 
     <label>Shopping Cart</label> 
     <remove name="right"/> 
     <remove name="left"/> 
     <!-- Mage_Checkout --> 
     <reference name="head"> 
      <action method="setTitle"><title>My New Checkout Title</title></action> 
     </reference> 
     <reference name="root"> 
      <action method="setTemplate"><template>page/1column.phtml</template></action> 
     </reference> 
     <!-- More Below --> 
    </checkout_cart_index> 

有一两件事要提的,你还可以在local.xml这些变化(这是什么,我会推荐)。 local.xml文件将从所有其他XML文件中加载,并且您在该文件中的更改将覆盖布局目录中的任何其他XML文件。一个很好的教程可以找到here

1

这里是一个简短的例子如何覆盖称号。

Force title

可以改变变量并覆盖标题指定layout.xml文件。

+0

我在checkout.xml中添加了这个,但没有工作..任何建议。谢谢<参考名称=“头”> 购物袋 2012-04-10 17:05:40

+0

你做了所有的步骤? – Stony 2012-04-10 17:08:08

5

更改XML将不起作用,因为标题由app/code/core/Mage/Checkout/controllers/CartController.php中的控制器设置。

$this 
->loadLayout() 
->_initLayoutMessages('checkout/session') 
->_initLayoutMessages('catalog/session') 
->getLayout()->getBlock('head')->setTitle($this->__('Shopping Cart')); 

修改核心文件并不是一个好主意,并且覆盖控制器可能很乏味。因此,更改此位置的正确和最快的位置位于app/locale/YOUR_LANGUAGE/Mage_Checkout.csv中的翻译文件中。如果你没有这个文件放在相关的目录,你可以创建它,只是加入这一行:

"Shopping Cart","NEW TITLE HERE" 

如果您有该文件,然后简单地编辑该行,以确保您的新标题沿用了原先的标题和逗号并用双引号括起来。

+1

Uhm ...在理论上app/locale/LOCALE_SETTING/Mage_Checkout.csv也是一个核心文件......只有当你进行本地覆盖并添加自己的翻译文件(app/locale/LOCALE_SETTING/Namespace_Module.csv)它被认为不是一个核心文件;) – RichardBernards 2014-01-29 09:33:32

0

试试这个:

<reference name="head"> 
    <action method="setTitle"><title>My New Checkout Title</title></action> 
</reference> 
2

做正确的做法,是在结账控制器制造覆盖,就是如此简单。 第一: 添加一个新的模块有两个子目录:控制器等 了myNameSpace /结帐/控制器 了myNameSpace /结帐/等

然后,在etc目录下添加文件:CartController.php下一个内容:

require_once 'Mage/Checkout/controllers/CartController.php'; 

class Mynamespace_Checkout_CartController extends Mage_Checkout_CartController 
{ 

public function indexAction() 
{ 
    $cart = $this->_getCart(); 
    if ($cart->getQuote()->getItemsCount()) { 
     $cart->init(); 
     $cart->save(); 

     if (!$this->_getQuote()->validateMinimumAmount()) { 
      $minimumAmount = Mage::app()->getLocale()->currency(Mage::app()->getStore()->getCurrentCurrencyCode()) 
       ->toCurrency(Mage::getStoreConfig('sales/minimum_order/amount')); 

      $warning = Mage::getStoreConfig('sales/minimum_order/description') 
       ? Mage::getStoreConfig('sales/minimum_order/description') 
       : Mage::helper('checkout')->__('Minimum order amount is %s', $minimumAmount); 

      $cart->getCheckoutSession()->addNotice($warning); 
     } 
    } 

    // Compose array of messages to add 
    $messages = array(); 
    foreach ($cart->getQuote()->getMessages() as $message) { 
     if ($message) { 
      // Escape HTML entities in quote message to prevent XSS 
      $message->setCode(Mage::helper('core')->escapeHtml($message->getCode())); 
      $messages[] = $message; 
     } 
    } 
    $cart->getCheckoutSession()->addUniqueMessages($messages); 

    /** 
    * if customer enteres shopping cart we should mark quote 
    * as modified bc he can has checkout page in another window. 
    */ 
    $this->_getSession()->setCartWasUpdated(true); 

    Varien_Profiler::start(__METHOD__ . 'cart_display'); 
    $this 
     ->loadLayout() 
     ->_initLayoutMessages('checkout/session') 
     ->_initLayoutMessages('catalog/session') 
     ->getLayout()->getBlock('head')->setTitle($this->__('Here it go the new title!!!!')); 
    $this->renderLayout(); 
    Varien_Profiler::stop(__METHOD__ . 'cart_display'); 
    } 
} 

然后,配置。xml文件:

<config> 
    <modules> 
    <Mynamespace_Checkout> 
     <version>0.1.0</version> 
    </Mynamespace_Checkout> 
</modules> 
<frontend> 
    <routers> 
     <checkout> 
      <args> 
       <modules> 
        <mynamespace_sales before="Mage_Checkout">Mynamespace_Checkout</mynamespace_sales> 
       </modules> 
      </args> 
     </checkout> 
    </routers> 
</frontend> 

而在去年,该模块激活:应用程序的/ etc /模块/ Mynamespace_Checkout.xml

<config> 
    <modules> 
     <Mynamespace_Checkout> 
      <active>true</active> 
      <codePool>local</codePool> 
     </Mynamespace_Checkout> 
    </modules> 
</config> 

这是在Magento企业1.13测试。

问候