Archive Builder 플러그인


티키5에서 도입됨

위키는 모든사람이 정보에 접근할 수 있는 훌륭한 중앙 리포지터리입니다. 하지만, 조직의 영역 내에서 사용될 때, 외부 그룹의 사람들에게 정보의 일부만을 제공하는 것은 어려운 일일 수도 있습니다. 권한 할당을 통하여 가능하지만, 여전히 사람들에게 위키에 접근을 승인해야하고, 계정을 제공해야하고, 사람들이 필요한 것을 찾는 절차를 보조하는 것등을 필요로 합니다. 단순히, 그들에게 필요한 정보가 담긴 압축파일을 보내는 것이 더 쉬운 일일 수도 있습니다.

예제


이 플러그인은 바로 그러한 일을 합니다. 인수를 통하여, 보관(archive)의 내용을 정의하는 것을 허용합니다. 렌더가 되고나면, 순간 보관을 생성할 보관 다운로드 버튼을 표시합니다.

샘플 사용예
Copy to clipboard
{ARCHIVEBUILDER(name=DF120-Summary.zip)} page-as-pdf:DF120/Vision.pdf:VisionDF120 page-as-pdf:DF120/Team.pdf:TeamDF120 tracker-attachments:DF120/Requirements/:2232 {ARCHIVEBUILDER}


사용가능한 플러그인의 출력은 다음 내용과 유사할 것입니다:

  • DF120-Summary.zip
    • DF120/
      • Requirements/
        • performance.doc
        • mockup.png
      • Vision.pdf
      • Team.pdf
    • manifest.txt (automatically generated, containing the list of files)

문법

아래는 이 플러그인에서 아용되는 매개변수와 본문에 해당하는 문법입니다.

매개변수

Define an archive that can be downloaded
Introduced in Tiki 5. Required parameters are in bold.
Go to the source code
Preferences required: wikiplugin_archivebuilder

Parameters Accepted Values Description Default Since
(body of plugin) Description of the archive content. Multiple handlers are available for content types. One per line. Ex: page-as-pdf:some-folder/foo.pdf:HomePage , tracker-attachments:target-folder/:3435
name Upon download, the name of the file that will be provided. 5.0


본문

플러그인의 본문은 단순히 어떠 파일을 만들 것이며 어디에서 컨텐츠를 가져올지를 결정하는 규칙의 목록입니다. 각 줄은 독립적입니다. 인수는 콜론으로 구분됩니다. 첫 인수는 나머지 줄을 어떻게 취급할 것인지를 나타냅니다. 다음의 토큰들이 사용될 수 있습니다:

  • page-as-pdf 페이지의 컨텐츠 렌더한 것을 가지고 PDF를 만듬.
    • 첫 번째 인수는 ZIP 파일 내부의 PDF 파일의 이름과 위치입니다.
    • 두 번째 인수는 페이지명입니다.
  • tracker-attachments 는 트래커 항목 상의 모든 첨부파일을 수집하여 폴더에 저장합니다.
    • 첫 번재 인수는 파일들이 추가될 폴더의 이름입니다.
    • 두 번재 인수는 트래커 항목의 ID 입니다.

요구사항


PDF 로 인쇄 메커니즘은 표준 위키 인쇄 기능을 사용합니다. 하지만, PDF 생성은 PDF 도구로의 외부 HTML을 통하여 이루어집니다. 이는 반드시 활성화되고 구성되어야만 합니다. 다음은 대안들입니다. 하나를 선택하십시오

  1. 웹킷 wkhtmltopdf
    • wkhtmltopdf 를 다운로드하고 실행파일을 호스트의 어딘가에 놓아두십시오. 웹서버에서 실행이 가능한지를 확인하십시오.
    • URL에서 PDF웹킷으로 설정하십시오 (기본설정: print_pdf_from_url 을 webkit 으로 설정)
    • 웹킷 경로 를 실행파일의 전체경로로 설정하십시오. 예를 들면 /home/doc.tiki.org/webkit/wkhtmltopdf.(기본설정: print_pdf_webkit_path)
  2. 웹서비스
    • URL에서 PDF웹서비스로 설정하십시오 (기본설정: print_pdf_from_url 을 웹서비스로 설정)
    • 웹서비스 URL 을 서비스 위치로 설정하십시오. 웹서비스는 반드시 질의 문자열로 URL을 가져야만 합니다. 샘플 PHP 스크립트가 아래에 제공됩니다. (기본설정: print_pdf_webservice_url)


주의: 티키<5.0 버전에서는, 이러한 기본설정들이 데이터베이스에서 직접적으로 설정되어야만 합니다 (티키에서 이들을 보려면 캐시를 삭제하는 것을 잊지마십시오)

주의: 이 설정들은 관리 홈 (tiki-admin.php)과 구성 검색 상자에서 발견될 수 있습니다, (따옴표 없이) "pdf" 를 입력하십시오. 제출한 후, 각 설정 옆에 "발견되지 않음"을 보시게 될 것입니다; 이를 무시하십시오 (이는 그 설정에 대한 관리 패널이 발견될 수 없다는 것을 말하고 있는 것입니다).

왜 구성작업이 필요한가?

wkhtmltopdf 는 C++로 작성되어있으며 윈도우/리눅스/맥OSX 에 대하여 다른 패키지들이 존재합니다, 그러므로 개별적으로 설치하는 것이 좋습니다.

나아가서, 일부 서버들은 쉘에서 실행을 허용하지 않습니다, 하지만 여기에서 이는 필수사항입니다. 이 문제는 다른 서버에 설치를 하고 원격으로 접근하는 방식으로 우회할 수 있습니다.

접근 권한

페이지의 컨텐츠가 URL을 통하여 접근되기 때문에, 접근 권한이 반드시 올바르게 관리되어야만 합니다. 권한이 페이지가 익명사용자에게 보이는 것으로부터 보호를 하거나 플러그인이 이를 다르게 렌더하는 경우, 추가 기능이 활성화되어야만 합니다.

토큰 접근 기능은 보관 빌더(archive builder) 로 하여금 특정 URL로 바인드되는 토큰을 생성하는 것을 허용합니다. 그러면 PDF 생성기는 URL로의 부분으로써 토큰을 포함할 것입니다. 그렇게되면 보관 요청자에 의하여 사용된 그룹과 동일한 그룹을 PDF 생성기에 허용할 것입니다. 기본으로, 토큰은 30초 동안 사용가능할 것입니다.

샘플 웹서비스

generate_pdf.php
Copy to clipboard
<?php $query = $_SERVER['QUERY_STRING']; if( ! empty( $query ) ) { header( 'Content-Type: application/pdf' ); $query = escapeshellarg( urldecode( $query ) ); echo `../wkhtmltopdf-i386 $query -`; } ?>