Была задача сделать список вакансий. Если зайти в вакансию, чтобы была форма с полями имя, текст сопроводительного письма и т.д. и кнопка для загрузки файла резюме, все эта информация вместе с файлом резюме должна отправляться по эл.почте, указанной где-то в админке.
Решила реализовать это на модуле Каталог материалов. Для формы и отправки по 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, там работало.
загрузка файла на сайт в модуле Каталог материалов
Стоит ли открыть форум? Напишите об этом по адресу admin@astracms.ru написав в теме "открыть форум". Я не автор движка и поэтому не могу консультировать так, как это делал бы он, но возможно у нас получится совместно находить решения.
Автор | Текст сообщения |
---|---|
Светлана |
14.07.2010 19:06
Отредактировано: 14.07.2010 19:07
|
admin |
14.07.2010 23:08
Для формы добавьте атрибут enctype="multipart/form-data".
|
Светлана |
14.07.2010 23:23
Огромное спасибо!
|
Вы не можете добавить сообщение. Вам необходимо авторизироваться на сайте под своим логином либо зарегистрироваться.