Q&A

댓글 5

  • 2020.03.24 12:56 #1366836
    방법은 A사이트의 글을 B사이트로 크롤링하여 B사이트의 게시판 하나에 모아두면될거같네요 ~
  • 2020.03.25 01:31 #1367062
    제가 아직 지식이 부족하여, 공부해보고자 하는데요.
    말씀하신 크롤링 방법의 경우 어떤식으로 찾아보면 될까요?
    요런것도 모듈이나 위젯같은게 있을까요?
  • 2020.03.24 14:17 #1366875

    b 사이트에 post로 insertDocument 메소드 동작이 가능하도록 api path 하나 구성하시고 (토큰 검증 과정이 있으면 좋겟네요) a 사이트에는 InsertDocument 이후에 동작하는 트리거 하나 구성하셔서 작성된 문서 오브젝트로 b 사이트 api 콜 하시면 댑니다. db에 직접 넣는 방식은 document_srl 이 중복될 여지가 있어서 안좋을 것 같더라구요.

     

    단순히 문서만 모으는 거라 댓글이나 추천 반영이 안되는게 단점이에요 사용자 정보 동기화도 안되구용

  • 2020.03.25 01:32 #1367066
    답변너무 감사합니다.

    .........제가 지식이 부족하여 무슨말인지 이해가 안되어;;; 지금부터 번역해보려고 하는데요.
    혹시 이부분에 대해서 적용할수있으려면 어떤 부분을 찾아봐야될까요?
  • 2020.03.25 02:23 #1367079
    모듈을 따로 만드시는걸 추천드리는데요. 모듈 템플릿은 정말 감사드리게도 기진곰님께서 만들어주신 빌더가 있어서 그걸로 받으시면 됩니다. => https://www.poesis.org/tools/modulegen/

    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 에 문서 객체가 들어옵니다.)

    몇 번 다루다 보시면 익숙해지실거에요