Вы не вошли.
hot, а в каком виде ты это управление вообще видишь?
Опиши пример.
УВАЖАЕМЫЙ ВИТАЛИЙ ! Вот такое моё виденье управлением...
Выбираем поле с ==ВЫБОРОМ== (допустим НОРМАЛЬНЫЙ ЧЕЛОВЕК, ХОРОШИЙ ЧЕЛОВЕК, ОЧЕНЬ ХОРОШИЙ ЧЕЛОВЕК
), в выбранной форме feedback (допустим feedback id=1 и т.д. и т.п.) пишем 3 e-mail-А (...при возможности хочется и больше адресов...), ставим обязательное заполнение, переходим на страничку с формой на сайте и выбираем (==ОЧЕНЬ ХОРОШИЙ ЧЕЛОВЕК== ), отправляем ... и ... получает сообщение для !!!ТОЛЬКО ==ОЧЕНЬ ХОРОШИЙ ЧЕЛОВЕК==, а остальные
"хорошие люди", указанные в чекбоксе, "КУРЯТ БАМБУК" :lol:
Отредактировано hot (2009-03-05 23:11:47)
Вне форума
от
кому хххх@gmail.com
дата 19 марта 2009 г. 23:42
тема Новое сообщение обратной свя
скрыть подробные сведения 23:42 (11 мин. назад)
Ответить
зи через форму otdyh (Сявязь с владельцем объявления)
X-PHP-Script: www.ххх.ru/index.php for 85.172.хх.хх
From: mailbot@ххх.ru >> Здесь может название сайта,?
Reply-to: mailbot@ххх.ru >> здесь нужно действующий адрес
Message-ID: <f17a62fe82f86e6f24fe4b00b6f89b33@www.ххх.ru>
MIME-Version: 1.0
Date: Thu, 19 Mar 2009 20:41:57
X-Priority: 3
X-MSMail-Priority: Normal
X-Mailer: NGCMS : 0.9.0 Release (Fix #04)
X-MimeOLE: NGCMS : 0.9.0 Release (Fix #04)
Content-Type: multipart/mixed;boundary="----------f17a62fe82f86e6f24fe4b00b6f89b33"
------------f17a62fe82f86e6f24fe4b00b6f89b33
Content-Type: text/html;charset=windows-1251
Content-Transfer-Encoding: 8bit
Уважаемый администратор!<br/>Вам отправлено сообщение через форму обратной связи:<br/>
>> если есть возможность вводить раные адрреса нужно и получателя указывать.
[name] Ваше имя: Имя<br/> >> идентификатор тут зачем?
[email]Emai: tech2304@gmail.com<br/>
[message] Сообщение: Здравствуйте.
Ваше объявление размещено
<br/>
------------f17a62fe82f86e6f24fe4b00b6f89b33--Сообщение было отправлено в спам... :(
Продвигай NGCMS,
скачай статью и на свой сайт повесь.
Геленджик - лучший отдых на Черном море
Вне форума
Последнее время спаморезки пошли очень умные.
Единственное, что можно сделать в этой ситуации - позволить задавать в плагине SRC email адрес.
Но при этом ты должен понимать, что при отправке с e-mail адреса ABC@domain.ru, ты должен соблюсти одно из следующих правил:
1. Email сообщение отправляется сначала на почтовый сервер домена domain.ru и уже почтовка доставляет этот email
2. Email сообщение отправляется напрямую, но IP адрес, с которого ты ведёшь отправку, должен быть либо прописан в качестве MX для домена domain.ru, либо, как минимум, должен быть прописан как "A" запись для этого же домена.
Вне форума
Выложил в SVN кандидата на версию 0.06.
Вот изменения:[0.06][2009-03-05] + Добавлена возможность проверки заполнения обязательных полей формы. При активации параметра "проверять ввод полей" и незаполнении обязательного поля - пользователю будет выдаваться сообщение об ошибке.Прошу по возможности проверить и отписаться. Если проблем не будет - выложу архив для всех.
работает, но не хватает каптчи.
Вне форума
Доп тип поля: файл.
+
Выбор в настройках: прикрепить к письму / хранить на сервере, вставить ссылку на файл.
Вне форума
icedogas
/engine/plugins/feedback/feedback.php
Найти
// Scan all fields and fill data. Prepare outgoing email.
$output = '';
foreach ($fData as $fName => $fInfo) {Добавить после
if ($fInfo['required'] && empty($_REQUEST[$fName]))
{
$tpl->template('site.infoblock', $tpath['site.infoblock']);
$tpl->vars('site.infoblock', array( 'vars' => array( 'title' => $frow['title'], 'ptpl_url' => $ptpl_url, 'entries' => "<b>Ошибка!</b><br/>Не заполнено обязательное поле {$fName}")));
$template['vars']['mainblock'] = $tpl->show('site.infoblock');
return;
}Отредактировано insider (2009-04-28 15:29:10)
Вне форума
icedogas
/engine/plugins/feedback/feedback.php
Найтиforeach ($fData as $fName => $fInfo) {Добавить после
if ($fInfo['required'] && empty($_REQUEST[$fName])) { $tpl->template('site.infoblock', $tpath['site.infoblock']); $tpl->vars('site.infoblock', array( 'vars' => array( 'title' => $frow['title'], 'ptpl_url' => $ptpl_url, 'entries' => "<b>Ошибка!</b><br/>Не заполнено обязательное поле {$fName}"))); $template['vars']['mainblock'] = $tpl->show('site.infoblock'); return; }
как только захожу на страницу, сразу выдает ошибка - не заполнено поле линк
Вне форума
А, ясно
foreach ($fData as $fName => $fInfo) {встречается в файле два раза, надо вставить после второго
Отредактил пост выше, чтобы понятнее было
Отредактировано insider (2009-04-28 15:30:23)
Вне форума
А реально сделать, чтобы:
- при добавлении нового поля, в плагине, если поставить "Обязательно заполнить" к названию поля добавлялась (*)
- (*) ее стилем оформлять и закрывать во что то, типа [Обязательно заполнить]*[/Обязательно заполнить]
Вне форума
/engine/plugins/feedback/feedback.php
Найди
$tvars['regx']['#\[date\](.+?)\[\/date\]#is'] = ($fInfo['type'] == 'date' )?'$1':'';Добавь после
$tvars['regx']['#\[required\](.+?)\[\/required\]#is'] = $fInfo['required']?'$1':'';
$tvars['vars']['required'] = $fInfo['required']?'required':'';Тогда можно будет в site.form.row.tpl прописать что-нибудь в роде
[required]обязательно к заполнению[/required]
Либо заменить
{title}
на
<span class="{required}">{title}</span>
и уже в css сделать так (для выделения жирным)
span.required {
font-weight: bold;
}
или так (для добавления (*) после названия)
span.required:after {
content: " (*)";
}
Вне форума
Нужно еще:
1. Защита от ботов. (уже спамят)
2. Разрешить только зарегистрированным, желательно по выбору. (эта форма для всех, а эта только для зарегистрированных).
Продвигай NGCMS,
скачай статью и на свой сайт повесь.
Геленджик - лучший отдых на Черном море
Вне форума
2. Видимо эта возможность планировалась, раз даже поле в БД уже есть
/engine/plugins/feedback/config.php
#1. Найти
$mysql->select("update ".prefix."_feedback set name=".db_squote($name).", title=".db_squote($_REQUEST['title']).", template=".db_squote($_REQUEST['template']).", emails=".db_squote($_REQUEST['emails']).", description=".db_squote($_REQUEST['description']).", active=".intval($_REQUEST['active']).", flags=".intval($flags)." where id = ".$id);#1. Заменить на
$mysql->select("update ".prefix."_feedback set name=".db_squote($name).", title=".db_squote($_REQUEST['title']).", template=".db_squote($_REQUEST['template']).", emails=".db_squote($_REQUEST['emails']).", description=".db_squote($_REQUEST['description']).", active=".intval($_REQUEST['active']).", regonly=".intval($_REQUEST['regonly']).", flags=".intval($flags)." where id = ".$id);#2. Найти
'active' => $frow['active']?$lang['yesa']:$lang['noa'],#2. Добавить после
'regonly' => $frow['regonly']?$lang['yesa']:$lang['noa'],#3. Найти
$tvars['vars']['active_checked'] = ($edMode?$_REQUEST['active']:$frow['active'])?'checked="checked"':'';#3. Добавить после
$tvars['vars']['regonly_checked'] = ($edMode?$_REQUEST['regonly']:$frow['regonly'])?'checked="checked"':'';/engine/plugins/feedback/feedback.php
#4. Найти
function plugin_feedback_screen() {
global $template, $tpl, $lang, $mysql, $userROW;#4. Заменить на
function plugin_feedback_screen() {
global $template, $tpl, $lang, $mysql, $userROW, $is_logged;#5. Найти
// Prepare params
$tvars = array();
$tvars['vars']['ptpl_url'] = $ptpl_url;
$tvars['vars']['id'] = $frow['id'];
$tvars['vars']['description'] = $frow['description'];
$tvars['vars']['entries'] = $output;
$tvars['vars']['form_url'] = GetLink('plugins', array('plugin_name' => 'feedback'));#5. Добавить после
if ($frow['regonly'] && !$is_logged)
{
$tvars['regx']["'\[is-logged\](.*?)\[/is-logged\]'si"] = '';
$tvars['regx']["'\[isnt-logged\](.*?)\[/isnt-logged\]'si"] = '$1';
}
else
{
$tvars['regx']["'\[is-logged\](.*?)\[/is-logged\]'si"] = '$1';
$tvars['regx']["'\[isnt-logged\](.*?)\[/isnt-logged\]'si"] = '';
}#6. Найти
function plugin_feedback_post() {
global $template, $tpl, $lang, $mysql, $userROW;#6. Заменить на
function plugin_feedback_post() {
global $template, $tpl, $lang, $mysql, $userROW, $is_logged;#7. Найти
// Unpack form data
$fData = unserialize($frow['struct']);
if (!is_array($fData)) $fData = array();
// Scan all fields and fill data. Prepare outgoing email.
$output = '';
foreach ($fData as $fName => $fInfo) {
switch ($fInfo['type']) {
case 'date': $fieldValue = $_REQUEST[$fName.':day'] . '.' . $_REQUEST[$fName.':month'] . '.' . $_REQUEST[$fName.':year'];
break;
default: $fieldValue = $_REQUEST[$fName];
}
$output .= '['.$fName.'] '.$fInfo['title'].': '.$fieldValue."<br/>\n";
}#7. Добавить перед
if ($frow['regonly'] && !$is_logged)
{
$tpl->template('site.infoblock', $tpath['site.infoblock']);
$tpl->vars('site.infoblock', array( 'vars' => array( 'title' => $frow['title'], 'ptpl_url' => $ptpl_url, 'entries' => "You're not so cool?")));
$template['vars']['mainblock'] = $tpl->show('site.infoblock');
return;
}/engine/plugins/feedback/tpl/conf.form.hdr.tpl
#8. Найти
<tr align="left"><td class="contentRow" width="170"><b>Активна:</b></td><td><input type="checkbox" name="active" value="1" {active_checked} /></td></tr>#8. Добавить после
<tr align="left"><td class="contentRow" width="170"><b>Требуется регистрация:</b></td><td><input type="checkbox" name="regonly" value="1" {regonly_checked} /></td></tr>/engine/plugins/feedback/tpl/conf.forms.hdr.tpl
#9. Найти
<td colspan="7" width=100% class="contentHead"><img src="{skins_url}/images/nav.gif" hspace="8">Редактирование форм обратной связи</td>#9. Заменить на
<td colspan="6" width=100% class="contentHead"><img src="{skins_url}/images/nav.gif" hspace="8">Редактирование форм обратной связи</td>#10. Найти
<td class="contentHead"><b>Активна</b></td>#10. Добавить после
<td class="contentHead" width="87"><b>Требуется регистрация</b></td>/engine/plugins/feedback/tpl/conf.form.hdr.tpl
#11. Найти
<td>{active}</td>#11. Добавить после
<td>{regonly}</td>/engine/plugins/feedback/tpl/site.form.hdr.tpl
#12. Вставить в начало
[isnt-logged]
Для заполнения данной формы требуется регистрация
[/isnt-logged]
[is-logged]#12. Вставить в конец
[/is-logged]Отредактировано insider (2009-05-11 13:54:31)
Вне форума
Во-первых, спасибо insider за доработку, именно этого недоставало. Теперь почти по-взрослому. Ждём капчу для полного счастья.
Во-вторых, специально для dmitra - плагин, который у меня работает, возьми здесь или прикрепленный. Надеюсь, у тебя тоже работать будет.
Небольшой нюанс. Вопрос для insider. У меня в титуле страницы написано просто "Плагин". Как бы сделать , чтобы выводилось название формы или хотя бы просто "Обратная связь"? Я не нашёл, где исрпавить хотя бы на статичную надпись...
Отредактировано fourent (2009-05-27 15:12:08)
Вне форума
Вне форума
[ Сгенерировано за 0.041 сек, 7 запросов выполнено - Использовано памяти: 638.2 Кбайт (Пик: 691.2 Кбайт) ]