" . "$name = $obj", "
";
}
else {
$obj = print_r($obj, true);
if ($hsc)
$obj = htmlspecialchars($obj);
echo " $name = ", $obj, "
";
}
}
// recursively delete all the files
function delete_dir($dir) {
if (($dh = opendir($dir)) != false) {
while (($file = readdir($dh)) !== false) {
if ($file === '.' || $file === '..') continue;
$file = $dir . $file;
if (is_dir($file))
delete_dir($file . '/');
else
unlink($file);
}
closedir($dh);
}
rmdir($dir);
}
function html_color_to_RGB($color) {
if (strlen($color) == 7 && substr($color, 0, 1) != '#')
return array(0, 0, 0);
$R = hexdec(substr($color, 1, 2));
$G = hexdec(substr($color, 3, 2));
$B = hexdec(substr($color, 5, 2));
return array('R' => $R, 'G' => $G, 'B' => $B);
}
function has_extension($name, $ext) {
$n = strlen($ext);
$l = strlen($name);
$tail = substr($name, $l - $n);
return stristr($tail, $ext) != false;
}
function replace_extension($name, $from, $to) {
return substr($name, 0, -strlen($from)) . $to;
}
function action_button($button_name, $action = '', $hidden = NULL) {
global $ID;
$form = new Doku_Form('Form_' . $button_name);
if (!$action) $action = $button_name;
$form->addHidden('do', $action);
if (is_array($hidden)) foreach ($hidden as $key => $value)
$form->addHidden($key, $value);
$form->addElement(form_makeButton('submit', '', $button_name));
return $form->getForm();
}
function render_code(&$renderer, $code, $lang) {
// code
$renderer->doc .= "";
$geshi = new GeSHi($code, $lang);
$geshi->set_header_type(GESHI_HEADER_DIV);
$geshi->enable_line_numbers(GESHI_NORMAL_LINE_NUMBERS);
$renderer->doc .= $geshi->parse_code();
$renderer->doc .= "
";
}
function button_delete($ID) {
global $REV;
if (auth_quickaclcheck($ID) < AUTH_DELETE || $REV) return '';
return action_button('Delete', 'save', array('id' => $ID, 'wikitext' => '', 'summary' => "delete $ID"));
}
function button_remake($ID) {
global $REV;
global $INFO;
if (!$INFO['writable'] || $REV) return '';
return action_button('Remake', 'remake', array('id' => $ID));
}
function button_remove($range, $tag) {
global $ID;
global $REV;
global $INFO;
if (!$INFO['writable'] || $REV) return '';
return action_button('Remove', 'remove_tag', array(
'tag' => $tag,
'range' => $range
));
}
function button_add($button_name, $tag, $name="") {
global $ID;
global $REV;
global $INFO;
if (!$INFO['writable'] || $REV) return '';
return action_button($button_name, 'add_tag', array(
'tag' => $tag,
'name', $name
));
}
function set_media_file_revision_limit($limit) {
global $media_file_revision_limit;
if (!$limit) $limit = '0';
$limit = trim(strtoupper($limit));
switch ($limit) {
case '0':
case 'OFF':
case 'FALSE':
case 'NULL':
$media_file_revision_limit = 0;
break;
default:
if (!preg_match('/(\d+) *(B|KB|MB|GB|TB)?/', $limit, $matches)) {
msg('Cannot understand the configuration setting for "media file revision limit"', -1);
break;
}
$size = $matches[1];
if (count($matches) > 2) switch ($matches[2]) {
case 'TB':
$size *= 1024;
case 'GB':
$size *= 1024;
case 'MB':
$size *= 1024;
case 'KB':
$size *= 1024;
}
$media_file_revision_limit = $size;
}
}
function copy_updated_file($from, $to) {
return copy($from, $to);
}
function file_mimetype($id, $project) {
list($ext, $mime, $dl) = mimetype($id, false);
if ($ext === false)
$mime = 'application/octet-stream';
if ($mime == 'application/octet-stream') {
$path = $project->path() . noNS($id);
$finfo = new finfo(FILEINFO_MIME_TYPE);
$mime = $finfo->file($path);
}
return $mime;
}
?>