Вопросы-Ответы

3244
Недавно залез в админку и сильно охренел от накопившихся вопросов в FAQ
Срочно сделал заплатку, чтобы сайт отправлял письма об оставленных вопросах сразу же админу
У вас на хостинге должна быть возможность отправлять письма средствами PHP
собственно сама заплатка в архиве и как её правильно применить написано у меня на зУхернице

Менее подробно без объяснений выложу тут:

/components/faq/frontend.php

Код PHP:
function faq(){
	/****************************************************************************************/
	$subject= "Появился вопрос на твоём сайте"; //поле тема сообщения
        $label_name="MY FAQ";// поле от кого письмо
        $sitemail=""; // мыло от имени которого полетит письмо
        $email=""; // адрес куда полетит мессага
	/***************************************************************************************/

//SAVE QUESTION
		$sql = "INSERT INTO cms_faq_quests (category_id, pubdate, published, quest, answer, user_id, answeruser_id, answerdate, hits)
				VALUES ('$category_id', NOW(), '$published', '$message', '', '{$inUser->id}', 0, NOW(), 0)";
		$inDB->query($sql);
		
		$quest_id = $inDB->get_last_id('cms_faq_quests');
						/* ОТПРАВЛЯЕМ ПИСЬМО АДМИНУ */
						 $message="Здравствуй!\r\nНа сайте http://$_SERVER[SERVER_NAME] появился вопрос:\r\n$message";// сообщение
                         $message=str_replace("\r\n\r\n","\r\n",$message);
                         $message=convert_cyr_string($message,"w","k");
                         $subject=convert_cyr_string($subject,"w","k");
                         $label_name= convert_cyr_string($label_name,"w","k");
                         $point=str_replace("www","",$_SERVER['SERVER_NAME']);
                         $headers= "From: $label_name<$sitemail>\r\n";
                         mail("$email", $subject, $message,$headers);


PS: Кстати, Уовка, примите к следующему релизу laugh

Карта сайта | Теряем друга. Нужна помощь.
Комментарии (23)
Захар 10 апреля 2012 в 11:59 +5
Какое то тело сразу минусануло - это уже исправлено? так и напишите )))
Хотел помочь от чистого сердца
Алексей 10 апреля 2012 в 12:09 -10
На этом сайте все тролли можете ожидать от них чего угодно
Avert 10 апреля 2012 в 12:36 +5
Так что же вы на этом сайте троллям свой недосайт пытаетесь втюхнуть?
Алексей 10 апреля 2012 в 13:11 -5
Ты один из них
maia 10 апреля 2012 в 12:35 +1
Очень полезная штука. А это на старых версиях - 1,6, например, работать будет?
Захар 10 апреля 2012 в 15:36 +1
По идее должно работать - не берусь утверждать но компонент FAQ не менялся аж с 1.5 версии
vpugachev 10 апреля 2012 в 13:12 +1
Да вещь очень нужная, толь хотелось бы что бы в релизе она появилась не в виде отправления письма на почту а в виде соответствующего сообщения в админке.
letsgo 10 апреля 2012 в 13:13 -1
Хорошая вещь. Спасибо Захар. Бывает кинешься а там вопросов столько, да уже времени прошло недели две.
bondar 10 апреля 2012 в 13:18 +1
такое еще бы для доски)
Захар 10 апреля 2012 в 15:37 +1
Сегодня прилеплю и для доски )))
Только вот у меня она нихрена не работает ))) После обновления
Захар 10 апреля 2012 в 16:24 +1
Готово !!! Для доски заплатка и инструкции там же
bondar 10 апреля 2012 в 17:03 0
аеееееееееее крутотень)) спасибо
reload 10 апреля 2012 в 13:43 +1
Недавно залез в админку и сильно охренел от накопившихся вопросов в FAQ
))
Спасибо за решение +
Hmelex 10 апреля 2012 в 15:22 +3
Тоже ЗА внедрение данной фитчи в новый релиз.
Или хотя бы был где нибуть блок с галочкой:
Отправлять новые вопросы на почту - ДА/НЕТ
виталя 10 апреля 2012 в 17:35 0
Спасибо!! Вещь нужная! И за доску спасибо, тоже думаю пригодится...
lezginka.ru 10 апреля 2012 в 19:18 +2
+ за заплатку
+ что не забываешь нас :)
nikolas 10 апреля 2012 в 21:35 +1
нужная вещь+
Макс Колосков 10 апреля 2012 в 22:28 0
+ всегда стараешься не забыть посмотреть есть ли новые вопросы в FAQ это решение кстати. спасибо
IRATE 11 апреля 2012 в 12:13 0
Что-то у меня иероглифами письма приходят. Кодировку отправляемых в настройках почты на кириллицу менял (по умолчанию UTF). С ящика на ящик русский текст доходит нормально. Уведомления с сайта на русском доходят нормально, только из FAQ такое. Не подскажите в чем дело? Спасибо!
Захар 15 апреля 2012 в 23:54 0
Попробуйте после строчки :
Код PHP:
$headers= "From: $label_name<$sitemail>\r\n";
Добавить :
Код PHP:
$headers.="Content-type: text/plain; charset=\"windows-1251\""; // или UTF8 смотря что Вам предпочтительнее
Принудительно кодировку воткнуть, может быть поможет
IRATE 16 апреля 2012 в 20:42 0
Спасибо за ответ, но:
1251ъДТБЧУФЧХК!
оБ УБКФЕ http://basht.org РПСЧЙМУС ЧПРТПУ:
фЕУФПЧЩК ЧПРТПУ,
UTF-8&#65533;&#65533;&#65533;&#65533;&#65533;&#65533;&#65533;&#65533;&#65533;&#65533;!
&#65533;&#65533; &#65533;&#65533;&#65533;&#65533;&#65533; http://basht.org &#65533;&#65533;&#65533;&#65533;&#65533;&#65533;&#65533;&#65533; &#65533;&#65533;&#65533;&#65533;&#65533;&#65533;:
&#65533;&#65533;&#65533;&#65533;&#65533;&#65533;&#65533;&#65533; &#65533;&#65533;&#65533;&#65533;&#65533;&#65533; &#65533;2.
Смущает это: charset=\"windows-1251\"";. Я, конечно, не спец, но как-то странно перед кодировкой есть апостроф, а после нет.
Захар 22 апреля 2012 в 23:28 0
Апострофами экранируются кавычки...
Попробуйте указывать кодировку в двух местах заголовка, чтобы письма были универсальными для всех почтовых программ (не все почтовики воспринимают письма одинаково)
Например заголовок письма сделайте таким:
Код PHP:
$header="Content-type: text/html; charset=\"windows-1251\"";
$header.="From: $label_name<[email protected]>";
$header.="Subject: ".$subject;
$header.="Content-type: text/html; charset=\"windows-1251\"";
mail("$email", $subject, $message,$header);
Так письмо будет отправлено 100% определяемо для любых почтовиков
Nemoi 29 апреля 2013 в 09:35 0
спасибо, очень помог!
тоже была проблема с кодировкой, немного исправил:

закомментировал это:
$message=convert_cyr_string($message,"w","k");
$subject=convert_cyr_string($subject,"w","k");
$label_name= convert_cyr_string($label_name,"w","k");

и добавил utf-8:
$headers="Content-type: text/plain; charset=utf-8 \r\n";
$headers.= "From: $label_name<$sitemail>\r\n";

может кому пригодится :)