You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

134 lines
3.9 KiB

<?php
/**
* @package tikiwiki
*/
// (c) Copyright by authors of the Tiki Wiki CMS Groupware Project
//
// All Rights Reserved. See copyright.txt for details and a complete list of authors.
// Licensed under the GNU LESSER GENERAL PUBLIC LICENSE. See license.txt for details.
// $Id$
require_once('tiki-setup.php');
$structlib = TikiLib::lib('struct');
/**
* @param $source
* @param $dest
* @return int
*/
function copys($source, $dest)
{
if (! is_dir($source)) {
return 0;
}
if (! is_dir($dest)) {
mkdir($dest);
}
$h = @dir($source);
while (@($entry = $h->read()) !== false) {
if (($entry != '.') && ($entry != '..')) {
if (is_dir("$source/$entry") && $dest !== "$source/$entry") {
copys("$source/$entry", "$dest/$entry");
} else {
@copy("$source/$entry", "$dest/$entry");
}
}
}
$h->close();
return 1;
}
/**
* @param $dir
*/
function deldirfiles($dir)
{
$current_dir = opendir($dir);
while ($entryname = readdir($current_dir)) {
if (is_dir("$dir/$entryname") and ($entryname != '.' and $entryname != '..')) {
deldirfiles("${dir}/${entryname}");
} elseif ($entryname != '.' and $entryname != '..') {
unlink("${dir}/${entryname}");
}
}
closedir($current_dir);
}
$access->check_feature('feature_create_webhelp');
$access->check_permission('tiki_p_edit_structures');
$struct_info = $structlib->s_get_structure_info($_REQUEST['struct']);
$smarty->assign_by_ref('struct_info', $struct_info);
if (! $tikilib->user_has_perm_on_object($user, $struct_info['pageName'], 'wiki page', 'tiki_p_view')) {
$smarty->assign('errortype', 401);
$smarty->assign('msg', tra('You do not have permission to view this page.'));
$smarty->display('error.tpl');
die;
}
if (isset($_REQUEST['create'])) {
$smarty->assign('generated', 'y');
$name = $_REQUEST['name'];
$dir = $_REQUEST['dir'];
$smarty->assign('dir', $_REQUEST['dir']);
$struct = $_REQUEST['struct'];
$top = $_REQUEST['top'];
$output = '';
$output .= tra('TikiHelp WebHelp generation engine. Generating WebHelp using:');
$output .= '<ul><li>' . tr("Index: <strong>%0</strong>", $name) . '</li>';
$output .= '<li>' . tr("Directory: <strong>%0</strong>", $dir) . '</li></ul>';
$base = "whelp/$dir";
if (! is_dir("whelp")) {
if (! mkdir("whelp")) {
$smarty->assign('msg', tra("Unable to create directory Run <code>sh setup.sh</code> from the command line to fix."));
$smarty->display('error.tpl');
die;
}
}
if (! is_writeable('whelp')) {
$smarty->assign('msg', tra("You need to change chmod 'whelp' manually to 777"));
$smarty->display('error.tpl');
die;
}
if (! is_dir("whelp/$dir")) {
$output .= '<p>' . tr("Creating directory structure in <strong>%0</strong>.", $base) . '</p>';
mkdir("whelp/$dir");
mkdir("$base/js");
mkdir("$base/css");
mkdir("$base/icons");
mkdir("$base/menu");
mkdir("$base/pages");
mkdir("$base/pages/img");
mkdir("$base/pages/img/wiki_up");
}
$output .= '<p>' . tra('Eliminating previous files.') . '</p>';
deldirfiles("$base/js");
deldirfiles("$base/css");
deldirfiles("$base/icons");
deldirfiles("$base/menu");
deldirfiles("$base/pages");
deldirfiles("$base/pages/img/wiki_up");
// Copy base files to the webhelp directory
copys('lib/tikihelp', "$base/");
copys('img/tikihelp', "$base/icons");
$structlib->structure_to_webhelp($struct, $dir, $top);
$smarty->assign('generated', 'y');
}
$smarty->assign('output', $output);
// disallow robots to index page:
$smarty->assign('metatag_robots', 'NOINDEX, NOFOLLOW');
// Display the template
$smarty->assign('mid', 'tiki-create_webhelp.tpl');
$smarty->display('tiki.tpl');