2012-06-25 1 views
0

젠드 프레임 워크를 처음 사용했습니다. 현재 내가하려는 것은 사용자가 내 웹 사이트에 액세스 할 때입니다. 영어와 독일 등 두 언어로 된 선택 상자가 먼저 표시됩니다.Zend Framework에서 확인한 후 부트 스트랩에서 사용자를 리디렉션하는 방법은 무엇입니까?

브라우저가 선택되면 브라우저는 해당 언어 페이지의 색인 컨트롤러로 리디렉션합니다.

그럼 내 질문은 어떻게 부트 스트랩 파일이나 그것을 할 수있는 가능한 방법의 선택 상자를 만드는 방법과 그 후 사용자를 리디렉션하는 것입니다? 어떤 해결책을 많이 주시면 감사하겠습니다!

+0

나는 생각하지 않는다. 일부 HTML은 당신이 어떤 컨트롤러/뷰에 있어야한다는 것을 보여줄 필요가있다. – coolguy

답변

0

이런 종류의 작업을 위해서는 부트 스트랩 파일을 사용하지 마십시오. (그리고 나는 Bootstrap.phpindex.php에 대해 이야기하고 있습니다.) 첫째로, 그것은 당신이 묻는대로 작동하지 않을 것입니다; 둘째로, 앱의 구조를 큰 시간 낭비하게됩니다.

대신 다음과 같은 방법 중 하나를 사용할 수 있습니다 :

1) 선택은 이미 사용자의 쿠키를 확인하여 만든되었는지 여부를 확인합니다 일부 predispatch 후크를 추가합니다. 그럴 경우 평소와 같이 요청을 진행하십시오 (나중에 Zend_Registry lang 변수를 설정하는 것이 좋습니다). 그렇지 않은 경우 언어 선택 페이지로 리디렉션하십시오. 후자는 쿠키로 만든 선택을 저장해야합니다.

2) 귀하의 라우터/mod_rewrite를에 간단한 규칙을 구현 : 요청 된 URL이 '언어 부분'(http://example.com/lang/xx/...하거나 http://example.com/xx/...)를 포함 할 때, 자동으로이 부분 때문에 lang PARAM을 설정합니다. 그렇지 않은 경우 요청은 자동으로 언어 선택 페이지로 리디렉션됩니다. 후자는 차례로 사용자를 언어 별 페이지로 연결합니다. 여기서 모든 링크는 언어별로 작성됩니다.

내 의견으로는 사용자가 언어 튜닝 된 게이트웨이를 항상 사용해야하므로 후자의 방식이 열세입니다. 그러나 쿠키에이 정보를 저장할 필요는 없습니다.

0

preDispatch 이벤트를 사용하여 언어가 선택되었는지 (예 : 쿠키 또는 세션에 저장되어 있는지) 확인하고 그렇지 않은 경우 방문 페이지로 리디렉션하는 플러그인을 만들 수 있습니다.

여기를보십시오 zend framework plug-in - predispatch() 및 ZF의 액션 플러그인 문서.

그게 내 응용 프로그램에서 로그인을 강요 할거야.

이제 실제로 할 일은 내비게이션 막대의 어딘가에서 영어와 스위치 위젯으로 전환하여 사용자의 언어를 감지하는 것입니다.