在 magento 1.9 自定义模块中的电子邮件中收到错误的确认 link
Incorrect confirmation link received on e-mail in magento 1.9 custom module
我在 Magento 1.9 上安装了自定义博客模块,当用户对 post 发表评论时,管理员将收到一封电子邮件,其中包含 link 到他所在的页面可以批准或不批准评论。 link 不正确,我不明白为什么。这是创建 link 的代码:
if (Mage::getStoreConfig('blog/comments/recipient_email') != null && $model->getStatus() == 1
&& isset($commentId)
) {
$translate = Mage::getSingleton('core/translate');
/* @var $translate Mage_Core_Model_Translate */
$translate->setTranslateInline(false);
try {
$adminUser = Mage::getConfig()->getNode('admin/routers/adminhtml/args/frontName');
$data["url"] = Mage::getUrl("awblog_manage_comment/edit/id");
$data["url"] = str_replace("index.php", $adminUser, $data["url"]);
$data["url"] .= $commentId."/";
$postObject = new Varien_Object();
$postObject->setData($data);
$mailTemplate = Mage::getModel('core/email_template');
/* @var $mailTemplate Mage_Core_Model_Email_Template */
$mailTemplate->setDesignConfig(array('area' => 'frontend'))
->sendTransactional(
Mage::getStoreConfig('blog/comments/email_template'),
Mage::getStoreConfig('blog/comments/sender_email_identity'),
Mage::getStoreConfig('blog/comments/recipient_email'), null, array('data' => $postObject)
);
$translate->setTranslateInline(true);
} catch (Exception $e) {
$translate->setTranslateInline(true);
}
}
当我在本地服务器上回显 $data["url"] 时,我得到了正确的 link,如下所示:
.../admin/awblog_manage_comment/edit/id/57/
但是当我在服务器上上传代码时,我在电子邮件中收到了这个link:
.../awblog_manage_comment/edit/id/57/
缺少管理部分,因此,当我尝试访问 link 时出现 404 错误。
谁能告诉我这是什么问题?是我的代码还是服务器,还是别的?
非常感谢!
您可以使用此代码获取控制器操作的管理员 URL。
$data["url"] = Mage::helper('adminhtml')->getUrl('adminhtml/awblog_manage_comment/edit/id', array('_secure' => true);
$data["url"] .= $commentId."/";
注意: 'awblog_manage_comment' 如果您的管理粗略不同,请替换它,否则它会起作用。
我在 Magento 1.9 上安装了自定义博客模块,当用户对 post 发表评论时,管理员将收到一封电子邮件,其中包含 link 到他所在的页面可以批准或不批准评论。 link 不正确,我不明白为什么。这是创建 link 的代码:
if (Mage::getStoreConfig('blog/comments/recipient_email') != null && $model->getStatus() == 1
&& isset($commentId)
) {
$translate = Mage::getSingleton('core/translate');
/* @var $translate Mage_Core_Model_Translate */
$translate->setTranslateInline(false);
try {
$adminUser = Mage::getConfig()->getNode('admin/routers/adminhtml/args/frontName');
$data["url"] = Mage::getUrl("awblog_manage_comment/edit/id");
$data["url"] = str_replace("index.php", $adminUser, $data["url"]);
$data["url"] .= $commentId."/";
$postObject = new Varien_Object();
$postObject->setData($data);
$mailTemplate = Mage::getModel('core/email_template');
/* @var $mailTemplate Mage_Core_Model_Email_Template */
$mailTemplate->setDesignConfig(array('area' => 'frontend'))
->sendTransactional(
Mage::getStoreConfig('blog/comments/email_template'),
Mage::getStoreConfig('blog/comments/sender_email_identity'),
Mage::getStoreConfig('blog/comments/recipient_email'), null, array('data' => $postObject)
);
$translate->setTranslateInline(true);
} catch (Exception $e) {
$translate->setTranslateInline(true);
}
}
当我在本地服务器上回显 $data["url"] 时,我得到了正确的 link,如下所示:
.../admin/awblog_manage_comment/edit/id/57/
但是当我在服务器上上传代码时,我在电子邮件中收到了这个link:
.../awblog_manage_comment/edit/id/57/
缺少管理部分,因此,当我尝试访问 link 时出现 404 错误。
谁能告诉我这是什么问题?是我的代码还是服务器,还是别的? 非常感谢!
您可以使用此代码获取控制器操作的管理员 URL。
$data["url"] = Mage::helper('adminhtml')->getUrl('adminhtml/awblog_manage_comment/edit/id', array('_secure' => true);
$data["url"] .= $commentId."/";
注意: 'awblog_manage_comment' 如果您的管理粗略不同,请替换它,否则它会起作用。