Передача вспомогательному классу параметра через XML-файл макета

У меня есть рабочая ссылка, которая добавляется в блок top.links следующим образом:

<block type="page/template_links" name="top.links" as="topLinks">
    <action method="addLink">
        <label>About Us</label>
        <url helper="mymodule/getAboutUsUrl"/>
        <title>About Us</title>
        <prepare/>
        <urlParams/>
        <position>20</position>
    </action>
</block>

В конце концов я хотел, чтобы getAboutUsUrl превратился в getExternalSiteUrl. Я хочу, чтобы одна функция принимала параметры. Например, getExternalSiteUrl ('about-us'), который затем возвращает что-то вроде / the / url / about-us. Однако я не могу найти способ отправить параметры вспомогательного класса в XML-файл Layout. Я уже искал другие модули, делающие это, и не смог найти ни одного в модуле Customer, где я искал.

Кто-нибудь может помочь?

1 ответ

Решение
<block type="page/template_links" name="top.links" as="topLinks">
    <action method="addLink">
        <label>About Us</label>
        <url helper="mymodule/getAboutUsUrl">
            <arg>Now with more args!</arg>
            <!-- will result in the string being passed as first arg -->
        </url>
        <title>About Us</title>
        <prepare/>
        <urlParams/>
        <position>20</position>
    </action>
</block>

Обратите внимание, что помощники не расширяются Varien_Objectпоэтому ваш метод должен будет явно определить getAboutUsUrl() метод.

Другие вопросы по тегам