아래 내용을 줄여서 불러오고싶은데 어떻게하면좋을까요??

 
<!--//도큐먼트권한애드온대응-->
{@
$args->document_srl = $document->document_srl;
$tmp_output = executeQuery('addons.appoint_view_user.getDocumentExtra', $args);
$tmp_output = explode(':"' , $tmp_output->data->extra_vars);
$tmp_output = explode('";' , $tmp_output[3]);
$tmp_output = explode(',' , $tmp_output[0]);
}

심히 고민됩니다...

도큐먼트 권한애드온이 적용된 게시물이 xe_document -> extra_vars라는 칼럼안에 저장시키는 새용을 불러오는것입니다.

  • Lv12
    본문만 봐서는 무슨 내용인지 잘 모르겠으나 혹시 unserialize 를 찾으시는건가요?
  • Lv12

    저렇게 DB에서 꼭 불러와야하는 것인가라는것과 불러와야하면 꼭 저런식으로 짤라야하나 하는것 두가지입니다.ㅠㅠ

    도큐먼트 권한 애드온으로 xe_document의 칼럼 extra_var 에 array를 삽입하고 그것을 활용하는데 게시판스킨에서 호출하려고합니다.

  • Lv37

    $document가 이미 있다면 굳이 쿼리해서 문자열 뜯어볼 필요 없이

    $document->getExtraVars() 하시면 확장변수가 다 나오니 이걸 사용하시면 훨씬 편하겠네요.

    (getExtraValue, getExtraEidValue 등 여러 함수가 있으니 용도에 맞는 것을 찾아보세요.)

  • Lv37
    xe_document_extra_vars keys쪽 데이터가 아닌 xe_document쪽 칼럼에 있는데 그곳에있는 자료는 안불러와지더라구요 ㅠㅠ
  • Lv37
    아, 거기 들어 있는 데이터로군요. 우선 $document->get('extra_vars')로 불러와서 unserialize할 수 있는지 확인해 보시고, 안 되면 어쩔 수 없이 쿼리를 써야겠네요.
  • Lv37

    안되서

    {@ $avuser = explode(',', unserialize(executeQuery('addons.appoint_view_user.getDocumentExtra', $document)->data->extra_vars)->avuser ); }


    이렇게 줄였습니다 ^^ 애드온 DB쿼리에서 불러와서 unserialize한후 avuser에서 배열로 바꾸어 스킨에서 출력 ㅎㅎ