Перейти к содержанию
alonealien

[Решено] Переключатель подписки в личном кабинете

Рекомендуемые сообщения

всем доброго времени суток

 

кто-нибудь знает как вынести форму (переключатель) подписки из newsletter.tpl в account.tpl?

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Я знаю.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Легко.

Переносишь объявление переменных из контроллера, ну и сам вывод.

Файлы знаешь.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

ну это-то я сделал.

я, наверное, неправильно выразился. форму управления подпиской я вывел на страницу аккаунта, но она не учитывает текущее состояние подписки.

код формы:

<table class="form">
        <tr>
          <td><?php echo $entry_newsletter; ?></td>
          <td><?php if ($newsletter) { ?>
            <label><input type="radio" name="newsletter" value="1" checked="checked">
            <?php echo $text_yes; ?> Включена</label>
            <label><input type="radio" name="newsletter" value="0">
            <?php echo $text_no; ?> отключить</label>
            <?php } else { ?>
<input type="radio" name="newsletter" value="0" checked="checked">
            <?php echo $text_no; ?> Отключена
            <input type="radio" name="newsletter" value="1">
            <?php echo $text_yes; ?> Включить
            
            <?php } ?></td>
        </tr>
      </table>
не учитывает текущее состояние подписки и всегда выводит вот этот кусок:

<label><input type="radio" name="newsletter" value="1" checked="checked">
            <?php echo $text_yes; ?> Включена</label>
            <label><input type="radio" name="newsletter" value="0">
            <?php echo $text_no; ?> отключить</label>
else не выполняется, хотя на изменение состояния реагирует

в контроллер перенес все переменные, полагаю надо еще ковырять модель, но и account.php, и newsletter.php обращаются к модели customer.php, и вот тут [стыдно признаться] я теряюсь

Изменено пользователем afwollis

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Чтобы учитывать текущую подписку пользователя(клиента), получить ее значение и передать в шаблон. Для этого из контроллера newsletter.php нужно перенести код в account.php похожий на вот этот:

$data['newsletter'] = $this->customer->getNewsletter();
//или
$this->data['newsletter'] = $this->customer->getNewsletter(); 

Теперь в шаблоне будет доступна новая переменная $newsletter, в ней содержится текущее значение подписки пользователя.. 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

[РЕШЕНО]

 

в контроллере account.php надо было закомментить строку 

$this->data['newsletter'] = $this->url->link('account/newsletter', '', 'SSL');

поскольку переменная $newsletter из контроллера newsletter.php и та же переменная из контроллера аккаунта имеют разные значения, но приоритет переменной контроллера аккаунта выше, то вместо того, чтоб считывать значение состояния подписки, браузер проверял есть ли страница подписки.

 

теперь страница подписки не работает. впрочем, она уже и не нужна

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Гость
Эта тема закрыта для публикации ответов.

  • Последние посетители   0 пользователей онлайн

    Ни одного зарегистрированного пользователя не просматривает данную страницу

×

Важная информация

На нашем сайте используются файлы cookie и происходит обработка некоторых персональных данных пользователей, чтобы улучшить пользовательский интерфейс. Чтобы узнать для чего и какие персональные данные мы обрабатываем перейдите по ссылке. Если Вы нажмете «Я даю согласие», это означает, что Вы понимаете и принимаете все условия, указанные в этом Уведомлении о Конфиденциальности.