2017-11-09 1 views
0

사용자 등록 확인시 간단한 팝업을 보여주고 싶습니다. 잠시 동안 단순화하기 위해 "Hello World"를 보여 드리겠습니다. Prestashop 모듈 개발 -이 템플릿 리디렉션이 작동하지 않는 이유

입니다 템플릿 파일,보기/템플릿/후크/ registrationConfirm.tpl 내 사용자 지정 모듈에서
<div id="idname" class="block"> 
    <h1 class="title_block">HelloWorld</h1> 
</div> 

나는 (I 디버그를하고 트리거되는 알고)이 훅이 있습니다

public function hookActionCustomerAccountAdd($params) { 
    return $this->display(__FILE__, 'registrationConfirm.tpl'); 
} 

그것은 아무것도 표시되지 않습니다는 (나는 또한 렌더링 된 페이지의 소스 코드를 검사했지만, 나는이 "Helloworld"를 찾을 수 dind't)

답변

3

호를 "Action"으로 시작하는 oks는 동작에 반응 하나 아무 것도 표시하지 않지만 "Display"로 시작하는 것은 수행합니다.

또한 후크 displayCustomerAccount

public function hookActionCustomerAccountAdd() { 
    $this->is_new_account = true; 
} 

public function hookDisplayCustomerAccount() 
{ 
    if ($this->is_new_account) { 
     return $this->display(__FILE__, 'registrationConfirm.tpl'); 
    } 
} 
+0

'$ this'는 무엇을 포함합니까? 그리고 실제로 수천 명의 사람들이 웹 사이트를 방문했을 때 'is_new_account'값이 섞이지 않았는지 어떻게 확신 할 수 있습니까? – frabis

+0

이 모듈 컨텍스트에서'$ this'는 현재 모듈입니다 http://php.net/manual/en/language.oop5.basic.php '$ this-> is_new_account'는 현재 실행에만 설정됩니다 if 같은 (또는 다른) 방문자가 같은 순간에 (또는 다른 순간에) 같은 스크립트를 실행하면 다른 '$ this-> is_new_account'를 갖게됩니다. – shagshag

+0

설명에 감사드립니다. 왜 작동하지 않는지 방황하고 있습니다. PS 1.6에서 지원됩니까? – frabis

1

에 반응해야 내가 @shagshag에 의해서가 아니라 나를 위해 작동하지 않습니다 어떤 이유로 게시 된 솔루션을 시도했다. 그래서 솔루션을 공유합니다. (꽤 좋지는 않습니다.하지만 생각보다 효율적입니다.) hookActionCustomerAccountAdd 사용자 정의 테이블 (newCustomersTmp) 이메일과 고객 ID는 필요한 데이터이므로 저장합니다. 후, 디스플레이 후크에. 그렇다면 hookDisplayCustomerAccount에서 현재 이메일 ($ this-> context-> customer-> email)을 가진 사용자가 이미 내 테이블에 있는지 확인합니다. 데이터를 검색하면 필요한 작업을 수행하고 삭제합니다. 테이블의 행.

관련 문제