2013-01-17 56 views
1

我一直在關注文檔here以將(改進的)文件上傳部分添加到現有組件。Joomla中的文件上傳器

上面給控制器/模型然後處理上載該示例中的鏈路是通過post數據形成:

post_params: 
    { 
      "option" : "com_mycomponent", 
      "controller" : "mycontroller", 
      "task" : "mytask", 
      "id" : "'.$myItemObject->id.'", 
      "'.$session->getName().'" : "'.$session->getId().'", 
      "format" : "raw" 
    }, 

我的問題是上載使用中引入的新的控制器方法不工作的Joomla 2.5:

// Get an instance of the controller prefixed by the component 
$controller = JController::getInstance('mycomponent'); 

// Perform the Request task 
$controller->execute(JRequest::getCmd('task')); 

// Redirect if set by the controller 
$controller->redirect(); 

這個工作(實際上是對的Joomla 2.5)不工作精絕的老方法1.5加載控制器:

// Create the controller 
$classname = 'mycomponentController'.$controller; 
$controller = new $classname(); 

// Perform the Request task 
$controller->execute(JRequest::getVar('task')); 

// Redirect if set by the controller 
$controller->redirect(); 

雖然這後一種方法是Joomla 2.5兼容,不幸的是我希望與此集成的組件使用較新的方法,我寧願不改變這一點,所以我可以根據需要不斷更新組件,而無需每次都改變這一點。另外如果我確實改變了它,我猜我可能會失去現有的功能。

基本上我想知道如何設置後params,以便正確調用新的控制器方法!


編輯

我已經因爲使用的交PARAM配置嘗試:

post_params: 
{ 
    "option" : "com_mycomponent", 
    "task" : "mycontroller.mytask", 
    "id" : "'.$myItemObject->id.'", 
    "'.$session->getName().'" : "'.$session->getId().'", 
    "format" : "raw" 
}, 

我試圖效仿沿index.php?option=com_mycomponent&task=mycontroller.mytask等的線鏈接但是,這仍然沒有按不工作

回答

1

您需要在index.php中定義以下變量

define('_JREQUEST_NO_CLEAN', 1); 

我一直在尋找原因,我發現這個 - http://docs.joomla.org/Framework_Compatibility

注意 - 如果這不起作用刪除"format" : "raw"

讓我知道它是否無效。

+0

當你在index.php中說這是在主(管理員)根Joomla index.php文件? –

+0

@GeorgeWilson:如果你在管理員工作,它將成爲前臺管理員。 – Irfan

+0

對不起,它花了這麼長的時間回覆 - 但我仍然有這個相同的500錯誤問題! –