在我的Joomla 2.5.x站點上,我想添加鏈接,打開Fancybox窗口,用郵件形式在其中輸入郵件和地址。提交後,插件將驗證並將郵件發送給正確的收件人。Joomla 2.5內容插件與Ajax
我寫了插件,並陷入了一個問題:如何讓Ajax調用正在做數據庫工作人員和發送郵件的PHP腳本。
如果我使用以下網址:
$.ajax({
type: 'POST',
url: ''/my_site/plugins/content/my_plugin/sendmessage.php',
...
PHP腳本是出的Joomla參考的,它關閉是由於:
defined('_JEXEC') or die();
和Joomla功能不工作。 有辦法解決這個像添加以下人員到PHP腳本:
<?php
define('_JEXEC', 1);
// JPATH_BASE should point to Joomla!'s root directory
define('JPATH_BASE', realpath(dirname(__FILE__) .'/'));
define('DS', DIRECTORY_SEPARATOR);
require_once (JPATH_BASE .DS.'includes'.DS.'defines.php');
require_once (JPATH_BASE .DS.'includes'.DS.'framework.php');
$mainframe =& JFactory::getApplication('site');
$mainframe->initialise();
$user =& JFactory::getUser();
$session =& JFactory::getSession();
?>
但我不知道這種解決方法的安全性。我更喜歡乾淨的解決方案。 我搜索了很多,並且發現了正確的方法是創建一個PHP函數,把它添加到控制器,並從阿賈克斯以下列方式調用它:
$.ajax({
type: 'POST',
url: 'index.php?option=com_mycomponent&format=raw&task=mytask';
...
但就是這種方式可能僅適用於一個組件?我需要的是一個插件。我怎樣才能運行一個簡單的Ajax調用到一個插件的PHP函數/腳本?任何幫助將不勝感激,我正在尋找退出一段時間的解決方案。