Temat: Magento - statyczne bloki
ok, to może po kolei:
W Magento rozróżniamy dwa rodzaje bloków, bloki statyczne i bloki generujące treść. Jeśli chciałabyś dodać np. coś do bloku - footer używasz referencji:
<reference name="footer"></reference>
Zakładam, że korzystasz z domyślnego szablonu zatem, powyżej przedstawioną referencje dodajesz do pliku layoutu:
app/design/frontend/base/default/layout/page.xml
Teraz tworzysz sobie szablon np. plik - newReference.phtml w katalogu:
app/design/frontend/base/default/template/page/html
:
oraz dodajesz wpis do referencji:
<reference name="footer">
<block type="page/html_newReference" name="newReference" as = "newReference" template="page/html/newReference.phtml">
</block>
Szablon np. posiada treść:
<h1 style="background-color:yellow">Custom Block </h1>
Zwróć uwagę na linijkę w pliku page.xml:
<block type="page/html" name="root" output="toHtml" template="page/3columns.phtml">
która wskazuje Ci szablon w którym znajduje się wpis:
<?php echo $this->getChildHtml('footer') ?>
co oznacza, że wyświetlając block footer wyświetlasz jednocześnie wszystkie bloki należące do jego sekcji (referencja na początku mojego wpisu). Zapewnia to właśnie metoda getChildHtml().
teraz utwórz plik newReference.php w katalogu:
app/code/core/Mage/Page/Block/Html
o następującej treści:
class Mage_Page_Block_Html_newReference extends Mage_Core_Block_Template
{
public $data;
public function getDate()
{
$date = date('Y-m-d');
$this-> data = urlencode($date);
}
}
I dodaj wpis do referencji:
<reference name="footer">
<block type="page/html_newReference" name="newReference" as = "newReference" template="page/html/newReference.phtml">
<action method="getDate"></action>
</block>
</reference>
Następnie w pliku newReference.phtml dodaj:
<h1 style="background-color:yellow">Nowy customowy blok <?php echo $this->data; ?></h1>
Dzięki tagowi <action> wołasz metodę getDate, która ustawia publiczne pole klasy newReference.php - date. Odświerz witrynę, na dole strony zobaczysz efekty swojej pracy. W razie kłopotów zapraszam do kontaktu, chętnie pomogę.