2012-04-10 180 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測試。

問候