Jump to content
Sign in to follow this  
sameOG

Дефолтное значение формы подписки на новости

Recommended Posts

Задался вопросом как сделать, чтобы подписка на новости по-умолчанию стояла на выборе "Да" при регистрации. В настройках ничего не нашел.

 

В коде следующее:

 

<td><select name="newsletter">
                    <?php if ($newsletter) { ?>
                    <option value="1" selected="selected"><?php echo $text_enabled; ?></option>
                    <option value="0"><?php echo $text_disabled; ?></option>
                    <?php } else { ?>
                    <option value="1"><?php echo $text_enabled; ?></option>
                    <option value="0" selected="selected"><?php echo $text_disabled; ?></option>
                    <?php } ?>
                  </select></td>

 

 

Как видно это все-таки настраивается где-то, удя по if ($newsletter) . Только где ? Что означает эта переменная?

Share this post


Link to post
Share on other sites

начать нужно с того какой у вас модуль регистрации: штатный, симпл или еще какой

Share this post


Link to post
Share on other sites

самый простой вариант: убрать проверку $newsletter

и просто оставить


 

только в register.tpl



 

Share this post


Link to post
Share on other sites

Да, я тоже так могу. Но это метод топора. Вопрос то в другом. Если идет проверка переменной, то за какую настройку она отвечает

Share this post


Link to post
Share on other sites

register.php - обращаем внимание на эти строки:

if (isset($this->request->post['newsletter'])) {
$this->data['newsletter'] = $this->request->post['newsletter'];
} else {
$this->data['newsletter'] = '';
}

$this->data['newsletter'] = ''; - это задание значения по умолчанию. ставьте '1'

Share this post


Link to post
Share on other sites

Когда человек впервые переходит на страницу регистрации, то никаких POST данных на страницу не передается. Поэтому собственно и возник вопрос откуда изначально эта идет переменная? И за что отвечает?

 

В этом коде, который вы привели  изначально всегда будет пустое значение newsletter. Переправить код я и сам мог. Я хотел услышать ответ на мой вопрос. Т.е. получается, что эта переменная newsletter нигде не настраивается т.е. она только создается в макете register?

Share this post


Link to post
Share on other sites

Вообщем, кому интересно. В файле controller/account/register.php

 

if (isset($this->request->post['newsletter'])) {
            $this->data['newsletter'] = $this->request->post['newsletter'];
        } else {
            $this->data['newsletter'] = ' '; // not empty
        }

 

В значение $this->data['newsletter'] добавил просто пробел, т.к. там на самом деле не важно значение, потому что в дальнейшем в коде идет проверка пуста ли переменная или нет.

Share this post


Link to post
Share on other sites

Вообщем, кому интересно. В файле controller/account/register.php

 

if (isset($this->request->post['newsletter'])) {

            $this->data['newsletter'] = $this->request->post['newsletter'];

        } else {

            $this->data['newsletter'] = ' '; // not empty

        }

 

В значение $this->data['newsletter'] добавил просто пробел, т.к. там на самом деле не важно значение, потому что в дальнейшем в коде идет проверка пуста ли переменная или нет.

 

Спасибо, давно искал решение, теперь стоит "Да" по умолчанию!

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
You are posting as a guest. If you have an account, please sign in.
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Sign in to follow this  

  • Recently Browsing   0 members

    No registered users viewing this page.

×

Important Information

On our site, cookies are used and personal data is processed to improve the user interface. To find out what and what personal data we are processing, please go to the link. If you click "I agree," it means that you understand and accept all the conditions specified in this Privacy Notice.