Регистрация
Регистрируясь, вы подтверждаете свое согласие с соглашением об использовании персональных данных.
Восстановление пароля
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
Аниматика
Asiat

Зарегистрирован:
2005-12-12
Сообщений: 576

Как вариант, по ссылке "Написать письмо" передаете идентификатор контакта, потом его ловите в форме, далее в условиях добавления по нему вытаскиваете адрес почты из базы...

Разработка сайтов на Netcat с 2006... хм-м ... или 2005 хммм года. В общем, обращайтесь.
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
Аниматика
Asiat

Зарегистрирован:
2005-12-12
Сообщений: 576

для начала попробуйте ($_GET[contact]+0) заменить на (int)$contact,
в действиях после добавления $GET не будет..

Разработка сайтов на Netcat с 2006... хм-м ... или 2005 хммм года. В общем, обращайтесь.
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...
Я сделал так, как указал в последнем сообщении. Все работает отлично.
Спасибо Вам огромное...
198 196 2012-01-23 19:23:29 11838
Описание проекта