2012-08-02 7 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

+0

나는 지금 당장 ACL을 포함하고 싶지 않다는 것을 의미하며, 로그인 한 모든 사용자가 아무 것도 편집 할 수 없다고 가정 해 보겠습니다. 따라서 다른 말로 ACL 관련 답변을 찾고있는 것이 아닙니다. checkEditId ($ context, $ id) 유효성 검사를 통과하는 방법에 대한 간단한 대답입니다. –

답변

3

나는 똑같은 문제를 겪고있었습니다. 그것을 해결 한 이유는 목록보기에서 URL 형식이 올바른지 확인하는 것이 었습니다. 그래서 내가했다 :

관리자/index.php에 옵션 = com_helloworld &보기 = & 레이아웃을 제공 = 편집 & OFFER_ID = 27

하지만 다음과 같이 당신은 URL이 필요합니다

관리자/index.php에를 ? = com_helloworld 옵션 작업 = & & offer.edit OFFER_ID = 27

이 항목의 ID가 그 다음에 검사된다 checkEditId 세션 범위에 추가 편집되는 것을 보장한다().

이렇게하면 문제가 해결됩니다.

관련 문제