Astra.CMS

РегистрацияЗабыли пароль?

Astra.CMS Free

Упрощенный вариант системы доступен для свободного использования.

скачать
     

Обучение

Сборка сайта

Собираем сайт с нужными компонентами.

Интеграция своего дизайна

Учимся работать с шаблонами.

Компоненты

Документация по использованию основных расширений.

21.09.2010

Версия 2.07.04

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

подробнее

RSS

Форум » Приемы конструирования и интеграции дизайна

загрузка файла на сайт в модуле Каталог материалов

Автор Текст сообщения

Светлана
Сообщений: 38

Была задача сделать список вакансий. Если зайти в вакансию, чтобы была форма с полями имя, текст сопроводительного письма и т.д. и кнопка для загрузки файла резюме, все эта информация вместе с файлом резюме должна отправляться по эл.почте, указанной где-то в админке.

Решила реализовать это на модуле Каталог материалов. Для формы и отправки по email использовала механизм работы Комментирования в каталоге материалов.
Не получается только приаттачить файл.

В шаблоне catalog_page прописала
<input type="hidden" name="MAX_FILE_SIZE" value="2000000">
<input type="file" name="filename" id="id_file">  

В catalog.php:

  function AddComment()
  {
if(!getAccess("comment"))
return false;

if(empty($_REQUEST['captcha']) || md5(strtolower($_REQUEST['captcha']))!=A_Session::get('captcha'))
{ $this->errors['captcha']=true;
  return false;
}
A_Session::unregister('captcha');

    $data=array();
    $data['date']=time();
$data['idsec']=SECTION_ID;
$data['iduser']=A::$AUTH->id;
$data['iditem']=$this->iditem;
$data['name']=strip_tags($_REQUEST['name']);
    $data['bbcode']=$_REQUEST['message'];
    $data['message']=parse_bbcode($data['bbcode']);
    $data['active']=A::$OPTIONS['cactive']?'N':'Y';

if(empty($data['name']) || empty($data['message']))
return false;

    if($id=A::$DB->Insert(DOMAIN."_comments",$data))
{
  $count=A::$DB->getCount(DOMAIN."_comments","idsec=".SECTION_ID." AND iditem={$this->iditem}");
  A::$DB->execute("UPDATE ".SECTION."_catalog SET comments={$count} WHERE id={$this->iditem}");

  $link=catalog_createItemLink($this->iditem,SECTION);

  if(!empty(A::$OPTIONS['cemail']))
  { if(!empty(A::$OPTIONS['commenttpl']))
{ $item=A::$DB->getRowById($this->iditem,SECTION."_catalog");
      $item['link']="http://".getenv('HTTP_HOST').$link;
      $mail = new A_Mail(A::$OPTIONS['commenttpl'],"html");
  $mail->Assign("item",$item);
  $mail->Assign("comment",$data);
                
                
                $fpath = $_FILES['filename']['tmp_name'];
                $fname = $_FILES['filename']['name'];
                $fname = $this->rus2translit($_FILES['filename']['name']);
                $mail->addAttachment($fpath,$fname,$_FILES['filename']['type']);
            
                $mail->setFrom($_REQUEST['name'],$_REQUEST['name']);

              $mail->send(A::$OPTIONS['cemail']);
}
  }

  if(A::$OPTIONS['cactive'])
  A::goUrl($link.'?newcomment=1');
  else
  A::goUrl($link);
}
else
return false;
  }


В режиме отладки выдается ошибка:
Notice: Undefined index: filename in /home/zscc/mp72.ru/docs/modules/catalog/catalog.php  on line 178

Notice: Undefined index: filename in /home/zscc/mp72.ru/docs/modules/catalog/catalog.php on line 179

Notice: Undefined index: filename in /home/zscc/mp72.ru/docs/modules/catalog/catalog.php on line 180

Notice: Undefined index: filename in /home/zscc/mp72.ru/docs/modules/catalog/catalog.php on line 181


Вот страница на сайте, где все это используется:

http://mp72.ru/vakansii/trebuetsya_veduschiy_inzhener_proektirovschik_s_opytom_raboty_ot_5_let.html

Помогите, пожалуйста, приаттачить файл.

Такой же механизм уже делала в модуле pages, там работало.
 
aristoc

admin
Сообщений: 334

Для формы добавьте атрибут enctype="multipart/form-data".
 

Светлана
Сообщений: 38

Огромное спасибо!
 

Вы не можете добавить сообщение. Вам необходимо авторизироваться на сайте под своим логином либо зарегистрироваться.


  

Демо  Скачать A.CMS  Цены  Контакты  Документация