2012-08-02 84 views
0

所以我遇到了一個奇怪的問題,似乎無法找到解決方案。也許有人有同樣的問題,並可以闡明一些。在Joomla 2.5中編輯前端 - JController :: checkEditId()返回false

我寫一個組成部分,我將前端編輯它,但是當我救我的前端形式我結束了以下錯誤:

You are not permitted to use that link to directly access that page (#1).

我已經跟蹤這個問題下到JController中的checkEditId()函數。它返回false,因爲「我不知何故只是在沒有點擊鏈接的情況下到達表單」。所以我明白,我不知何故必須setUserState('com_component.context.item',$ id);因爲問題在於「id」不在userstate會話中。

但我在哪裏添加?我曾嘗試使用setUserState()函數手動添加它,但似乎不起作用,我也可以看到com_content不這樣做?

我該如何告訴Joomla用戶被允許編輯項目 - 而不是從ACL的角度來看,而是從 - 他只是點擊編輯鏈接的角度來看?

+0

你是什麼意思_「我如何告訴Joomla用戶被允許編輯項目 - 不是從ACL的角度來看,而是從 - 他只是點擊編輯鏈接的角度?」 _ – Lodder 2012-08-02 13:28:11

+0

我只是想說現在我不想涉及ACL,我們假設所有登錄的用戶都可以編輯任何東西。換句話說,我不在尋找與ACL相關的答案 - 只是我如何通過checkEditId($ context,$ id)驗證的答案。 – 2012-08-02 13:43:52

回答

3

我有完全相同的問題。我解決這個問題的方法是確保列表視圖中的URL格式正確。所以我必須:

管理員/ index.php文件選項= com_helloworld &視圖=提供&佈局=編輯& offer_id = 27

,但您需要的網址如下:

管理員/ index.php文件?選項= com_helloworld &任務= offer.edit & offer_id = 27

這確保了所編輯的項目的ID被添加到會話範圍,然後將其在checkEditId檢查()。

這應該可以解決您的問題。

相關問題