0

我需要更改购物车页面标题。但我找不到它。我应该在哪里改变它。所以任何帮助表示赞赏。

在此处输入图像描述

谢谢

4

5 回答 5

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"

如果您确实有该文件,则只需编辑该行,确保您的新标题遵循原始标题和逗号并用双引号引起来。

于 2012-06-13T13:47:50.873 回答
2

正确的方法是覆盖结帐控制器,非常简单。首先:添加一个带有两个子目录的新模块:controllers 等 Mynamespace/Checkout/controllers Mynamespace/Checkout/etc

然后,在 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');
    }
} 

然后是 config.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>

最后,模块激活器:app/etc/modules/Mynamespace_Checkout.xml

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

这是在 Magento Enterprise 1.13 中测试的。

问候

于 2014-03-26T02:22:56.380 回答
1

这是一个如何覆盖标题的简短示例。

强制标题

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

于 2012-04-10T16:50:58.140 回答
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>

另一件事要提的是,您还可以在 a 中进行这些更改local.xml(这是我推荐的)。该local.xml文件将加载所有其他 XML 文件,并且您对该文件的更改将覆盖布局目录中的任何其他 XML 文件。一个很好的教程可以在这里找到。

于 2012-04-10T17:05:22.247 回答
0

试试这个 :

<reference name="head">
     <action method="setTitle"><title>My New Checkout Title</title></action>
</reference>
于 2012-11-21T06:19:24.270 回答