Lägg till en template

Säg att man vill göra en helt ny template från början till sitt tema i Magento. Har funnit en del lösningar på hur man kan göra detta men jag tycker dom alla involverar att ändrar i kärnans källkod.

En lösning som jag nu använder och är nöjd med är att jag skapar en egen modul som säger till Magento att jag vill använda ytterligare templates filer.

Hur man går till väga

Börja med att skapa en modul genom att göra dess config -fil.

app/code/local/{namespace}/{modul namnet}/etc/config.xml

Inom måsvingarna fyller du i ett namn på en lämplig namnrymd/namespace, förslagsvis företagsnamnet, samt ett lämpligt namn på modulen. ”Templates” tycker jag känns som ett förklarande och bra namn i sammanhanget..

Innehållet i config.xml -filen ska se ut på följande vis:

<?xml version="1.0"?>
<config>
  <modules>
    <{Namespace}_{Namnet på modulen}>
      <version>1.0.0</version>
    </{Namespace}_{Namnet på modulen}>
  </modules>
  <global>
    <page>
      <layouts>
        <{interna layoutnamnet} translate="label">
          <label>{officiella layoutnamnet}</label>
          <template>page/{filnamnet}.phtml</template>
        </{interna layoutnamnet}>
      </layouts>
    </page>
  </global>
</config>

Byt ut allt inom måsvingarna till lämpliga värden och skapa självklart specificerad phtml -fil i ditt tema.

Vi har nu sagt till Magento att det finns en template som kommer visas för administratören i admingränssnittet så han kan välja denna till önskvärd sidan.

Berätta för Magento om modulen

Vi behöver nu behöver berätta för Magento om vår modul. Navigera till mappen:

app/etc/modules/

..och skapa en xml -fil med följande namnbeteckning:

{Namespace}_{Namnet på modulen}.xml

Innehållet i denna fil ska se ut på följande vis:

<?xml version="1.0"?>
  <config>
    <modules>
      <{Namespace}_{Namnet på modulen}>
        <active>true</active>
        <codePool>local</codePool>
        <depends>
          <Mage_Page />
        </depends>
      </{Namespace}_{Namnet på modulen}>
    </modules>
  </config>

Klart, nu borde allt funka.

Källa till ovanstående

Alternativ lösning

Aktivera och redigera din lokala config.xml fil

Anledningen till att jag inte gillar metoden beskriven i länken ovan är för att man då måste skriva över hela config.xml -filen. Samt att förändringar som kan komma att hända i framtiden i kärnans config -fil då inte kommer att gälla efter en uppdatering.
Fördelen som jag dock kan se med denna metod är att man enkelt kan ta bort templates för administratören som han ej ska kunna välja. Kanske ifs går att lösa på annat vis men det är inget som jag känner till i skrivande stund.