2012-04-10 30 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に追加しましたが、何の示唆もありません。ありがとうございます ショッピングバッグ

+0

すべての手順を完了しましたか? – Stony

5

タイトルがコントローラによってapp/code/core/Mage/Checkout/controllers/CartController.phpに設定されているため、XMLを変更しても効果はありません。

$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

0

これを試してみてください:

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

それを行うための正しい方法は、チェックアウトのコントローラに上書きをしている、とても簡単です。 まず: 2つのサブディレクトリに新しいモジュールを追加します。次のコンテンツでCartController.php:etcディレクトリ内のファイルを追加し、その後、コントローラ、およびなど MYNAMESPACE /チェックアウト/コントローラ MYNAMESPACE /チェックアウトの/ etc

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で試験しました。

ごあいさつ

関連する問題