|
|
20.01.2012, 13:35
|
|
nops
Группа 5а5
Зарегистрирован: 2009-01-05
Сообщений: 112
|
Подскажите, как реализовать нестандартный функционал форма обратной связи.
Изначально используем все предустановленные компоненты.
1. Форма обратной связи
2. Корпоративные контакты.
Создаю страницу "Обратная связь" и выключаю ее, далее она не видна в меню.
пока не заполняю никаких полей, все стандартно.
Создаю страницу "Контакты" и добавляю компонент "Корпоративные контакты". Создаю парочку контактов и указываю разные адреса электронной почты.
Исправляю немного компонент, чтобы вместо ссылки на адрес электронки выводилась ссылка на форму обратной связи.
Код: ".opt( $f_Email , "<div class='nc_item'><span class='nc_title'>E-mail: </span><span class='nc_value'><a class='emailSend' href='/Контакты/Письмо-руководству/'>Написать.</a></span></div>" )."
Конечно все работает и ссылка открывается и форма открывается, НО. Адрес получателя не указан в визуальных настройках, следовательно и письма уходить не будут. Нужно сделать так, чтобы нажимая на ссылку напротив контакта, подставлялся адрес электронной почты этого контакта.
Выглядеть должно примерно так:
Цитата: Иванов Иван Иванович
Директор
Написать аисьмо(это кнопка)
Телефон
Петров Петр Петрович
Заместитель директора
написать письмо(это кнопка)
телефон
Вот если у петрова нажать на кнопку "Написать письмо" то заполнив все поля, электронка улетит на petrov@domen.ru, а если нажать у Иванова на кнопку "Написать письмо" и заполнив все поля, письмо уйдет на ivanov@domen.ru
|
|
|
21.01.2012, 04:59
|
|
Asiat
Аниматика
Зарегистрирован: 2005-12-12
Сообщений: 576
|
Как вариант, по ссылке "Написать письмо" передаете идентификатор контакта, потом его ловите в форме, далее в условиях добавления по нему вытаскиваете адрес почты из базы...
|
|
|
22.01.2012, 13:24
|
|
nops
Группа 5а5
Зарегистрирован: 2009-01-05
Сообщений: 112
|
Вот в этом-то и проблема:
1. Как передать?
2. Как выловить.
|
|
|
22.01.2012, 20:42
|
|
resident
Веб-группа «Дабл Ю»
Зарегистрирован: 2005-01-10
Сообщений: 336
|
ссылка с контакта должна быть такой /форма_обратной_связи/?contact=$f_RowID
в альтернативном шаблоне формы обратной связи скрытое поле
<input type=\"hidden\" name=\"contact\" value=\"".($_GET[contact]+0)."\"/>
в действии после добавления Веб-формы: Письмо с сайта
перед $mailer = new CMIMEMail();
if($contact) $Email=$db->get_var("SELECT Email FROM Message10 WHERE Message_ID=".($_GET[contact]+0)."");
if($Email) $cc_settings[EmailTo]=$Email;
|
|
|
23.01.2012, 09:44
|
|
nops
Группа 5а5
Зарегистрирован: 2009-01-05
Сообщений: 112
|
Цитата:ссылка с контакта должна быть такой /форма_обратной_связи/?contact=$f_RowID
в альтернативном шаблоне формы обратной связи скрытое поле
<input type="hidden" name="contact" value="".($_GET[contact]+0).""/>
в действии после добавления Веб-формы: Письмо с сайта
перед $mailer = new CMIMEMail();
if($contact) $Email=$db->get_var("SELECT Email FROM Message10 WHERE Message_ID=".($_GET[contact]+0)."");
if($Email) $cc_settings[EmailTo]=$Email;
Попробовал все подставить, но в результате у меня почему-то выдает
Цитата:Warning: stripslashes() expects parameter 1 to be string, array given in /usr/home/sto-12/data/www/energoservice-ural.ru/netcat/add.php on line 90
Пробежался по коду, который посоветовали, вроде все понял, но почему выдает такую ошибку не пойму...
Вообщем ничего не могу понять... Попробовал сменить дефолтный адрес электронки на другой, а все равно на дефолтный отправляет... не могу понять, почему не туда летит А уходит через раз, то ошибку выдает, то нет.. прям чудеса какие-то
|
|
|
23.01.2012, 12:03
|
|
Asiat
Аниматика
Зарегистрирован: 2005-12-12
Сообщений: 576
|
для начала попробуйте ($_GET[contact]+0) заменить на (int)$contact,
в действиях после добавления $GET не будет..
|
|
|
23.01.2012, 12:15
|
|
nops
Группа 5а5
Зарегистрирован: 2009-01-05
Сообщений: 112
|
Цитата:для начала попробуйте ($_GET[contact]+0) заменить на (int)$contact,
в действиях после добавления $GET не будет..
а вот так заработало.
Спасибо огромное.
подитожим.
в альтернативном шаблоне формы обратной связи скрытое поле
Код:<input type=\"hidden\" name=\"contact\" value=\"".($_GET[contact]+0)."\"/>
в действии после добавления Веб-формы: Письмо с сайта(в моем случае "письмо контакту")
перед $mailer = new CMIMEMail();
Код:if($contact) $Email=$db->get_var("SELECT Email FROM Message10 WHERE Message_ID=".(int)$contact."");
if($Email) $cc_settings[EmailTo]=$Email;
|
|
|
23.01.2012, 19:11
|
|
resident
Веб-группа «Дабл Ю»
Зарегистрирован: 2005-01-10
Сообщений: 336
|
спасибо что поправили, копипаст зло, должно было быть ".($_POST[contact]+0)."
лучше используйте какой-то один способ приведения к численному типу
|
|
|
23.01.2012, 19:23
|
|
nops
Группа 5а5
Зарегистрирован: 2009-01-05
Сообщений: 112
|
да, копипаст зло, страшное зло.
Я сам конечно далек несколько от самого PHP и поэтому мне пока непонятно разница между post и get...
Я сделал так, как указал в последнем сообщении. Все работает отлично.
Спасибо Вам огромное...
|