Extra Form
PHP PHP 7.2
CMS XpressEngine

$output = str_replace("<!--BeforeDocument(", $content."<!--BeforeDocument(", $output);

 

바꾼 내용을 추가해서 위쪽에서 바뀐 내용이 확인되도록 해 봤는데요.

아예 $content 로 본문 내용 자체를 바꿔치기 하려면 어떻게 코드를 작성해야 하나요?

  • Lv15
    $output = $content;
    하면 될것 같은데요.
    str_replace 함수는 3개의 변수가 입력되는데
    맨뒤의 내용 중에서 앞의 것이 있으면 중간 것으로 바꾸는 것이에요.

    str_replace("<!--BeforeDocument(", $content."<!--BeforeDocument(", $output);
    이거는
    $output에 들어있는 내용 중에서
    "<!--BeforeDocument(" 요거를 찾아서
    $content."<!--BeforeDocument(" 요렇게 바꿔줘~ 라는 거에요.
  • Lv15 Lv30
    그렇게 하면 본문 내용만 딱 출력되고 레이아웃이나 스킨 등은 전혀 나오지 않아서요.
  • Lv30 Lv15
    $output이 레이아웃등을 포함한 전체 html이군요. 전 본문 부분인줄 알았어요.
    역시 대충 아는 티가 나네요.
  • Lv36

    현재 보고 있는 글의 본문을 통째로 바꿔치기하시려면

    이미 HTML이 모두 작성된 후에 그 부분을 다시 찾으려고 하는 것보다는

    after_module_proc 시점에 Context::get('oDocument')를 직접 조작하는 것이 훨씬 깔끔할 것 같습니다.

    여기에 저장된 내용을 나중에 스킨에서 불러오는 것이니까요.

     

    [수정]

    $oDocument = Context::get('oDocument');

    $oDocument->add('content', '내용');

  • Lv36 Lv30
    감사합니다. 잘 처리했습니다. 내용을 아예 바꾸거나 추가할때 이 방법이 깔끔하고 편한거네요.