日韩久久久精品,亚洲精品久久久久久久久久久,亚洲欧美一区二区三区国产精品 ,一区二区福利

magento 添加上傳功能 Adding upload field in

系統(tǒng) 2636 0

Introduction

Nowadays most of the clients wants extra fields in contacts form of magento to fulfill their requirements. And adding custom fields other than upload field (for example: text, textarea, select etc) in contact form are easy in the sense you can easily include the field values in contact email template.
But adding upload field can be trickier as you have to process the file upload operation and attach it with your email contents.


Steps

1. Modify the contact form template
You need to modify the contact form template file: app/design/frontend/[your-interface]/[your-theme]/template/contacts/form.phtml:


a> Add enctype=”multipart/form-data” in <form> element as:

    <form action="<?php echo $this->getFormAction(); ?>" id="contactForm" method="post" enctype="multipart/form-data">
  

?

b> Add file upload field below ‘Comment’ field (or anywhere you want) as:

    <li>
    <label for="attachment"><?php echo Mage::helper('contacts')->__('Attachment') ?></label>
    <div class="input-box">
        <input name="MAX_FILE_SIZE" type="hidden" value="2000000" />
        <input name="attachment" id="attachment" class="input-text" type="file" />
    </div>
</li>
  
?

2. Create controller class for processing file upload

Next step is to override the Mage_Contacts_IndexController class.
For this you need to create a custom module. For tutorial purpose I am assuming Namespace to be ‘MagePsycho’ and Module to be ‘Customcontact’.

?

a> Add xml override code in your module’s config.xml as:

    <frontend>
    <routers>
        <contacts>
            <args>
                <modules>
                    <magepsycho_customcontact before="Mage_Contacts">MagePsycho_Customcontact</magepsycho_customcontact>
                </modules>
            </args>
        </contacts>
    </routers>
</frontend>
  

?

b> Create your custom controller
Create controller file in your module dir as: app/code/local/MagePsycho/Customcontact/controllers/IndexController.php
and copy the following code:

    <?php
require_once Mage::getModuleDir('controllers', 'Mage_Contacts') . DS . 'IndexController.php';
class MagePsycho_Contactspro_IndexController extends Mage_Contacts_IndexController
{
    public function postAction()
    {
        $post = $this->getRequest()->getPost();
        if ( $post ) {
            $translate = Mage::getSingleton('core/translate');
            /* @var $translate Mage_Core_Model_Translate */
            $translate->setTranslateInline(false);
            try {
                $postObject = new Varien_Object();
                $postObject->setData($post);
 
                $error = false;
 
                if (!Zend_Validate::is(trim($post['name']) , 'NotEmpty')) {
                    $error = true;
                }
 
                if (!Zend_Validate::is(trim($post['comment']) , 'NotEmpty')) {
                    $error = true;
                }
 
                if (!Zend_Validate::is(trim($post['email']), 'EmailAddress')) {
                    $error = true;
                }
 
                if (Zend_Validate::is(trim($post['hideit']), 'NotEmpty')) {
                    $error = true;
                }
 
                /**************************************************************/
                $fileName = '';
                if (isset($_FILES['attachment']['name']) && $_FILES['attachment']['name'] != '') {
                    try {
                        $fileName       = $_FILES['attachment']['name'];
                        $fileExt        = strtolower(substr(strrchr($fileName, ".") ,1));
                        $fileNamewoe    = rtrim($fileName, $fileExt);
                        $fileName       = preg_replace('/\s+', '', $fileNamewoe) . time() . '.' . $fileExt;
 
                        $uploader       = new Varien_File_Uploader('attachment');
                        $uploader->setAllowedExtensions(array('doc', 'docx','pdf'));
                        $uploader->setAllowRenameFiles(false);
                        $uploader->setFilesDispersion(false);
                        $path = Mage::getBaseDir('media') . DS . 'contacts';
                        if(!is_dir($path)){
                            mkdir($path, 0777, true);
                        }
                        $uploader->save($path . DS, $fileName );
 
                    } catch (Exception $e) {
                        $error = true;
                    }
                }
                /**************************************************************/
 
                if ($error) {
                    throw new Exception();
                }
                $mailTemplate = Mage::getModel('core/email_template');
                /* @var $mailTemplate Mage_Core_Model_Email_Template */
 
                /**************************************************************/
                //sending file as attachment
                $attachmentFilePath = Mage::getBaseDir('media'). DS . 'contacts' . DS . $fileName;
                if(file_exists($attachmentFilePath)){
                    $fileContents = file_get_contents($attachmentFilePath);
                    $attachment   = $mailTemplate->getMail()->createAttachment($fileContents);
                    $attachment->filename = $fileName;
                }
                /**************************************************************/
 
                $mailTemplate->setDesignConfig(array('area' => 'frontend'))
                    ->setReplyTo($post['email'])
                    ->sendTransactional(
                        Mage::getStoreConfig(self::XML_PATH_EMAIL_TEMPLATE),
                        Mage::getStoreConfig(self::XML_PATH_EMAIL_SENDER),
                        Mage::getStoreConfig(self::XML_PATH_EMAIL_RECIPIENT),
                        null,
                        array('data' => $postObject)
                    );
 
                if (!$mailTemplate->getSentSuccess()) {
                    throw new Exception();
                }
 
                $translate->setTranslateInline(true);
 
                Mage::getSingleton('customer/session')->addSuccess(Mage::helper('contacts')->__('Your inquiry was submitted and will be responded to as soon as possible. Thank you for contacting us.'));
                $this->_redirect('*/*/');
 
                return;
            } catch (Exception $e) {
                $translate->setTranslateInline(true);
 
                Mage::getSingleton('customer/session')->addError(Mage::helper('contacts')->__('Unable to submit your request. Please, try again later'));
                $this->_redirect('*/*/');
                return;
            }
 
        } else {
            $this->_redirect('*/*/');
        }
    }
}
  
?

3> There you go.
Try to attach file and submit the contact form, you will get that file as attachment in contact email.

?

[Snapshots]

magento 添加上傳功能 Adding upload field in contact form and send as attachment

Default Contact Form

?

?

magento 添加上傳功能 Adding upload field in contact form and send as attachment

Contact Form With Upload Field

?

?

Hope this helps you.
Happy E-Commerce!

?

來源: http://www.blog.magepsycho.com/adding-upload-field-in-contact-form-and-send-as-attachment/

?

?

?

magento 添加上傳功能 Adding upload field in contact form and send as attachment


更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號(hào)聯(lián)系: 360901061

您的支持是博主寫作最大的動(dòng)力,如果您喜歡我的文章,感覺我的文章對(duì)您有幫助,請(qǐng)用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點(diǎn)擊下面給點(diǎn)支持吧,站長非常感激您!手機(jī)微信長按不能支付解決辦法:請(qǐng)將微信支付二維碼保存到相冊(cè),切換到微信,然后點(diǎn)擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對(duì)您有幫助就好】

您的支持是博主寫作最大的動(dòng)力,如果您喜歡我的文章,感覺我的文章對(duì)您有幫助,請(qǐng)用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會(huì)非常 感謝您的哦!!!

發(fā)表我的評(píng)論
最新評(píng)論 總共0條評(píng)論
主站蜘蛛池模板: 英超| 阳山县| 凤庆县| 日喀则市| 东阿县| 息烽县| 绍兴县| 桃源县| 垫江县| 舒城县| 古浪县| 乐都县| 罗甸县| 寿光市| 蚌埠市| 突泉县| 墨玉县| 剑阁县| 太康县| 通榆县| 天镇县| 丹棱县| 界首市| 石门县| 蒲城县| 牙克石市| 白山市| 定安县| 班玛县| 彩票| 聊城市| 梓潼县| 安塞县| 岚皋县| 博野县| 房产| 金川县| 南开区| 会东县| 彭州市| 清徐县|