форум общения русскоязычных пользователей CMS Текстпаттерн
Вы не зашли.
Страниц: 1 2
zem_contact - плагин
Автор: Zem (Австралия)
Скачать
описание на английском
<txp:zem_contact> создает гибкую, настраиваемую форму для отправки емэйлов.
Предназначен для использования как форма для запросов на коммерческих сайтах, и включает в себя некоторые возможности,
способствующие уменьшению обычных проблем подобных форм (некорректный емэйл адрес, отсутствие информации).
Возможности:
- Любым текстовым полям могут быть определены установки проверки на корректность
(минимум/максимум/обязательность присутствия поля)
- Проверка на корректность емэйл адреса, включая проверку на правомерность MX записи (Только для Unix)
- Safe escaping of input data
- Удобный макет формы, включая <label> тэги
- Предотвращение спама
Примеры:
Простейший вариант:
<txp:zem_contact mailto="dest@example.com" />
создает форму по умолчанию, содержащую Email и поле Message.
Емэйл будет пересылаться по адресу dest@example.com, с добавлением в поле From указанного посетителем емэйла.
Обозначение полей говорит само за себя:
<txp:zem_contact mailto="dest@example.com"> <txp:zem_contact_email /><br /> <txp:zem_contact_text label="Phone" min=7 /><br /> <txp:zem_contact_textarea label="Enquiry" /><br /> <txp:zem_contact_submit label="Enquire" /> </txp:zem_contact>
В качестве альтернативы, поместите поле спецификаций в textpattern-форму, и осуществите обращение к форме следующим образом:
<txp:zem_contact mailto="dest@example.com" form="mycontactform" />
Тэг
<txp:zem_contact />
Может быть использован как self-closing или container тэг.
Поместите его туда, где вы хотите, чтобы начиналась форма ввода.
Сообщения состояния и ошибок, если таковые будут, отображаются перед формой.
Атрибуты:
• mailto – адрес назначения. Обязательный параметр.
• form – форма, содержащая макет полей. Необязательный параметр.
• mailfrom – использование заданного email адреса в поле “From:” при отправлении email.
Если атрибут не определен, будет использован email, указанный посетителем.
Если атрибут mailfrom определен, то емэйл, указываемый посетителем, помещается в поле “Reply-To:”.
• thanksform – Название формы, содержащей сообщение с благодарностью, появляющееся после завершении отправки. Необязательный параметр.
• showinput – Используйте showinput=0 для запрета отображения формы ввода. Необязательный параметр.
• showerror – Используйте showerror=0 для запрета отображения сообщений всех диагностических сообщениях. Необязательный параметр.
showinput и showerror могут быть использованы для отображения формы, сообщения об ошибке
и сообщения с благодарностью на различных частях страницы.
Например:
<div id="error"><txp:zem_contact form="contact_form" showinput=0 /></div> <div id="inputform"><txp:zem_contact form="contact_form" showerror=0 /></div>
Нижеприведенные тэги могут использоваться только внутри <txp:zem_contact> формы или container:
<txp:zem_contact_text />
Создает поле для ввода текста и соответствующий ему тэг <label>. Введенные пользователем в поля значения будут включены в емэйл,
перед ними будет указанный label.
Атрибуты:
• label – Текстовое пояснения для поля ввода, отображаемое посетителю. По умолчанию - ‘Text’.
• name – наименование поля формы ввода, которое будет использоваться в HTML-коде данной формы. По умолчанию соответствует label.
Важно! При использовании для label русского языка - данный параметр будет обязателен, HTML кириллицу не поймет.
• break – Разделитель между label и, собственно, полем ввода. По умолчанию -<br />. Используйте break='' для того чтобы label и поле вода были на одной линии.
• size – Отображаемая посетителю длина поля ввода. По умолчанию будут использоваться установки броузера.
• required – Установите required=1 для того, чтобы указать, что данное поле обязательно для ввода. В этом случае label будет отображаться жирным текстом, и форма будет выдавать сообщение об ошибке, если данное поле не заполнено. Необязательный параметр.
• min – Минимальное количество символов для ввода. Сообщение об ошибке будет сообщать, что введенное количество символов менее min. По умолчанию - 0.
• max – Максимальное количество символов для ввода. Используется для параметра maxlength в html-тэге input поля. Сообщение об ошибке не появляется, если длина превышает заданную, просто усекается при помещении в емэйл. По умолчанию - 100.
• default – Значение поля по умолчанию. Изначально default=’’.
<txp:zem_contact_email />
Поле для ввода емэйл-адреса посетителя. Введенное значение проверяется на грамматическую корректность,
т.е. на соответствие форме ‘abc@xxx.yyy[.zzz]’.
Для Unix, если доступна функция getmxrr(), будет проведена проверка на присутствие A или MX записи для домена.
Атрибуты те же самые, что и для <txp:zem_contact_text />, за исключением того,
что label по умолчанию ‘Email’, и required=1.
<txp:zem_contact_select />
Создает список в выпадающем меню. Атрибуты подобны атрибутам <txp:zem_contact_text />, с некоторыми дополнениями:
• list – Разделенный запятыми список пунктов выпадающего меню; т.е. “Sales,Support,Accounts”.
• delim – Разделитель, используемый для определения пунктов в предыдущем атрибуте list. По умолчанию - ”,”
• selected – Пункт выпадающего меню, «выбранный» по умолчанию; например “Support”. По умолчанию - “”.
min и max игнорируются. Если используется required, не принимается пустой пункт меню.
Используйте <txp:zem_contact_select list=",Sales,Support" required=1 /> для создания первого пункта меню пустым
и необходимости выбора перед посетителем между Sales или Support.
<txp:zem_contact_checkbox />
Создает html-тэг checkbox. Атрибуты аналогичны <txp:zem_contact_text />, исключая min и max, которые игнорируются.
• checked – Установите checked=1 для отображения посетителю уже отмеченного галочкой checkbox-а. По умолчанию - 0.
Если используется атрибут required, форма не осуществит отправку письма пока checkbox пустой.
Например <txp:zem_contact_checkbox label="I accept the terms and conditions" required=1 /> создает напоминание о пользовательских соглашениях.
<txp:zem_contact_textarea />
Поле для описания html-тэга textarea. Поддерживаются те же самые атрибуты, что и в <txp:zem_content_text />, за исключением size.
По умолчанию label определен как ‘Message’, и max по умолчанию - 10000.
Дополнительные атрибуты:
• cols – ширина поля. По умолчанию - 50.
• rows – количество срок, высота. По умолчанию - 6.
<txp:zem_contact_submit />
Кнопка отправки. Атрибуты:
• label – Текст на кнопке. По умолчанию- ‘Send’.
<txp:zem_contact_serverinfo />
Этот тэг никак не проявляется в HTML-коде, но будет включать дополнительную информацию,
на основе PHP $_SERVER переменных, в отправляемый емэйл.
Например, <txp:zem_contact_serverinfo name="REMOTE_ADDR" label="IP" /> будет сообщать IP адрес посетителя.
Атрибуты:
• name – наименование серверной переменной, т.е. REQUEST_URI, HTTP_USER_AGENT.
Смотрите в руководстве по PHP полный список переменных. Параметр обязателен.
• label – если указывается – будет использован для идентификации поля в емэйле. Необязательный параметр.
----------------------------------------------------------------------------------------------------------------------------------------------
замечания и вопросы по переводу рассматриваются - здесь
Отредактированно Evgeny (07-05-2005 18:21:39)
Неактивен
Подскажите пожалуйста как отключить проверку емайла на валидность??
При отправке письма плагин выдает ошибку, (у меня внутрисетевой е-mail @b-metro.net)
И плагин пишет что домен b-metro.net не валиден ((
Обидно прямо )) Тем более что письма отправляет...
Неактивен
у меня вообще при введении либого мыла выдаёт ошибку , паттерн боследний билд
Отредактированно Riff (01-08-2005 23:30:52)
Неактивен
Пробую использовать zem_contact и zem_contact_reborn на локале - постоянно идут ошибки.
А конкретно:
в zem_contact - пробую <txp:zem_content_text />и <txp:zem_contact_checkbox /> - отправляет, но в письме поле вообще не указывается (т.е. нет результатов заполнения) а чекбоксы всё прописываются "No" независимо от того были они выбраны или нет.
в zem_contact_reborn ставлю те же самые команды (с учётом особенностей синтаксиса этого плагина естественно) - вообще ничего не отправляется, пишет что поля не заполнены.
В чём может быть причина?
Все версии плагинов и ТХР последние...
upd: хе... похоже проблема с кодировкой: когда называю поле "City" - всё отправляется, если ставлю лейблом "Город" - в письмо поле вообще не включается.
Как быть? Где копать?
Отредактированно Denny (23-01-2006 20:35:04)
Неактивен
Угу, разобрался уже... Теперь другая проблема: если какое-то поле неверно заполнено - страница, соответственно, выдаёт сообщение, но вот данные в заполненных полях вылезают в другой кодировке, т.е. крякозябликами, и приходится править опять все поля.
Неактивен
Вроде где-то на форуме я об этом писал... но сейчас найти не смог.
Я правил версию 0.6.
Изменения:
закомментировал строку 93 (уже и не помню зачем, надо зачем-то)
# $default = ($default ? 'value="'.$default.'"' : '');
поправил вывод инпутов и текстарии (убрал htmlentities) (стр 110, 139)
#110: '<input type="text" name="'.$name.'" id="'.$name.'" value="'.htmlentities($v).'" '.$size.' '.$maxlength.' />';
'<input type="text" name="'.$name.'" id="'.$name.'" value="'.$v.'" '.$size.' '.$maxlength.' />';
#139: '<'.'textarea name="'.$name.'" id="'.$name.'" rows="'.$rows.'" cols="'.$cols.'">'.htmlentities($v).'<'.'/textarea>';
'<'.'textarea name="'.$name.'" id="'.$name.'" rows="'.$rows.'" cols="'.$cols.'">'.$v.'<'.'/textarea>';
Ну и поправил вывод об ошибках, чтоб на нашем ругался.
Вот, вроде это помогало.
Неактивен
сейчас правильнее использовать zem_contact_reborn - он стал поддерживаться сообществом, а не отдельным автором. Изменяется, он, кстати - очень часто. Пытаются сейчас сделать его полностью универсальным.
Кстати - никто не поделится переводом function zem_contact_gTxt ?
Неактивен
давай английский текст, переведу
Неактивен
право, не ловко беспокоить такими пустяками, Глеб, ты и так сильно занят.
Надеялся, кто уже переводил, и готовый перевод есть.
Из вчерашней версии zem_contact_reborn v.4.0.3.10:
function zem_contact_gTxt($what, $var1 = '', $var2 = '') { $lang = array( 'checkbox' => 'Checkbox', 'contact' => 'Contact', 'email' => 'Email', 'email_subject' => "$var1 > Inquiry", 'email_thanks' => 'Thank you, your message has been sent.', 'field_missing' => "Required field, “<strong>$var1</strong>”, is missing.", 'form_expired' => 'The form has expired, please try again.', 'general_inquiry' => 'General inquiry', 'invalid_email' => "“<strong>$var1</strong>” is not a valid email address.", 'invalid_host' => "“<strong>$var1</strong>” is not a valid email host.", 'invalid_value' => "Invalid value for “<strong>$var1</strong>”, “<strong>$var2</strong>” is not one of the available options.", 'mail_sorry' => 'Sorry, unable to send email.', 'message' => 'Message', 'min_warning' => "“<strong>$var1</strong>” must contain at least $var2 characters.", 'option' => 'Option', 'receiver' => 'Receiver', 'send' => 'Send', 'text' => 'Text', 'to' => 'No “<strong>to</strong>” email address specified.', 'to_missing' => '“<strong>To</strong>” address is missing.' ); return $lang[$what]; }
Неактивен
Я прям не понимаю, когда ты всерьез, когда иронизируешь )
Видимо, придется по одной фразе "перевклеивать", форум кавычки покоца, да и я мог что-то лишнее снести.
function zem_contact_gTxt($what, $var1 = '', $var2 = '')
{
$lang = array(
'checkbox' => 'Чекбокс',
'contact' => 'Контакт',
'email' => 'Электропочта',
'email_subject' => "$var1 > Inquiry",
'email_thanks' => 'Ваше сообщение отослано, спасибо.',
'field_missing' => "Незаполнено обязательное к заполнению поле “<strong>$var1</strong>”!",
'form_expired' => 'Прошло слишком много времени, попробуйте повторить.',
'general_inquiry' => 'Основной запрос', //(? контекст ?)
'invalid_email' => "“<strong>$var1</strong>” не является адресом электропочты!",
'invalid_host' => "“<strong>$var1</strong>” не является почтовым сервером.",
'invalid_value' => " “<strong>$var1</strong>”, “<strong>$var2</strong>” -- недопустимое значение.",
'mail_sorry' => 'Извините, сообщение не может быть остослано.',
'message' => 'Сообщение',
'min_warning' => "“<strong>$var1</strong>” поле должно содержать как минимум $var2 символ(ов).",
'option' => 'Опция',
'receiver' => 'Получатель',
'send' => 'Послать',
'text' => 'Текст',
'to' => 'Не введен “<strong>to</strong>” адрес электропочты.',
'to_missing' => '“<strong>To</strong>” адрес не введен.'
);
return $lang[$what];
}
Отредактированно glebotr (25-01-2006 11:41:30)
Неактивен
А над кодировкой почты мы не властны. У меня все работает, но почта приходит нечитабельная. Что можно предпринять?
...................
Добавлено после того, как я решил проблему. В код плагина вставил функцию iconv() для конвертирования строк utf-8 в windows-1251 (само сообщение) и в koi8-r для заголовка. Теперь почта приходит в нормальном виде.
Если заинтересует, могу более подробно описать. В качестве обмена опытом хотелось бы знать, как другие решали эту проблему.
Отредактированно Alexdamo (29-04-2006 19:18:45)
Неактивен
Alexdamo написал:
Что можно предпринять?
Неактивен
Nicck написал:
зашибись. избавляемся от utf-8 и используем разные кодировки для заголовка и тела письма...
per anus ad astra
То есть это некорректно, да? А что корректно?
Правда, я перекодировку уже закомментировал в плагине.
При получении почты клиентом Outlook тело письма приходит в нормальном виде. Заголовок чудит, но об этом писали, как я вижу. Пытался только заголовок перекодировать, не нашел однако, в какую кодировку.
Тогда просто вставил заголовок в начало тела письма, в котором он приходит в нормальном виде. Что-то вроде
$msg = "Subject:\n".$subject."\n".$msg;
Неактивен
Alexdamo написал:
Пытался только заголовок перекодировать, не нашел однако, в какую кодировку.
По ссылке, приведенной выше, приводится решение, перекодирующее заголовок с латинницу.
Неактивен
при попытке отправить емаил через форму
появляется ошибка "Unable to send email"
что делать? где копать?
Неактивен
Vaal написал:
при попытке отправить емаил через форму
появляется ошибка "Unable to send email"
что делать? где копать?
Начать с хостера, проверить конфигурацию sendmail, убедиться, что из других скриптов она вызывается.
Неактивен
А как сделать форму, чтобы вылезала картинка с буковками или еще чем -- проверка на роботов? Или хотя бы с ограничением на отсылку с одного Ip?
(Смысл в том, что поля e-mail -- не будет!)
Отредактированно glebotr (19-12-2006 12:38:07)
Неактивен
Народ, так есть zem_contact_reborn который русскую кодировку в теле письма понимает или нет?
Я еще в txp-компании видел плагин zem_contact_reborn_rus. Его где-нить скачать можно?
Неактивен
muyr написал:
в txp-компании видел плагин zem_contact_reborn_rus. Его где-нить скачать можно?
Там rus обозначало, что при отображении плагина диагностика отображалась не на английском, а на русском языке.
В какой версии ТхП у тебя проблемы с отображением русских букв в теле письма?
Неактивен
Textpattern version: 4.0.3 (r1188)
Неактивен
Работало все нормульно..
Решил сменить сообщение, выдающееся после отправки сообщения - теперь все служебные надписи в виде вопросиков ??????? ?? ????
Как вернуть назад? или поправить кодировку?
Неактивен
Переустановить?
Неактивен
bons написал:
Переустановить?
ну да... переустановил, но вопросики все равно остались, хотя фразу другую все-таки вставил
Неактивен
Страниц: 1 2