Я пытаюсь создать страницу контакта модуля magento, которая позволяет клиенту присоединять файл. Я следовал этому руководству magephsycho и создал свой собственный модуль, но я получаю пустое электронное письмо. После поиска в google я нашел этот вопрос в stackexchange и изменил IndexController.php. Теперь я получаю электронное письмо с контентом, но не приложение.
Я новичок в magento, и я не знаю, что случилось.
это мой html-код:
<form action="<?php echo $this->getFormAction(); ?>" id="contactForm" method="post" enctype="multipart/form-data">
<input name="MAX_FILE_SIZE" type="hidden" value="2000000" />
<input name="fileattachment" id="fileattachment" title="<?php echo Mage::helper('contacts')->__('FileAttachment') ?>" placeholder="<?php echo Mage::helper('contacts')->__('Upload File') ?>" value="fileattachment" class="input-text" type="file" />
Это мой config.xml, сохраненный в app/code/local/Attachment/Eattachment/etc.
<?xml version="1.0"?>
<config>
<frontend>
<routers>
<contacts>
<args>
<modules>
<Attachment_Eattachment before="Mage_Contacts">Attachment_Eattachment</Attachment_Eattachment>
</modules>
</args>
</contacts>
</routers>
</frontend>
</config>
Это код, который я заменяю в IndexController.php, который сохраняется на app/code/local/Attachment/Eattachment/controller
if(file_exists($attachmentFilePath)){
mailTemplate->getMail()->createAttachment(
file_get_contents($attachmentFilePath),
Zend_Mime::TYPE_OCTETSTREAM,
Zend_Mime::DISPOSITION_ATTACHMENT,
Zend_Mime::ENCODING_BASE64,
$fileName
);
}
Наконец, это файл config.xml, который вводит модуль в magento, сохраненный в приложении /etc/modules
<?xml version="1.0"?>
<config>
<modules>
<Attachment_Eattachment>
<active>true</active>
<codePool>local</codePool>
</Attachment_Eattachment>
</modules>
</config>
Обновление: это код из адресной электронной почты администратора
Name: {{var data.name}}
Email: {{var data.email}}
Telephone: {{var data.telephone}}
PollQuestions: {{var data.pollquestions}}
OtherSpecify: {{var data.othersSpecify}}
FileAttachment: {{var data.fileattachment}}
Comment: {{var data.comment}}
Надеюсь, я дал полезную информацию. На данный момент я не знаю, что происходит. Я не уверен, сохраню ли файл в нужном месте.
Моя проблема заключается в том, что я не получаю вложения электронной почты, отправленные на странице контакта.
Благодарю!
Прошел месяц с тех пор, как я опубликовал этот вопрос. В течение среднего времени я перехожу на другую фазу своего проекта, прежде чем решить эту проблему.
Я нашел проблему из расширения, которое я установил.
Чтобы решить эту проблему, я удалил расширение и изменил свой код
МОДИФИКАЦИЯ:
Не нужно включать поле ввода внутри страницы "Транзакционная электронная почта". Это модифицированный код.
Имя: {{var data.name}} Электронная почта: {{var data.email}} Телефон: {{var data.telephone}} PollQuestions: {{var data.pollquestions}} OtherSpecify: {{var data.othersSpecify}} Комментарий: {{var data.comment}}
Я заменяю код контроллера сверху на этот
if (file_exists ($ attachmentFilePath)) {$ fileContents = file_get_contents ($ attachmentFilePath);
$attachment = $mailTemplate->getMail()->createAttachment($fileContents);
$attachment->filename = $fileName;
}
Код работает, и теперь я могу получить вложение электронной почты.
Надеюсь, это поможет другим.