Extra Form
PHP PHP 7.2
CMS XpressEngine

사이트를 2개 운영하고있는데요.

 

a사이트 게시글 

b사이트 게시글을

 

b사이트의 통합 게시판 만들어 놓고 하나로 모을수 있을까요?

 

좋은 방법 없을까요? +ㅁ+

 

 

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

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

     

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

  • profile profile
    답변너무 감사합니다.

    .........제가 지식이 부족하여 무슨말인지 이해가 안되어;;; 지금부터 번역해보려고 하는데요.
    혹시 이부분에 대해서 적용할수있으려면 어떤 부분을 찾아봐야될까요?
  • profile profile
    모듈을 따로 만드시는걸 추천드리는데요. 모듈 템플릿은 정말 감사드리게도 기진곰님께서 만들어주신 빌더가 있어서 그걸로 받으시면 됩니다. => 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 에 문서 객체가 들어옵니다.)

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