Jak přidat vlastní tlačítko do administračního rozhraní obchodu Magento

Ve fófu nám vznikl dotaz, jak cokoliv přidat do administračního rozhraní Magenta. A protože to má být obsáhlejší, rozhodl jsem se z toho udělat návod a ne odpověď ve fóru.

Pro příklad je potřeba si nejprve vymyslet zadání ;-)

Zadání

Přidat tlačítko s odkazem na internetové stránky firmy iguru.eu do administračního rozraní do sekce Šablony zpravodaje (nalezneme jí v Zpravodaj->Šablony zpravodaje)

Jak postupovat

Jak už jsem psal ve fóru, na to, abychom cokoliv „natvrdo“ předělali v administračním rozhraní, stačí změnit příslušný .phtml soubor v adresáři /app/design/ad­minhtml/defau­lt/default/tem­plate/ +příslušný podadresář modulu Někdy bývá problém najít, který soubor potřebujeme, proto je lepší si Magento přepnout z češtiny do angličtiny.
Pokud toto provedeme v tomto případě, zjistíme, že sekce do které chceme naše tlačítko přidat se najednou nalézá pod položkami menu Newsletter->Newsletter Templates což je výborné, protože stejnou adresářovou strukturu najdeme i na disku.
Přesuneme se proto nějakým diskovým manažerem (např. Total Commander na operačním systému Windows, nebo Krusader pro Linux s grafickým rozhraním Kde, v terminálu na serveru můžeme použít například Midnight Commander (příkaz mc)) do adresáře /app/design/ad­minhtml/defau­lt/default/tem­plate/newslet­ter/template ve kterém se nacházejí tři soubory.

  1. edit.phtml
  2. list.phtml
  3. preview.phtml

Jak již anglické názvy napovídají, edit.phtml bude sloužit k editaci šablony, list.phtml k výpisu šablon a preview.phtml k náhledu zpravodaje.
My budeme chtít umístit tlačítko do seznamu šablon, pod tlačítko Add New Template nebo v češtině Přidat novou šablonu.
Otevřeme si tedy soubor list.phtml k úpravám (klávesa F4 ve všech uváděných diskových manažerech).

Soubor list.phtml vypadá takto (vynechána byla úvodní hlavička):

?>
<div class="content-header">
      <table cellspacing="0">
              <tr>
                      <td style="width:50%;"><h3 class="icon-head head-newsletter-list"><?php echo $this->getHeaderText() ?></h3></td>
                      <td class="form-buttons">
                              <button class="scalable add" onclick="window.location='<?php echo $this->getCreateUrl() ?>'"><span><?php echo Mage::helper('newsletter')->__('Add New Template'); ?></span></button>
                      </td>
              </tr>
      </table>
</div>
<div>
  <?php echo $this->getChildHtml('grid') ?>
</div>

Pak už nám nezbývá nic jiného, než si to přečíst a buď pochopit, co to dělá a nebo si pouze všimnout, že se jedná o html tabulku.
Rozšíříme tedy kód tabulky o jeden řádek navíc s tím, že v levé buňce nebude nic a v pravé přibude naše tlačítko.
Upravený soubor tedy bude vypadat takto:

?>
<div class="content-header">
        <table cellspacing="0">
                <tr>
                        <td style="width:50%;"><h3 class="icon-head head-newsletter-list"><?php echo $this->getHeaderText() ?></h3></td>
                        <td class="form-buttons">
                                <button class="scalable add" onclick="window.location='<?php echo $this->getCreateUrl() ?>'"><span><?php echo Mage::helper('newsletter')->__('Add New Template'); ?></span></button>
                        </td>
                </tr>
                <tr>
                        <td style="width:50%;"></td>
                        <td class="form-buttons">
                                <button class="scalable add" onclick="window.location='http://iguru.eu'"><span>iguru.eu</span></button>
                        </td>
                </tr>
        </table>
</div>
<div>
    <?php echo $this->getChildHtml('grid') ?>
</div>

Poté, co soubor uložíte (v TC a Krusader klávesovou zkratkou Ctrl+S v MC klávesou F2) už můžeme přejít do administračního rozraní do menu Zpravodaj->Šablony zpravodaje (Newsletter->Newsletter Templates) a měli byste vidět stejný výsledek, jako na přiloženém obrázku.
Přeji hodně úspěchů při kódování ;-)
Michal Moc

PřílohaVelikost
pridani_tlacitka.png80.74 KB

Komentáře

Thank you for sharing this information. I found it very informative as I have been researchingprom dress a lot lately on practical matters such as you talk about