익명 사용자에게 제한적으로 액세스 할 수있는 메뉴 항목 표시


9

콘텐츠에 대한 액세스를 설정하기 위해 개인 모듈 을 사용하는 웹 사이트가 있으며 물론 일부 페이지에는 메뉴 항목이 있습니다. 이제 페이지를 비공개로 설정하면 적절한 권한을 가진 사용자 만 볼 수 있습니다.

그러나 메뉴 항목에 약간의 문제가 있으며 할당 된 내용이 공개되지 않은 경우 사라집니다 (즉, 할당 된 페이지가 개인 페이지 임). 이것은 괜찮지 만 여전히 해당 항목을 표시하고 싶습니다. 사용자가 클릭하면 해당 페이지를 볼 수 있도록 세부 정보를 입력하도록 요청하는 로그인 페이지로 이동합니다.

기본적으로 메뉴 항목의 동작을 익명의 등록 된 웹 사이트 회원에게 항상 표시되는 방식으로 변경하고 싶지만 클릭하면 페이지를 볼 수 있습니다 (로그인 한 경우). in) 또는 로그인 페이지로 리디렉션됩니다 (익명 인 경우)

나는 같은 페이지가 많기 때문에이 솔루션 이 나에게 가장 적합하지 않다는 것을 알았으므로 더 나은 접근 방법을 찾고 있습니다. 메뉴 항목 표시 모듈 을 사용해 보았지만 도움이되지 않았습니다!

어떻게하면 좋을까요?

루카


github.com/bbinkovitz/derpl/tree/master/foreshadow_menu 에 도움이 될만한 코드 가 있습니다. 내가했던 것과 같은 방법으로 값을 변경하거나 메뉴 이름을 지정해야 할 수도 있지만 시작할 수 있습니다.
beth

답변:


4

당신의 문제는 매우 일반적입니다.

다음은 Drupal 6 및 7 및 8에서 이러한 트릭을 구현하는 방법에 대한 설명입니다. http://drupal.org/node/300607

Drupal 6 (및 7)은 사용자가 액세스 할 수없는 메뉴 항목을 표시하는 기능을 제거했습니다. 그러나 경우에 따라 사용자가 메뉴 항목에 액세스 할 수없는 경우에도 메뉴 항목을 표시하는 것이 바람직합니다. 예를 들어, 403이 표시 될 때 인증 획득을 시도하는 인증 메커니즘을 사용하는 경우 사용자가 로그인 할 자격 증명을 제공 할 수 있도록 메뉴 항목을 표시하려고합니다.

Drupal 7에 대한 솔루션은 여기에서 찾을 수 있습니다 : http://drupal.org/node/300607#comment-4450062

준비된 모듈을 선호하는 경우 여기에서 다운로드 할 수 있습니다 https://github.com/systemseed/always_visible


대단히 감사합니다. 이 옵션이 Drupal 내장되어 있기를 바랍니다
Luca

1

메뉴 시스템에 페이지가 표시되어야하는 비슷한 상황이 있었지만 콘텐츠는 로그인 한 사용자에게만 표시되어야합니다. 최종 솔루션은 매우 간단하고 계속 작동합니다.

컨텐츠 액세스를 제어하는 ​​대신 노드 템플리트는 사용자가 로그인했는지 확인합니다. 그렇다면, 컨텐츠가 표시됩니다. 그렇지 않으면 로그인 또는 등록 링크가있는 텍스트가 나타납니다.

그것들은 자동으로 재 지정되지 않기 때문에 이것이 중요하다면 이것은 해결책이 아닙니다.

간단히 말해서 코드 :

<?php  
global $user;       
if ( $user->uid ) :
print render($content);
// or in some situations, display a view;
else : 
print 'Please <a href="https://drupal.stackexchange.com/user/login">log in</a> or <a href="https://drupal.stackexchange.com/user/register">register</a> etc etc.'
endif; 
?>

고맙지 만 여러 가지 이유로 좋은 해결책이 아닙니다. 다른 유형의 템플릿 시스템을 사용하고 있으며 내용을 나열 할 때 (예 : 뷰) 액세스를 존중하는 내용에 액세스하고 싶습니다.
Luca

어 그래. 답을 찾으시기 바랍니다. 꽤 일반적인 사용 사례 인 것 같습니다.
keva
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.