Новости Joomla

0 Пользователей и 1 Гость просматривают эту тему.
  • 12 Ответов
  • 1824 Просмотров
*

Katya_Lar

  • Захожу иногда
  • 95
  • 0 / 0
Письмо админу в файле
« : 17.12.2014, 14:48:22 »
Привет!
Надо сделать, чтоб заполненная форма приходила не в теле письма, а в файле, например в txt.
*

Katya_Lar

  • Захожу иногда
  • 95
  • 0 / 0
Re: Письмо админу в файле
« Ответ #1 : 19.12.2014, 18:50:31 »
Есть у кого идеи, как этореализовать.
Надо выгружать форму в 1C. Для этого заполненную форму в файл обернуть.
HELP!
*

robert

  • Живу я здесь
  • 4974
  • 457 / 20
Re: Письмо админу в файле
« Ответ #2 : 19.12.2014, 18:59:15 »
RSForm не пользуюсь, не знаю, что там намудрили. В принципе это совсем не сложно. Какие поля и сколько их?
Не будь паразитом, сделай что-нибудь самостоятельно!
*

Katya_Lar

  • Захожу иногда
  • 95
  • 0 / 0
Re: Письмо админу в файле
« Ответ #3 : 20.12.2014, 09:08:54 »
RSForm не пользуюсь, не знаю, что там намудрили. В принципе это совсем не сложно. Какие поля и сколько их?
input, textarea, chekbox
http://prntscr.com/5iurn0
*

robert

  • Живу я здесь
  • 4974
  • 457 / 20
Re: Письмо админу в файле
« Ответ #4 : 21.12.2014, 20:59:42 »
Перенаправляйте форму на другую страницу-обработчик, где данные формы переписываются в текстовый файл. Пример скрипта:
Код: php-brief
$post=JFactory::getApplication()->input->post->getArray();//для Joomla 2.5: $post=JRequest::get('post');
$file=JPATH_BASE.'/tmp/'.JFactory::getSession()->getId().'.txt';
$txt='';
foreach($post as $k=>$v){
$txt.=$k.': '.$v."\r\n";
}
if(JFile::write($file,$txt)){
//с помощью JMail прикрепляем файл и отправляем письмо
}
Не будь паразитом, сделай что-нибудь самостоятельно!
*

Fedor Vlasenko

  • Живу я здесь
  • 3845
  • 733 / 7
  • https://fedor-vlasenko.web.app
Re: Письмо админу в файле
« Ответ #5 : 21.12.2014, 21:14:56 »
Код: php-brief
foreach($post as $k=>$v){
$txt.=$k.': '.$v."\r\n";
}

лишнее
Код: php-brief
file_put_contents($file, serialize($_POST));
*

Katya_Lar

  • Захожу иногда
  • 95
  • 0 / 0
Re: Письмо админу в файле
« Ответ #6 : 22.12.2014, 11:04:38 »
Перенаправляйте форму на другую страницу-обработчик, где данные формы переписываются в текстовый файл. Пример скрипта:
Код: php-brief
$post=JFactory::getApplication()->input->post->getArray();//для Joomla 2.5: $post=JRequest::get('post');
$file=JPATH_BASE.'/tmp/'.JFactory::getSession()->getId().'.txt';
$txt='';
foreach($post as $k=>$v){
$txt.=$k.': '.$v."\r\n";
}

Куда вставлять этот код? в PHP Email Scripts или PHP Scripts?
« Последнее редактирование: 22.12.2014, 15:14:13 от Katya_Lar »
*

Katya_Lar

  • Захожу иногда
  • 95
  • 0 / 0
Re: Письмо админу в файле
« Ответ #7 : 22.12.2014, 16:19:12 »
Код: php-brief
foreach($post as $k=>$v){
$txt.=$k.': '.$v."\r\n";
}

лишнее
Код: php-brief
file_put_contents($file, serialize($_POST));

Не поняла, как строчка лишняя?
*

Fedor Vlasenko

  • Живу я здесь
  • 3845
  • 733 / 7
  • https://fedor-vlasenko.web.app
Re: Письмо админу в файле
« Ответ #8 : 23.12.2014, 00:50:19 »
Katya_Lar, то т код который я показал сохраняет в текстовый файл сериализованные данные глобального массива $_POST
и вам наверное не подойдет, так как ответ также-придется обрабатывать с помощью
Код: php-brief
 unserialize()
robert, а можно и так наверное
Код: php-brief
file_put_contents($file, print_r($_POST, true));
^-^
*

Katya_Lar

  • Захожу иногда
  • 95
  • 0 / 0
Re: Письмо админу в файле
« Ответ #9 : 23.12.2014, 08:15:36 »
Katya_Lar, то т код который я показал сохраняет в текстовый файл сериализованные данные глобального массива $_POST
и вам наверное не подойдет, так как ответ также-придется обрабатывать с помощью
Код: php-brief
 unserialize()
robert, а можно и так наверное
Код: php-brief
file_put_contents($file, print_r($_POST, true));
^-^
Fedor Vlasenko,
код получился такой:
$post=JRequest::get('post');
$file=JPATH_BASE.'/tmp/'.JFactory::getSession()->getId().'.txt';
$txt='form';

if(JFile::write($file,$txt)){
   file_put_contents($file, print_r($_POST, true));
}
 

Файл не прикрепляется в письме к админу. Выгружается в папку /tmp/ в виде

Array
(
    [form] => Array
        (
            [form1] => Катя
            [form5] => 4507 123456
            [form10] => овд москва
            [form11] => бибирево
            [form9] => 1242141
            [form12] => 12414141
            [form13] => 12414
            [form14] => 14124
            [form16] => 12,03,2004
            [form15] => Array
                (
                    
  • => Хранение криоконсервированного биоматериала в течение 3 месяцев (3 000 руб.)
  • [1] => Хранение криоконсервированного биоматериала в течение 6 месяцев (6 000 руб.)
                        [2] => Хранение криоконсервированного биоматериала в течение 1 года (10 000 руб)
                    )

                
[form07] =>
            [form2] => stariidrug@list.ru
            [form4] => +79265498701
            [form8] => 60
             => отправить »
            [formId] => 18
        )

    [view] => article
    [option] => com_content
)

Как сделать, чтоб:
1. файл прикреплялся к письму?
2. вместо  [form2] и т.п. были наименования полей?
« Последнее редактирование: 23.12.2014, 08:29:30 от Katya_Lar »
*

robert

  • Живу я здесь
  • 4974
  • 457 / 20
Re: Письмо админу в файле
« Ответ #10 : 23.12.2014, 09:53:48 »
Ладно, так и быть, раз уже ввязался. В action своей формы (в конструкторе, по идее, должно быть такое поле) впишите:
Код: php-brief
/sendattachment.php
В корневой папке создайте sendattachment.php с таким содержанием:
Спойлер
[свернуть]
Если будете дальше обрабатывать прикр.файл, то лучше использовать подсказку Федора, тогда и Jfile не нужно вызывать. Если же будете вбивать в 1С вручную, то оставьте мою версию, так лучше читаться будет :). А вообще, я бы сохранил в XML или csv, чтобы сразу можно было импортировать в 1С.
Не будь паразитом, сделай что-нибудь самостоятельно!
*

Katya_Lar

  • Захожу иногда
  • 95
  • 0 / 0
Re: Письмо админу в файле
« Ответ #11 : 23.12.2014, 14:52:27 »
Ладно, так и быть, раз уже ввязался. В action своей формы (в конструкторе, по идее, должно быть такое поле) впишите:
Код: php-brief
/sendattachment.php
В корневой папке создайте sendattachment.php с таким содержанием:
Спойлер
[свернуть]
Если будете дальше обрабатывать прикр.файл, то лучше использовать подсказку Федора, тогда и Jfile не нужно вызывать. Если же будете вбивать в 1С вручную, то оставьте мою версию, так лучше читаться будет :). А вообще, я бы сохранил в XML или csv, чтобы сразу можно было импортировать в 1С.
Спасибо!
Приходит файл с таком содержимым: form: Array
*

robert

  • Живу я здесь
  • 4974
  • 457 / 20
Re: Письмо админу в файле
« Ответ #12 : 23.12.2014, 15:23:44 »
Не используйте решения от Федора:
- вы неправильно заменяли код,
- оно все равно вам не пригодится.
Не будь паразитом, сделай что-нибудь самостоятельно!
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться