2012-08-02 30 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检查()。

这应该可以解决您的问题。

相关问题