Я хочу показать всплывающее окно с чем-то вроде «Спасибо за подписку» вместо зеленого уведомления.
Изображение уведомления:
Итак, я не знаю, как получить сообщение в сеансе или переопределить SubscribeController для отправки какого-либо параметра, узнав, что пользователь подписался. Как я могу это сделать?
Так что вам нужно переопределить SubscriberController.php
контролер Newsletter
модуль. Контроллер имеет newAction()
который используется для добавления данных подписчика.
Создайте свой новый модуль и в config.xml
вашего модуля —
<?xml version="1.0" encoding="UTF-8"?>
<config>
<frontend>
<routers>
<newsletter>
<args>
<modules>
<knewsletter before="Mage_Newsletter">MyNamespace_MyModlulename</knewsletter>
</modules>
</args>
</newsletter>
</routers>
</frontend>
Затем добавьте SubscriberController.php
в папке вашего контроллера —
<?php
require_once Mage::getModuleDir('controllers', "Mage_Newsletter").DS."SubscriberController.php";
class MyNamespace_MyModlulename_SubscriberController extends Mage_Newsletter_SubscriberController{
public function newAction() {
// can copy the content of original newAction and modify accordingly.
}
}
Есть простой способ сделать выше.
Если вы откроете основные файлы шаблона из вашей темы, т.е. 1column, 2column-left и т. Д., Вы заметите код, подобный следующему:
<?php echo $this->getChildHtml('global_notices') ?>
Сначала вам нужно прокомментировать это, это удалит сообщение, отображаемое в данный момент на страницах.
Теперь перейдите в footer.phtml вашего сайта и добавьте что-то вроде:
<?php if($this->getMessagesBlock()->getMessageCollection()->count()): ?>
<div id="global_messages_popup" style="display: none">
<a href="javascript:void(0)" id="global_messages_close" style="display: none" title="<?php echo $this->__('Hide messages') ?>">×</a>
<?php echo $this->getMessagesBlock()->getGroupedHtml(); ?>
</div>
<?php $this->getMessagesBlock()->getMessageCollection()->clear(); ?>
<script>
// Here you can write js code to open above div in a popup or something else.
</script>
<?php endif; ?>
Выше не проверено, поэтому, пожалуйста, проверьте это сами.