2012-01-26 3 views
0

로그인 한 사용자 만 액세스 할 수있는 사용자 정의 구성 요소를 구축 중입니다. 나는 JFactory::getUser()->guest을 검사하는 것에 대해 생각하고 있으며, 설정되어 있다면 사용자 정의 페이지로 리디렉션합니다.joomla에 등록 및 로그인 페이지 사용자 정의 구성 요소를 모두 표시하십시오.

이제이 페이지에 등록 및 로그인 옵션을 모두 포함하는 것이 좋지만 joomla 자체에는이 기능이없는 것 같습니다. 내 사용자 지정 구성 요소에이 기능을 만들어야합니까, 아니면 다른 솔루션이 있습니까?

답변

1

당신은 정말 자신에 코딩을 시도하는 대신 사용자 액세스를 제어하는 ​​ACL에 내장 사용해야합니다. ACL을 시작하는 것이 중요합니다.

http://docs.joomla.org/Developing_a_Model-View-Controller_(MVC)_Component_for_Joomla!1.7_-_Part_14

나는 당신을 생각 - 여기

http://docs.joomla.org/ACL_Tutorial_for_Joomla_1.6

이 구성 요소에 ACL을 추가하기위한 튜토리얼입니다 - 여기 ACL은 관리자와 사이트의 프런트 엔드에서 작동하는 방법에 대한 튜토리얼입니다 ACL 시스템을 사용하면 코드를 건드리지 않고 나중에 추가 사용자 그룹 및 권한을 추가하는 등 훨씬 더 융통성있게 작업 할 수 있으므로 훨씬 편리합니다.

이 설정을 완료하면 사용자 정의 등록 또는 로그인 페이지를 작성하는 것이 기본 com_user 로그인보기의 템플리트 무시보다 쉽습니다.

JOOMLA/components/com_users/views/login/tmpl/default.php 

페이지의 등록의 경우 :

JOOMLA/components/com_users/views/registration/tmpl.default.php 

그런 다음 여기에 새롭고 개선 된 파일을 넣어 페이지의 로그인의 경우

- 당신은이 파일을 결합해야 :

JOOMLA/templates/YOUR TEMPLATE/html/com_users/login/default.php 

이렇게하면 ACL을 통해 구성 요소에 대한 액세스를 제어 할 수있을뿐만 아니라 사용자 정의 로그인/gistration 페이지를 불필요한 확장 기능을 사용하지 않고도 사용할 수 있습니다.

0

joomla!의 기본 로그인 모듈/페이지는 등록 페이지에 대한 링크 만 제공합니다.

빠른 검색 the JED shows about 200 login extensions의 경우, 그 중 하나가 당신이 원하는대로 할 수 있습니다.

그러나 구성 요소에 대한 액세스 권한과 통합하려면 직접 코드를 만들어야합니다. 정상적인 프로세스는 사용자가 자산보기에 액세스하려고하면 view.html.php (또는 유사)가 권한을 확인하고 구성 요소에 따라 JError 메시지를 게시하고 가능하면 시스템 로그인으로 리디렉션한다는 것입니다.

예 : com_content

// Check the view access to the article (the model has already computed the values). 
    if ($item->params->get('access-view') != true && (($item->params->get('show_noauth') != true && $user->get('guest')))) { 
        JError::raiseWarning(403, JText::_('JERROR_ALERTNOAUTHOR')); 
      return; 
    }