摘要:今天寫一個模塊,主要的功能是實現前臺用戶利用表單給管理員發送郵件的一個功能,功能很簡單,但在這個模塊中,可以了解到一些有關的一些細節,比如,如何獲取系統標簽,如何使用默認的提示信息,如何使用服務等等。
今天寫一個magento模塊,主要的功能是實現前臺用戶利用表單給管理員發送郵件的一個功能,功能很簡單,但在這個模塊中,可以了解到一些有關magento的一些細節,比如,如何獲取系統標簽id,如何使用magento默認的提示信息,如何使用smtp服務等等。
新建模塊Inchoo
目錄結構如下:
Inchoo |--_SimpleContact |----controllers |--IndexController.php |----etc |--config.xml
首先需要讓magento識別寫的擴展:
app/etc/modules/Inchoo_SimpleContact.xml
true local
其次再在模塊的配置文件config.xml中添加:
0.1.0 Inchoo_SimpleContact simplecontact
在控制中IndexController.php代碼如下,在代碼中解釋器含義:
loadLayout(); //使用mganeto默認的提示信息,需要在控制器添加$this->_initLayoutMessages("core/session"); $this->_initLayoutMessages("core/session"); //在控制器中創建一個block $block = $this->getLayout()->createBlock( "Mage_Core_Block_Template", "inchoo.simple_contact", array( "template" => "inchoo/simple_contact.phtml" ) ); $this->getLayout()->getBlock("content")->append($block); //$this->getLayout()->getBlock("right")->insert($block, "catalog.compare.sidebar", true); $this->_initLayoutMessages("core/session"); $this->renderLayout(); } //發送郵件 public function sendemailAction() { $params = $this->getRequest()->getParams(); //print_r($params); //這里獲取后臺設置的smtp的host和port //$my_smtp_host = Mage::getStoreConfig("system/smtp/host"); //$my_smtp_port = Mage::getStoreConfig("system/smtp/port"); //以下代碼,需要提前安裝好smtp的一個擴展插件SMTPPro $general_email=Mage::getStoreConfig("trans_email/ident_general/email"); $sales_email = Mage::getStoreConfig("trans_email/ident_sales/email"); $support_email = Mage::getStoreConfig("trans_email/ident_support/email"); //smtppro $smtppro_host = Mage::getStoreConfig("smtppro/general/smtp_host"); $smtppro_port = Mage::getStoreConfig("smtppro/general/smtp_port"); $smtppro_username = Mage::getStoreConfig("smtppro/general/smtp_username"); $smtppro_password = Mage::getStoreConfig("smtppro/general/smtp_password"); $email=Mage::getStoreConfig("contacts/email/recipient_email"); $config = array( "port" => $smtppro_port, "auth" => "login", "username" => $smtppro_username, "password" => $smtppro_password ); $transport = new Zend_Mail_Transport_Smtp($smtppro_host, $config); Zend_Mail::setDefaultTransport($transport); $mail = new Zend_Mail("utf-8"); print_r($transport); //exit(); $mail->setBodyText($params["comment"]); // $mail->setFrom($config["username"]); // $mail->addTo($params["email"], $params["name"]); $mail->setFrom($params["email"]); $mail->setSubject("test"); $mail->addTo($email); try { $mail->send(); $this->_redirect("*/*"); Mage::getSingleton("core/session")->addSuccess("Your request has been sent!"); } catch(Exception $ex) { print_r($ex->getMessage()); Mage::getSingleton("core/session")->addError("Unable to send!"); $this->_redirect( $this->getBaseUrl()); } } }
備注:代碼中提到的SMTP Pro插件,可以在Magento Connect上下載源文件,然后安裝到自己的項目中即可,安裝成功后,可以看到在systerm->Configuration左側看到ASCHRODER EXTENSIONS/SMTP Pro,點擊看到如下界面:
提示:如果安裝好后,打開報錯,應先清理緩存,然后logout注銷,重新登錄后臺即可。
控制器中有
$my_smtp_host = Mage::getStoreConfig("system/smtp/host"); $my_smtp_port = Mage::getStoreConfig("system/smtp/port");
這里是獲取magento自己的input值,如圖所示:
同理可得port的input值。
前臺頁面代碼如下:
路徑如下: app/design/frontend/rwd/default/template/inchoo/simple_contact.phtml
simple_contact.phtml內容如下:
" method="post"> * Required Fields
頁面效果如圖:
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://m.specialneedsforspecialkids.com/yun/21343.html
摘要:本次要做的就是,撰寫一個模塊,讓該模塊跑完整個的流程。創建模型,需要啟用模型,啟用資源模型,在資源模型中添加實體,再為資源模型設置讀寫適配器。 很多時候,不知道Magento模塊到底該怎么寫,比如ThinkPHP,YII框架,它是直接將控制器Controller中的所取得相關數據直接傳遞到視圖層View,而Magento雖然也是MVC三層,但是在中間多了布局對象Layout與區塊Blo...
摘要:以上是的的目錄路由器配置。考慮重寫模塊以上文件文件使用的操作字符串。例如,如果你想回到第一個模塊在這個系列和添加前端端點,所有你需要做的就是添加以下配置和以下控制器文件。默認操作字符串段我們從先進的路由移動之前,有一些最后要提。 今天,我們要介紹的幾個Magento的路由系統的高級功能,并討論一些看似急性銳邊的歷史。雖然所有在這篇文章中提供的技術可能不是最好的方式來實現自己的目標,作為...
1、在app/etc/config.php中添加自定義的模塊(magento1聲明模塊是在app/etc/modules): Silk_Helloworld =>1, 值為1,開啟模塊,類似true,0關閉模塊2、創建module.xml:app/code/Silk/Helloworld/etc/module.xml 3、創建前段控制器:app/code/Silk/Hellowo...
摘要:今天記錄下如何創建一個,直接進入正題。創建好我們的和之后,接下來就需要創建一系列的文件,我們依次來說每個文件如何創建。 Magento2.x版本已經發布一段時間了,到現在為止已經到2.2了,最新版本可以關注Magento在github上的更新。今天記錄下Magento2.1如何創建一個module,直接進入正題。 安裝Magento2后,進入項目的根目錄后,進入/app目錄,只有app...
摘要:重寫控制器重寫前端控制器對于以重寫的為例。首先,對控制器的復寫,需要分清是對還是的復寫 Magento重寫控制器 重寫--前端控制器 對于以重寫 Mage_Checkout_CartController的indexAction()為例。找到Mage/Checkout/CartController.php代碼中的indexAction: public function indexActi...
閱讀 3063·2021-11-16 11:45
閱讀 3593·2021-09-29 09:34
閱讀 711·2021-08-16 10:50
閱讀 1579·2019-08-30 15:52
閱讀 1970·2019-08-30 15:45
閱讀 866·2019-08-29 15:23
閱讀 1932·2019-08-26 13:51
閱讀 3306·2019-08-26 12:23