xref: /plugin/zwidoku/getEncyc.php (revision f82bbc904bd835fc66a3f52ffaef251433904ec2)
1*f82bbc90SS.Chekanov<?php
2*f82bbc90SS.Chekanov/**
3*f82bbc90SS.Chekanov * ZWIdoku Plugin: Get the article.
4*f82bbc90SS.Chekanov *
5*f82bbc90SS.Chekanov * @license  LGPL 2 (http://www.gnu.org/licenses/gpl.html)
6*f82bbc90SS.Chekanov * @author   S.Chekanov
7*f82bbc90SS.Chekanov * @based_on "pageindex" plugin by Kite <Kite@puzzlers.org>
8*f82bbc90SS.Chekanov * @based_on "externallink" plugin by Otto Vainio <plugins@valjakko.net>
9*f82bbc90SS.Chekanov * @based_on "pagelist" plugin by Esther Brunner <wikidesign@gmail.com>
10*f82bbc90SS.Chekanov *
11*f82bbc90SS.Chekanov */
12*f82bbc90SS.Chekanov
13*f82bbc90SS.Chekanov
14*f82bbc90SS.Chekanovif(!defined('DOKU_INC')) define('DOKU_INC',realpath(dirname(__FILE__).'/../../../').'/');
15*f82bbc90SS.Chekanovif(!defined('DOKU_LIB')) define('DOKU_LIB',realpath(dirname(__FILE__).'/../../').'/');
16*f82bbc90SS.Chekanovif(!defined('DOKU_PLUGIN')) define('DOKU_PLUGIN',DOKU_LIB.'plugins/');
17*f82bbc90SS.Chekanov//define('DOKU_MAIN',realpath(dirname(__FILE__).'/../../../').'/');
18*f82bbc90SS.Chekanov
19*f82bbc90SS.Chekanov// must be run within Dokuwiki
20*f82bbc90SS.Chekanovif(!defined('DOKU_INC')) die("Cannot find installed DokuWiki");
21*f82bbc90SS.Chekanov
22*f82bbc90SS.Chekanov
23*f82bbc90SS.Chekanov$wgMzwiName="enhub";
24*f82bbc90SS.Chekanov# action tab to make "Export to ZWI"
25*f82bbc90SS.Chekanov$wgMzwiTab=true;
26*f82bbc90SS.Chekanov# Submission webpage to Encyclosphere
27*f82bbc90SS.Chekanov# Set to 0 to trigger download and nothing more
28*f82bbc90SS.Chekanov# Set to 1 to create ZWI in extension/ZWIMaker/tmp and do not do anything
29*f82bbc90SS.Chekanov# Set to 2 to create ZWI in extension/ZWIMaker/tmp and submit to the Encyclosphre
30*f82bbc90SS.Chekanov$wgMzwiSubmit=1;
31*f82bbc90SS.Chekanov#
32*f82bbc90SS.Chekanov# if false, then anybody after login can send ZWI file to Encyclosphere
33*f82bbc90SS.Chekanov# if true, then only authors or contributors can send the article to Encyclosphere
34*f82bbc90SS.Chekanov$wgMzwiAuthorApprove=false;
35*f82bbc90SS.Chekanov#
36*f82bbc90SS.Chekanov# Password for the submission
37*f82bbc90SS.Chekanov$wgMzwiPassword='wfA7NKt1W2';
38*f82bbc90SS.Chekanov#
39*f82bbc90SS.Chekanov# Encyclosphere submission URL if select 1
40*f82bbc90SS.Chekanov$wgMzwiSubmitUrl="https://encycloreader.org/upload/";
41*f82bbc90SS.Chekanov
42*f82bbc90SS.Chekanov# what about the license?
43*f82bbc90SS.Chekanov$wgMzwiLicense='CC BY-SA 3.0';
44*f82bbc90SS.Chekanov
45*f82bbc90SS.Chekanov//echo DOKU_INC;
46*f82bbc90SS.Chekanov//die();
47*f82bbc90SS.Chekanov
48*f82bbc90SS.Chekanov//require_once(DOKU_INC.'/inc/pageutils.php');
49*f82bbc90SS.Chekanovrequire_once(DOKU_INC.'/inc/init.php');
50*f82bbc90SS.Chekanovrequire_once(DOKU_INC.'/inc/template.php');
51*f82bbc90SS.Chekanov
52*f82bbc90SS.Chekanov$CURRENT_URL="https://enhub.org/dokuwiki/";
53*f82bbc90SS.Chekanov
54*f82bbc90SS.Chekanov$actual_link = (isset($_SERVER['HTTPS']) && $_SERVER['HTTPS'] === 'on' ? "https" : "http") . "://$_SERVER[HTTP_HOST]$_SERVER[REQUEST_URI]";
55*f82bbc90SS.Chekanov$newlink = str_replace("lib/plugins/zwidoku/getEncyc.php?id=", "doku.php?id=", "$actual_link");
56*f82bbc90SS.Chekanov
57*f82bbc90SS.Chekanov$tmp=explode("getEncyc.php", $actual_link);
58*f82bbc90SS.Chekanov$ext_path = trim( $tmp[0] );
59*f82bbc90SS.Chekanov
60*f82bbc90SS.Chekanov
61*f82bbc90SS.Chekanovrequire("Html2Text.php");
62*f82bbc90SS.Chekanovrequire("ShortDescription.php");
63*f82bbc90SS.Chekanov
64*f82bbc90SS.Chekanov
65*f82bbc90SS.Chekanov       function texifyReference($reference) {
66*f82bbc90SS.Chekanov                $patterns[ 0] = '/[áâ�| åä]/ui';
67*f82bbc90SS.Chekanov                $patterns[ 1] = '/[ðéêèë]/ui';
68*f82bbc90SS.Chekanov                $patterns[ 2] = '/[íîìï]/ui';
69*f82bbc90SS.Chekanov                $patterns[ 3] = '/[óôòøõö]/ui';
70*f82bbc90SS.Chekanov                $patterns[ 4] = '/[úûùü]/ui';
71*f82bbc90SS.Chekanov                $patterns[ 5] = '/æ/ui';
72*f82bbc90SS.Chekanov                $patterns[ 6] = '/ç/ui';
73*f82bbc90SS.Chekanov                $patterns[ 7] = '/�~_/ui';
74*f82bbc90SS.Chekanov                $patterns[ 8] = '/\\s/';
75*f82bbc90SS.Chekanov                $patterns[ 9] = '/#/';
76*f82bbc90SS.Chekanov                $patterns[10] = '/[^A-Za-z0-9\\-:]/';
77*f82bbc90SS.Chekanov                $replacements[ 0] = 'a';
78*f82bbc90SS.Chekanov                $replacements[ 1] = 'e';
79*f82bbc90SS.Chekanov                $replacements[ 2] = 'i';
80*f82bbc90SS.Chekanov                $replacements[ 3] = 'o';
81*f82bbc90SS.Chekanov                $replacements[ 4] = 'u';
82*f82bbc90SS.Chekanov                $replacements[ 5] = 'ae';
83*f82bbc90SS.Chekanov                $replacements[ 6] = 'c';
84*f82bbc90SS.Chekanov                $replacements[ 7] = 'ss';
85*f82bbc90SS.Chekanov                $replacements[ 8] = '-';
86*f82bbc90SS.Chekanov                $replacements[ 9] = ':';
87*f82bbc90SS.Chekanov                $replacements[10] = '_';
88*f82bbc90SS.Chekanov
89*f82bbc90SS.Chekanov                return preg_replace($patterns, $replacements, $reference);
90*f82bbc90SS.Chekanov        }
91*f82bbc90SS.Chekanov
92*f82bbc90SS.Chekanov
93*f82bbc90SS.Chekanov
94*f82bbc90SS.Chekanov$ID = cleanID(getID());
95*f82bbc90SS.Chekanov//die("ID=".$ID);
96*f82bbc90SS.Chekanov$onlyCode = $INPUT->str('onlyCode');
97*f82bbc90SS.Chekanov$insideTag = $INPUT->str('insideTag');
98*f82bbc90SS.Chekanov$title=tpl_pagetitle(null,true);
99*f82bbc90SS.Chekanov$titletext=tpl_pagetitle(null,true);
100*f82bbc90SS.Chekanov
101*f82bbc90SS.Chekanov
102*f82bbc90SS.Chekanov    if (empty($conf['useacl']) || auth_quickaclcheck($ID) >= AUTH_READ) {
103*f82bbc90SS.Chekanov    	$file = rawWiki($ID);
104*f82bbc90SS.Chekanov        $articleWiki = $file;
105*f82bbc90SS.Chekanov
106*f82bbc90SS.Chekanov	$fileLastMod = wikiFN($ID);
107*f82bbc90SS.Chekanov        $lastMod     = @filemtime($fileLastMod); // from page
108*f82bbc90SS.Chekanov        $NS=getNS($ID);
109*f82bbc90SS.Chekanov
110*f82bbc90SS.Chekanov        // get revisions
111*f82bbc90SS.Chekanov        $filepath = str_replace(":", "/", $ID);
112*f82bbc90SS.Chekanov        // list all revisions
113*f82bbc90SS.Chekanov        $path=DOKU_INC."data/attic/". $filepath."*";
114*f82bbc90SS.Chekanov        $files = glob($path);
115*f82bbc90SS.Chekanov
116*f82bbc90SS.Chekanov        //print_r($files);
117*f82bbc90SS.Chekanov
118*f82bbc90SS.Chekanov        $changes="data/meta/".$filepath .".changes";
119*f82bbc90SS.Chekanov        $indexed="data/meta/".$filepath .".indexed";
120*f82bbc90SS.Chekanov        $meta="data/meta/".$filepath .".meta";
121*f82bbc90SS.Chekanov
122*f82bbc90SS.Chekanov        $dir_changes=DOKU_INC."data/meta/".$filepath .".changes";
123*f82bbc90SS.Chekanov        $dir_indexed=DOKU_INC."data/meta/".$filepath .".indexed";
124*f82bbc90SS.Chekanov        $dir_meta=DOKU_INC."data/meta/".$filepath .".meta";
125*f82bbc90SS.Chekanov
126*f82bbc90SS.Chekanov        //echo $dir_changes;
127*f82bbc90SS.Chekanov
128*f82bbc90SS.Chekanov    	//if ($onlyCode)
129*f82bbc90SS.Chekanov    	//	$file = preg_replace('/[\s\S]*<code>/m', '', preg_replace('/<\/code>[\s\S]*/m', '', $file));
130*f82bbc90SS.Chekanov    	//if ($insideTag)
131*f82bbc90SS.Chekanov        //		$file = preg_replace('/[\s\S]*<' . $insideTag . '[^>]*>/m', '', preg_replace('/<\/' . $insideTag . '>[\s\S]*/m', '', $file));
132*f82bbc90SS.Chekanov
133*f82bbc90SS.Chekanov    	//print $file;
134*f82bbc90SS.Chekanov       // file_put_contents("tmp/article.txt", $file);
135*f82bbc90SS.Chekanov
136*f82bbc90SS.Chekanov
137*f82bbc90SS.Chekanov$pieces = explode(":", $ID);
138*f82bbc90SS.Chekanov
139*f82bbc90SS.Chekanov$filename="article";
140*f82bbc90SS.Chekanovif (count($pieces)>1)
141*f82bbc90SS.Chekanov   $filename=texifyReference($pieces[1]);  // no spaces etc..
142*f82bbc90SS.Chekanov
143*f82bbc90SS.Chekanov$filename=DOKU_INC."data/cache/".$filename . ".zwi";
144*f82bbc90SS.Chekanov$zipfilename=$filename;
145*f82bbc90SS.Chekanov// clear
146*f82bbc90SS.Chekanovunlink( $filename );
147*f82bbc90SS.Chekanov
148*f82bbc90SS.Chekanov//$filename="/tmp/".$filename . ".wik";
149*f82bbc90SS.Chekanov//echo $filename;
150*f82bbc90SS.Chekanov//die("OK");
151*f82bbc90SS.Chekanov
152*f82bbc90SS.Chekanov$zip = new ZipArchive;
153*f82bbc90SS.Chekanov$isZipOpen=$zip->open($filename, ZipArchive::CREATE);
154*f82bbc90SS.Chekanov
155*f82bbc90SS.Chekanovif ($isZipOpen === TRUE)
156*f82bbc90SS.Chekanov{
157*f82bbc90SS.Chekanov    // Add files to the zip file
158*f82bbc90SS.Chekanov    //$zip->addFile('test.txt');
159*f82bbc90SS.Chekanov    //$zip->addFile('test.pdf');
160*f82bbc90SS.Chekanov    // Add random.txt file to zip and rename it to newfile.txt
161*f82bbc90SS.Chekanov    //$zip->addFile('random.txt', 'newfile.txt');
162*f82bbc90SS.Chekanov    // Add a file new.txt file to zip using the text specified
163*f82bbc90SS.Chekanov    $zip->addFromString('article.dokuwiki', $articleWiki);
164*f82bbc90SS.Chekanov
165*f82bbc90SS.Chekanov   // XHTML for embedding
166*f82bbc90SS.Chekanov   $xx=$CURRENT_URL."/doku.php?id=".$ID."&do=export_xhtmlbody";
167*f82bbc90SS.Chekanov   $body_content = file_get_contents($xx);
168*f82bbc90SS.Chekanov
169*f82bbc90SS.Chekanov
170*f82bbc90SS.Chekanov   # push all revisions too
171*f82bbc90SS.Chekanov    $xr=0;
172*f82bbc90SS.Chekanov    foreach ($files as $xfile) {
173*f82bbc90SS.Chekanov             $destination = str_replace(DOKU_INC, "", $xfile);
174*f82bbc90SS.Chekanov             //print($destination);
175*f82bbc90SS.Chekanov             $zip->addFile($xfile, $destination);
176*f82bbc90SS.Chekanov             $xr=$xr+1;
177*f82bbc90SS.Chekanov             };
178*f82bbc90SS.Chekanov
179*f82bbc90SS.Chekanov    // metadata
180*f82bbc90SS.Chekanov    $zip->addFile($dir_changes, $changes);
181*f82bbc90SS.Chekanov    $zip->addFile($dir_indexed, $indexed);
182*f82bbc90SS.Chekanov    $zip->addFile($dir_meta,   $meta);
183*f82bbc90SS.Chekanov
184*f82bbc90SS.Chekanov
185*f82bbc90SS.Chekanov    // css
186*f82bbc90SS.Chekanov    $css_file=DOKU_INC."/lib/plugins/zwidoku/files/common.css";
187*f82bbc90SS.Chekanov    $zip->addFile($css_file, "data/css/common.css");
188*f82bbc90SS.Chekanov    $css_file=DOKU_INC."/lib/plugins/zwidoku/files/fonts.css";
189*f82bbc90SS.Chekanov    $zip->addFile($css_file, "data/css/fonts.css");
190*f82bbc90SS.Chekanov    $css_file=DOKU_INC."/lib/plugins/zwidoku/files/doku.css";
191*f82bbc90SS.Chekanov    $zip->addFile($css_file, "data/css/doku.css");
192*f82bbc90SS.Chekanov
193*f82bbc90SS.Chekanov
194*f82bbc90SS.Chekanov    $page_title=tpl_pagetitle(null,true);
195*f82bbc90SS.Chekanov    //$page_info=tpl_pageinfo(true);
196*f82bbc90SS.Chekanov
197*f82bbc90SS.Chekanov    //die("OK");
198*f82bbc90SS.Chekanov
199*f82bbc90SS.Chekanov    // list used plugins for consistency
200*f82bbc90SS.Chekanov     foreach(glob(DOKU_INC."lib/plugins/*", GLOB_ONLYDIR) as $dir) {
201*f82bbc90SS.Chekanov        $usedplugins[] = basename($dir);
202*f82bbc90SS.Chekanov     }
203*f82bbc90SS.Chekanov
204*f82bbc90SS.Chekanov
205*f82bbc90SS.Chekanov    $zip->addFromString('plugins.json', json_encode($usedplugins));
206*f82bbc90SS.Chekanov
207*f82bbc90SS.Chekanov
208*f82bbc90SS.Chekanov    $DESC = new ShortDescription($articleWiki,$articleTXT);
209*f82bbc90SS.Chekanov    $description=$DESC->getDescription();
210*f82bbc90SS.Chekanov
211*f82bbc90SS.Chekanov    $Lang="en";
212*f82bbc90SS.Chekanov
213*f82bbc90SS.Chekanov    // remove styles
214*f82bbc90SS.Chekanov    $html_tmp=preg_replace('/(<(script|style)\b[^>]*>).*?(<\/\2>)/is', "$1$3", $body_content);
215*f82bbc90SS.Chekanov    $html_tmp=strip_tags($html_tmp, '<b>');    // remove bold, so it will not move to upper case;
216*f82bbc90SS.Chekanov    $html_tmp=strip_tags($html_tmp, '<i>'); // remove italic
217*f82bbc90SS.Chekanov    $html2TextConverter = new \Html2Text\Html2Text($html_tmp);
218*f82bbc90SS.Chekanov    $articleTXT = $html2TextConverter->getText();
219*f82bbc90SS.Chekanov
220*f82bbc90SS.Chekanov
221*f82bbc90SS.Chekanov    $content_array= array();
222*f82bbc90SS.Chekanov    $content_array["article.dokuwiki"]=sha1($file); //$revision->getSha1();
223*f82bbc90SS.Chekanov    $content_array["article.html"]=sha1($body_content);
224*f82bbc90SS.Chekanov    $content_array["article.txt"]=sha1($articleTXT);
225*f82bbc90SS.Chekanov
226*f82bbc90SS.Chekanov    $generator="DokuWiki";
227*f82bbc90SS.Chekanov
228*f82bbc90SS.Chekanov    // ZWI -specific metadata for the current revision
229*f82bbc90SS.Chekanov    $tt['ZWIversion'] = "1.3";
230*f82bbc90SS.Chekanov    $tt['Primary'] = "article.dokuwiki";
231*f82bbc90SS.Chekanov    $tt['Title'] = $title;
232*f82bbc90SS.Chekanov    $tt['Namespace'] = $NS;
233*f82bbc90SS.Chekanov    $tt['LastModified'] = dformat($INFO['lastmod']);
234*f82bbc90SS.Chekanov    $tt['TimeCreated'] = dformat($INFO['lastmod']);
235*f82bbc90SS.Chekanov    $tt['Location'] =  $fileLastMod;
236*f82bbc90SS.Chekanov    $tt['Revisions'] =  $xr;
237*f82bbc90SS.Chekanov    $tt['Publisher']=$wgMzwiName;
238*f82bbc90SS.Chekanov    $tt['Content'] = $content_array;
239*f82bbc90SS.Chekanov    $tt['GeneratorName'] = $generator;
240*f82bbc90SS.Chekanov
241*f82bbc90SS.Chekanov   // short description
242*f82bbc90SS.Chekanov   // article information
243*f82bbc90SS.Chekanov   $pagemeta=pageinfo();
244*f82bbc90SS.Chekanov
245*f82bbc90SS.Chekanov   // do not expose pass
246*f82bbc90SS.Chekanov   $pagemeta["userinfo"]["pass"]="";
247*f82bbc90SS.Chekanov   $tt['PageInfo'] =  $pagemeta;
248*f82bbc90SS.Chekanov   //$tt['Creator']=$pagemeta['meta'][;
249*f82bbc90SS.Chekanov   //$tt['Contributors']=$pagemeta['contributor'];
250*f82bbc90SS.Chekanov   // $mresult = array_merge($tt, $pagemeta);
251*f82bbc90SS.Chekanov   //$mresult=$tt;
252*f82bbc90SS.Chekanov
253*f82bbc90SS.Chekanov    $tt['Lang'] = $Lang;
254*f82bbc90SS.Chekanov    //$tt['Comment'] = $title->getEditNotices ();
255*f82bbc90SS.Chekanov    $tt['Rating'] = "";
256*f82bbc90SS.Chekanov    $tt['License'] = $wgMzwiLicense;
257*f82bbc90SS.Chekanov    $tt['Description']=$description;
258*f82bbc90SS.Chekanov    $tt['Author']=$author;
259*f82bbc90SS.Chekanov
260*f82bbc90SS.Chekanov   // write
261*f82bbc90SS.Chekanov   $zip->addFromString('metadata.json', json_encode($tt, JSON_PRETTY_PRINT));
262*f82bbc90SS.Chekanov
263*f82bbc90SS.Chekanov
264*f82bbc90SS.Chekanov$toReplace = array();
265*f82bbc90SS.Chekanov$replacement = array();
266*f82bbc90SS.Chekanov
267*f82bbc90SS.Chekanov$nn=0;
268*f82bbc90SS.Chekanov$doc = new DOMDocument();
269*f82bbc90SS.Chekanov@$doc->loadHTML($body_content);
270*f82bbc90SS.Chekanov$tags = $doc->getElementsByTagName('img');
271*f82bbc90SS.Chekanovforeach ($tags as $tag) {
272*f82bbc90SS.Chekanov       $URL=$tag->getAttribute('src');
273*f82bbc90SS.Chekanov       //die($URL);
274*f82bbc90SS.Chekanov
275*f82bbc90SS.Chekanov       $pieces = explode($NS.":", $URL);
276*f82bbc90SS.Chekanov       $img="none";
277*f82bbc90SS.Chekanov       if (count($pieces))
278*f82bbc90SS.Chekanov                     $img=$pieces[1];
279*f82bbc90SS.Chekanov
280*f82bbc90SS.Chekanov       $output="data/media/".$NS."/".$img;
281*f82bbc90SS.Chekanov       //echo $output ."\n";
282*f82bbc90SS.Chekanov       $imgfile_tmp=$output;
283*f82bbc90SS.Chekanov       //die($imgfile_tmp);
284*f82bbc90SS.Chekanov
285*f82bbc90SS.Chekanov       $imgfile=DOKU_INC.$output;
286*f82bbc90SS.Chekanov       //die($imgfile);
287*f82bbc90SS.Chekanov
288*f82bbc90SS.Chekanov       $info = pathinfo($imgfile);
289*f82bbc90SS.Chekanov       $ext   = $info["extension"];
290*f82bbc90SS.Chekanov       if (strlen($ext)<1) continue;
291*f82bbc90SS.Chekanov
292*f82bbc90SS.Chekanov       if (!file_exists($imgfile)) continue;
293*f82bbc90SS.Chekanov
294*f82bbc90SS.Chekanov       //die($imgfile);
295*f82bbc90SS.Chekanov
296*f82bbc90SS.Chekanov       //echo $imgfile ."\n";
297*f82bbc90SS.Chekanov       $URL = str_replace("&", "&amp;", $URL);
298*f82bbc90SS.Chekanov       //echo $URL . " -> " . $imgfile;
299*f82bbc90SS.Chekanov       //die($imgfile);
300*f82bbc90SS.Chekanov
301*f82bbc90SS.Chekanov       //print($URL);
302*f82bbc90SS.Chekanov
303*f82bbc90SS.Chekanov       $zip->addFile($imgfile, $output);
304*f82bbc90SS.Chekanov       array_push($toReplace,$URL);
305*f82bbc90SS.Chekanov       array_push($replacement,$imgfile_tmp);
306*f82bbc90SS.Chekanov
307*f82bbc90SS.Chekanov       //$newbody_content  = str_replace($URL, $imgfile_tmp, $body_content);
308*f82bbc90SS.Chekanov       //$newhtml_content  = str_replace($URL, $imgfile_tmp, $html_content);
309*f82bbc90SS.Chekanov       //print($URL. "\n");
310*f82bbc90SS.Chekanov
311*f82bbc90SS.Chekanov       $nn=$nn+1;
312*f82bbc90SS.Chekanov}
313*f82bbc90SS.Chekanov
314*f82bbc90SS.Chekanov
315*f82bbc90SS.Chekanov//print_r($toReplace);
316*f82bbc90SS.Chekanov//print_r($replacement);
317*f82bbc90SS.Chekanov//die();
318*f82bbc90SS.Chekanov
319*f82bbc90SS.Chekanov//$newhtml_content = str_replace($toReplace, $replacement, $html_content);
320*f82bbc90SS.Chekanov$newbody_content = str_replace($toReplace, $replacement, $body_content);
321*f82bbc90SS.Chekanov
322*f82bbc90SS.Chekanov//print($newhtml_content);
323*f82bbc90SS.Chekanov//die();
324*f82bbc90SS.Chekanov
325*f82bbc90SS.Chekanov/*
326*f82bbc90SS.Chekanov$lines = explode("\n", $newbody_content);
327*f82bbc90SS.Chekanov$exclude = array();
328*f82bbc90SS.Chekanov$n=0;
329*f82bbc90SS.Chekanovforeach ($lines as $line) {
330*f82bbc90SS.Chekanov    if (strpos($line, 'stylesheet') !== FALSE) {
331*f82bbc90SS.Chekanov            $exclude[] = "<link rel=\"stylesheet\" href=\"data/css/styles.css\">";
332*f82bbc90SS.Chekanov            continue;
333*f82bbc90SS.Chekanov    }
334*f82bbc90SS.Chekanov    $exclude[] = $line;
335*f82bbc90SS.Chekanov}
336*f82bbc90SS.Chekanov$newhtml_content=implode("\n", $exclude);
337*f82bbc90SS.Chekanov*/
338*f82bbc90SS.Chekanov
339*f82bbc90SS.Chekanov
340*f82bbc90SS.Chekanov$start_content = file_get_contents( DOKU_INC."/lib/plugins/zwidoku/html_start" );
341*f82bbc90SS.Chekanov$end_content = file_get_contents( DOKU_INC."/lib/plugins/zwidoku/html_end" );
342*f82bbc90SS.Chekanov
343*f82bbc90SS.Chekanov$html_content = $start_content . $newbody_content  . $end_content;
344*f82bbc90SS.Chekanov
345*f82bbc90SS.Chekanov
346*f82bbc90SS.Chekanov$zip->addFromString('article.html', $html_content);
347*f82bbc90SS.Chekanov// $zip->addFromString('article.xhtml', $newbody_content);
348*f82bbc90SS.Chekanov$zip->addFromString("article.txt", $articleTXT);
349*f82bbc90SS.Chekanov
350*f82bbc90SS.Chekanov
351*f82bbc90SS.Chekanov}
352*f82bbc90SS.Chekanov
353*f82bbc90SS.Chekanov// All files are added, so close the zip file.
354*f82bbc90SS.Chekanov$zip->close();
355*f82bbc90SS.Chekanov
356*f82bbc90SS.Chekanov/*
357*f82bbc90SS.Chekanovif (file_exists($filename)) {
358*f82bbc90SS.Chekanov     print($filename);
359*f82bbc90SS.Chekanov};
360*f82bbc90SS.Chekanov*/
361*f82bbc90SS.Chekanov
362*f82bbc90SS.Chekanov/*
363*f82bbc90SS.Chekanov  if (file_exists($filename)) {
364*f82bbc90SS.Chekanov     header('Content-Type: application/zip');
365*f82bbc90SS.Chekanov     header('Content-Disposition: attachment; filename="'.basename($filename).'"');
366*f82bbc90SS.Chekanov     header('Content-Length: ' . filesize($filename));
367*f82bbc90SS.Chekanov     flush();
368*f82bbc90SS.Chekanov     readfile($filename);
369*f82bbc90SS.Chekanov     // delete file
370*f82bbc90SS.Chekanov     unlink($filename);
371*f82bbc90SS.Chekanov   }
372*f82bbc90SS.Chekanov */
373*f82bbc90SS.Chekanov
374*f82bbc90SS.Chekanov
375*f82bbc90SS.Chekanov//die($ext_path);
376*f82bbc90SS.Chekanov
377*f82bbc90SS.Chekanov$permissionErr = 0;
378*f82bbc90SS.Chekanov$xsub="";
379*f82bbc90SS.Chekanovif ($permissionErr ==0)
380*f82bbc90SS.Chekanov        $xsub="<input type=\"submit\" name=\"submit\" value=\"Submit to the Encyclosphere Network\" />";
381*f82bbc90SS.Chekanovelse if ($permissionErr == 1)
382*f82bbc90SS.Chekanov        $xsub="<input type=\"submit\" name=\"submit\" value=\"Submission to the Encyclosphere is disabled\"  readonly=\"readonly\"  onfocus=\"this.blur();\"  disabled/> <br> (not registered user)";
383*f82bbc90SS.Chekanovelse if ($permissionErr == 2)
384*f82bbc90SS.Chekanov        $xsub="<input type=\"submit\" name=\"submit\" value=\"Submission to the Encyclosphere is disabled\"   readonly=\"readonly\"   onfocus=\"this.blur();\"  disabled/> <br> (did not contribute to this article)";
385*f82bbc90SS.Chekanov
386*f82bbc90SS.Chekanov
387*f82bbc90SS.Chekanov$submit_script=$ext_path . "/" . "zwipush.php";
388*f82bbc90SS.Chekanov
389*f82bbc90SS.Chekanov
390*f82bbc90SS.Chekanov$str = <<<EOD
391*f82bbc90SS.Chekanov<!DOCTYPE html>
392*f82bbc90SS.Chekanov<html class="client-nojs" lang="en" dir="ltr">
393*f82bbc90SS.Chekanov<head>
394*f82bbc90SS.Chekanov<meta charset="UTF-8"/>
395*f82bbc90SS.Chekanov<title>ZWI submit</title>
396*f82bbc90SS.Chekanov<meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=yes, minimum-scale=0.25, maximum-scale=5.0"/>
397*f82bbc90SS.Chekanov<link rel="stylesheet" type="text/css" href="$ext_path/css/zwimaker.css" />
398*f82bbc90SS.Chekanov</head>
399*f82bbc90SS.Chekanov<body>
400*f82bbc90SS.Chekanov<p>
401*f82bbc90SS.Chekanov</p>
402*f82bbc90SS.Chekanov<center>
403*f82bbc90SS.Chekanov<h3>Export the article '$title' ?</h3>
404*f82bbc90SS.Chekanov<p>
405*f82bbc90SS.Chekanov</p>
406*f82bbc90SS.Chekanov<form action="$submit_script" method="post">
407*f82bbc90SS.Chekanov$xsub
408*f82bbc90SS.Chekanov<br>Submit this article to the Encyclosphere Network
409*f82bbc90SS.Chekanovthat can be viewed in <a href="https://encycloreader.org/">EncycloReader</a> supported by <a href='https://encyclosphere.org/about/'><img src='$ext_path/img/Encyclosphere_logo24px.png' alt="Encyclosphere" style='vertical-align:middle;margin:0;'/>KSF</a>
410*f82bbc90SS.Chekanov<p></p>
411*f82bbc90SS.Chekanov<input type="submit" name="download" value="Download to your computer" />
412*f82bbc90SS.Chekanov<br>Save this article to your computer
413*f82bbc90SS.Chekanov<p></p>
414*f82bbc90SS.Chekanov<input type="button" name="cancel" value="Cancel" onClick="window.location='$newlink';" />
415*f82bbc90SS.Chekanov<input type="hidden" id="zwititle" name="zwititle" value='$titletext'  >
416*f82bbc90SS.Chekanov<input type="hidden" id="zwifile" name="zwifile" value='$zipfilename' >
417*f82bbc90SS.Chekanov<input type="hidden" id="posturl" name="posturl" value='$wgMzwiSubmitUrl' >
418*f82bbc90SS.Chekanov<input type="hidden" id="postkey" name="postkey" value='$wgMzwiPassword'  >
419*f82bbc90SS.Chekanov<input type="hidden" id="backlink" name="backlink" value='$newlink'  >
420*f82bbc90SS.Chekanov<input type="hidden" id="extpath" name="extpath" value='$ext_path'  >
421*f82bbc90SS.Chekanov<input type="hidden" id="permission" name="permission" value='$permissionErr'  >
422*f82bbc90SS.Chekanov</form>
423*f82bbc90SS.Chekanov<center>
424*f82bbc90SS.Chekanov</body>
425*f82bbc90SS.Chekanov</html>
426*f82bbc90SS.ChekanovEOD;
427*f82bbc90SS.Chekanov
428*f82bbc90SS.Chekanov    print($str);
429*f82bbc90SS.Chekanov
430*f82bbc90SS.Chekanov    }
431*f82bbc90SS.Chekanov    else
432*f82bbc90SS.Chekanov    	print "Unauthorized";
433*f82bbc90SS.Chekanov
434*f82bbc90SS.Chekanov?>
435*f82bbc90SS.Chekanov
436