Magento - пользовательский модуль, который фиксирует электронную почту пользователя сразу после ее ввода - PullRequest
0 голосов
/ 31 октября 2011

В пользовательском расширении я думаю, что мне может потребоваться захватить адрес электронной почты пользователя, когда он вводит его в различных местах, где он может быть введен (Оформить заказ, Создать учетную запись, Войти). Я не мог бы, , но , если бы я сделал ...

Я думаю, что лучший способ сделать это - вставить кусочек JavaScript, но я не уверен, как это сделать. Я думаю, мне нужно указать блок в файле макета? Так что, может быть,

приложение / дизайн / интерфейс / базы / по умолчанию / макет / mymodule.xml

<default>
    <reference name="before_body_ends">
        <block type="mymodule/myblock" name="not sure" as="not sure" />
    </reference>
</default>

и в классе блоков метод _toHtml () мог вернуть некоторый JavaScript, который добавил обработчик событий [onchange] в поле адреса электронной почты, а реализация обработчика событий сделала AJAX-вызов к контроллеру, передающему e- почтовый адрес введен.

Я думаю, что приведенный выше класс макета привел бы к внедрению JavaScript на каждую страницу. Я хотел бы только на тех, которые содержат поле ввода адреса электронной почты. Какой файл макета я должен создать для этого (местоположение, имя и содержимое).

Я прошел демонстрационный сайт и просмотрел источник страниц, на которых введен адрес электронной почты. Идентификатор поля адреса электронной почты отличается в каждом случае, поэтому JavaScript должен был бы это учитывать.

Большое спасибо за любую помощь.

1 Ответ

0 голосов
/ 01 ноября 2011

Если все, что вы хотите сделать, это включить файл .js на каждую страницу, вы должны добавить его в page.xml:

<layout>
    <default>
        <reference name="root">
           <action method="addJs"><script>relative/path/from/js/folder</script></action>
        </reference>
    </default>
</layout>

Подождите, пока dom загрузит и настроит ваших наблюдателей javascript.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...