2013-01-21 101 views
1

在我的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函數/腳本?任何幫助將不勝感激,我正在尋找退出一段時間的解決方案。

回答