사이트2개 운영 게시글 통합
CMS/프레임워크 | XE 1.x |
---|---|
개발 언어 | PHP 7.2 |
사이트를 2개 운영하고있는데요.
a사이트 게시글
b사이트 게시글을
b사이트의 통합 게시판 만들어 놓고 하나로 모을수 있을까요?
좋은 방법 없을까요? +ㅁ+
CMS/프레임워크 | XE 1.x |
---|---|
개발 언어 | PHP 7.2 |
사이트를 2개 운영하고있는데요.
a사이트 게시글
b사이트 게시글을
b사이트의 통합 게시판 만들어 놓고 하나로 모을수 있을까요?
좋은 방법 없을까요? +ㅁ+
댓글 5
말씀하신 크롤링 방법의 경우 어떤식으로 찾아보면 될까요?
요런것도 모듈이나 위젯같은게 있을까요?
b 사이트에 post로 insertDocument 메소드 동작이 가능하도록 api path 하나 구성하시고 (토큰 검증 과정이 있으면 좋겟네요) a 사이트에는 InsertDocument 이후에 동작하는 트리거 하나 구성하셔서 작성된 문서 오브젝트로 b 사이트 api 콜 하시면 댑니다. db에 직접 넣는 방식은 document_srl 이 중복될 여지가 있어서 안좋을 것 같더라구요.
단순히 문서만 모으는 거라 댓글이나 추천 반영이 안되는게 단점이에요 사용자 정보 동기화도 안되구용
.........제가 지식이 부족하여 무슨말인지 이해가 안되어;;; 지금부터 번역해보려고 하는데요.
혹시 이부분에 대해서 적용할수있으려면 어떤 부분을 찾아봐야될까요?
B 사이트에서는 ...
*.controller.php 에 함수 하나 만드신 후 conf 디렉토리에 module.xml 이 있습니다.
여기다가 만드신 함수를
<action name="procInsertDocumentFromExternal" type="controller" check_csrf="false" />
이렇게 등록하시고 외부에서 http://BBB.com/?act=procInsertDocumentFromExternal 요렇게 POST 요청 날리시면 됩니다. 그 함수에서는 Context::get('')으로 요청 파라미터를 받아서 처리하시구요..
* csrf 검증을 꺼두셔야 합니다. 대신 개인 토큰으로 요청 검증하세요.
A 사이트에서는 ...
기진곰님 모듈 템플릿에 이미 트리거 함수들이 만들어져 있어서 *.class.php 파일에 보시면
array('document.insertDocument', 'after', 'controller', 'triggerAfterInsertDocument')
위 구문이 주석되어 있는데 풀어주면 글을 쓸 때 마다 동작하는 트리거를 활성화 할 수 있어요.
*.controller.php 에 보면 triggerAfterInsertDocument 함수가 있습니다. 여기서 curl 이나 뭐 그런걸로 위의 주소에 post request 던지시면됩니다.. (함수 인자로 들어오는 obj 에 문서 객체가 들어옵니다.)
몇 번 다루다 보시면 익숙해지실거에요