Мне нужно изменить заголовок страницы корзины. но я не мог найти его. где я должен его изменить. поэтому любая помощь ценится.
благодаря
Название фактически установлено в XML для этой страницы. Вы должны открыть файл checkout.xml в каталоге app/design/frontend/packagename/themename/layout/
и поместить этот код внутри узла в 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
(это то, что я бы рекомендовал). Файл local.xml
будет загружаться поверх всех других файлов XML, и ваши изменения в этом файле переопределят любые другие файлы XML в каталоге макета. Здесь можно найти довольно хороший учебник.
Изменение XML не будет иметь эффекта, потому что заголовок устанавливается контроллером в приложении / коде / ядре / Mage / Checkout / controller / 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"
Если у вас есть файл, просто отредактируйте эту строку, чтобы ваш новый заголовок соответствовал оригинальному заголовку и запятой и заключен в двойные кавычки.
Правильный способ сделать это, делает переопределение на контрольных контроллерах, так просто. Во-первых: добавьте новый модуль с двумя подкаталогами: контроллерами и т. Д. 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>
И последнее: активатор модуля: приложение / etc / modules / Mynamespace_Checkout.xml
<config> <modules> <Mynamespace_Checkout> <active>true</active> <codePool>local</codePool> </Mynamespace_Checkout> </modules> </config>
Это было протестировано в Magento Enterprise 1.13.
Приветствую
Вот краткий пример того, как перезаписать заголовок.
Заглавие Force
Вы можете изменить переменную и перезаписать заголовок в указанных файлах layout.xml .
Попробуй это :
<reference name="head"> <action method="setTitle"><title>My New Checkout Title</title></action> </reference>