Добавление нового макета страницы, например страницы категории

magento.stackexchange https://magento.stackexchange.com//questions/79658

  •  13-12-2019
  •  | 
  •  

Вопрос

Я добавил новый макет страницы в свой магазин, и теперь, когда я хочу добавить другой макет страницы, он заменяется ранее добавленным макетом.

Почему это происходит?Могу ли я создать более одного макета?

РЕДАКТИРОВАТЬ:Я добавил в app/code/local/Home/Page/etc/config.xml :

<?xml version="1.0"?>
<config>
  <modules>
    <Home_page>
      <version>0.1.0</version>
    </Home_page>
  </modules>
  <global>
    <page>
      <layouts>
        <homepage translate="label">
          <label>Home_page</label>
          <template>page/homepage.phtml</template>
          <layout_handle>home_page</layout_handle>
        </homepage>
        <!-- add more layouts here -->
      </layouts>
    </page>
  </global>
</config>

Также добавлено app/etc/Home_page.xml:

<?xml version="1.0"?>
<config>
  <modules>
    <Home_page>
      <active>true</active>
      <codePool>local</codePool>
      <depends>
        <Mage_Page />
      </depends>
    </Home_page>
  </modules>
</config>

И добавьте это app/design/frontend/default/my-theme/template/page/homepage.phtml , что я использую свой макет на этой странице.

Это было полезно?

Решение

Вы не показали, как вы добавили больше макетов, но я подозреваю, в чем проблема:

    <homepage translate="label">
      <label>Home_page</label>
      <template>page/homepage.phtml</template>
      <layout_handle>home_page</layout_handle>
    </homepage>

Дескриптор макета home_page а также имя элемента <homepage> должен быть уникальный.Итак, если вы добавляете дополнительные макеты и используете <homepage> опять же, это переопределяет ранее добавленный <homepage> расположение.

Другие советы

Ваш файл активации неверен.это должно выглядеть примерно так

Файл : app/etc/Home_Page.xml:

<?xml version="1.0"?>
<config>
  <modules>
    <Home_Page>
      <active>true</active>
      <codePool>local</codePool>
      <depends>
        <Mage_Page />
      </depends>
    </Home_Page>
  </modules>
</config>

т.е. вы должны использовать Home_Page вместо Home_page везде.

Ваш конфигурационный файл должен быть

Файл: app/code/local/Home/Page/etc/config.xml :

<?xml version="1.0"?>
<config>
  <modules>
    <Home_Page>
      <version>0.1.0</version>
    </Home_Page>
  </modules>
  <global>
    <page>
      <layouts>
        <homepage module="Home_Page" translate="label">
          <label>Home Page</label>
          <template>homepage/unique.phtml</template>
          <layout_handle>home_page</layout_handle>
        </homepage>
        <!-- add more layouts here -->
      </layouts>
    </page>
  </global>
</config>

У вас была такая же проблема и с этим файлом.

Есть пара вещей, которые задерживаются в вашем модуле.Они являются :

  1. вы должны определить xml-файл обновления макета для вашего модуля :Воспользуйся этот файл для определения вашего пользовательского дескриптора страницы.Для получения более подробной информации вы можете обратиться в app\design\frontend\base\default\layout\page.xml.Там смотрите определение page_one_column дескриптор макета.Вам нужно такое определение для home_page внутри вашего собственного xml-файла обновления макета.

  2. Вы должны определить файл шаблона макета страницы.В соответствии с изменениями, которые я показал выше, вы должны определить этот файл по адресу app\design\frontend\base\default\template\homepage\unique.phtml.Воспользуйся app\design\frontend\base\default\template\page\1column.phtml в качестве ссылки на это.

Удачи

Лицензировано под: CC-BY-SA с атрибуция
Не связан с magento.stackexchange
scroll top