- echo "<h3>Current Directory: <b>/$newdir</b></h3>";
-
- if ($msg) {
- echo '<p><b>'.htmlspecialchars($msg).'</b></p>';
- }
-
- if ($newdir != '') {
- echo "<u><a href=\"$pluginsskinfiles/\">> Return to / <</a></u><br />";
- if (strstr($newdir, '/')) {
- $splitpath = preg_split( "/\//", strrev($newdir), 2);
- $updir = strrev($splitpath[1]);
- echo "<u><a href=\"$pluginsskinfiles/?dir=/$updir\">> Return to /$updir <</a></u><br /><br />";
- }
- }
- echo "<u><a href=\"$pluginsskinfiles/?dir=$newdir\">> Refresh <</a></u><br />";
-
- echo "<table>";
- if(is_array($dirs)){
- sort($dirs);
- foreach($dirs as $dir) {
- echo "<tr onmouseover='focusRow(this);' onmouseout='blurRow(this);'><td>";
- echo " <a href=\"$pluginsskinfiles/?dir=$newdir/$dir\">";
- echo "<img src=\"$pluginsskinfiles/dir.gif\"> $dir</a> </td>";
- echo "<td> <a href=\"$pluginsskinfiles/?action=rendir&oldname=$newdir/$dir\" title=\"Rename directory\">(ren)</a></td>";
- echo "<td> <a href=\"$pluginsskinfiles/?action=deldir&dir=$newdir&remdir=$newdir/$dir\" title=\"Delete directory\">(del)</a></td>";
- echo "</td><td></td><td></td><td></td><td>";
- echo "<td>".date('M d, Y h:i:s a', filemtime($DIR_SKINS.$SKINSUBDIR.$newdir."/$dir"));
- echo "</td></tr>";
- }
- }
-
- if(is_array($files)){
- sort($files);
- foreach($files as $file) {
- echo "<tr onmouseover='focusRow(this);' onmouseout='blurRow(this);'><td>";
- echo " ";
- if (preg_match("/\.css$/i", $file)) {
- echo "<img src=\"$pluginsskinfiles/css.gif\"> ";
- } elseif (preg_match("/\.php(3|4)?$/i", $file)) {
- echo "<img src=\"$pluginsskinfiles/php.gif\"> ";
- } elseif (_isEditableFile($file)) {
- echo "<img src=\"$pluginsskinfiles/text.gif\"> ";
- } elseif (_isImageFile($file)) {
- echo "<img src=\"$pluginsskinfiles/image.gif\"> ";
- } else {
- echo "<img src=\"$pluginsskinfiles/generic.png\"> ";
+ $file = basename(trim(requestVar('file')));
+
+ $directory = dirname(trim(requestVar('file')));
+ $directory = sfExpandDirectory ($directory);
+
+ if (sfValidPath($directory) && file_exists($directory . $file) &&
+ is_file($directory . $file) && is_readable($directory . $file))
+ {
+ if (strstr(serverVar('HTTP_USER_AGENT'), "MSIE"))
+ $name = preg_replace('/\./', '%2e', $file, substr_count($file, '.') - 1);
+ else
+ $name = $file;
+
+ if ($fp = @fopen($directory . $file, 'r')) {
+ header("Cache-Control: "); // leave blank to avoid IE errors
+ header("Pragma: "); // leave blank to avoid IE errors
+ header("Content-type: application/octet-stream");
+ header('Content-Disposition: attachment; filename="'.$name.'"');
+ header("Content-length: ".(string)(filesize($directory . $file)));
+ sleep(1);
+
+ fpassthru($fp);
+ fclose($fp);
+ }
+ else
+ {
+ echo _SKINFILES_ERR_DOWNLOAD_FILE1;
+ }
+ }
+ else
+ {
+ echo _SKINFILES_ERR_DOWNLOAD_FILE2;
+ }
+
+ exit;
+ }
+
+
+
+
+ /* View file *********************************************************************************************************************/
+
+ function _skinfiles_viewfile() {
+
+ global $pluginUrl, $manager;
+
+ $file = basename(trim(requestVar('file')));
+ $directory = dirname(trim(requestVar('file')));
+ $directory = sfExpandDirectory ($directory);
+
+ if (sfValidPath($directory) && file_exists($directory . $file) &&
+ is_file($directory . $file) && is_readable($directory . $file) && sfAllowViewing($file))
+ {
+ $relative = sfRelativePath ($directory);
+ $viewUrl = $manager->addTicketToUrl($pluginUrl . '?action=viewfile&file=' . rawurlencode(sfRelativePath($directory . $file)));
+
+ echo '<p class="location">' . _SKINFILES_CURRENT_LOCATION . sfDisplayPath($relative);
+ echo '<a href="' . htmlspecialchars($viewUrl) . '" title="View «' . $file . '»">';
+ echo '<img src="' . htmlspecialchars(sfIcon($file)) . '" alt="" /> ' . $file . '</a></p>';
+
+ echo '<h4>' . _SKINFILES_VIEW_FILE . '«' . htmlspecialchars($file) . '»</h4>';
+
+ if (sfIsFileType('html', $file))
+ {
+ echo '<iframe src="' . sfFullUrl($directory . $file) . '"></iframe>';
+ }
+
+ if (sfIsFileType('text', $file))
+ {
+ $content = implode('', file($directory . $file));
+
+ echo '<pre>';
+ echo htmlspecialchars($content);
+ echo '</pre>';
+ }
+
+ if (sfIsFileType('img', $file))
+ {
+ $size = getimagesize($directory . $file, $info);
+
+ switch ($size[2]) {
+ case IMAGETYPE_GIF: $type = 'GIF document'; break;
+ case IMAGETYPE_JPEG: $type = 'JPEG photograph'; break;
+ case IMAGETYPE_PNG: $type = 'PNG document'; break;
+ case IMAGETYPE_SWF: $type = 'Flash animation'; break;
+ case IMAGETYPE_PSD: $type = 'Photoshop document'; break;
+ case IMAGETYPE_BMP: $type = 'BMP document'; break;
+ case IMAGETYPE_TIFF_II: $type = 'TIFF document (Intel Byte Order)'; break;
+ case IMAGETYPE_TIFF_MM: $type = 'TIFF document (Motorola Byte Order)'; break;
+ case IMAGETYPE_JPC: $type = 'JPEG2000 photograph'; break;
+ case IMAGETYPE_JP2: $type = 'JPEG2000 photograph'; break;
+ case IMAGETYPE_JPX: $type = 'JPEG2000 photograph'; break;
+ case IMAGETYPE_JB2: $type = 'Slowview document'; break;
+ case IMAGETYPE_SWC: $type = 'Flash animation (compressed)'; break;
+ case IMAGETYPE_IFF: $type = 'IFF document'; break;
+ case IMAGETYPE_WBMP: $type = 'WBMP document'; break;
+ case IMAGETYPE_XBM: $type = 'XBM document'; break;
+ default: $type = 'Unknown document'; break;
+ }
+
+ if ($size[2] == IMAGETYPE_GIF || $size[2] == IMAGETYPE_JPEG ||
+ $size[2] == IMAGETYPE_PNG)
+ {
+ echo '<p><img src="' . sfFullUrl($directory . $file) . '" alt="" /></p>';