\n", $filecontentsEscaped);
$result = "" .
$filecontentsEscaped . "
\n";
$result = "
\n" . $result . "
\n";
}
if (@$opt['header']) {
if (false !== strpos($opt['header'] . ",", "filename,"))
$result = "$filename:
\n" . $result;
if (false !== strpos($opt['header'] . ",", "filenamebold,"))
$result = "$filename:
\n" . $result;
if (false !== strpos($opt['header'] . ",", "filenamesmall,"))
$result = "$filename:
\n" . $result;
if (false !== strpos($opt['header'] . ",", "hr,"))
$result = "
\n" . $result;
}
return $result;
}
function includeTextAsCodeFunc($pagename, $args) {
global $UploadDir, $UploadPrefixFmt;
global $AuthFunction, $HandleAuth;
$opt = ParseArgs($args);
if (!(@$opt[''][0]) && !(@$opt['ext']))
return "(:includefile:) failed: no arguments given.
\n";
// retrieve filename from options and make sure it is well-behaved:
$filename = @$opt[''][0]; $filename = str_replace('..', '', $filename);
// permission check for accessing files in this page dir:
if (!$AuthFunction($pagename, $HandleAuth['includefile'], false))
return "(:includefile:) failed: Insufficient privileges to include files " .
"from this directory.
\n";
if (!(@$opt['ext'])) {
$fullfilename = FmtPageName("$UploadDir$UploadPrefixFmt", $pagename) . "/$filename";
// This currently supports only including from the directory directly belonging to the wiki page.
// No relative or absolute paths (as described on my (ThomasP) profile page) allowed at the moment.
if (file_exists($fullfilename)) {
return getFormattedFileContents($filename, $fullfilename, $opt);
}
return "(:includefile $filename:) failed: Could not open $filename in " .
"directory for page $pagename.
\n";
} else { // have a pattern instead of a single file
$matchext = '/\\.('
. implode('|', preg_split('/\\W+/', $opt['ext'], -1, PREG_SPLIT_NO_EMPTY))
. ')$/i';
$targetdir = FmtPageName("$UploadDir$UploadPrefixFmt", $pagename);
$dirp = @opendir($targetdir);
if (!$dirp) return "(:includefile:) failed: Unable to open $targetdir.
\n";
$filelist = array();
while (($filename=readdir($dirp)) !== false) {
if ($filename{0} == '.') continue;
if (@$matchext && !preg_match(@$matchext, $filename)) continue;
if (strstr(@$opt['order'], 'size')) {
if (!($stat = @stat("$targetdir/$filename"))) continue;
$filelist[$stat['size']] = $filename;
} else
if (strstr(@$opt['order'], 'atime')) {
if (!($stat = @stat("$targetdir/$filename"))) continue;
$filelist[$stat['atime']] = $filename;
} else
if (strstr(@$opt['order'], 'ctime')) {
if (!($stat = @stat("$targetdir/$filename"))) continue;
$filelist[$stat['ctime']] = $filename;
} else
if (strstr(@$opt['order'], 'time')) { // this includes the case "mtime"
if (!($stat = @stat("$targetdir/$filename"))) continue;
$filelist[$stat['mtime']] = $filename;
} else
if (strstr(@$opt['order'], 'name')) {
$filelist[$filename] = $filename;
} else { // default
$filelist[$filename] = $filename;
}
}
closedir($dirp);
if (@$opt['order']{0} == '-') krsort($filelist);
else ksort($filelist);
$result = '';
foreach($filelist as $sortkey=>$filename) {
$result .= getFormattedFileContents($filename, "$targetdir/$filename", $opt) . "\n";
}
return $result;
}
}