Comment sont les méthodes d'action au sein de Magento mise en page des fichiers xml destiné à être utilisé

Exemples

mylayoutfile.xml

 <layout>
        <default>
            <reference name="header">
                <block type="mynamespace_mymodule/view" name="mynamespace_mymodule" output="toHtml" template="mymodule/html/view.phtml">
                    <action method="setTest"><param1>myparam1</param1><param2>myparam2</param2></action>
                </block>
            </reference>
        </default>
    </layout>

app/code/local/Mynamespace/Mymodule/Block/View.php

    class Mynamespace_Mymodule_Block_View extends Mage_Core_Block_Template{
        public $test = "before any params";
            public function setTest($passedparam1,$passedparam2){
             $this->test = $passedparam1 ." ". $passedparam2;
            }

}

app/design/.../.../mymodule/html/vue.phtml

<?php
echo "<pre>";
print_r($this->test);  //myparam1 myparam2
echo"</pre>";
die();

Explication

mylayoutfile est compilé dans une mise à jour par le biais de vos modules config.xml

le bloc préfixe de classe de mynamespace_module est également définie à l'intérieur de vos modules config.xml

mynamespace_module/point de vue est défini comme le type de bloc et instancié et le fichier de sortie de point de vue.phtml est définie

une action qui appelle le nœud parent du bloc de la méthode setTest en passant par deux paramètres, la valeur de myparam1 et myparam2.

à l'intérieur de la setTest fonction de la classe du paramètre "test" est défini à l'égalité "myparam1 myparam2"

le modèle de fichier app/design/.../.../mymodule/html/vue.phtml est chargé et nous nous faisons l'écho de la valeur de $this->test ($this se réfère à la version instanciée bloc de classe Mynamespace_mymodule_Block_View)

QUESTIONS

  1. Quels sont quelques exemples de cas d'utilisation où elle pourrait être utilisée?
  2. Vous pouvez passer autre chose qu'une chaîne de caractères? (Object,Array)?
  3. Ne le automagical organismes de normalisation et les méthodes de lecture de l'intérieur d'un fichier de mise en page?
  4. Logique peut être utilisé (si,alors,foreach,else,etc)?
  5. Sont t-il des scénarios où cette méthode ne doit pas être utilisé?
  6. Est-il autre chose que je pourrais être absent liés à l'instanciation de blocs dans un fichier de mise en page?
  7. Est-il autre chose que je pourrais être absent liés à des actions à partir d'un fichier de mise en page?

OriginalL'auteur ajameswolf | 2012-12-07