摘要:今天寫(xiě)一個(gè)模塊,主要的功能是實(shí)現(xiàn)前臺(tái)用戶利用表單給管理員發(fā)送郵件的一個(gè)功能,功能很簡(jiǎn)單,但在這個(gè)模塊中,可以了解到一些有關(guān)的一些細(xì)節(jié),比如,如何獲取系統(tǒng)標(biāo)簽,如何使用默認(rèn)的提示信息,如何使用服務(wù)等等。
今天寫(xiě)一個(gè)magento模塊,主要的功能是實(shí)現(xiàn)前臺(tái)用戶利用表單給管理員發(fā)送郵件的一個(gè)功能,功能很簡(jiǎn)單,但在這個(gè)模塊中,可以了解到一些有關(guān)magento的一些細(xì)節(jié),比如,如何獲取系統(tǒng)標(biāo)簽id,如何使用magento默認(rèn)的提示信息,如何使用smtp服務(wù)等等。
新建模塊Inchoo
目錄結(jié)構(gòu)如下:
Inchoo |--_SimpleContact |----controllers |--IndexController.php |----etc |--config.xml
首先需要讓magento識(shí)別寫(xiě)的擴(kuò)展:
app/etc/modules/Inchoo_SimpleContact.xml
true local
其次再在模塊的配置文件config.xml中添加:
0.1.0 Inchoo_SimpleContact simplecontact
在控制中IndexController.php代碼如下,在代碼中解釋器含義:
loadLayout(); //使用mganeto默認(rèn)的提示信息,需要在控制器添加$this->_initLayoutMessages("core/session"); $this->_initLayoutMessages("core/session"); //在控制器中創(chuàng)建一個(gè)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(); } //發(fā)送郵件 public function sendemailAction() { $params = $this->getRequest()->getParams(); //print_r($params); //這里獲取后臺(tái)設(shè)置的smtp的host和port //$my_smtp_host = Mage::getStoreConfig("system/smtp/host"); //$my_smtp_port = Mage::getStoreConfig("system/smtp/port"); //以下代碼,需要提前安裝好smtp的一個(gè)擴(kuò)展插件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上下載源文件,然后安裝到自己的項(xiàng)目中即可,安裝成功后,可以看到在systerm->Configuration左側(cè)看到ASCHRODER EXTENSIONS/SMTP Pro,點(diǎn)擊看到如下界面:
提示:如果安裝好后,打開(kāi)報(bào)錯(cuò),應(yīng)先清理緩存,然后logout注銷(xiāo),重新登錄后臺(tái)即可。
控制器中有
$my_smtp_host = Mage::getStoreConfig("system/smtp/host"); $my_smtp_port = Mage::getStoreConfig("system/smtp/port");
這里是獲取magento自己的input值,如圖所示:
同理可得port的input值。
前臺(tái)頁(yè)面代碼如下:
路徑如下: app/design/frontend/rwd/default/template/inchoo/simple_contact.phtml
simple_contact.phtml內(nèi)容如下:
頁(yè)面效果如圖:
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://specialneedsforspecialkids.com/yun/21343.html
摘要:本次要做的就是,撰寫(xiě)一個(gè)模塊,讓該模塊跑完整個(gè)的流程。創(chuàng)建模型,需要啟用模型,啟用資源模型,在資源模型中添加實(shí)體,再為資源模型設(shè)置讀寫(xiě)適配器。 很多時(shí)候,不知道Magento模塊到底該怎么寫(xiě),比如ThinkPHP,YII框架,它是直接將控制器Controller中的所取得相關(guān)數(shù)據(jù)直接傳遞到視圖層View,而Magento雖然也是MVC三層,但是在中間多了布局對(duì)象Layout與區(qū)塊Blo...
摘要:以上是的的目錄路由器配置。考慮重寫(xiě)模塊以上文件文件使用的操作字符串。例如,如果你想回到第一個(gè)模塊在這個(gè)系列和添加前端端點(diǎn),所有你需要做的就是添加以下配置和以下控制器文件。默認(rèn)操作字符串段我們從先進(jìn)的路由移動(dòng)之前,有一些最后要提。 今天,我們要介紹的幾個(gè)Magento的路由系統(tǒng)的高級(jí)功能,并討論一些看似急性銳邊的歷史。雖然所有在這篇文章中提供的技術(shù)可能不是最好的方式來(lái)實(shí)現(xiàn)自己的目標(biāo),作為...
1、在app/etc/config.php中添加自定義的模塊(magento1聲明模塊是在app/etc/modules): Silk_Helloworld =>1, 值為1,開(kāi)啟模塊,類(lèi)似true,0關(guān)閉模塊2、創(chuàng)建module.xml:app/code/Silk/Helloworld/etc/module.xml 3、創(chuàng)建前段控制器:app/code/Silk/Hellowo...
摘要:今天記錄下如何創(chuàng)建一個(gè),直接進(jìn)入正題。創(chuàng)建好我們的和之后,接下來(lái)就需要?jiǎng)?chuàng)建一系列的文件,我們依次來(lái)說(shuō)每個(gè)文件如何創(chuàng)建。 Magento2.x版本已經(jīng)發(fā)布一段時(shí)間了,到現(xiàn)在為止已經(jīng)到2.2了,最新版本可以關(guān)注Magento在github上的更新。今天記錄下Magento2.1如何創(chuàng)建一個(gè)module,直接進(jìn)入正題。 安裝Magento2后,進(jìn)入項(xiàng)目的根目錄后,進(jìn)入/app目錄,只有app...
摘要:重寫(xiě)控制器重寫(xiě)前端控制器對(duì)于以重寫(xiě)的為例。首先,對(duì)控制器的復(fù)寫(xiě),需要分清是對(duì)還是的復(fù)寫(xiě) Magento重寫(xiě)控制器 重寫(xiě)--前端控制器 對(duì)于以重寫(xiě) Mage_Checkout_CartController的indexAction()為例。找到Mage/Checkout/CartController.php代碼中的indexAction: public function indexActi...
閱讀 3062·2021-11-16 11:45
閱讀 3588·2021-09-29 09:34
閱讀 706·2021-08-16 10:50
閱讀 1576·2019-08-30 15:52
閱讀 1968·2019-08-30 15:45
閱讀 863·2019-08-29 15:23
閱讀 1929·2019-08-26 13:51
閱讀 3304·2019-08-26 12:23