", $filecontentsEscaped); $result = "" . $filecontentsEscaped . "\n"; $result = "
\n" . $result . "
\n"; if (@$opt['header']) { $result = ((@$opt['header'] == 'bold') ? "$filename:" : "$filename:") . "
\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')) { $stat = stat("$targetdir/$filename"); $filelist[$stat['size']] = $filename; } else if (strstr(@$opt['order'], 'atime')) { $stat = stat("$targetdir/$filename"); $filelist[$stat['atime']] = $filename; } else if (strstr(@$opt['order'], 'ctime')) { $stat = stat("$targetdir/$filename"); $filelist[$stat['ctime']] = $filename; } else if (strstr(@$opt['order'], 'time')) { // this includes the case "mtime" $stat = stat("$targetdir/$filename"); $filelist[$stat['mtime']] = $filename; } else if (strstr(@$opt['order'], 'name')) { $filelist[$filename] = $filename; } else { // default $filelist[$filename] = $filename; } } closedir($dirp); if (@$opt['order']{0} == '-') arsort($filelist); else asort($filelist); $result = ''; foreach($filelist as $sortkey=>$filename) { $result .= getFormattedFileContents($filename, "$targetdir/$filename", $opt) . "\n"; } return $result; } }