내 목표는 우리 가게의 모든 페이지에 입력 할 때 URL 리퍼러 및 키워드를 저장하는 것입니다. 내 checked this question and its answer 내 문제에 약간의 빛을하려고합니다.magento 접근 referer URL 및 키워드 저장
나는 다음있어 접근 방식은 다음과 같습니다
는 각 페이지 (테스트, 노력)에로드 할 수 있도록 기본 레이아웃에 충실하는 블록을 가지고. 이 블록은 다음 코드를 사용하여 리퍼러를 읽습니다.
$ request [ 'url'] = $ this-> getRequest() -> getServer ('HTTP_REFERER');
다음 함수는 컨트롤러에 $ 요청을 전달합니다. 이 단계에서는 리디렉션을 사용하여 여전히 어떻게하는지 모릅니다. 또는 dispatchEvent를 호출하고
postAction
함수를 갖는 컨트롤러에서?//on the phtml file <div> <?php $request['url'] = getRequest()->getServer(‘HTTP_REFERER’); Mage::dispatchEvent("allpagescontroller", $request); ?> </div>
컨트롤러 내가 CRUD 작업을 수행하는 모든 appropiate 코드를가집니다 모델에 neeeded 값
//on the controller function postAction ($params) { $referer = $this->getRequest()->getPost(); }
를 삽입/내 모델을 인스턴스화하고 업데이트 할 setter를 호출합니다
이 정보가 맞습니까? 이러한 단계를 수행하여 Magento MVC 방식을 따르려고합니다. 지금은 phtml 파일의 모든 코드를 가지고 있습니다. 나는 리퍼러를 얻고 그것을 분할하고 모든 것을 저장하기 위해 모델을 인스턴스화합니다. 그러나 이것이 정확하지 않다는 것을 압니다. 대한 config.xml 파일에
지금 내가 가진 :<?xml version="1.0"?> <config> <modules> <Dts_Allpages> <version>0.1.0</version> </Dts_Allpages> </modules> <global> <models> <allpages> <class>Dts_Allpages_Model</class> <resourceModel>allpages_mysql4</resourceModel> </allpages> <allpages_mysql4> <class>Dts_Allpages_Model_mysql4</class> <entities> <keywords> <table>keywords</table> </keywords> <referencedpages> <table>referencedpages</table> </referencedpages> </entities> </allpages_mysql4> </models> <blocks> <allpages> <class>Dts_Allpages_Block</class> </allpages> </blocks> <helpers> <allpages> <class>Dts_Allpages_Helper</class> </allpages> </helpers> <resources> <allpages_write> <connection> <use>core_write</use> </connection> </allpages_write> <allpages_read> <connection> <use>core_read</use> </connection> </allpages_read> </resources> </global>> <frontend> <routers> <allpages> <use>standard</use> <args> <module>Dts_Allpages</module> <frontName>allpages</frontName> </args> </allpages> </routers> <layout> <updates> <allpages> <file>allpages.xml</file> </allpages> </updates> </layout> </frontend> </config>
다시 EventObservers이 코드는 ... 나는 의심했다.나를 위해 그것을 정리하지 않았다. 따라서 블록, 템플릿 또는 컨트롤러를 추가 할 필요가 없습니다. 이벤트 관찰자의 모든 논리 만 추가하면됩니다. 테스트해볼거야. – Yaroslav
나는 모든 페이지의 프리 디스패치 이벤트를 듣는 방법에 집착하고있다. – Yaroslav
@Yaroslav이 - 다음은 사용자 정의 모듈에 삽입해야 설정의 예' 목록 allpages/관찰자 saveReferrer controller_action_predispatch> '당신은 saveReferrer 방법과 관찰자의 모델을 생성해야하며, 모든 페이지 요청시 트리거되어야합니다. –