Intereting Posts
Что такое хороший алгоритм или библиотека для обрезки изображений, чтобы избежать пробелов или пустых областей? Обнаружение щелчка внутри IFrame с использованием невидимого div PHP слияния массивов в 2D JSON Код Igniter 2: Как продлить CI_Controller несколько раз? Как создать маршрут в symfony 2, который отображает внешний URL? Неустранимая ошибка: Class 'Symfony \ Component \ Console \ Input \ ArgvInput' не найден в приложении / консоли в строке 16 Проблема с запросом MSSQL в PHP и запрос текстовых данных Как вы создаете cakephp на общем хостинге? Почему crypt () генерирует разные результаты? PHP html электронная почта, используя html-шаблон Как получить счетчик комментариев Disqus для страницы с использованием API-интерфейса Disqus? Какая функция в php проверяет правильность строки? Выполнение javascript в PHP как отправлять / получать файлы через веб-службы в php Поток как html5 аудио или конвертировать .amr в .ogg

как переписать head.phtml в magento

Я хочу изменить название страницы в magento. В моем app/design/frontend/default/customPackage/template/page/html/head.phtml существуют строки, управляющие всем заголовком страницы (что я хочу просто изменить название страницы каталога)

 <title> <?php if ($current_product = Mage::registry('current_product')) { echo substr($current_product->getName() . " - " . Mage::helper('core')->currency($current_product->getFinalPrice(), true, false),0,69); } else { echo substr(str_replace("- Products","",$this->getTitle()),0,100); } ?></title> 

но я не хочу изменять непосредственно из head.phtml в app/design/frontend/default/customPackage/template/page/html , вместо этого я хочу заменить этот head.phtml другим head.phtml в моем собственном модульном tempate files.Let, скажем, сделайте это app/design/frontend/default/customPackage/template/catalog/html/head.phtml вместо этого

Solutions Collecting From Web of "как переписать head.phtml в magento"

Чтобы ответить на ваш вопрос, в основном нам нужно найти, где page/html/head.phtml файл page/html/head.phtml . Ответ находится в файлах макета, более конкретно в page.xml . Местоположение: app/design/frontend/<your_package>/<your_theme>/layout/page.xml . Внутри этого файла под дескриптором <default> вы можете видеть

 <default translate="label" module="page"> <label>All Pages</label> <block type="page/html" name="root" output="toHtml" template="page/3columns.phtml"> <block type="page/html_head" name="head" as="head"> <action method="addJs"><script>prototype/prototype.js</script></action> <action method="addJs"><script>lib/ccard.js</script></action> <action method="addJs"><script>prototype/validation.js</script></action> <action method="addJs"><script>scriptaculous/builder.js</script></action> ------- </block> --------- </block> </default> 

где

  • <default> известен как обработчик компоновки. Блоки, которые попадают под этот обработчик, будут отображаться на каждой странице в пурпуре.

  • block page/html – ваш корневой блок. Это родительский блок всех остальных блоков. На странице должен быть только один корневой блок. Вы можете ссылаться на этот блок, используя его имя root в своих файлах макета, чтобы изменить что-либо внутри этого блока.

  • block page/html_head – это блок, на который ссылается ваш вопрос. Этот блок используется для хранения раздела <head /> вашей страницы (с точки зрения дерева html). Вы можете видеть, что magento загружает некоторые из своих основных javascripts и css внутри этого блока.

Но page/html_head не задан ни одним шаблоном, как вы уже видели. Тогда как page/html/head.phtml подошла к просмотру ??? Он должен располагаться где-то в пурпуре. Итак, давайте перейдем к внутренней стороне этого блока, где определены все его блочные методы. Местоположение файла: app/code/core/Mage/Page/Block/Html/Head.php . Да, мы это узнали.

 class Mage_Page_Block_Html_Head extends Mage_Core_Block_Template { /** * Initialize template * */ protected function _construct() { $this->setTemplate('page/html/head.phtml'); } ------ } 

Итак, Magento установил шаблон для блока page/html_head , _construct() метод _construct() . Измените его в своем месте шаблона

  protected function _construct() { $this->setTemplate('app/design/frontend/default/customPackage/template/catalog/html/head.phtml'); } по  protected function _construct() { $this->setTemplate('app/design/frontend/default/customPackage/template/catalog/html/head.phtml'); } 

Теперь он установит расположение блока page/html_head в ваш собственный файл шаблона.

Если вы хотите, чтобы файл блока также был не затронут, вы можете переписать этот файл блока с помощью собственного модуля. В файле config.xml вы должны использовать это

 <config> <global> <blocks> <page> <rewrite> <html_head>Namespace_Modulename_Block_Html_Head</html_head> </rewrite> </page> </blocks> </global> </config> 

и вы должны определить файл блока в app/code/local/Namespace/Moduleame/Block/Html/Head.php

 <?php class Namespace_Modulename_Block_Html_Head extends Mage_Page_Block_Html_Head { protected function _construct() { $this->setTemplate('app/design/frontend/default/customPackage/template/catalog/html/head.phtml'); } } по <?php class Namespace_Modulename_Block_Html_Head extends Mage_Page_Block_Html_Head { protected function _construct() { $this->setTemplate('app/design/frontend/default/customPackage/template/catalog/html/head.phtml'); } } 

Таким образом, основные файлы не затронуты, и вы можете изменить путь к шаблону.